diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Applets/Network/main.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/Userland/Applets/Network/main.cpp b/Userland/Applets/Network/main.cpp index 9e3d38085f..35fcbf6695 100644 --- a/Userland/Applets/Network/main.cpp +++ b/Userland/Applets/Network/main.cpp @@ -20,10 +20,20 @@ #include <stdio.h> class NetworkWidget final : public GUI::ImageWidget { - C_OBJECT(NetworkWidget); + C_OBJECT_ABSTRACT(NetworkWidget) + +public: + static ErrorOr<NonnullRefPtr<NetworkWidget>> try_create(bool notifications) + { + NonnullRefPtr<Gfx::Bitmap> connected_icon = TRY(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network.png")); + NonnullRefPtr<Gfx::Bitmap> disconnected_icon = TRY(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network-disconnected.png")); + return adopt_nonnull_ref_or_enomem(new (nothrow) NetworkWidget(notifications, move(connected_icon), move(disconnected_icon))); + } private: - NetworkWidget(bool notifications) + NetworkWidget(bool notifications, NonnullRefPtr<Gfx::Bitmap> connected_icon, NonnullRefPtr<Gfx::Bitmap> disconnected_icon) + : m_connected_icon(move(connected_icon)) + , m_disconnected_icon(move(disconnected_icon)) { m_notifications = notifications; update_widget(); @@ -153,8 +163,8 @@ private: String m_adapter_info; bool m_connected = false; bool m_notifications = true; - RefPtr<Gfx::Bitmap> m_connected_icon = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network.png").release_value_but_fixme_should_propagate_errors(); - RefPtr<Gfx::Bitmap> m_disconnected_icon = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network-disconnected.png").release_value_but_fixme_should_propagate_errors(); + NonnullRefPtr<Gfx::Bitmap> m_connected_icon; + NonnullRefPtr<Gfx::Bitmap> m_disconnected_icon; }; ErrorOr<int> serenity_main(Main::Arguments arguments) |