From 71a95a581f86a801b1db24a417f41d9a395cab38 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:02:47 +0000 Subject: feat: add pretty notifications --- src/debug/HyprNotificationOverlay.hpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/debug/HyprNotificationOverlay.hpp') diff --git a/src/debug/HyprNotificationOverlay.hpp b/src/debug/HyprNotificationOverlay.hpp index 12ad8e38..9f0a85ef 100644 --- a/src/debug/HyprNotificationOverlay.hpp +++ b/src/debug/HyprNotificationOverlay.hpp @@ -9,11 +9,36 @@ #include +enum eIconBackend +{ + ICONS_BACKEND_NONE = 0, + ICONS_BACKEND_NF, + ICONS_BACKEND_FA +}; + +enum eIcons +{ + ICON_WARNING = 0, + ICON_INFO, + ICON_HINT, + ICON_ERROR, + ICON_CONFUSED, + ICON_NONE +}; + +static const std::array, 3 /* backends */> ICONS_ARRAY = {std::array{"[!]", "[i]", "[Hint]", "[Err]", "[?]", ""}, + std::array{"", "", "", "", "", ""}, + std::array{"", "", "", "", ""}}; +static const std::array ICONS_COLORS = {CColor{255.0 / 255.0, 204 / 255.0, 102 / 255.0, 1.0}, CColor{128 / 255.0, 255 / 255.0, 255 / 255.0, 1.0}, + CColor{179 / 255.0, 255 / 255.0, 204 / 255.0, 1.0}, CColor{255 / 255.0, 77 / 255.0, 77 / 255.0, 1.0}, + CColor{255 / 255.0, 204 / 255.0, 153 / 255.0, 1.0}, CColor{0, 0, 0, 1.0}}; + struct SNotification { std::string text = ""; CColor color; CTimer started; float timeMs = 0; + eIcons icon = ICON_NONE; }; class CHyprNotificationOverlay { @@ -21,7 +46,7 @@ class CHyprNotificationOverlay { CHyprNotificationOverlay(); void draw(CMonitor* pMonitor); - void addNotification(const std::string& text, const CColor& color, const float timeMs); + void addNotification(const std::string& text, const CColor& color, const float timeMs, const eIcons icon = ICON_NONE); private: wlr_box drawNotifications(CMonitor* pMonitor); @@ -35,6 +60,9 @@ class CHyprNotificationOverlay { CMonitor* m_pLastMonitor = nullptr; CTexture m_tTexture; + + eIconBackend m_eIconBackend = ICONS_BACKEND_NONE; + std::string m_szIconFontName = "Sans"; }; inline std::unique_ptr g_pHyprNotificationOverlay; \ No newline at end of file -- cgit v1.2.3