127 lines
3.0 KiB
C++
127 lines
3.0 KiB
C++
#include "cLabel.hpp"
|
|
|
|
using GUIEngine::cLabel;
|
|
|
|
/*static*/ const cString cLabel::sNAME = "label";
|
|
/*static*/ const GUIHelpers::eLayout cLabel::sLAYOUT = GUIHelpers::eLayout::WRAP_CONTENT;
|
|
|
|
cLabel::cLabel( cWindow* parent, const signed int id, const cString& label /*= ""*/, const GUIHelpers::eAlign align /*= sALIGN*/,
|
|
const GUIHelpers::eLayout layout /*= sLAYOUT*/, const GUIHelpers::Position& pos /*= sPOSITION*/, const GUIHelpers::Size& size /*= sSIZE*/,
|
|
const GUIHelpers::Padding& padding /*= sPADDING*/, const cString& name /*= sNAME*/ )
|
|
{
|
|
mp_text = new TextTypeEngine::cText(label);
|
|
Create(parent, id, label, align, layout, pos, size, padding, name);
|
|
}
|
|
|
|
/*virtual*/ cLabel::~cLabel()
|
|
{
|
|
delete mp_text;
|
|
mp_text = nullptr;
|
|
}
|
|
|
|
/// Functions
|
|
void cLabel::Create( cWindow* parent, const signed int id, const cString& label /*= ""*/, const GUIHelpers::eAlign align /*= sALIGN*/,
|
|
const GUIHelpers::eLayout layout /*= sLAYOUT*/, const GUIHelpers::Position& pos /*= sPOSITION*/, const GUIHelpers::Size& size /*= sSIZE*/,
|
|
const GUIHelpers::Padding& padding /*= sPADDING*/, const cString& name /*= sNAME*/ )
|
|
{
|
|
cWindow::Create(parent, id, sORIENTATION, align, layout, pos, size, padding, name);
|
|
if (layout == GUIHelpers::eLayout::DEFAULT_LAYOUT)
|
|
setLayout(sLAYOUT);
|
|
setText(label);
|
|
}
|
|
|
|
/*virtual*/ void cLabel::Display()
|
|
{
|
|
GenerateTexture();
|
|
|
|
m_sprite.setPosition(cWindow::getPosition());
|
|
m_sprite.Draw();
|
|
//cSprite::SaveImage("test.bmp", "xml/");
|
|
cWindow::Display();
|
|
}
|
|
|
|
void cLabel::GenerateTexture()
|
|
{
|
|
m_sprite.setImage((VideoEngine::cImage**)(&mp_text));
|
|
|
|
m_sprite.setImageArea(mp_text->getWH());
|
|
}
|
|
|
|
/// Sets
|
|
void cLabel::setFontColour( const GUIHelpers::RGBA& colour )
|
|
{
|
|
mp_text->setColour(colour);
|
|
}
|
|
|
|
void cLabel::setFontSize( const unsigned long int size )
|
|
{
|
|
mp_text->setSize(size);
|
|
SetSize();
|
|
}
|
|
|
|
void cLabel::setText(const cString& text)
|
|
{
|
|
mp_text->setText(text);
|
|
SetSize();
|
|
}
|
|
|
|
void cLabel::setFont( const TextTypeEngine::cFont* font )
|
|
{
|
|
mp_text->setFont((TextTypeEngine::cFont**)(&font));
|
|
}
|
|
|
|
/// Gets
|
|
const GUIHelpers::RGBA& cLabel::getFontColour() const
|
|
{
|
|
return mp_text->getColour();
|
|
}
|
|
|
|
const unsigned long int cLabel::getFontSize() const
|
|
{
|
|
return mp_text->getSize();
|
|
}
|
|
|
|
const TextTypeEngine::cFont* cLabel::getFont() const
|
|
{
|
|
return mp_text->getFont();
|
|
}
|
|
|
|
const cString& cLabel::getText() const
|
|
{
|
|
return mp_text->getText();
|
|
}
|
|
|
|
/*virtual*/ const GUIHelpers::eType cLabel::getType() const
|
|
{
|
|
return GUIHelpers::eType::CLABEL;
|
|
}
|
|
|
|
/*virtual*/ const GUIHelpers::RGBA& cLabel::getDebugColour() const
|
|
{
|
|
return GUIHelpers::GREEN;
|
|
}
|
|
|
|
// /*virtual*/ void cLabel::Resize()
|
|
// {
|
|
// RebuildLayout(this->getLayout());
|
|
// cWindow::RePos();
|
|
// }
|
|
|
|
/*virtual*/ void cLabel::RebuildLayout( const GUIHelpers::eLayout layout )
|
|
{
|
|
SetSize();
|
|
}
|
|
|
|
void cLabel::SetSize()
|
|
{
|
|
if (mp_text != nullptr) {
|
|
long int y = mp_text->getSize();
|
|
long int x = (mp_text->getText().length() * y);
|
|
|
|
GUIHelpers::Size size = { x, y };
|
|
// size.x += this->getPadding().x + this->getPadding().w;
|
|
// size.y += this->getPadding().y + this->getPadding().z;
|
|
this->setSize(size);
|
|
}
|
|
}
|