1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 21:17:45 +00:00

LibGUI+Notification: Add notification closing

Closing a notification will now allow it to be shown again, as
m_showing being false means it can be re-shown.
This commit is contained in:
Nick Johnson 2021-03-11 14:21:06 -06:00 committed by Andreas Kling
parent ef4144c183
commit 0fd1e6f062
5 changed files with 24 additions and 1 deletions

View file

@ -59,8 +59,16 @@ Notification::~Notification()
void Notification::show()
{
VERIFY(!m_showing);
auto icon = m_icon ? m_icon->to_shareable_bitmap() : Gfx::ShareableBitmap();
m_connection->send_sync<Messages::NotificationServer::ShowNotification>(m_text, m_title, icon);
m_showing = true;
}
void Notification::close()
{
VERIFY(m_showing);
m_connection->send_sync<Messages::NotificationServer::CloseNotification>();
m_showing = false;
}
}

View file

@ -30,7 +30,8 @@
#include <LibGfx/Bitmap.h>
namespace GUI {
class NotificationServerConnection;
class NotificationServerConnection;
class Notification : public Core::Object {
C_OBJECT(Notification);
@ -48,6 +49,7 @@ public:
void set_icon(const Gfx::Bitmap* icon) { m_icon = icon; }
void show();
void close();
private:
Notification();
@ -57,6 +59,7 @@ private:
RefPtr<Gfx::Bitmap> m_icon;
NonnullRefPtr<NotificationServerConnection> m_connection;
bool m_showing { false };
};
}