📄 qcanvas-h.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/include/qcanvas.h:1 --><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>qcanvas.h Include File</title><style type="text/css"><!--h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }a:link { color: #004faf; text-decoration: none }a:visited { color: #672967; text-decoration: none }body { background: #ffffff; color: black; }--></style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr bgcolor="#E5E5E5"><td valign=center> <a href="index.html"><font color="#004faf">Home</font></a> | <a href="classes.html"><font color="#004faf">All Classes</font></a> | <a href="mainclasses.html"><font color="#004faf">Main Classes</font></a> | <a href="annotated.html"><font color="#004faf">Annotated</font></a> | <a href="groups.html"><font color="#004faf">Grouped Classes</font></a> | <a href="functions.html"><font color="#004faf">Functions</font></a></td><td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>qcanvas.h</h1><p>This is the verbatim text of the qcanvas.h include file. It is provided only for illustration; the copyright remains with Trolltech.<hr><pre>/************************************************************************ $Id: qt/qcanvas.h 3.0.5 edited Jan 30 17:06 $**** 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 "qscrollview.h"#include "qpixmap.h"#include "qptrlist.h"#include "qptrdict.h"#include "qbrush.h"#include "qpen.h"#include "qvaluelist.h"#include "qpointarray.h"#endif // QT_H#if !defined( QT_MODULE_CANVAS ) || defined( QT_LICENSE_PROFESSIONAL ) || defined( QT_INTERNAL_CANVAS )#define QM_EXPORT_CANVAS#else#define QM_EXPORT_CANVAS Q_EXPORT#endif#ifndef QT_NO_CANVASclass QCanvasSprite;class QCanvasPolygonalItem;class QCanvasRectangle;class QCanvasPolygon;class QCanvasEllipse;class QCanvasText;class QCanvasLine;class QCanvasChunk;class QCanvas;class QCanvasItem;class QCanvasView;class QCanvasPixmap;#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINtemplate class QM_EXPORT_CANVAS QPtrList< QCanvasItem >;template class QM_EXPORT_CANVAS QPtrList< QCanvasView >;template class QM_EXPORT_CANVAS QValueList< QCanvasItem* >;// MOC_SKIP_END#endifclass QM_EXPORT_CANVAS QCanvasItemList : public QValueList<QCanvasItem*> {public: void sort(); void drawUnique( QPainter& painter );};class QCanvasItemExtra;class QM_EXPORT_CANVAS 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 isVisible() const { return (bool)vis; } virtual void setSelected(bool yes); bool isSelected() const { return (bool)sel; } virtual void setEnabled(bool yes); bool isEnabled() const { return (bool)ena; } virtual void setActive(bool yes); bool isActive() const { return (bool)act; }#ifndef QT_NO_COMPAT bool visible() const { return (bool)vis; } bool selected() const { return (bool)sel; } bool enabled() const { return (bool)ena; } bool active() const { return (bool)act; }#endif enum RttiValues { Rtti_Item = 0, Rtti_Sprite = 1, Rtti_PolygonalItem = 2, Rtti_Text = 3, Rtti_Polygon = 4, Rtti_Rectangle = 5, Rtti_Ellipse = 6, Rtti_Line = 7, Rtti_Spline = 8 }; virtual int rtti() const; static int RTTI; virtual QRect boundingRect() const=0; virtual QRect boundingRectAdvanced() const; QCanvas* canvas() const { return cnv; }protected: void update() { changeChunks(); }private: // For friendly subclasses... 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 QCanvasData;class QM_EXPORT_CANVAS 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); } QRect rect() const { return QRect( 0, 0, 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& area); virtual void setUnchanged(const QRect& area); // 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; void drawArea(const QRect&, QPainter* p, bool double_buffer=FALSE); // These are for QCanvasView to call virtual void addView(QCanvasView*); virtual void removeView(QCanvasView*); void drawCanvasArea(const QRect&, QPainter* p=0, bool double_buffer=TRUE);#ifndef QT_NO_TRANSFORMATIONS void drawViewArea( QCanvasView* view, QPainter* p, const QRect& r, bool dbuf );#endif // 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; QRect changeBounds(const QRect& inarea); void drawChanges(const QRect& inarea); void ensureOffScrSize( int osw, int osh ); 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 QCanvasViewData;class QM_EXPORT_CANVAS QCanvasView : public QScrollView{ Q_OBJECTpublic: QCanvasView(QWidget* parent=0, const char* name=0, WFlags f=0); QCanvasView(QCanvas* viewing, QWidget* parent=0, const char* name=0, WFlags f=0); ~QCanvasView(); QCanvas* canvas() const { return viewing; } void setCanvas(QCanvas* v); const QWMatrix &worldMatrix() const; const QWMatrix &inverseWorldMatrix() const; bool setWorldMatrix( const QWMatrix & );protected: void drawContents( QPainter*, int cx, int cy, int cw, int ch ); QSize sizeHint() const;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -