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

📄 mark.h

📁 qgo-1.5.4-r3.tar.gz linux下一个很好玩的游戏
💻 H
字号:
/** mark.h*/#ifndef MARK_H#define MARK_H#include "defines.h"#include "setting.h"#include "imagehandler.h"#include <qcanvas.h>class Mark{public:	Mark(int x, int y);	virtual ~Mark();	virtual int rtti() const = 0;	virtual MarkType getType() const = 0;	virtual void setX(double) = 0;	virtual void setY(double) = 0;	virtual void setSize(double, double) = 0;	virtual int getSizeX() const = 0;	virtual int getSizeY() const = 0;	virtual void show() = 0;	virtual void hide() = 0;	virtual void setColor(const QColor &col) = 0;	virtual const QColor getColor() = 0;	virtual void setText(const QString&) { }	virtual short getCounter() { return -1; }	virtual void setCounter(short) { }	int posX() const { return myX; }	int posY() const { return myY; }	virtual void setSmall(bool) { }//	QCanvasRectangle *rect;protected:	int myX, myY;};class MarkSquare : public QCanvasRectangle, public Mark{public:	MarkSquare(int x, int y, int size, QCanvas *canvas, QColor col=black);	virtual ~MarkSquare() { hide(); }	virtual int rtti() const { return RTTI_MARK_SQUARE; }	virtual MarkType getType() const { return markSquare; }	virtual void setX(double x) { QCanvasRectangle::setX(x); }	virtual void setY(double y) { QCanvasRectangle::setY(y); }	virtual void setSize(double x, double y) { QCanvasRectangle::setSize((int)(x*0.55), (int)(y*0.55)); }	virtual int getSizeX() const { return QCanvasRectangle::width(); }	virtual int getSizeY() const { return QCanvasRectangle::height(); }	virtual void show() { QCanvasRectangle::show(); }	virtual void hide() { QCanvasRectangle::hide(); }	virtual void setColor(const QColor &col) { QCanvasRectangle::setPen(QPen(col, 1)); }	virtual const QColor getColor() { return QCanvasRectangle::pen().color(); }};class MarkCircle : public QCanvasEllipse, public Mark{public:	MarkCircle(int x, int y, int size, QCanvas *canvas, QColor col=black, bool s=false);	virtual ~MarkCircle() { hide(); }	virtual int rtti() const { return RTTI_MARK_CIRCLE; }	virtual MarkType getType() const { return markCircle; }	virtual void setX(double x) { QCanvasEllipse::setX(x + width()/2.0); }	virtual void setY(double y) { QCanvasEllipse::setY(y + width()/2.0); }	virtual void setSize(double x, double y);	virtual int getSizeX() const { return QCanvasEllipse::width(); }	virtual int getSizeY() const { return QCanvasEllipse::height(); }	virtual void show() { QCanvasEllipse::show(); }	virtual void hide() { QCanvasEllipse::hide(); }	virtual void setColor(const QColor &col) { QCanvasEllipse::setPen(QPen(col, 1)); }	virtual const QColor getColor() { return QCanvasEllipse::pen().color(); }	virtual void setSmall(bool s) { small = s; }	protected:	virtual void drawShape(QPainter & p);	bool small;};class MarkRedCircle : public MarkCircle // QQQ{public:	MarkRedCircle(int x, int y, int size, QCanvas *canvas, QColor col=black, bool s=false)	: MarkCircle(x,y,size,canvas,QColor(255,0,0),s) {}	virtual ~MarkRedCircle() { hide(); }};class MarkTriangle : public QCanvasPolygon, public Mark{public:	MarkTriangle(int x, int y, int size, QCanvas *canvas, QColor col=black);	virtual ~MarkTriangle() { hide(); }	virtual int rtti() const { return RTTI_MARK_TRIANGLE; }	virtual MarkType getType() const { return markTriangle; }	virtual void setX(double x) { QCanvasPolygon::setX(x); }	virtual void setY(double y) { QCanvasPolygon::setY(y + size-1); }	virtual void setSize(double, double);	virtual int getSizeX() const { return size; }	virtual int getSizeY() const { return size; }	virtual void show() { QCanvasPolygon::show(); }	virtual void hide() { QCanvasPolygon::hide(); }	virtual void setColor(const QColor &col) { QCanvasPolygon::setPen(QPen(col, 1)); }	virtual const QColor getColor() { return QCanvasPolygon::pen().color(); }	protected:	virtual void drawShape(QPainter & p);	private:	int size;};// Need to have a line with another rtti to differ this from the gatter linesclass MarkOtherLine : public QCanvasLine{public:	MarkOtherLine(QCanvas *canvas)		: QCanvasLine(canvas)	{ }	int rtti() const { return RTTI_MARK_OTHERLINE; }};class MarkCross : public QCanvasLine, public Mark{public:	MarkCross(int x, int y, int s, QCanvas *canvas, QColor col=black, bool plus=false);	virtual ~MarkCross();	virtual int rtti() const { return RTTI_MARK_CROSS; }	virtual MarkType getType() const { return markSquare; }	virtual void setX(double x) { QCanvasLine::setX(x); if (ol != NULL) ol->setX(x); }	virtual void setY(double y) { QCanvasLine::setY(y); if (ol != NULL) ol->setY(y); }	virtual void setSize(double, double);	virtual int getSizeX() const { return size; }	virtual int getSizeY() const { return size; }	virtual void show() { QCanvasLine::show(); }	virtual void hide() { QCanvasLine::hide(); }	virtual void setColor(const QColor &col);	virtual const QColor getColor() { return QCanvasLine::pen().color(); }	private:	MarkOtherLine *ol;	int size;	bool plussign;};class MarkText : public QCanvasText, public Mark{public:	MarkText(ImageHandler *ih, int x, int y, int size, const QString &txt, QCanvas *canvas, QColor col=black,		short c=-1, bool bold=false, bool overlay=true);	virtual ~MarkText();	virtual int rtti() const { return RTTI_MARK_TEXT; }	virtual MarkType getType() const { return markText; }	virtual void setX(double x) { QCanvasText::setX(x); if (rect != NULL) rect->setX(x); }	virtual void setY(double y) { QCanvasText::setY(y); if (rect != NULL) rect->setY(y); }	virtual void setSize(double, double);	virtual int getSizeX() const { return width; }	virtual int getSizeY() const { return height; }	virtual void show() { QCanvasText::show(); }	virtual void hide() { QCanvasText::hide(); }	virtual void setColor(const QColor &col) { QCanvasText::setColor(col); }	virtual const QColor getColor() { return QCanvasText::color(); }	virtual void setText(const QString &txt) { QCanvasText::setText(txt);}	virtual short getCounter() { return counter; }	virtual void setCounter(short n) { counter = n; }	static unsigned int maxLength;private:	QCanvasRectangle *rect;	int width, height;	double curSize;	short counter;	static bool useBold;};class MarkNumber : public MarkText{public:	MarkNumber(ImageHandler *ih, int x, int y, int size, short num, QCanvas *canvas, QColor col=black, bool bold=false)		: MarkText(ih, x, y, size, QString::number(num+1), canvas, col, num, bold)	{ }	virtual int rtti() const { return RTTI_MARK_NUMBER; }	virtual MarkType getType() const { return markNumber; }};class MarkTerr : public MarkCross{public: 	MarkTerr(int x, int y, int s, StoneColor c, QCanvas *canvas)		: MarkCross(x, y, s, canvas, (c == stoneBlack ? black : white)),		col(c)	{ }	virtual ~MarkTerr() { }	virtual int rtti() const { return RTTI_MARK_TERR; }	virtual MarkType getType() const { if (col == stoneBlack) return markTerrBlack; else return markTerrWhite; }private:	StoneColor col;};#endif

⌨️ 快捷键说明

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