mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-23 22:55:39 +00:00
60 lines
1.1 KiB
C++
60 lines
1.1 KiB
C++
|
#include "TextComponent.h"
|
||
|
#include "../Renderer.h"
|
||
|
#include "../Log.h"
|
||
|
|
||
|
TextComponent::TextComponent(Window* window) : GuiComponent(window), mFont(NULL), mColor(0x000000FF)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
TextComponent::TextComponent(Window* window, const std::string& text, Font* font, Vector2i pos, Vector2u size) : GuiComponent(window),
|
||
|
mFont(NULL), mColor(0x000000FF)
|
||
|
{
|
||
|
setText(text);
|
||
|
setFont(font);
|
||
|
setBox(pos, size);
|
||
|
}
|
||
|
|
||
|
void TextComponent::setBox(Vector2i pos, Vector2u size)
|
||
|
{
|
||
|
setOffset(pos);
|
||
|
setExtent(size);
|
||
|
}
|
||
|
|
||
|
void TextComponent::setExtent(Vector2u size)
|
||
|
{
|
||
|
mSize = size;
|
||
|
}
|
||
|
|
||
|
void TextComponent::setFont(Font* font)
|
||
|
{
|
||
|
mFont = font;
|
||
|
}
|
||
|
|
||
|
void TextComponent::setColor(unsigned int color)
|
||
|
{
|
||
|
mColor = color;
|
||
|
}
|
||
|
|
||
|
void TextComponent::setText(const std::string& text)
|
||
|
{
|
||
|
mText = text;
|
||
|
}
|
||
|
|
||
|
void TextComponent::onRender()
|
||
|
{
|
||
|
Font* font = (mFont ? mFont : Renderer::getDefaultFont(Renderer::MEDIUM));
|
||
|
if(font == NULL)
|
||
|
{
|
||
|
LOG(LogError) << "TextComponent can't get a valid font!";
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
Renderer::pushClipRect(getOffset(), getSize());
|
||
|
|
||
|
Renderer::drawWrappedText(mText, 0, 0, mSize.x, mColor, font);
|
||
|
|
||
|
Renderer::popClipRect();
|
||
|
|
||
|
GuiComponent::onRender();
|
||
|
}
|