diff --git a/Libraries/LibGUI/TabWidget.cpp b/Libraries/LibGUI/TabWidget.cpp index 904ea1e450..c17c86ae36 100644 --- a/Libraries/LibGUI/TabWidget.cpp +++ b/Libraries/LibGUI/TabWidget.cpp @@ -24,6 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include #include #include #include @@ -407,6 +408,13 @@ bool TabWidget::set_property(const StringView& name, const JsonValue& value) return true; } + if (name == "text_alignment") { + auto alignment = Gfx::text_alignment_from_string(value.to_string()); + if (alignment.has_value()) + set_text_alignment(alignment.value()); + return true; + } + return Widget::set_property(name, value); } diff --git a/Libraries/LibGfx/TextAlignment.h b/Libraries/LibGfx/TextAlignment.h index 565a5c95dc..a29846afdb 100644 --- a/Libraries/LibGfx/TextAlignment.h +++ b/Libraries/LibGfx/TextAlignment.h @@ -26,6 +26,9 @@ #pragma once +#include +#include + namespace Gfx { enum class TextAlignment { @@ -49,4 +52,21 @@ inline bool is_right_text_alignment(TextAlignment alignment) } } +inline Optional text_alignment_from_string(const StringView& string) +{ + if (string == "TopLeft") + return TextAlignment::TopLeft; + if (string == "CenterLeft") + return TextAlignment::CenterLeft; + if (string == "Center") + return TextAlignment::Center; + if (string == "CenterRight") + return TextAlignment::CenterRight; + if (string == "TopRight") + return TextAlignment::TopRight; + if (string == "BottomRight") + return TextAlignment::BottomRight; + return {}; +} + }