diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2024-03-08 19:36:52 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-08 19:36:52 -0500 |
commit | 43f87ae38153e46a1d81431e47e7d45486a505de (patch) | |
tree | b0f588b12536cc9e6ea738a45ae5cbacfed818f2 /src/components/channellist/classic/guildlistfolderitem.hpp | |
parent | 91e89c06958f1e058de445f9b53205e7eb341d3a (diff) | |
parent | ff76ec5f866b5dc77bb635f2d62bec861794fb63 (diff) | |
download | abaddon-portaudio-43f87ae38153e46a1d81431e47e7d45486a505de.tar.gz abaddon-portaudio-43f87ae38153e46a1d81431e47e7d45486a505de.zip |
Merge pull request #242 from uowuo/classic-channels
Discord-style channel/server listing
Diffstat (limited to 'src/components/channellist/classic/guildlistfolderitem.hpp')
-rw-r--r-- | src/components/channellist/classic/guildlistfolderitem.hpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/components/channellist/classic/guildlistfolderitem.hpp b/src/components/channellist/classic/guildlistfolderitem.hpp new file mode 100644 index 0000000..e5772c0 --- /dev/null +++ b/src/components/channellist/classic/guildlistfolderitem.hpp @@ -0,0 +1,44 @@ +#pragma once +#include <gtkmm/box.h> +#include <gtkmm/eventbox.h> +#include <gtkmm/grid.h> +#include <gtkmm/image.h> +#include <gtkmm/revealer.h> +#include <gtkmm/stack.h> + +#include "guildlistguilditem.hpp" +#include "discord/usersettings.hpp" + +class GuildListGuildItem; + +class GuildListFolderButton : public Gtk::Grid { +public: + GuildListFolderButton(); + void SetGuilds(const std::vector<Snowflake> &guild_ids); + +private: + Gtk::Image m_images[2][2]; +}; + +class GuildListFolderItem : public Gtk::VBox { +public: + GuildListFolderItem(const UserSettingsGuildFoldersEntry &folder); + + void AddGuildWidget(GuildListGuildItem *widget); + +private: + void OnMessageCreate(const Message &msg); + void OnMessageAck(const MessageAckData &data); + void CheckUnreadStatus(); + + std::vector<Snowflake> m_guild_ids; + + Gtk::Stack m_stack; + GuildListFolderButton m_grid; + Gtk::Image m_icon; + + Gtk::EventBox m_ev; + Gtk::Image m_image; + Gtk::Revealer m_revealer; + Gtk::VBox m_box; +}; |