#pragma once #include #include namespace LibGUI::Widget { class TextArea : public RoundedWidget { public: struct Style : RoundedWidget::Style { Style() : RoundedWidget::Style() , color_text(0x000000) {} uint32_t color_text; }; public: static BAN::ErrorOr> create(BAN::RefPtr parent, BAN::StringView text, Rectangle geometry = {}); BAN::StringView text() const { return m_text; } BAN::ErrorOr set_text(BAN::StringView); uint32_t get_required_height() const; Style& style() { return m_style; } const Style& style() const { return m_style; } protected: TextArea(BAN::RefPtr parent, Rectangle area) : RoundedWidget(parent, area) { } BAN::ErrorOr wrap_text(); BAN::ErrorOr update_geometry_impl() override; void show_impl() override; private: Style m_style; BAN::String m_text; BAN::Vector m_wrapped_text; }; }