📄 q3canvas.h
字号:
private: Q_DISABLE_COPY(Q3CanvasPixmap) void init(const QImage&); void init(const QPixmap& pixmap, int hx, int hy); friend class Q3CanvasSprite; friend class Q3CanvasPixmapArray; friend bool qt_testCollision(const Q3CanvasSprite* s1, const Q3CanvasSprite* s2); int hotx,hoty; QImage* collision_mask;};class Q_COMPAT_EXPORT Q3CanvasPixmapArray{public: Q3CanvasPixmapArray();#ifndef QT_NO_IMAGEIO Q3CanvasPixmapArray(const QString& datafilenamepattern, int framecount=0);#endif // this form is deprecated Q3CanvasPixmapArray(Q3PtrList<QPixmap>, Q3PtrList<QPoint> hotspots); Q3CanvasPixmapArray(Q3ValueList<QPixmap>, Q3PointArray hotspots = Q3PointArray()); ~Q3CanvasPixmapArray();#ifndef QT_NO_IMAGEIO bool readPixmaps(const QString& datafilenamepattern, int framecount=0); bool readCollisionMasks(const QString& filenamepattern);#endif // deprecated bool operator!(); // Failure check. bool isValid() const; Q3CanvasPixmap* image(int i) const { return img ? img[i] : 0; } void setImage(int i, Q3CanvasPixmap* p); uint count() const { return (uint)framecount; }private: Q_DISABLE_COPY(Q3CanvasPixmapArray)#ifndef QT_NO_IMAGEIO bool readPixmaps(const QString& datafilenamepattern, int framecount, bool maskonly);#endif void reset(); int framecount; Q3CanvasPixmap** img;};class Q_COMPAT_EXPORT Q3CanvasSprite : public Q3CanvasItem{public: Q3CanvasSprite(Q3CanvasPixmapArray* array, Q3Canvas* canvas); void setSequence(Q3CanvasPixmapArray* seq); virtual ~Q3CanvasSprite(); void move(double x, double y); virtual void move(double x, double y, int frame); void setFrame(int); enum FrameAnimationType { Cycle, Oscillate }; virtual void setFrameAnimation(FrameAnimationType=Cycle, int step=1, int state=0); int frame() const { return frm; } int frameCount() const { return images->count(); } int rtti() const; static int RTTI; bool collidesWith(const Q3CanvasItem*) const; QRect boundingRect() const; // is there a reason for these to be protected? Lars//protected: int width() const; int height() const; int leftEdge() const; int topEdge() const; int rightEdge() const; int bottomEdge() const; int leftEdge(int nx) const; int topEdge(int ny) const; int rightEdge(int nx) const; int bottomEdge(int ny) const; Q3CanvasPixmap* image() const { return images->image(frm); } virtual Q3CanvasPixmap* imageAdvanced() const; Q3CanvasPixmap* image(int f) const { return images->image(f); } virtual void advance(int stage);public: void draw(QPainter& painter);private: Q_DISABLE_COPY(Q3CanvasSprite) void addToChunks(); void removeFromChunks(); void changeChunks(); int frm; ushort anim_val; uint anim_state:2; uint anim_type:14; bool collidesWith(const Q3CanvasSprite*, const Q3CanvasPolygonalItem*, const Q3CanvasRectangle*, const Q3CanvasEllipse*, const Q3CanvasText*) const; friend bool qt_testCollision(const Q3CanvasSprite* s1, const Q3CanvasSprite* s2); Q3CanvasPixmapArray* images;};class QPolygonalProcessor;class Q_COMPAT_EXPORT Q3CanvasPolygonalItem : public Q3CanvasItem{public: Q3CanvasPolygonalItem(Q3Canvas* canvas); virtual ~Q3CanvasPolygonalItem(); bool collidesWith(const Q3CanvasItem*) const; virtual void setPen(QPen p); virtual void setBrush(QBrush b); QPen pen() const { return pn; } QBrush brush() const { return br; } virtual Q3PointArray areaPoints() const=0; virtual Q3PointArray areaPointsAdvanced() const; QRect boundingRect() const; int rtti() const; static int RTTI;protected: void draw(QPainter &); virtual void drawShape(QPainter &) = 0; bool winding() const; void setWinding(bool); void invalidate(); bool isValid() const { return (bool)val; }private: void scanPolygon(const Q3PointArray& pa, int winding, QPolygonalProcessor& process) const; Q3PointArray chunks() const; bool collidesWith(const Q3CanvasSprite*, const Q3CanvasPolygonalItem*, const Q3CanvasRectangle*, const Q3CanvasEllipse*, const Q3CanvasText*) const; QBrush br; QPen pn; uint wind:1;};class Q_COMPAT_EXPORT Q3CanvasRectangle : public Q3CanvasPolygonalItem{public: Q3CanvasRectangle(Q3Canvas* canvas); Q3CanvasRectangle(const QRect&, Q3Canvas* canvas); Q3CanvasRectangle(int x, int y, int width, int height, Q3Canvas* canvas); ~Q3CanvasRectangle(); int width() const; int height() const; void setSize(int w, int h); QSize size() const { return QSize(w,h); } Q3PointArray areaPoints() const; QRect rect() const { return QRect(int(x()),int(y()),w,h); } bool collidesWith(const Q3CanvasItem*) const; int rtti() const; static int RTTI;protected: void drawShape(QPainter &); Q3PointArray chunks() const;private: bool collidesWith( const Q3CanvasSprite*, const Q3CanvasPolygonalItem*, const Q3CanvasRectangle*, const Q3CanvasEllipse*, const Q3CanvasText*) const; int w, h;};class Q_COMPAT_EXPORT Q3CanvasPolygon : public Q3CanvasPolygonalItem{public: Q3CanvasPolygon(Q3Canvas* canvas); ~Q3CanvasPolygon(); void setPoints(Q3PointArray); Q3PointArray points() const; void moveBy(double dx, double dy); Q3PointArray areaPoints() const; int rtti() const; static int RTTI;protected: void drawShape(QPainter &); Q3PointArray poly;};class Q_COMPAT_EXPORT Q3CanvasSpline : public Q3CanvasPolygon{public: Q3CanvasSpline(Q3Canvas* canvas); ~Q3CanvasSpline(); void setControlPoints(Q3PointArray, bool closed=true); Q3PointArray controlPoints() const; bool closed() const; int rtti() const; static int RTTI;private: void recalcPoly(); Q3PointArray bez; bool cl;};class Q_COMPAT_EXPORT Q3CanvasLine : public Q3CanvasPolygonalItem{public: Q3CanvasLine(Q3Canvas* canvas); ~Q3CanvasLine(); void setPoints(int x1, int y1, int x2, int y2); QPoint startPoint() const { return QPoint(x1,y1); } QPoint endPoint() const { return QPoint(x2,y2); } int rtti() const; static int RTTI; void setPen(QPen p); void moveBy(double dx, double dy);protected: void drawShape(QPainter &); Q3PointArray areaPoints() const;private: int x1,y1,x2,y2;};class Q_COMPAT_EXPORT Q3CanvasEllipse : public Q3CanvasPolygonalItem{public: Q3CanvasEllipse(Q3Canvas* canvas); Q3CanvasEllipse(int width, int height, Q3Canvas* canvas); Q3CanvasEllipse(int width, int height, int startangle, int angle, Q3Canvas* canvas); ~Q3CanvasEllipse(); int width() const; int height() const; void setSize(int w, int h); void setAngles(int start, int length); int angleStart() const { return a1; } int angleLength() const { return a2; } Q3PointArray areaPoints() const; bool collidesWith(const Q3CanvasItem*) const; int rtti() const; static int RTTI;protected: void drawShape(QPainter &);private: bool collidesWith(const Q3CanvasSprite*, const Q3CanvasPolygonalItem*, const Q3CanvasRectangle*, const Q3CanvasEllipse*, const Q3CanvasText*) const; int w, h; int a1, a2;};class Q3CanvasTextExtra;class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem{public: Q3CanvasText(Q3Canvas* canvas); Q3CanvasText(const QString&, Q3Canvas* canvas); Q3CanvasText(const QString&, QFont, Q3Canvas* canvas); virtual ~Q3CanvasText(); void setText(const QString&); void setFont(const QFont&); void setColor(const QColor&); QString text() const; QFont font() const; QColor color() const; void moveBy(double dx, double dy); int textFlags() const { return flags; } void setTextFlags(int); QRect boundingRect() const; bool collidesWith(const Q3CanvasItem*) const; int rtti() const; static int RTTI;protected: virtual void draw(QPainter&);private: Q_DISABLE_COPY(Q3CanvasText) void addToChunks(); void removeFromChunks(); void changeChunks(); void setRect(); QRect brect; QString txt; int flags; QFont fnt; QColor col; Q3CanvasTextExtra* extra; bool collidesWith(const Q3CanvasSprite*, const Q3CanvasPolygonalItem*, const Q3CanvasRectangle*, const Q3CanvasEllipse*, const Q3CanvasText*) const;};QT_END_HEADER#endif // Q3CANVAS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -