• Skip to content
  • Skip to link menu
KDE 4.0 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

Plasma

graphicsitem.cpp

Go to the documentation of this file.
00001 #include <QtScript/QScriptValue>
00002 #include <QtScript/QScriptEngine>
00003 #include <QtScript/QScriptContext>
00004 #include <QtGui/QCursor>
00005 #include <QtGui/QGraphicsItem>
00006 #include <QtGui/QGraphicsScene>
00007 #include "../backportglobal.h"
00008 
00009 Q_DECLARE_METATYPE(QScript::Pointer<QGraphicsItem>::wrapped_pointer_type)
00010 Q_DECLARE_METATYPE(QList<QGraphicsItem*>)
00011 Q_DECLARE_METATYPE(QPainterPath)
00012 #ifndef QT_NO_CURSOR
00013 Q_DECLARE_METATYPE(QCursor)
00014 #endif
00015 Q_DECLARE_METATYPE(QGraphicsItemGroup*)
00016 Q_DECLARE_METATYPE(QPainter*)
00017 Q_DECLARE_METATYPE(QStyleOptionGraphicsItem*)
00018 
00019 Q_DECLARE_METATYPE(QGraphicsPathItem*)
00020 Q_DECLARE_METATYPE(QGraphicsRectItem*)
00021 Q_DECLARE_METATYPE(QGraphicsEllipseItem*)
00022 Q_DECLARE_METATYPE(QGraphicsPolygonItem*)
00023 Q_DECLARE_METATYPE(QGraphicsLineItem*)
00024 Q_DECLARE_METATYPE(QGraphicsPixmapItem*)
00025 Q_DECLARE_METATYPE(QGraphicsTextItem*)
00026 Q_DECLARE_METATYPE(QGraphicsSimpleTextItem*)
00027 
00028 DECLARE_BOOLEAN_GET_SET_METHODS(QGraphicsItem, acceptDrops, setAcceptDrops)
00029 DECLARE_BOOLEAN_GET_SET_METHODS(QGraphicsItem, acceptsHoverEvents, setAcceptsHoverEvents)
00030 DECLARE_GET_METHOD(QGraphicsItem, boundingRect)
00031 DECLARE_GET_METHOD(QGraphicsItem, children)
00032 DECLARE_GET_METHOD(QGraphicsItem, childrenBoundingRect)
00033 #ifndef QT_NO_CURSOR
00034 DECLARE_GET_SET_METHODS(QGraphicsItem, QCursor, cursor, setCursor)
00035 DECLARE_BOOLEAN_GET_METHOD(QGraphicsItem, hasCursor)
00036 #endif
00037 DECLARE_GET_SET_METHODS(QGraphicsItem, QGraphicsItemGroup*, group, setGroup)
00038 DECLARE_BOOLEAN_GET_SET_METHODS(QGraphicsItem, handlesChildEvents, setHandlesChildEvents)
00039 DECLARE_BOOLEAN_GET_METHOD(QGraphicsItem, hasFocus)
00040 DECLARE_BOOLEAN_GET_SET_METHODS(QGraphicsItem, isEnabled, setEnabled)
00041 DECLARE_BOOLEAN_GET_SET_METHODS(QGraphicsItem, isSelected, setSelected)
00042 DECLARE_BOOLEAN_GET_SET_METHODS(QGraphicsItem, isVisible, setVisible)
00043 DECLARE_GET_METHOD(QGraphicsItem, opaqueArea)
00044 DECLARE_GET_METHOD(QGraphicsItem, pos)
00045 DECLARE_QOBJECT_GET_METHOD(QGraphicsItem, scene)
00046 DECLARE_GET_METHOD(QGraphicsItem, sceneBoundingRect)
00047 DECLARE_GET_METHOD(QGraphicsItem, scenePos)
00048 DECLARE_GET_METHOD(QGraphicsItem, sceneTransform)
00049 DECLARE_GET_METHOD(QGraphicsItem, shape)
00050 #ifndef QT_NO_TOOLTIP
00051 DECLARE_STRING_GET_SET_METHODS(QGraphicsItem, toolTip, setToolTip)
00052 #endif
00053 DECLARE_GET_METHOD(QGraphicsItem, topLevelItem)
00054 DECLARE_GET_SET_METHODS(QGraphicsItem, QTransform, transform, setTransform)
00055 DECLARE_NUMBER_GET_METHOD(QGraphicsItem, type)
00056 DECLARE_NUMBER_GET_METHOD(QGraphicsItem, x)
00057 DECLARE_NUMBER_GET_METHOD(QGraphicsItem, y)
00058 DECLARE_NUMBER_GET_SET_METHODS(QGraphicsItem, zValue, setZValue)
00059 
00060 DECLARE_BOOLEAN_1ARG_METHOD(QGraphicsItem, QPointF, contains)
00061 DECLARE_VOID_METHOD(QGraphicsItem, clearFocus)
00062 DECLARE_VOID_METHOD(QGraphicsItem, hide)
00063 DECLARE_BOOLEAN_1ARG_METHOD(QGraphicsItem, QGraphicsItem*, isAncestorOf)
00064 DECLARE_BOOLEAN_1ARG_METHOD(QGraphicsItem, QGraphicsItem*, isObscuredBy)
00065 DECLARE_VOID_NUMBER_NUMBER_METHOD(QGraphicsItem, moveBy)
00066 DECLARE_VOID_METHOD(QGraphicsItem, resetTransform)
00067 #ifndef QT_NO_CURSOR
00068 DECLARE_VOID_METHOD(QGraphicsItem, unsetCursor)
00069 #endif
00070 DECLARE_VOID_METHOD(QGraphicsItem, show)
00071 DECLARE_VOID_NUMBER_NUMBER_METHOD(QGraphicsItem, translate)
00072 DECLARE_VOID_NUMBER_NUMBER_METHOD(QGraphicsItem, scale)
00073 DECLARE_VOID_NUMBER_NUMBER_METHOD(QGraphicsItem, shear)
00074 DECLARE_VOID_1ARG_METHOD(QGraphicsItem, QGraphicsItem*, installSceneEventFilter)
00075 DECLARE_VOID_1ARG_METHOD(QGraphicsItem, QGraphicsItem*, removeSceneEventFilter)
00076 DECLARE_VOID_NUMBER_METHOD(QGraphicsItem, rotate)
00077 
00079 
00080 static QScriptValue ctor(QScriptContext *ctx, QScriptEngine *)
00081 {
00082     return ctx->throwError("QGraphicsItem cannot be instantiated");
00083 }
00084 
00085 BEGIN_DECLARE_METHOD(QGraphicsItem, acceptedMouseButtons) {
00086     return QScriptValue(eng, static_cast<int>(self->acceptedMouseButtons()));
00087 } END_DECLARE_METHOD
00088 
00089 BEGIN_DECLARE_METHOD(QGraphicsItem, advance) {
00090     self->advance(ctx->argument(0).toInt32());
00091     return eng->undefinedValue();
00092 } END_DECLARE_METHOD
00093 
00094 BEGIN_DECLARE_METHOD(QGraphicsItem, collidesWithItem) {
00095     QGraphicsItem *other = qscriptvalue_cast<QGraphicsItem*>(ctx->argument(0));
00096     if (!other) {
00097         return ctx->throwError(QScriptContext::TypeError,
00098                                "QGraphicsItem.prototype.collidesWithItem: argument is not a GraphicsItem");
00099     }
00100     if (ctx->argument(1).isUndefined())
00101         return QScriptValue(eng, self->collidesWithItem(other));
00102     else
00103         return QScriptValue(eng, self->collidesWithItem(other, static_cast<Qt::ItemSelectionMode>(ctx->argument(1).toInt32())));
00104 } END_DECLARE_METHOD
00105 
00106 BEGIN_DECLARE_METHOD(QGraphicsItem, collidesWithPath) {
00107     QPainterPath path = qscriptvalue_cast<QPainterPath>(ctx->argument(0));
00108     if (ctx->argument(1).isUndefined())
00109         return QScriptValue(eng, self->collidesWithPath(path));
00110     else
00111         return QScriptValue(eng, self->collidesWithPath(path, static_cast<Qt::ItemSelectionMode>(ctx->argument(1).toInt32())));
00112 } END_DECLARE_METHOD
00113 
00114 BEGIN_DECLARE_METHOD(QGraphicsItem, collidingItems) {
00115     if (ctx->argument(0).isUndefined())
00116         return qScriptValueFromValue(eng, self->collidingItems());
00117     else
00118         return qScriptValueFromValue(eng, self->collidingItems(static_cast<Qt::ItemSelectionMode>(ctx->argument(0).toInt32())));
00119 } END_DECLARE_METHOD
00120 
00121 BEGIN_DECLARE_METHOD(QGraphicsItem, data) {
00122     return eng->newVariant(self->data(ctx->argument(0).toInt32()));
00123 } END_DECLARE_METHOD
00124 
00125 BEGIN_DECLARE_METHOD(QGraphicsItem, ensureVisible) {
00126     Q_UNUSED(eng);
00127     return ctx->throwError("QGraphicsItem.prototype.ensureVisible is not implemented");
00128 } END_DECLARE_METHOD
00129 
00130 BEGIN_DECLARE_METHOD(QGraphicsItem, flags) {
00131     return QScriptValue(eng, static_cast<int>(self->flags()));
00132 } END_DECLARE_METHOD
00133 
00134 BEGIN_DECLARE_METHOD(QGraphicsItem, isObscured) {
00135     if (ctx->argumentCount() == 0) {
00136         return QScriptValue(eng, self->isObscured());
00137     } else if (ctx->argumentCount() > 1) {
00138         return QScriptValue(eng, self->isObscured(ctx->argument(0).toInt32(),
00139                                                   ctx->argument(1).toInt32(),
00140                                                   ctx->argument(2).toInt32(),
00141                                                   ctx->argument(3).toInt32()));
00142     } else {
00143         return QScriptValue(eng, self->isObscured(qscriptvalue_cast<QRectF>(ctx->argument(0))));
00144     }
00145 } END_DECLARE_METHOD
00146 
00147 BEGIN_DECLARE_METHOD(QGraphicsItem, mapFromItem) {
00148     Q_UNUSED(eng);
00149     return ctx->throwError("QGraphicsItem.prototype.mapFromItem is not implemented");
00150 } END_DECLARE_METHOD
00151 
00152 BEGIN_DECLARE_METHOD(QGraphicsItem, mapFromParent) {
00153     Q_UNUSED(eng);
00154     return ctx->throwError("QGraphicsItem.prototype.mapFromParent is not implemented");
00155 } END_DECLARE_METHOD
00156 
00157 BEGIN_DECLARE_METHOD(QGraphicsItem, mapFromScene) {
00158     Q_UNUSED(eng);
00159     return ctx->throwError("QGraphicsItem.prototype.mapFromScene is not implemented");
00160 } END_DECLARE_METHOD
00161 
00162 BEGIN_DECLARE_METHOD(QGraphicsItem, mapToItem) {
00163     Q_UNUSED(eng);
00164     return ctx->throwError("QGraphicsItem.prototype.mapToItem is not implemented");
00165 } END_DECLARE_METHOD
00166 
00167 BEGIN_DECLARE_METHOD(QGraphicsItem, mapToParent) {
00168     Q_UNUSED(eng);
00169     return ctx->throwError("QGraphicsItem.prototype.mapToParent is not implemented");
00170 } END_DECLARE_METHOD
00171 
00172 BEGIN_DECLARE_METHOD(QGraphicsItem, mapToScene) {
00173     Q_UNUSED(eng);
00174     return ctx->throwError("QGraphicsItem.prototype.mapToScene is not implemented");
00175 } END_DECLARE_METHOD
00176 
00177 BEGIN_DECLARE_METHOD(QGraphicsItem, paint) {
00178     self->paint(qscriptvalue_cast<QPainter*>(ctx->argument(0)),
00179                 qscriptvalue_cast<QStyleOptionGraphicsItem*>(ctx->argument(1)),
00180                 qscriptvalue_cast<QWidget*>(ctx->argument(2)));
00181     return eng->undefinedValue();
00182 } END_DECLARE_METHOD
00183 
00184 BEGIN_DECLARE_METHOD(QGraphicsItem, parentItem) {
00185     QGraphicsItem *parent = self->parentItem();
00186     if (!parent)
00187         return eng->nullValue();
00188     QScriptValue ret = qScriptValueFromValue(eng, parent);
00189     QScriptValue proto;
00190     switch (parent->type()) {
00191     case 2:
00192         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsPathItem*>());
00193         break;
00194     case 3:
00195         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsRectItem*>());
00196         break;
00197     case 4:
00198         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsEllipseItem*>());
00199         break;
00200     case 5:
00201         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsPolygonItem*>());
00202         break;
00203     case 6:
00204         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsLineItem*>());
00205         break;
00206     case 7:
00207         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsPixmapItem*>());
00208         break;
00209     case 8:
00210         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsTextItem*>());
00211         break;
00212     case 9:
00213         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsSimpleTextItem*>());
00214         break;
00215     case 10:
00216         proto = eng->defaultPrototype(qMetaTypeId<QGraphicsItemGroup*>());
00217         break;
00218     }
00219     if (proto.isValid())
00220         ret.setPrototype(proto);
00221     return ret;
00222 } END_DECLARE_METHOD
00223 
00224 BEGIN_DECLARE_METHOD(QGraphicsItem, setAcceptedMouseButtons) {
00225     self->setAcceptedMouseButtons(static_cast<Qt::MouseButtons>(ctx->argument(0).toInt32()));
00226     return eng->undefinedValue();
00227 } END_DECLARE_METHOD
00228 
00229 BEGIN_DECLARE_METHOD(QGraphicsItem, setData) {
00230     self->setData(ctx->argument(0).toInt32(), ctx->argument(1).toVariant());
00231     return eng->undefinedValue();
00232 } END_DECLARE_METHOD
00233 
00234 BEGIN_DECLARE_METHOD(QGraphicsItem, setFlag) {
00235     QGraphicsItem::GraphicsItemFlag flag = static_cast<QGraphicsItem::GraphicsItemFlag>(ctx->argument(0).toInt32());
00236     if (ctx->argument(1).isUndefined())
00237         self->setFlag(flag);
00238     else
00239         self->setFlag(flag, ctx->argument(1).toBoolean());
00240     return eng->undefinedValue();
00241 } END_DECLARE_METHOD
00242 
00243 BEGIN_DECLARE_METHOD(QGraphicsItem, setFlags) {
00244     self->setFlags(static_cast<QGraphicsItem::GraphicsItemFlags>(ctx->argument(0).toInt32()));
00245     return eng->undefinedValue();
00246 } END_DECLARE_METHOD
00247 
00248 BEGIN_DECLARE_METHOD(QGraphicsItem, setFocus) {
00249     if (ctx->argument(0).isUndefined())
00250         self->setFocus();
00251     else
00252         self->setFocus(static_cast<Qt::FocusReason>(ctx->argument(0).toInt32()));
00253     return eng->undefinedValue();
00254 } END_DECLARE_METHOD
00255 
00256 BEGIN_DECLARE_METHOD(QGraphicsItem, setParentItem) {
00257     QScriptValue arg = ctx->argument(0);
00258     QGraphicsItem *item = qscriptvalue_cast<QGraphicsItem*>(arg);
00259     self->setParentItem(item);
00260     if (item)
00261         QScript::maybeReleaseOwnership(ctx->thisObject());
00262     else if (!self->scene())
00263         QScript::maybeTakeOwnership(ctx->thisObject());
00264     return eng->undefinedValue();
00265 } END_DECLARE_METHOD
00266 
00267 BEGIN_DECLARE_METHOD(QGraphicsItem, setPos) {
00268     if (ctx->argumentCount() > 1)
00269         self->setPos(ctx->argument(0).toNumber(), ctx->argument(1).toNumber());
00270     else
00271         self->setPos(qscriptvalue_cast<QPointF>(ctx->argument(0)));
00272     return eng->undefinedValue();
00273 } END_DECLARE_METHOD
00274 
00275 BEGIN_DECLARE_METHOD(QGraphicsItem, update) {
00276     if (ctx->argumentCount() > 1) {
00277         self->update(ctx->argument(0).toNumber(),
00278                      ctx->argument(1).toNumber(),
00279                      ctx->argument(2).toNumber(),
00280                      ctx->argument(3).toNumber());
00281     } else {
00282         self->update(qscriptvalue_cast<QRectF>(ctx->argument(0)));
00283     }
00284     return eng->undefinedValue();
00285 } END_DECLARE_METHOD
00286 
00287 BEGIN_DECLARE_METHOD(QGraphicsItem, toString) {
00288     return QScriptValue(eng, "QGraphicsItem");
00289 } END_DECLARE_METHOD
00290 
00292 
00293 class PrototypeGraphicsItem : public QGraphicsItem
00294 {
00295 public:
00296     PrototypeGraphicsItem()
00297     { }
00298     QRectF boundingRect() const
00299     { return QRectF(); }
00300     void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *)
00301     { }
00302 };
00303 
00304 QScriptValue constructGraphicsItemClass(QScriptEngine *eng)
00305 {
00306     QScriptValue proto = QScript::wrapGVPointer<QGraphicsItem>(eng, new PrototypeGraphicsItem());
00307     ADD_GET_SET_METHODS(proto, acceptDrops, setAcceptDrops);
00308     ADD_GET_SET_METHODS(proto, acceptsHoverEvents, setAcceptsHoverEvents);
00309     ADD_GET_METHOD(proto, boundingRect);
00310     ADD_GET_METHOD(proto, children);
00311     ADD_GET_METHOD(proto, childrenBoundingRect);
00312 #ifndef QT_NO_CURSOR
00313     ADD_GET_SET_METHODS(proto, cursor, setCursor);
00314     ADD_GET_METHOD(proto, hasCursor);
00315 #endif
00316     ADD_GET_SET_METHODS(proto, group, setGroup);
00317     ADD_GET_SET_METHODS(proto, handlesChildEvents, setHandlesChildEvents);
00318     ADD_GET_METHOD(proto, hasFocus);
00319     ADD_GET_SET_METHODS(proto, isEnabled, setEnabled);
00320     ADD_GET_SET_METHODS(proto, isSelected, setSelected);
00321     ADD_GET_SET_METHODS(proto, isVisible, setVisible);
00322     ADD_GET_METHOD(proto, opaqueArea);
00323     ADD_GET_METHOD(proto, pos);
00324     ADD_GET_METHOD(proto, scene);
00325     ADD_GET_METHOD(proto, sceneBoundingRect);
00326     ADD_GET_METHOD(proto, scenePos);
00327     ADD_GET_METHOD(proto, sceneTransform);
00328     ADD_GET_METHOD(proto, shape);
00329 #ifndef QT_NO_TOOLTIP
00330     ADD_GET_SET_METHODS(proto, toolTip, setToolTip);
00331 #endif
00332     ADD_GET_METHOD(proto, topLevelItem);
00333     ADD_GET_SET_METHODS(proto, transform, setTransform);
00334     ADD_GET_METHOD(proto, type);
00335     ADD_GET_METHOD(proto, x);
00336     ADD_GET_METHOD(proto, y);
00337     ADD_GET_SET_METHODS(proto, zValue, setZValue);
00338 
00339     ADD_METHOD(proto, acceptedMouseButtons);
00340     ADD_METHOD(proto, advance);
00341     ADD_METHOD(proto, clearFocus);
00342     ADD_METHOD(proto, collidesWithItem);
00343     ADD_METHOD(proto, collidesWithPath);
00344     ADD_METHOD(proto, collidingItems);
00345     ADD_METHOD(proto, contains);
00346     ADD_METHOD(proto, data);
00347     ADD_METHOD(proto, ensureVisible);
00348     ADD_METHOD(proto, flags);
00349     ADD_METHOD(proto, hide);
00350     ADD_METHOD(proto, installSceneEventFilter);
00351     ADD_METHOD(proto, isAncestorOf);
00352     ADD_METHOD(proto, isObscured);
00353     ADD_METHOD(proto, isObscuredBy);
00354     ADD_METHOD(proto, mapFromItem);
00355     ADD_METHOD(proto, mapFromParent);
00356     ADD_METHOD(proto, mapFromScene);
00357     ADD_METHOD(proto, mapToItem);
00358     ADD_METHOD(proto, mapToParent);
00359     ADD_METHOD(proto, mapToScene);
00360     ADD_METHOD(proto, moveBy);
00361     ADD_METHOD(proto, paint);
00362     ADD_METHOD(proto, parentItem);
00363     ADD_METHOD(proto, removeSceneEventFilter);
00364     ADD_METHOD(proto, resetTransform);
00365     ADD_METHOD(proto, rotate);
00366     ADD_METHOD(proto, scale);
00367     ADD_METHOD(proto, setAcceptedMouseButtons);
00368     ADD_METHOD(proto, setData);
00369     ADD_METHOD(proto, setFlag);
00370     ADD_METHOD(proto, setFlags);
00371     ADD_METHOD(proto, setFocus);
00372     ADD_METHOD(proto, setParentItem);
00373     ADD_METHOD(proto, setPos);
00374     ADD_METHOD(proto, shear);
00375     ADD_METHOD(proto, show);
00376     ADD_METHOD(proto, toString);
00377     ADD_METHOD(proto, translate);
00378 #ifndef QT_NO_CURSOR
00379     ADD_METHOD(proto, unsetCursor);
00380 #endif
00381     ADD_METHOD(proto, update);
00382 
00383     QScript::registerPointerMetaType<QGraphicsItem>(eng, proto);
00384 
00385     QScriptValue ctorFun = eng->newFunction(ctor, proto);
00386     ADD_ENUM_VALUE(ctorFun, QGraphicsItem, ItemIsMovable);
00387     ADD_ENUM_VALUE(ctorFun, QGraphicsItem, ItemIsSelectable);
00388     ADD_ENUM_VALUE(ctorFun, QGraphicsItem, ItemIsFocusable);
00389     ADD_ENUM_VALUE(ctorFun, QGraphicsItem, ItemClipsToShape);
00390     ADD_ENUM_VALUE(ctorFun, QGraphicsItem, ItemClipsChildrenToShape);
00391     ADD_ENUM_VALUE(ctorFun, QGraphicsItem, ItemIgnoresTransformations);
00392 
00393     return ctorFun;
00394 }

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

API Reference

Skip menu "API Reference"
  • KWin
  •   KWin Libraries
  • Libraries
  •   libkworkspace
  •   libplasma
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal