⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qcanvas.h

📁 著名的A780系列,E680系列的SDK开发包
💻 H
📖 第 1 页 / 共 2 页
字号:
/************************************************************************ $Id: qt/src/canvas/qcanvas.h   2.3.6   edited 2001-01-26 $**** Definition of QCanvas classes**** Created : 991211**** Copyright (C) 1999-2000 Trolltech AS.  All rights reserved.**** This file is part of the canvas module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition licenses may use this** file in accordance with the Qt Commercial License Agreement provided** with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QCANVAS_H#define QCANVAS_H#ifndef QT_H#include <qbitmap.h>#include <qwidget.h>#include <qscrollview.h>#include <qlist.h>#include <qptrdict.h>#endif // QT_H#ifndef QT_NO_CANVASclass QCanvasSprite;class QCanvasPolygonalItem;class QCanvasRectangle;class QCanvasPolygon;class QCanvasEllipse;class QCanvasText;class QCanvasLine;class QCanvasChunk;class QCanvas;class QCanvasData;class QCanvasItem;class QCanvasView;class QCanvasPixmap;#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINtemplate class Q_EXPORT QList< QCanvasItem >;template class Q_EXPORT QList< QCanvasView >;template class Q_EXPORT QValueList< QCanvasItem* >;// MOC_SKIP_END#endifclass QCanvasItemList : public QValueList<QCanvasItem*> {public:    void sort();    void drawUnique( QPainter& painter );};class QCanvasItemExtra;class Q_EXPORT QCanvasItem : public Qt{public:    QCanvasItem(QCanvas* canvas);    virtual ~QCanvasItem();    double x() const	{ return myx; }    double y() const	{ return myy; }    double z() const	{ return myz; } // (depth)    virtual void moveBy(double dx, double dy);    void move(double x, double y);    void setX(double a) { move(a,y()); }    void setY(double a) { move(x(),a); }    void setZ(double a) { myz=a; changeChunks(); }    bool animated() const;    virtual void setAnimated(bool y);    virtual void setVelocity( double vx, double vy);    void setXVelocity( double vx ) { setVelocity(vx,yVelocity()); }    void setYVelocity( double vy ) { setVelocity(xVelocity(),vy); }    double xVelocity() const;    double yVelocity() const;    virtual void advance(int stage);    virtual bool collidesWith( const QCanvasItem* ) const=0;    QCanvasItemList collisions(bool exact /* NO DEFAULT */ ) const;    virtual void setCanvas(QCanvas*);    virtual void draw(QPainter&)=0;    void show();    void hide();    virtual void setVisible(bool yes);    bool visible() const	{ return (bool)vis; }    virtual void setSelected(bool yes);    bool selected() const	{ return (bool)sel; }    virtual void setEnabled(bool yes);    bool enabled() const	{ return (bool)ena; }    virtual void setActive(bool yes);    bool active() const	{ return (bool)act; }    virtual int rtti() const;    virtual QRect boundingRect() const=0;    virtual QRect boundingRectAdvanced() const;    QCanvas* canvas() const	{ return cnv; }private:    // For friendly sublasses...    friend class QCanvasPolygonalItem;    friend class QCanvasSprite;    friend class QCanvasRectangle;    friend class QCanvasPolygon;    friend class QCanvasEllipse;    friend class QCanvasText;    friend class QCanvasLine;    virtual QPointArray chunks() const;    virtual void addToChunks();    virtual void removeFromChunks();    virtual void changeChunks();    virtual bool collidesWith(   const QCanvasSprite*,				 const QCanvasPolygonalItem*,				 const QCanvasRectangle*,				 const QCanvasEllipse*,				 const QCanvasText* ) const=0;    // End of friend stuff    QCanvas* cnv;    static QCanvas* current_canvas;    double myx,myy,myz;    QCanvasItemExtra *ext;    QCanvasItemExtra& extra();    uint ani:1;    uint vis:1;    uint sel:1;    uint ena:1;    uint act:1;};class Q_EXPORT QCanvas : public QObject{    Q_OBJECTpublic:    QCanvas( QObject* parent = 0, const char* name = 0 );    QCanvas(int w, int h);    QCanvas( QPixmap p, int h, int v, int tilewidth, int tileheight );    virtual ~QCanvas();    virtual void setTiles( QPixmap tiles, int h, int v,			   int tilewidth, int tileheight );    virtual void setBackgroundPixmap( const QPixmap& p );    QPixmap backgroundPixmap() const;    virtual void setBackgroundColor( const QColor& c );    QColor backgroundColor() const;    virtual void setTile( int x, int y, int tilenum );    int tile( int x, int y ) const	{ return grid[x+y*htiles]; }    int tilesHorizontally() const	{ return htiles; }    int tilesVertically() const	{ return vtiles; }    int tileWidth() const	{ return tilew; }    int tileHeight() const	{ return tileh; }    virtual void resize(int width, int height);    int width() const	{ return awidth; }    int height() const	{ return aheight; }    QSize size() const	{ return QSize(awidth,aheight); }    bool onCanvas( int x, int y ) const	{ return x>=0 && y>=0 && x<awidth && y<aheight; }    bool onCanvas( const QPoint& p ) const	{ return onCanvas(p.x(),p.y()); }    bool validChunk( int x, int y ) const	{ return x>=0 && y>=0 && x<chwidth && y<chheight; }    bool validChunk( const QPoint& p ) const	{ return validChunk(p.x(),p.y()); }    int chunkSize() const	{ return chunksize; }    virtual void retune(int chunksize, int maxclusters=100);    bool sameChunk(int x1, int y1, int x2, int y2) const	{ return x1/chunksize==x2/chunksize && y1/chunksize==y2/chunksize; }    virtual void setChangedChunk(int i, int j);    virtual void setChangedChunkContaining(int x, int y);    virtual void setAllChanged();    virtual void setChanged(const QRect& inarea);    // These call setChangedChunk.    void addItemToChunk(QCanvasItem*, int i, int j);    void removeItemFromChunk(QCanvasItem*, int i, int j);    void addItemToChunkContaining(QCanvasItem*, int x, int y);    void removeItemFromChunkContaining(QCanvasItem*, int x, int y);    QCanvasItemList allItems();    QCanvasItemList collisions( const QPoint&) const;    QCanvasItemList collisions( const QRect&) const;    QCanvasItemList collisions( const QPointArray& pa, const QCanvasItem* item,				bool exact) const;    // These are for QCanvasView to call    virtual void addView(QCanvasView*);    virtual void removeView(QCanvasView*);    void drawArea(const QRect&, QPainter* p=0, bool double_buffer=TRUE);    // These are for QCanvasItem to call    virtual void addItem(QCanvasItem*);    virtual void addAnimation(QCanvasItem*);    virtual void removeItem(QCanvasItem*);    virtual void removeAnimation(QCanvasItem*);    virtual void setAdvancePeriod(int ms);    virtual void setUpdatePeriod(int ms);    virtual void setDoubleBuffering(bool y);signals:    void resized();public slots:    virtual void advance();    virtual void update();protected:    virtual void drawBackground(QPainter&, const QRect& area);    virtual void drawForeground(QPainter&, const QRect& area);private:    void init(int w, int h, int chunksze=16, int maxclust=100);    QCanvasChunk& chunk(int i, int j) const;    QCanvasChunk& chunkContaining(int x, int y) const;    void drawChanges(const QRect& inarea);    QPixmap offscr;    int awidth,aheight;    int chunksize;    int maxclusters;    int chwidth,chheight;    QCanvasChunk* chunks;    QCanvasData* d;    void initTiles(QPixmap p, int h, int v, int tilewidth, int tileheight);    ushort *grid;    ushort htiles;    ushort vtiles;    ushort tilew;    ushort tileh;    bool oneone;    QPixmap pm;    QTimer* update_timer;    QColor bgcolor;    bool debug_redraw_areas;    bool dblbuf;    friend void qt_unview(QCanvas* c);};class Q_EXPORT QCanvasView : public QScrollView{    Q_OBJECTpublic:    QCanvasView(QCanvas* viewing=0, QWidget* parent=0, const char* name=0, WFlags f=0);    ~QCanvasView();    QCanvas* canvas() const	{ return viewing; }    void setCanvas(QCanvas* v);protected:    void drawContents( QPainter*, int cx, int cy, int cw, int ch );    QSize sizeHint() const;private:    QCanvas* viewing;    friend void qt_unview(QCanvas* c);private slots:    void cMoving(int,int);    void updateContentsSize();};class Q_EXPORT QCanvasPixmap : public QPixmap{public:    QCanvasPixmap(const QString& datafilename);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -