From 667124dc22a0c81bf1718091b97c4231ff9be3d6 Mon Sep 17 00:00:00 2001 From: sin-ack Date: Thu, 29 Jul 2021 20:06:46 +0000 Subject: [PATCH] LibGUI: Do not wrap text in statusbar segments This commit adds a new property to Label which allows one to enable or disable text wrapping. Statusbar now uses this property to disable text wrapping in its segments, since text wrapping in statusbars doesn't make sense. --- Userland/Libraries/LibGUI/Label.cpp | 7 ++++--- Userland/Libraries/LibGUI/Label.h | 5 +++++ Userland/Libraries/LibGUI/Statusbar.cpp | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibGUI/Label.cpp b/Userland/Libraries/LibGUI/Label.cpp index 8d997405f8..aa73239b0d 100644 --- a/Userland/Libraries/LibGUI/Label.cpp +++ b/Userland/Libraries/LibGUI/Label.cpp @@ -21,6 +21,7 @@ Label::Label(String text) : m_text(move(text)) { REGISTER_TEXT_ALIGNMENT_PROPERTY("text_alignment", text_alignment, set_text_alignment); + REGISTER_TEXT_WRAPPING_PROPERTY("text_wrapping", text_wrapping, set_text_wrapping); set_frame_thickness(0); set_frame_shadow(Gfx::FrameShadow::Plain); @@ -91,10 +92,10 @@ void Label::paint_event(PaintEvent& event) auto text_rect = this->text_rect(); if (is_enabled()) { - painter.draw_text(text_rect, text(), m_text_alignment, palette().color(foreground_role()), Gfx::TextElision::Right, Gfx::TextWrapping::Wrap); + painter.draw_text(text_rect, text(), text_alignment(), palette().color(foreground_role()), Gfx::TextElision::Right, text_wrapping()); } else { - painter.draw_text(text_rect.translated(1, 1), text(), font(), text_alignment(), Color::White, Gfx::TextElision::Right, Gfx::TextWrapping::Wrap); - painter.draw_text(text_rect, text(), font(), text_alignment(), Color::from_rgb(0x808080), Gfx::TextElision::Right, Gfx::TextWrapping::Wrap); + painter.draw_text(text_rect.translated(1, 1), text(), font(), text_alignment(), Color::White, Gfx::TextElision::Right, text_wrapping()); + painter.draw_text(text_rect, text(), font(), text_alignment(), Color::from_rgb(0x808080), Gfx::TextElision::Right, text_wrapping()); } } diff --git a/Userland/Libraries/LibGUI/Label.h b/Userland/Libraries/LibGUI/Label.h index 6b2bc496e9..f0c2b8c1ab 100644 --- a/Userland/Libraries/LibGUI/Label.h +++ b/Userland/Libraries/LibGUI/Label.h @@ -8,6 +8,7 @@ #include #include +#include namespace GUI { @@ -27,6 +28,9 @@ public: Gfx::TextAlignment text_alignment() const { return m_text_alignment; } void set_text_alignment(Gfx::TextAlignment text_alignment) { m_text_alignment = text_alignment; } + Gfx::TextWrapping text_wrapping() const { return m_text_wrapping; } + void set_text_wrapping(Gfx::TextWrapping text_wrapping) { m_text_wrapping = text_wrapping; } + bool should_stretch_icon() const { return m_should_stretch_icon; } void set_should_stretch_icon(bool b) { m_should_stretch_icon = b; } @@ -49,6 +53,7 @@ private: String m_text; RefPtr m_icon; Gfx::TextAlignment m_text_alignment { Gfx::TextAlignment::Center }; + Gfx::TextWrapping m_text_wrapping { Gfx::TextWrapping::Wrap }; bool m_should_stretch_icon { false }; bool m_autosize { false }; }; diff --git a/Userland/Libraries/LibGUI/Statusbar.cpp b/Userland/Libraries/LibGUI/Statusbar.cpp index 9f2c979d6a..bdb09983e4 100644 --- a/Userland/Libraries/LibGUI/Statusbar.cpp +++ b/Userland/Libraries/LibGUI/Statusbar.cpp @@ -43,6 +43,7 @@ NonnullRefPtr