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(); }