From 1c18261f8b252ba845d16de2e0b5ce6e46827e0f Mon Sep 17 00:00:00 2001 From: Dylan Katz Date: Fri, 28 Jan 2022 23:00:15 -0800 Subject: [PATCH] LibGUI: Allow Label icons to be set from GML This is similar to dd17df76e9d02b2969b1c4771134a30a4a844e31, which did the same thing for the Button widget. --- Userland/Libraries/LibGUI/Label.cpp | 11 +++++++++++ Userland/Libraries/LibGUI/Label.h | 1 + 2 files changed, 12 insertions(+) diff --git a/Userland/Libraries/LibGUI/Label.cpp b/Userland/Libraries/LibGUI/Label.cpp index 178b97ae1a..77e72f3dae 100644 --- a/Userland/Libraries/LibGUI/Label.cpp +++ b/Userland/Libraries/LibGUI/Label.cpp @@ -30,6 +30,7 @@ Label::Label(String text) REGISTER_STRING_PROPERTY("text", text, set_text); REGISTER_BOOL_PROPERTY("autosize", is_autosize, set_autosize); + REGISTER_STRING_PROPERTY("icon", icon, set_icon_from_path); } Label::~Label() @@ -53,6 +54,16 @@ void Label::set_icon(const Gfx::Bitmap* icon) update(); } +void Label::set_icon_from_path(String const& path) +{ + auto maybe_bitmap = Gfx::Bitmap::try_load_from_file(path); + if (maybe_bitmap.is_error()) { + dbgln("Unable to load bitmap `{}` for label icon", path); + return; + } + set_icon(maybe_bitmap.release_value()); +} + void Label::set_text(String text) { if (text == m_text) diff --git a/Userland/Libraries/LibGUI/Label.h b/Userland/Libraries/LibGUI/Label.h index f0c2b8c1ab..4d889996a3 100644 --- a/Userland/Libraries/LibGUI/Label.h +++ b/Userland/Libraries/LibGUI/Label.h @@ -22,6 +22,7 @@ public: void set_text(String); void set_icon(const Gfx::Bitmap*); + void set_icon_from_path(String const&); const Gfx::Bitmap* icon() const { return m_icon.ptr(); } Gfx::Bitmap* icon() { return m_icon.ptr(); }