/
SilovAndrey
/
easel_gui
Обзор
Документация
Войти
/
SilovAndrey
/
easel_gui
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/label.cpp
59 строк
1 KB
Andrey HomePC
первая рабочая версия
21 июл 2026, 11:50
21 июл 2026, 11:50
38b8d4a
Код
Авторство
О чём код?
module; #include <memory> #include <thorvg.h> module Easel.GUI; namespace easel::gui { WidgetPtr label(const char* text) { struct LabelWidget : Widget { //std::string m_text; tvg::Text* m_label; rect m_bounds; LabelWidget(const char* t) : m_label(tvg::Text::gen()) { m_label->text(t); } void init(tvg::Canvas* c, Theme const& th, rect const& b) override { m_bounds = b; //m_label = tvg::Text::gen(); //m_label->text(m_text.c_str()); log_info("init label %f %f %f %f", b.left, b.top, b.right, b.bottom); m_label->font(th.font.c_str()); m_label->size(th.size_font); m_label->fill(th.text_color.red, th.text_color.green, th.text_color.blue); m_label->translate(b.left, b.top); c->add(m_label); } bool resize(rect const& b, Theme const&) override { if (m_bounds == b) return false; m_bounds = b; m_label->translate(b.left, b.top); return true; } bool on_event(Event const&, Theme const&) override { return false; } float preferred_width(Theme const& th) const override { return 20 + th.size_font * 0.6f; } float preferred_height(Theme const& th) const override { return th.size_font * 1.2f; } }; return std::make_unique<LabelWidget>(text); } } // namespace easel::gui