mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-04-19 07:07:32 -05:00
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#include "ui/TitleTile.hpp"
|
|
|
|
#include "colors.hpp"
|
|
|
|
ui::TitleTile::TitleTile(bool isFavorite, sdl::SharedTexture icon)
|
|
: m_isFavorite(isFavorite)
|
|
, m_icon(icon) {};
|
|
|
|
void ui::TitleTile::update(bool isSelected)
|
|
{
|
|
if (isSelected && m_renderWidth < 164)
|
|
{
|
|
// I think it's safe to assume both are too small.
|
|
m_renderWidth += 18;
|
|
m_renderHeight += 18;
|
|
}
|
|
else if (!isSelected && m_renderWidth > 128)
|
|
{
|
|
m_renderWidth -= 9;
|
|
m_renderHeight -= 9;
|
|
}
|
|
}
|
|
|
|
void ui::TitleTile::render(SDL_Texture *target, int x, int y)
|
|
{
|
|
int renderX = x - ((m_renderWidth - 128) / 2);
|
|
int renderY = y - ((m_renderHeight - 128) / 2);
|
|
|
|
m_icon->render_stretched(target, renderX, renderY, m_renderWidth, m_renderHeight);
|
|
if (m_isFavorite)
|
|
{
|
|
sdl::text::render(target, renderX + 4, renderY + 2, 28, sdl::text::NO_TEXT_WRAP, colors::PINK, "\uE017");
|
|
}
|
|
}
|
|
|
|
void ui::TitleTile::reset()
|
|
{
|
|
m_renderWidth = 128;
|
|
m_renderHeight = 128;
|
|
}
|
|
|
|
int ui::TitleTile::get_width() const { return m_renderWidth; }
|
|
|
|
int ui::TitleTile::get_height() const { return m_renderHeight; }
|