summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authorNick Johnson <sylvyrfysh@gmail.com>2021-03-11 14:16:23 -0600
committerAndreas Kling <kling@serenityos.org>2021-03-22 12:46:16 +0100
commitef4144c1836a39606db614959dba44d45b09ba8b (patch)
tree0ae57ffb0ca35f8355325d6e10f4221c3e217290 /Userland
parentf2814dd6c17fa0f5103f68c25c5a0cb53eac37a9 (diff)
downloadserenity-ef4144c1836a39606db614959dba44d45b09ba8b.zip
Notification: Member-ize updatable components
Changes the necessary widgets to be pointers so we can later change their underlying data.
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Services/NotificationServer/NotificationWindow.cpp23
-rw-r--r--Userland/Services/NotificationServer/NotificationWindow.h5
2 files changed, 16 insertions, 12 deletions
diff --git a/Userland/Services/NotificationServer/NotificationWindow.cpp b/Userland/Services/NotificationServer/NotificationWindow.cpp
index ed5953c2f2..348c22e847 100644
--- a/Userland/Services/NotificationServer/NotificationWindow.cpp
+++ b/Userland/Services/NotificationServer/NotificationWindow.cpp
@@ -30,7 +30,7 @@
#include <LibGUI/BoxLayout.h>
#include <LibGUI/Button.h>
#include <LibGUI/Desktop.h>
-#include <LibGUI/ImageWidget.h>
+#include <LibGUI/Icon.h>
#include <LibGUI/Label.h>
#include <LibGUI/Widget.h>
#include <LibGfx/Bitmap.h>
@@ -41,6 +41,7 @@
namespace NotificationServer {
static HashMap<u32, RefPtr<NotificationWindow>> s_windows;
+static const Gfx::Bitmap* default_image = GUI::Icon::default_icon("ladybug").bitmap_for_size(16);
void update_notification_window_locations()
{
@@ -95,23 +96,21 @@ NotificationWindow::NotificationWindow(i32 client_id, const String& text, const
widget.layout()->set_margins({ 8, 8, 8, 8 });
widget.layout()->set_spacing(6);
- if (icon.is_valid()) {
- auto& image = widget.add<GUI::ImageWidget>();
- image.set_bitmap(icon.bitmap());
- }
+ m_image = &widget.add<GUI::ImageWidget>();
+ m_image->set_bitmap(icon.is_valid() ? icon.bitmap() : default_image);
auto& left_container = widget.add<GUI::Widget>();
left_container.set_layout<GUI::VerticalBoxLayout>();
- auto& title_label = left_container.add<GUI::Label>(title);
- title_label.set_font(Gfx::FontDatabase::default_bold_font());
- title_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
- auto& text_label = left_container.add<GUI::Label>(text);
- text_label.set_text_alignment(Gfx::TextAlignment::CenterLeft);
+ m_title_label = &left_container.add<GUI::Label>(title);
+ m_title_label->set_font(Gfx::FontDatabase::default_bold_font());
+ m_title_label->set_text_alignment(Gfx::TextAlignment::CenterLeft);
+ m_text_label = &left_container.add<GUI::Label>(text);
+ m_text_label->set_text_alignment(Gfx::TextAlignment::CenterLeft);
widget.set_tooltip(text);
- title_label.set_tooltip(text);
- text_label.set_tooltip(text);
+ m_title_label->set_tooltip(text);
+ m_text_label->set_tooltip(text);
auto& right_container = widget.add<GUI::Widget>();
right_container.set_fixed_width(36);
diff --git a/Userland/Services/NotificationServer/NotificationWindow.h b/Userland/Services/NotificationServer/NotificationWindow.h
index 48169663b3..206e57d085 100644
--- a/Userland/Services/NotificationServer/NotificationWindow.h
+++ b/Userland/Services/NotificationServer/NotificationWindow.h
@@ -26,6 +26,7 @@
#pragma once
+#include <LibGUI/ImageWidget.h>
#include <LibGUI/Window.h>
namespace NotificationServer {
@@ -46,6 +47,10 @@ private:
Gfx::IntRect m_original_rect;
i32 m_id;
+
+ GUI::Label* m_text_label;
+ GUI::Label* m_title_label;
+ GUI::ImageWidget* m_image;
};
}