// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_TEXT_47091CD5005D_INCLUDED
#define _INC_TEXT_47091CD5005D_INCLUDED

#include "Figure.h"

//##ModelId=47091CD5005D
class Text 
: virtual public Figure
{
public:
	int length();
	//##ModelId=470A2E39031C
	virtual void draw(CDC* pDC, COLORREF color, int pen);

	//##ModelId=472F625A009C
	double area();

	//##ModelId=472F625A00BB
	void move(CSize& size);

	//##ModelId=470A15AA03B9
	virtual ~Text();

	//##ModelId=4709256800AB
	Text(const char* txt, CPoint startX, COLORREF aColor);

	//##ModelId=470924BF01B5
	setText(const char* txt);

	//##ModelId=470925300203
	char* getText() const;

	virtual CRect getBoundRect() const {
		return boundRect;
	}

	virtual COLORREF getColor() const {
		return color;
	}

	virtual int getPenWidth() const {
		return pen;
	}

	virtual CPoint getCenterPoint() const {
		return start;
	}

	virtual void setColor(COLORREF color) {
		this->color = color;
	}
	
	virtual void writeIn(CArchive& ar) const
	{
		ar << (*this);
	}

	friend CArchive& operator<<(CArchive& ar, const Text& rhs) {
		ar << CString("Text") << CString(rhs.text) << rhs.start.x << rhs.start.y << rhs.color;
		return ar;
	};

private:
	CPoint start;

	int pen;
	
	//##ModelId=470A2A86032C
	static long count_ID;

	//##ModelId=470A2A8B0186
	long ID;

	//##ModelId=47092C5702CE
	char* text;

	COLORREF color;

	CRect boundRect;
};

#endif /* _INC_TEXT_47091CD5005D_INCLUDED */
Соседние файлы в папке Лабораторная работа 23