// This is the SIP interface definition for TQCanvas, TQCanvasEllipse, // TQCanvasItem, TQCanvasItemList, TQCanvasLine, TQCanvasPixmap, // TQCanvasPixmapArray, TQCanvasPolygon, TQCanvasPolygonalItem, TQCanvasRectangle, // TQCanvasSpline, TQCanvasSprite, TQCanvasText and TQCanvasView. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyTQt. // // This copy of PyTQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2, or (at your option) any later // version. // // PyTQt is supplied 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 General Public License along with // PyTQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %ExportedDoc TQCanvas (TQt v2.2+) TQCanvas is fully implemented. TQCanvasEllipse (TQt v2.2+) TQCanvasEllipse is fully implemented. TQCanvasItem (TQt v2.2+) TQCanvasItem is fully implemented. TQCanvasItemList (TQt v2.2+) This class isn't implemented. Whenever a TQCanvasItemList is the return type of a function or the type of an argument, a Python list of TQCanvasItem instances is used instead. TQCanvasLine (TQt v2.2+) TQCanvasLine is fully implemented. TQCanvasPixmap (TQt v2.2+) TQCanvasPixmap is fully implemented. TQCanvasPixmapArray (TQt v2.2+) TQPixmapArray TQPtrList<TQPixmap> pixmaps TQPtrList<TQPoint> hotspots The pixmaps argument is a Python list of TQPixmap instances, and the hotspots argument is a Python list of TQPoint instances. (TQt v2.2.0 - TQt v2.3.1) TQPixmapArray TQValueList<TQPixmap> pixmaps TQPointArray hotspots = TQPointArray() The pixmaps argument is a Python list of TQPixmap instances. (TQt v3+) TQCanvasPolygon (TQt v2.2+) TQCanvasPolygon is fully implemented. TQCanvasPolygonalItem (TQt v2.2+) TQCanvasPolygonalItem is fully implemented. TQCanvasRectangle (TQt v2.2+) TQCanvasRectangle is fully implemented. TQCanvasSpline (TQt v3.0+) TQCanvasSpline is fully implemented. TQCanvasSprite (TQt v2.2+) TQCanvasSprite is fully implemented. TQCanvasText (TQt v2.2+) TQCanvasText is fully implemented. TQCanvasView (TQt v2.2+) TQCanvasView is fully implemented. %End %MappedType TQCanvasItemList { %TypeHeaderCode #include %End %ConvertFromTypeCode // Convert to a Python list of TQCanvasItem instances. int i; PyObject *l; // Create the list. if ((l = PyList_New(sipCpp -> count())) == NULL) return NULL; // Get it. i = 0; for (TQCanvasItemList::Iterator it = sipCpp -> begin(); it != sipCpp -> end(); ++it) { PyObject *ci; if ((ci = sipConvertFromInstance(*it,sipClass_TQCanvasItem,sipTransferObj)) == NULL || PyList_SetItem(l,i,ci) < 0) { Py_XDECREF(ci); Py_DECREF(l); return NULL; } ++i; } return l; %End %ConvertToTypeCode // At the moment this will never be called, so provide a null // implementation. if (sipIsErr == NULL) return PyList_Check(sipPy); PyErr_Format(PyExc_TypeError,"Converting to TQCanvasItemList not yet implemented"); *sipIsErr = 1; return 0; %End }; class TQCanvasItem : TQt { %TypeHeaderCode #include %End public: TQCanvasItem(TQCanvas * /TransferThis/); %ConvertToSubClassCode Py_BEGIN_ALLOW_THREADS // Use the numeric type values for compatibility with TQt v2. switch (sipCpp -> rtti()) { case 1: sipClass = sipClass_TQCanvasSprite; break; case 2: sipClass = sipClass_TQCanvasPolygonalItem; break; case 3: sipClass = sipClass_TQCanvasText; break; case 4: sipClass = sipClass_TQCanvasPolygon; break; case 5: sipClass = sipClass_TQCanvasRectangle; break; case 6: sipClass = sipClass_TQCanvasEllipse; break; case 7: sipClass = sipClass_TQCanvasLine; break; case 8: sipClass = sipClass_TQCanvasSpline; break; default: sipClass = 0; } Py_END_ALLOW_THREADS %End double x() const; double y() const; double z() const; virtual void moveBy(double,double); void move(double,double); void setX(double); void setY(double); void setZ(double); bool animated() const; virtual void setAnimated(bool); virtual void setVelocity(double,double); void setXVelocity(double); void setYVelocity(double); double xVelocity() const; double yVelocity() const; virtual void advance(int); virtual bool collidesWith(const TQCanvasItem *) const = 0; TQCanvasItemList collisions(bool) const; virtual void setCanvas(TQCanvas * /GetWrapper/); %MethodCode if (sipCpp -> canvas() != a0) { if (a0) sipTransferTo(sipSelf,a0Wrapper); else sipTransferBack(sipSelf); } Py_BEGIN_ALLOW_THREADS sipSelfWasArg ? sipCpp->TQCanvasItem::setCanvas(a0) : sipCpp->setCanvas(a0); Py_END_ALLOW_THREADS %End virtual void draw(TQPainter &) = 0; void show(); void hide(); virtual void setVisible(bool); bool isVisible() const; virtual void setSelected(bool); bool isSelected() const; virtual void setEnabled(bool); bool isEnabled() const; virtual void setActive(bool); bool isActive() const; enum RttiValues { Rtti_Item, Rtti_Sprite, Rtti_PolygonalItem, Rtti_Text, Rtti_Polygon, Rtti_Rectangle, Rtti_Ellipse, Rtti_Line, Rtti_Spline }; virtual int rtti() const; virtual TQRect boundingRect() const = 0; virtual TQRect boundingRectAdvanced() const; TQCanvas *canvas() const; protected: void update(); private: virtual bool collidesWith(const TQCanvasSprite *, const TQCanvasPolygonalItem *, const TQCanvasRectangle *, const TQCanvasEllipse *, const TQCanvasText *) const = 0; }; class TQCanvas : TQObject { %TypeHeaderCode #include %End public: TQCanvas(TQObject * /TransferThis/ = 0,const char * = 0); TQCanvas(int,int); TQCanvas(TQPixmap,int,int,int,int); %ConvertToSubClassCode static struct class_graph { const char *name; sipWrapperType **type; int yes, no; } graph[] = { {sipName_TQCanvasView, &sipClass_TQCanvasView, -1, 1}, {sipName_TQCanvas, &sipClass_TQCanvas, -1, -1}, }; int i = 0; sipClass = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipClass = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End virtual void setTiles(TQPixmap,int,int,int,int); virtual void setBackgroundPixmap(const TQPixmap &); TQPixmap backgroundPixmap() const; virtual void setBackgroundColor(const TQColor &); TQColor backgroundColor() const; virtual void setTile(int,int,int); int tile(int,int) const; int tilesHorizontally() const; int tilesVertically() const; int tileWidth() const; int tileHeight() const; virtual void resize(int,int); int width() const; int height() const; TQSize size() const; TQRect rect() const; bool onCanvas(int,int) const; bool onCanvas(const TQPoint &) const; bool validChunk(int,int) const; bool validChunk(const TQPoint &) const; int chunkSize() const; virtual void retune(int,int = 100); // These next three are marked as internal in the TQt v2.x // documentation. // bool sameChunk() const; // virtual void setChangedChunk(int,int); // virtual void setChangedChunkContaining(int,int); virtual void setAllChanged(); virtual void setChanged(const TQRect &); virtual void setUnchanged(const TQRect &); TQCanvasItemList allItems(); TQCanvasItemList collisions(const TQPoint &) const; TQCanvasItemList collisions(const TQRect &) const; TQCanvasItemList collisions(const TQPointArray &,const TQCanvasItem *, bool) const; void drawArea(const TQRect &,TQPainter *,bool = 0); virtual void setAdvancePeriod(int); virtual void setUpdatePeriod(int); virtual void setDoubleBuffering(bool); signals: void resized(); public slots: virtual void advance(); virtual void update(); protected: virtual void drawBackground(TQPainter &,const TQRect &); virtual void drawForeground(TQPainter &,const TQRect &); private: TQCanvas(const TQCanvas &); }; class TQCanvasView : TQScrollView { %TypeHeaderCode #include %End public: TQCanvasView(TQWidget * /TransferThis/ = 0,const char * = 0,WFlags = 0); TQCanvasView(TQCanvas *,TQWidget * /TransferThis/ = 0,const char * = 0, WFlags = 0); TQCanvas* canvas() const; void setCanvas(TQCanvas *); const TQWMatrix &worldMatrix() const; const TQWMatrix &inverseWorldMatrix() const; bool setWorldMatrix(const TQWMatrix &); protected: void drawContents(TQPainter *,int,int,int,int); TQSize sizeHint() const; private: TQCanvasView(const TQCanvasView &); }; class TQCanvasPixmap : TQPixmap { %TypeHeaderCode #include %End public: TQCanvasPixmap(const TQString &); TQCanvasPixmap(const TQImage &); TQCanvasPixmap(const TQPixmap &,const TQPoint &); int offsetX() const; int offsetY() const; void setOffset(int,int); private: TQCanvasPixmap(const TQCanvasPixmap &); }; class TQCanvasPixmapArray { %TypeHeaderCode #include %End public: TQCanvasPixmapArray(); TQCanvasPixmapArray(const TQString &,int = 0); TQCanvasPixmapArray(TQValueList,TQPointArray = TQPointArray()); bool readPixmaps(const TQString &,int = 0) /ReleaseGIL/; bool readCollisionMasks(const TQString &) /ReleaseGIL/; bool isValid() const; TQCanvasPixmap *image(int) const; void setImage(int,TQCanvasPixmap * /Transfer/); uint count() const; private: TQCanvasPixmapArray(const TQCanvasPixmapArray &); }; class TQCanvasSprite : TQCanvasItem { %TypeHeaderCode #include %End public: TQCanvasSprite(TQCanvasPixmapArray *,TQCanvas * /TransferThis/); void setSequence(TQCanvasPixmapArray *); void move(double,double); virtual void move(double,double,int); void setFrame(int); enum FrameAnimationType { Cycle, Oscillate }; virtual void setFrameAnimation(FrameAnimationType = Cycle,int = 1, int = 0); int frame() const; int frameCount() const; int rtti() const; bool collidesWith(const TQCanvasItem *) const; TQRect boundingRect() const; int width() const; int height() const; int leftEdge() const; int topEdge() const; int rightEdge() const; int bottomEdge() const; int leftEdge(int) const; int topEdge(int) const; int rightEdge(int) const; int bottomEdge(int) const; TQCanvasPixmap *image() const; virtual TQCanvasPixmap *imageAdvanced() const; TQCanvasPixmap *image(int) const; // This is really virtual, but we want to use the super-class's virtual // handler. Having to do this is really a SIP bug. void advance(int); void draw(TQPainter &); private: TQCanvasSprite(const TQCanvasSprite &); }; class TQCanvasPolygonalItem : TQCanvasItem { %TypeHeaderCode #include %End public: TQCanvasPolygonalItem(TQCanvas * /TransferThis/); bool collidesWith(const TQCanvasItem *) const; virtual void setPen(TQPen); virtual void setBrush(TQBrush); TQPen pen() const; TQBrush brush() const; virtual TQPointArray areaPoints() const = 0; virtual TQPointArray areaPointsAdvanced() const; TQRect boundingRect() const; int rtti() const; protected: void draw(TQPainter &); virtual void drawShape(TQPainter &) = 0; bool winding() const; void setWinding(bool); void invalidate(); bool isValid() const; }; class TQCanvasRectangle : TQCanvasPolygonalItem { %TypeHeaderCode #include %End public: TQCanvasRectangle(TQCanvas * /TransferThis/); TQCanvasRectangle(const TQRect &,TQCanvas * /TransferThis/); TQCanvasRectangle(int,int,int,int,TQCanvas * /TransferThis/); int width() const; int height() const; void setSize(int,int); TQSize size() const; TQPointArray areaPoints() const; TQRect rect() const; bool collidesWith(const TQCanvasItem *) const; int rtti() const; protected: void drawShape(TQPainter &); TQPointArray chunks() const; }; class TQCanvasPolygon : TQCanvasPolygonalItem { %TypeHeaderCode #include %End public: TQCanvasPolygon(TQCanvas * /TransferThis/); void setPoints(TQPointArray); TQPointArray points() const; void moveBy(double,double); TQPointArray areaPoints() const; int rtti() const; protected: void drawShape(TQPainter &); }; class TQCanvasSpline : TQCanvasPolygon { %TypeHeaderCode #include %End public: TQCanvasSpline(TQCanvas * /TransferThis/); void setControlPoints(TQPointArray,bool = 1); TQPointArray controlPoints() const; bool closed() const; int rtti() const; }; class TQCanvasLine : TQCanvasPolygonalItem { %TypeHeaderCode #include %End public: TQCanvasLine(TQCanvas * /TransferThis/); void setPoints(int,int,int,int); TQPoint startPoint() const; TQPoint endPoint() const; int rtti() const; void setPen(TQPen); void moveBy(double,double); protected: void drawShape(TQPainter &); TQPointArray areaPoints() const; }; class TQCanvasEllipse : TQCanvasPolygonalItem { %TypeHeaderCode #include %End public: TQCanvasEllipse(TQCanvas * /TransferThis/); TQCanvasEllipse(int,int,TQCanvas * /TransferThis/); TQCanvasEllipse(int,int,int,int,TQCanvas * /TransferThis/); int width() const; int height() const; void setSize(int,int); void setAngles(int,int); int angleStart() const; int angleLength() const; TQPointArray areaPoints() const; bool collidesWith(const TQCanvasItem *) const; int rtti() const; protected: void drawShape(TQPainter &); }; class TQCanvasText : TQCanvasItem { %TypeHeaderCode #include %End public: TQCanvasText(TQCanvas * /TransferThis/); TQCanvasText(const TQString &,TQCanvas * /TransferThis/); TQCanvasText(const TQString &,TQFont,TQCanvas * /TransferThis/); void setText(const TQString &); void setFont(const TQFont &); void setColor(const TQColor &); TQString text() const; TQFont font() const; TQColor color() const; void moveBy(double,double); int textFlags() const; void setTextFlags(int); TQRect boundingRect() const; bool collidesWith(const TQCanvasItem *) const; int rtti() const; protected: virtual void draw(TQPainter &); private: TQCanvasText(const TQCanvasText &); };