// Copyright (C) 1991 - 1999 Rational Software Corporation
//////////////////////////////////////////////////////////////////////////
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_TEXT_46F50C7401C5_INCLUDED
#define _INC_TEXT_46F50C7401C5_INCLUDED
//////////////////////////////////////////////////////////////////////////
#include <string>
#include <list>

#include "Shape.h"
//////////////////////////////////////////////////////////////////////////
class ostream;
using std::list;
//////////////////////////////////////////////////////////////////////////
//текст

class Text 
: public virtual Shape
{
private:
    //указатели на созданные тексты
    
    static list<Text*> _texts;
protected:
    
    Text(std::string content, float x, float y);

    //содержимое текста
    
    std::string _content;

    //вывести состояние прямоугольника в поток
    
    virtual std::ostream& speak(std::ostream& os) const;
public:
	// Virtual draw operation
	
	virtual void Draw(CDC* pDC, CElement* pElement = 0, bool isIdVisible = true);

	//идентификатор типа объекта
	
	virtual int getType() const;

	
	Text();

	
	virtual void Serialize(CArchive& ar);

    
    const std::string& get__content() const;

    
    void set__content(std::string& value);

    //выдает указатель на уже существующий текст, если он имеет заданные параметры
    //если такого не существует - создает новый
    
    static Text* create(std::string content = "", float x = NULL, float y = NULL);

	
    static Text* create(CPoint Start, CPoint End, COLORREF aColor);

	
	virtual ~Text();

    //вычисляет площадь фигуры
    
    virtual float Area() const;
};



//////////////////////////////////////////////////////////////////////////
#endif /* _INC_TEXT_46F50C7401C5_INCLUDED */
Соседние файлы в папке shapes