Magic_Game/Easy2D/Node/Text.cpp

100 lines
1.7 KiB
C++
Raw Normal View History

2017-09-10 23:56:52 +08:00
#include "..\Easy2d.h"
#include "..\EasyX\easyx.h"
Text::Text() :
m_sText(_T("")),
m_color(Color::white),
m_pFontStyle(FontStyle::getDefault())
{
m_pFontStyle->retain(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
}
Text::Text(tstring text, COLORREF color, FontStyle * font) :
m_sText(text),
m_color(color),
m_pFontStyle(font)
{
m_pFontStyle->retain(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
}
Text::Text(int x, int y, tstring text, COLORREF color, FontStyle * font) :
Node(x, y),
m_sText(text),
m_color(color),
m_pFontStyle(font)
{
m_pFontStyle->retain(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
}
Text::~Text()
{
SAFE_RELEASE(m_pFontStyle); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
}
void Text::_onDraw()
{
// <20><> display <20><><EFBFBD><EFBFBD>Ϊ false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
if (!m_bDisplay)
{
return;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
settextstyle(&m_pFontStyle->m_font);
// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ɫ
settextcolor(m_color);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
outtextxy(m_nX, m_nY, m_sText.c_str());
}
COLORREF Text::getColor() const
{
return m_color;
}
tstring Text::getText() const
{
return m_sText;
}
FontStyle * Text::getFontStyle()
{
return m_pFontStyle;
}
int Text::getWidth()
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬Ȼ<E5A3AC><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ı<EFBFBD><C4B1>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĿ<C2B5><C4BF><EFBFBD>
settextstyle(&m_pFontStyle->m_font);
return textwidth(getText().c_str());
}
int Text::getHeight()
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬Ȼ<E5A3AC><C8BB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ı<EFBFBD><C4B1>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĸ߶<C4B8>
settextstyle(&m_pFontStyle->m_font);
return textheight(getText().c_str());
}
bool Text::isEmpty() const
{
return m_sText.empty(); // <20>ı<EFBFBD><C4B1>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
}
void Text::setText(tstring text)
{
m_sText = text;
}
void Text::setColor(COLORREF color)
{
m_color = color;
}
void Text::setFontStyle(FontStyle * style)
{
SAFE_RELEASE(m_pFontStyle); // ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
m_pFontStyle = style; // <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
m_pFontStyle->retain(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
}