2009-11-18 23:53:59 +01:00
|
|
|
/*
|
|
|
|
* Copyright 2007 Richard J. Moore <rich@kde.org>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Library General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
|
|
|
* License along with this program; if not, write to the
|
|
|
|
* Free Software Foundation, Inc.,
|
|
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <QtScript/QScriptValue>
|
|
|
|
#include <QtScript/QScriptEngine>
|
|
|
|
#include <QtScript/QScriptContext>
|
|
|
|
|
|
|
|
#include <QtGui/QPainter>
|
|
|
|
#include <QtGui/QPicture>
|
|
|
|
#include <QtGui/QPolygonF>
|
|
|
|
#include <QtGui/QWidget>
|
|
|
|
|
|
|
|
#include <QtCore/qdebug.h>
|
|
|
|
|
2010-08-06 04:01:40 +02:00
|
|
|
#include "backportglobal.h"
|
2009-11-18 23:53:59 +01:00
|
|
|
|
|
|
|
Q_DECLARE_METATYPE(QPolygonF)
|
|
|
|
Q_DECLARE_METATYPE(QPainterPath)
|
|
|
|
Q_DECLARE_METATYPE(QPainterPath*)
|
|
|
|
Q_DECLARE_METATYPE(QPicture)
|
|
|
|
Q_DECLARE_METATYPE(QVector<QRectF>)
|
|
|
|
Q_DECLARE_METATYPE(QPaintDevice*)
|
|
|
|
Q_DECLARE_METATYPE(QPaintEngine*)
|
|
|
|
|
|
|
|
DECLARE_POINTER_METATYPE(QPainter)
|
|
|
|
|
|
|
|
static QScriptValue newPainter(QScriptEngine *eng, QPainter *p)
|
|
|
|
{
|
|
|
|
return QScript::wrapPointer(eng, p);
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue ctor(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
if (ctx->argumentCount() > 0) {
|
|
|
|
QPaintDevice *device = qscriptvalue_cast<QPaintDevice*>(ctx->argument(0));
|
2011-12-08 17:54:34 +01:00
|
|
|
if (!device) {
|
|
|
|
QPixmap *pixmap = qscriptvalue_cast<QPixmap *>(ctx->argument(0));
|
|
|
|
if (pixmap) {
|
|
|
|
return newPainter(eng, new QPainter(pixmap));
|
|
|
|
} else {
|
|
|
|
return newPainter(eng, new QPainter());
|
|
|
|
}
|
|
|
|
}
|
2009-11-18 23:53:59 +01:00
|
|
|
return newPainter(eng, new QPainter(device));
|
|
|
|
} else {
|
|
|
|
return newPainter(eng, new QPainter());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue background(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, background);
|
|
|
|
return qScriptValueFromValue(eng, self->background());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue backgroundMode(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, backgroundMode);
|
|
|
|
return QScriptValue(eng, static_cast<int>(self->backgroundMode()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue begin(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, begin);
|
|
|
|
QWidget *device = qscriptvalue_cast<QWidget*>(ctx->argument(0));
|
|
|
|
if (!device) {
|
|
|
|
return ctx->throwError(QScriptContext::TypeError,
|
|
|
|
"QPainter.prototype.begin: argument is not a QWidget");
|
|
|
|
}
|
|
|
|
return QScriptValue(eng, self->begin(device));
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue boundingRect(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, boundingRect);
|
|
|
|
QRect result;
|
|
|
|
if (ctx->argumentCount() == 3) {
|
|
|
|
result = self->boundingRect(qscriptvalue_cast<QRect>(ctx->argument(0)),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toString());
|
|
|
|
} else if (ctx->argumentCount() == 6) {
|
|
|
|
result = self->boundingRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
ctx->argument(4).toInt32(),
|
|
|
|
ctx->argument(5).toString());
|
|
|
|
}
|
|
|
|
return qScriptValueFromValue(eng, result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue brush(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, brush);
|
|
|
|
return qScriptValueFromValue(eng, self->brush());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue brushOrigin(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, brushOrigin);
|
|
|
|
return qScriptValueFromValue(eng, self->brushOrigin());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue clipPath(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, clipPath);
|
|
|
|
return qScriptValueFromValue(eng, self->clipPath());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue clipRegion(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, clipRegion);
|
|
|
|
return qScriptValueFromValue(eng, self->clipRegion());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue combinedMatrix(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, combinedMatrix);
|
|
|
|
return qScriptValueFromValue(eng, self->combinedMatrix());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue combinedTransform(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, combinedTransform);
|
|
|
|
return qScriptValueFromValue(eng, self->combinedTransform());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue compositionMode(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, compositionMode);
|
|
|
|
return QScriptValue(eng, static_cast<int>(self->compositionMode()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawArc(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawArc);
|
|
|
|
if (ctx->argumentCount() == 6) {
|
|
|
|
// drawArc(x, y, height, width, startAngle, spanAngle)
|
|
|
|
self->drawArc(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
ctx->argument(4).toInt32(),
|
|
|
|
ctx->argument(5).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 3) {
|
|
|
|
// drawArc(rectangle, startAngle, spanAngle)
|
|
|
|
self->drawArc(qscriptvalue_cast<QRectF>(ctx->argument(0)),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32());
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawChord(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawChord);
|
|
|
|
if (ctx->argumentCount() == 6) {
|
|
|
|
// x, y, height, width, startAngle, spanAngle
|
|
|
|
self->drawChord(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
ctx->argument(4).toInt32(),
|
|
|
|
ctx->argument(5).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 3) {
|
|
|
|
// rectangle, startAngle, spanAngle
|
|
|
|
self->drawChord(qscriptvalue_cast<QRectF>(ctx->argument(0)),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32());
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawConvexPolygon(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawConvexPolygon);
|
|
|
|
self->drawConvexPolygon(qscriptvalue_cast<QPolygonF>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawEllipse(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawEllipse);
|
|
|
|
if (ctx->argumentCount() == 4) {
|
|
|
|
// drawEllipse(x, y, width, height)
|
|
|
|
self->drawEllipse(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// drawEllipse(rect)
|
|
|
|
self->drawEllipse(qscriptvalue_cast<QRectF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawImage(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawImage);
|
|
|
|
if (ctx->argumentCount() == 2) {
|
|
|
|
// target, image
|
|
|
|
QScriptValue arg0 = ctx->argument(0);
|
|
|
|
QImage image = qscriptvalue_cast<QImage>(ctx->argument(1));
|
|
|
|
if (arg0.property("width").isValid()) {
|
|
|
|
self->drawImage(qscriptvalue_cast<QRectF>(arg0), image);
|
|
|
|
} else {
|
|
|
|
self->drawImage(qscriptvalue_cast<QPointF>(arg0), image);
|
|
|
|
}
|
|
|
|
} else if (ctx->argumentCount() == 3) {
|
|
|
|
// x, y, image
|
|
|
|
self->drawImage(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
qscriptvalue_cast<QImage>(ctx->argument(2)));
|
|
|
|
} else if (ctx->argumentCount() == 5) {
|
|
|
|
// x, y, width, height, image
|
|
|
|
self->drawImage(QRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32()),
|
|
|
|
qscriptvalue_cast<QImage>(ctx->argument(4)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawLine(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawLine);
|
|
|
|
if (ctx->argumentCount() == 4) {
|
|
|
|
// x1, y1, x2, y2
|
|
|
|
self->drawLine(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 2) {
|
|
|
|
// p1, p2
|
|
|
|
self->drawLine(qscriptvalue_cast<QPointF>(ctx->argument(0)),
|
|
|
|
qscriptvalue_cast<QPointF>(ctx->argument(1)));
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// line
|
|
|
|
self->drawLine(qscriptvalue_cast<QLineF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawLines(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawLines);
|
|
|
|
return ctx->throwError("QPainter.prototype.drawLines is not implemented");
|
|
|
|
// self->drawLines(qscriptvalue_cast<QVector<QLineF> >(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPath(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPath);
|
|
|
|
self->drawPath(qscriptvalue_cast<QPainterPath>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPicture(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPicture);
|
|
|
|
if (ctx->argumentCount() == 2) {
|
|
|
|
self->drawPicture(qscriptvalue_cast<QPointF>(ctx->argument(0)),
|
|
|
|
qscriptvalue_cast<QPicture>(ctx->argument(1)));
|
|
|
|
} else if (ctx->argumentCount() == 3) {
|
|
|
|
self->drawPicture(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
qscriptvalue_cast<QPicture>(ctx->argument(2)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPie(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPie);
|
|
|
|
if (ctx->argumentCount() == 6) {
|
|
|
|
// x, y, height, width, startAngle, spanAngle
|
|
|
|
self->drawPie(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
ctx->argument(4).toInt32(),
|
|
|
|
ctx->argument(5).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 3) {
|
|
|
|
// rectangle, startAngle, spanAngle
|
|
|
|
self->drawPie(qscriptvalue_cast<QRectF>(ctx->argument(0)),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32());
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPixmap(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPixmap);
|
|
|
|
if (ctx->argumentCount() == 2) {
|
|
|
|
// target, pixmap
|
|
|
|
QScriptValue arg0 = ctx->argument(0);
|
|
|
|
QPixmap pixmap = qscriptvalue_cast<QPixmap>(ctx->argument(1));
|
|
|
|
if (arg0.property("width").isValid()) {
|
|
|
|
self->drawPixmap(qscriptvalue_cast<QRectF>(arg0), pixmap,
|
|
|
|
QRectF(0, 0, pixmap.width(), pixmap.height()));
|
|
|
|
} else {
|
|
|
|
self->drawPixmap(qscriptvalue_cast<QPointF>(arg0), pixmap);
|
|
|
|
}
|
|
|
|
} else if (ctx->argumentCount() == 3) {
|
|
|
|
// x, y, pixmap
|
|
|
|
self->drawPixmap(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
qscriptvalue_cast<QPixmap>(ctx->argument(2)));
|
|
|
|
} else if (ctx->argumentCount() == 5) {
|
|
|
|
// x, y, width, height, pixmap
|
|
|
|
self->drawPixmap(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
qscriptvalue_cast<QPixmap>(ctx->argument(4)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPoint(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPoint);
|
|
|
|
if (ctx->argumentCount() == 2) {
|
|
|
|
// drawPoint(x, y)
|
|
|
|
self->drawPoint(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// drawPoint(point)
|
|
|
|
self->drawPoint(qscriptvalue_cast<QPointF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPoints(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPoints);
|
|
|
|
self->drawPoints(qscriptvalue_cast<QPolygonF>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPolygon(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPolygon);
|
|
|
|
// ### fillRule (2nd argument)
|
|
|
|
self->drawPolygon(qscriptvalue_cast<QPolygonF>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawPolyline(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawPolyline);
|
|
|
|
self->drawPolyline(qscriptvalue_cast<QPolygonF>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawRect(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawRect);
|
|
|
|
if (ctx->argumentCount() == 4) {
|
|
|
|
// x, y, width, height
|
|
|
|
self->drawRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// rect
|
|
|
|
self->drawRect(qscriptvalue_cast<QRectF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawRects(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawRects);
|
|
|
|
self->drawRects(qscriptvalue_cast<QVector<QRectF> >(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawRoundRect(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawRoundRect);
|
|
|
|
// ### xRnd, yRnd
|
|
|
|
if (ctx->argumentCount() >= 4) {
|
|
|
|
self->drawRoundRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else {
|
|
|
|
self->drawRoundRect(qscriptvalue_cast<QRectF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawText(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawText);
|
|
|
|
if (ctx->argumentCount() == 3) {
|
|
|
|
// x, y, text
|
|
|
|
self->drawText(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toString());
|
|
|
|
} else if (ctx->argumentCount() == 2) {
|
|
|
|
QScriptValue arg0 = ctx->argument(0);
|
|
|
|
if (arg0.property("width").isValid()) {
|
|
|
|
self->drawText(qscriptvalue_cast<QRectF>(arg0),
|
|
|
|
ctx->argument(1).toString());
|
|
|
|
} else {
|
|
|
|
self->drawText(qscriptvalue_cast<QPointF>(arg0),
|
|
|
|
ctx->argument(1).toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue drawTiledPixmap(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, drawTiledPixmap);
|
|
|
|
if (ctx->argumentCount() >= 5) {
|
|
|
|
// x, y, width, height, pixmap, sx, sy
|
|
|
|
self->drawTiledPixmap(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
qscriptvalue_cast<QPixmap>(ctx->argument(4)),
|
|
|
|
ctx->argument(5).toInt32(),
|
|
|
|
ctx->argument(6).toInt32());
|
|
|
|
} else {
|
|
|
|
// rect, pixmap, position
|
|
|
|
self->drawTiledPixmap(qscriptvalue_cast<QRectF>(ctx->argument(0)),
|
|
|
|
qscriptvalue_cast<QPixmap>(ctx->argument(1)),
|
|
|
|
qscriptvalue_cast<QPointF>(ctx->argument(2)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue end(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, end);
|
|
|
|
return QScriptValue(eng, self->end());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue eraseRect(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, eraseRect);
|
|
|
|
if (ctx->argumentCount() == 4) {
|
|
|
|
// x, y, width, height
|
|
|
|
self->eraseRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// rect
|
|
|
|
self->eraseRect(qscriptvalue_cast<QRectF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue fillPath(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, fillPath);
|
|
|
|
QPainterPath *path = qscriptvalue_cast<QPainterPath*>(ctx->argument(0));
|
|
|
|
if (!path) {
|
|
|
|
return ctx->throwError(QScriptContext::TypeError,
|
|
|
|
"QPainter.prototype.fillPath: argument is not a PainterPath");
|
|
|
|
}
|
|
|
|
self->fillPath(*path, qscriptvalue_cast<QBrush>(ctx->argument(1)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue fillRect(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, fillRect);
|
|
|
|
if (ctx->argumentCount() == 5) {
|
|
|
|
// x, y, width, height, brush
|
|
|
|
self->fillRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32(),
|
|
|
|
qscriptvalue_cast<QBrush>(ctx->argument(4)));
|
|
|
|
} else if (ctx->argumentCount() == 2) {
|
|
|
|
// rect, brush
|
|
|
|
self->fillRect(qscriptvalue_cast<QRectF>(ctx->argument(0)),
|
|
|
|
qscriptvalue_cast<QBrush>(ctx->argument(1)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue font(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, font);
|
|
|
|
return qScriptValueFromValue(eng, self->font());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue hasClipping(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, hasClipping);
|
|
|
|
return QScriptValue(eng, self->hasClipping());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
2010-01-27 22:06:03 +01:00
|
|
|
static QScriptValue active(QScriptContext *ctx, QScriptEngine *eng)
|
2009-11-18 23:53:59 +01:00
|
|
|
{
|
2010-01-27 22:06:03 +01:00
|
|
|
DECLARE_SELF(QPainter, active);
|
2009-11-18 23:53:59 +01:00
|
|
|
return QScriptValue(eng, self->isActive());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue layoutDirection(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, layoutDirection);
|
|
|
|
return QScriptValue(eng, static_cast<int>(self->layoutDirection()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue opacity(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, opacity);
|
|
|
|
return QScriptValue(eng, self->opacity());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue pen(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, pen);
|
|
|
|
return qScriptValueFromValue(eng, self->pen());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue renderHints(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, renderHints);
|
|
|
|
return QScriptValue(eng, static_cast<int>(self->renderHints()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue resetMatrix(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, resetMatrix);
|
|
|
|
self->resetMatrix();
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue resetTransform(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, resetTransform);
|
|
|
|
self->resetTransform();
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue restore(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, restore);
|
|
|
|
self->restore();
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue rotate(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, rotate);
|
|
|
|
self->rotate(ctx->argument(0).toNumber());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue save(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, save);
|
|
|
|
self->save();
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue scale(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, scale);
|
|
|
|
self->scale(ctx->argument(0).toNumber(),
|
|
|
|
ctx->argument(1).toNumber());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setBackground(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setBackground);
|
|
|
|
self->setBackground(qscriptvalue_cast<QBrush>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setBackgroundMode(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setBackgroundMode);
|
|
|
|
self->setBackgroundMode(static_cast<Qt::BGMode>(ctx->argument(0).toInt32()));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setBrush(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setBrush);
|
|
|
|
self->setBrush(qscriptvalue_cast<QBrush>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setBrushOrigin(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setBrushOrigin);
|
|
|
|
self->setBrushOrigin(qscriptvalue_cast<QPointF>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setClipPath(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setClipPath);
|
|
|
|
// ### ClipOperation
|
|
|
|
self->setClipPath(qscriptvalue_cast<QPainterPath>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setClipRect(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setClipRect);
|
|
|
|
// ### ClipOperation
|
|
|
|
if (ctx->argumentCount() >= 4) {
|
|
|
|
// x, y, width, height [, operation]
|
|
|
|
self->setClipRect(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() >= 1) {
|
|
|
|
// rect [, operation]
|
|
|
|
self->setClipRect(qscriptvalue_cast<QRectF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setClipRegion(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setClipRegion);
|
|
|
|
// ### ClipOperation
|
|
|
|
self->setClipRegion(qscriptvalue_cast<QRegion>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setClipping(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setClipping);
|
|
|
|
self->setClipping(ctx->argument(0).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setCompositionMode(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setCompositionMode);
|
|
|
|
self->setCompositionMode(static_cast<QPainter::CompositionMode>(ctx->argument(0).toInt32()));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setFont(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setFont);
|
|
|
|
self->setFont(qscriptvalue_cast<QFont>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setLayoutDirection(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setLayoutDirection);
|
|
|
|
self->setLayoutDirection(static_cast<Qt::LayoutDirection>(ctx->argument(0).toInt32()));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setOpacity(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setOpacity);
|
|
|
|
self->setOpacity(ctx->argument(0).toNumber());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setPen(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setPen);
|
|
|
|
self->setPen(qscriptvalue_cast<QPen>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setRenderHint(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setRenderHint);
|
|
|
|
self->setRenderHint(static_cast<QPainter::RenderHint>(ctx->argument(0).toInt32()),
|
|
|
|
ctx->argument(1).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setRenderHints(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setRenderHints);
|
|
|
|
self->setRenderHints(static_cast<QPainter::RenderHints>(ctx->argument(0).toInt32()),
|
|
|
|
ctx->argument(1).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setTransform(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setTransform);
|
|
|
|
self->setTransform(qscriptvalue_cast<QTransform>(ctx->argument(0)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setViewTransformEnabled(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setViewTransformEnabled);
|
|
|
|
self->setViewTransformEnabled(ctx->argument(0).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setViewport(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setViewport);
|
|
|
|
if (ctx->argumentCount() == 4) {
|
|
|
|
// x, y, width, height
|
|
|
|
self->setViewport(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// rect
|
|
|
|
self->setViewport(qscriptvalue_cast<QRect>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setWindow(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setWindow);
|
|
|
|
if (ctx->argumentCount() == 4) {
|
|
|
|
// x, y, width, height
|
|
|
|
self->setWindow(ctx->argument(0).toInt32(),
|
|
|
|
ctx->argument(1).toInt32(),
|
|
|
|
ctx->argument(2).toInt32(),
|
|
|
|
ctx->argument(3).toInt32());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// rect
|
|
|
|
self->setWindow(qscriptvalue_cast<QRect>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setWorldMatrix(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setWorldMatrix);
|
|
|
|
self->setWorldMatrix(qscriptvalue_cast<QMatrix>(ctx->argument(0)),
|
|
|
|
ctx->argument(1).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setWorldMatrixEnabled(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setWorldMatrixEnabled);
|
|
|
|
self->setWorldMatrixEnabled(ctx->argument(0).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue setWorldTransform(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, setWorldTransform);
|
|
|
|
self->setWorldTransform(qscriptvalue_cast<QTransform>(ctx->argument(0)),
|
|
|
|
ctx->argument(1).toBoolean());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue shear(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, shear);
|
|
|
|
self->shear(ctx->argument(0).toNumber(),
|
|
|
|
ctx->argument(1).toNumber());
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue strokePath(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, strokePath);
|
|
|
|
QPainterPath *path = qscriptvalue_cast<QPainterPath*>(ctx->argument(0));
|
|
|
|
if (!path) {
|
|
|
|
return ctx->throwError(QScriptContext::TypeError,
|
|
|
|
"QPainter.prototype.strokePath: argument is not a PainterPath");
|
|
|
|
}
|
|
|
|
self->strokePath(*path, qscriptvalue_cast<QPen>(ctx->argument(1)));
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue testRenderHint(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, testRenderHint);
|
|
|
|
return QScriptValue(eng, self->testRenderHint(static_cast<QPainter::RenderHint>(ctx->argument(0).toInt32())));
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue transform(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, transform);
|
|
|
|
return qScriptValueFromValue(eng, self->transform());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue translate(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, translate);
|
|
|
|
if (ctx->argumentCount() == 2) {
|
|
|
|
// dx, dy
|
|
|
|
self->translate(ctx->argument(0).toNumber(),
|
|
|
|
ctx->argument(1).toNumber());
|
|
|
|
} else if (ctx->argumentCount() == 1) {
|
|
|
|
// offset
|
|
|
|
self->translate(qscriptvalue_cast<QPointF>(ctx->argument(0)));
|
|
|
|
}
|
|
|
|
return eng->undefinedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue viewTransformEnabled(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, viewTransformEnabled);
|
|
|
|
return QScriptValue(eng, self->viewTransformEnabled());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue viewport(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, viewport);
|
|
|
|
return qScriptValueFromValue(eng, self->viewport());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue window(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, window);
|
|
|
|
return qScriptValueFromValue(eng, self->window());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue worldMatrix(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, worldMatrix);
|
|
|
|
return qScriptValueFromValue(eng, self->worldMatrix());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue worldMatrixEnabled(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, worldMatrixEnabled);
|
|
|
|
return QScriptValue(eng, self->worldMatrixEnabled());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue worldTransform(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, worldTransform);
|
|
|
|
return qScriptValueFromValue(eng, self->worldTransform());
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
static QScriptValue toString(QScriptContext *ctx, QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
DECLARE_SELF(QPainter, toString);
|
|
|
|
return QScriptValue(eng, "QPainter");
|
|
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
QScriptValue constructPainterClass(QScriptEngine *eng)
|
|
|
|
{
|
|
|
|
QScriptValue proto = newPainter(eng, new QPainter());
|
2009-11-27 21:28:42 +01:00
|
|
|
QScriptValue::PropertyFlags getter = QScriptValue::PropertyGetter;
|
|
|
|
QScriptValue::PropertyFlags setter = QScriptValue::PropertySetter;
|
|
|
|
|
|
|
|
proto.setProperty("background", eng->newFunction(background), getter);
|
|
|
|
proto.setProperty("background", eng->newFunction(setBackground), setter);
|
|
|
|
|
|
|
|
proto.setProperty("backgroundMode", eng->newFunction(backgroundMode), getter);
|
|
|
|
proto.setProperty("backgroundMode", eng->newFunction(setBackgroundMode), setter);
|
|
|
|
|
|
|
|
proto.setProperty("brush", eng->newFunction(brush), getter);
|
2010-02-24 09:15:10 +01:00
|
|
|
proto.setProperty("brush", eng->newFunction(setBrush), setter);
|
2009-11-27 21:28:42 +01:00
|
|
|
|
|
|
|
proto.setProperty("brushOrigin", eng->newFunction(brushOrigin), getter);
|
|
|
|
proto.setProperty("brushOrigin", eng->newFunction(setBrushOrigin), setter);
|
|
|
|
|
|
|
|
proto.setProperty("clipping", eng->newFunction(hasClipping), getter);
|
|
|
|
proto.setProperty("clipping", eng->newFunction(setClipping), getter);
|
|
|
|
|
|
|
|
proto.setProperty("clipPath", eng->newFunction(clipPath), getter);
|
|
|
|
proto.setProperty("clipPath", eng->newFunction(setClipPath), setter);
|
|
|
|
|
|
|
|
proto.setProperty("clipRegion", eng->newFunction(clipRegion), getter);
|
|
|
|
proto.setProperty("clipRegion", eng->newFunction(setClipRegion), setter);
|
|
|
|
|
|
|
|
proto.setProperty("compositionMode", eng->newFunction(compositionMode), getter);
|
|
|
|
proto.setProperty("compositionMode", eng->newFunction(setCompositionMode), setter);
|
|
|
|
|
|
|
|
proto.setProperty("font", eng->newFunction(font), getter);
|
|
|
|
proto.setProperty("font", eng->newFunction(setFont), setter);
|
|
|
|
|
|
|
|
proto.setProperty("layoutDirection", eng->newFunction(layoutDirection), getter);
|
|
|
|
proto.setProperty("layoutDirection", eng->newFunction(setLayoutDirection), setter);
|
|
|
|
|
|
|
|
proto.setProperty("opacity", eng->newFunction(opacity), getter);
|
|
|
|
proto.setProperty("opacity", eng->newFunction(setOpacity), setter);
|
|
|
|
|
|
|
|
proto.setProperty("pen", eng->newFunction(pen), getter);
|
|
|
|
proto.setProperty("pen", eng->newFunction(setPen), setter);
|
|
|
|
|
|
|
|
proto.setProperty("renderHints", eng->newFunction(renderHints), getter);
|
|
|
|
proto.setProperty("renderHints", eng->newFunction(setRenderHints), setter);
|
|
|
|
|
|
|
|
proto.setProperty("transform", eng->newFunction(transform), getter);
|
|
|
|
proto.setProperty("transform", eng->newFunction(setTransform), getter);
|
|
|
|
|
|
|
|
proto.setProperty("viewport", eng->newFunction(viewport), getter);
|
|
|
|
proto.setProperty("viewport", eng->newFunction(setViewport), setter);
|
|
|
|
|
|
|
|
proto.setProperty("viewTransformEnabled", eng->newFunction(viewTransformEnabled), getter);
|
|
|
|
proto.setProperty("viewTransformEnabled", eng->newFunction(setViewTransformEnabled), setter);
|
|
|
|
|
|
|
|
proto.setProperty("window", eng->newFunction(window), getter);
|
|
|
|
proto.setProperty("window", eng->newFunction(setWindow), setter);
|
|
|
|
|
|
|
|
proto.setProperty("worldMatrix", eng->newFunction(worldMatrix), getter);
|
|
|
|
proto.setProperty("worldMatrix", eng->newFunction(setWorldMatrix), setter);
|
|
|
|
|
|
|
|
proto.setProperty("worldTransform", eng->newFunction(worldTransform), getter);
|
|
|
|
proto.setProperty("worldTransform", eng->newFunction(setWorldTransform), setter);
|
|
|
|
|
|
|
|
proto.setProperty("worldMatrixEnabled", eng->newFunction(worldMatrixEnabled), getter);
|
|
|
|
proto.setProperty("worldMatrixEnabled", eng->newFunction(setWorldMatrixEnabled), setter);
|
|
|
|
|
|
|
|
proto.setProperty("combinedMatrix", eng->newFunction(combinedMatrix), getter);
|
|
|
|
proto.setProperty("combinedTransform", eng->newFunction(combinedTransform), getter);
|
2010-01-27 22:06:03 +01:00
|
|
|
proto.setProperty("active", eng->newFunction(active), getter);
|
2009-11-27 21:28:42 +01:00
|
|
|
|
2009-11-18 23:53:59 +01:00
|
|
|
ADD_METHOD(proto, begin);
|
2009-11-27 21:28:42 +01:00
|
|
|
ADD_METHOD(proto, end);
|
2009-11-18 23:53:59 +01:00
|
|
|
ADD_METHOD(proto, boundingRect);
|
|
|
|
ADD_METHOD(proto, drawChord);
|
|
|
|
ADD_METHOD(proto, drawConvexPolygon);
|
|
|
|
ADD_METHOD(proto, drawArc);
|
|
|
|
ADD_METHOD(proto, drawEllipse);
|
|
|
|
ADD_METHOD(proto, drawImage);
|
|
|
|
ADD_METHOD(proto, drawLine);
|
|
|
|
ADD_METHOD(proto, drawLines);
|
|
|
|
ADD_METHOD(proto, drawPath);
|
|
|
|
ADD_METHOD(proto, drawPicture);
|
|
|
|
ADD_METHOD(proto, drawPie);
|
|
|
|
ADD_METHOD(proto, drawPixmap);
|
|
|
|
ADD_METHOD(proto, drawPoint);
|
|
|
|
ADD_METHOD(proto, drawPoints);
|
|
|
|
ADD_METHOD(proto, drawPolygon);
|
|
|
|
ADD_METHOD(proto, drawPolyline);
|
|
|
|
ADD_METHOD(proto, drawRect);
|
|
|
|
ADD_METHOD(proto, drawRects);
|
|
|
|
ADD_METHOD(proto, drawRoundRect);
|
|
|
|
ADD_METHOD(proto, drawText);
|
|
|
|
ADD_METHOD(proto, drawTiledPixmap);
|
|
|
|
ADD_METHOD(proto, eraseRect);
|
|
|
|
ADD_METHOD(proto, fillPath);
|
|
|
|
ADD_METHOD(proto, fillRect);
|
|
|
|
ADD_METHOD(proto, resetMatrix);
|
|
|
|
ADD_METHOD(proto, resetTransform);
|
|
|
|
ADD_METHOD(proto, restore);
|
|
|
|
ADD_METHOD(proto, rotate);
|
|
|
|
ADD_METHOD(proto, save);
|
|
|
|
ADD_METHOD(proto, scale);
|
|
|
|
ADD_METHOD(proto, setClipRect);
|
|
|
|
ADD_METHOD(proto, setRenderHint);
|
|
|
|
ADD_METHOD(proto, shear);
|
|
|
|
ADD_METHOD(proto, strokePath);
|
|
|
|
ADD_METHOD(proto, testRenderHint);
|
|
|
|
ADD_METHOD(proto, toString);
|
|
|
|
ADD_METHOD(proto, translate);
|
|
|
|
|
|
|
|
QScript::registerPointerMetaType<QPainter>(eng, proto);
|
|
|
|
|
|
|
|
qScriptRegisterSequenceMetaType<QVector<QRectF> >(eng);
|
|
|
|
|
|
|
|
QScriptValue ctorFun = eng->newFunction(ctor, proto);
|
|
|
|
ADD_ENUM_VALUE(ctorFun, QPainter, Antialiasing);
|
|
|
|
ADD_ENUM_VALUE(ctorFun, QPainter, TextAntialiasing);
|
|
|
|
ADD_ENUM_VALUE(ctorFun, QPainter, SmoothPixmapTransform);
|
|
|
|
ADD_ENUM_VALUE(ctorFun, QPainter, HighQualityAntialiasing);
|
|
|
|
|
|
|
|
eng->setDefaultPrototype(qMetaTypeId<QPainter*>(), proto);
|
|
|
|
|
|
|
|
return ctorFun;
|
|
|
|
}
|