/** * @file Label.h * @author apio (cloudapio.eu) * @brief A simple one-line text widget. * * @copyright Copyright (c) 2023, the Luna authors. * */ #pragma once #include #include #include namespace ui { /** * @brief Displays one line of text. * * This component does not handle newlines. */ class Label final : public Widget { public: Label(StringView text, VerticalAlignment valign = VerticalAlignment::Center, HorizontalAlignment halign = HorizontalAlignment::Center, SharedPtr font = Font::default_font()); void set_text(StringView text) { m_text = text; } Result draw(Canvas& canvas) override; private: StringView m_text; VerticalAlignment m_valign; HorizontalAlignment m_halign; SharedPtr m_font; }; }