From a51a54bc5979a2491f152abc47ad54e6b63f27c8 Mon Sep 17 00:00:00 2001 From: Dylam De La Torre Date: Tue, 23 Nov 2021 05:21:56 +0100 Subject: Restructure source and resource files (#46) importantly, res is now res/res and css is now res/css --- src/components/memberlist.hpp | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/components/memberlist.hpp (limited to 'src/components/memberlist.hpp') diff --git a/src/components/memberlist.hpp b/src/components/memberlist.hpp new file mode 100644 index 0000000..60a25bc --- /dev/null +++ b/src/components/memberlist.hpp @@ -0,0 +1,44 @@ +#pragma once +#include +#include +#include +#include +#include "discord/discord.hpp" + +class LazyImage; +class StatusIndicator; +class MemberListUserRow : public Gtk::ListBoxRow { +public: + MemberListUserRow(const std::optional &guild, const UserData &data); + + Snowflake ID; + +private: + Gtk::EventBox *m_ev; + Gtk::Box *m_box; + LazyImage *m_avatar; + StatusIndicator *m_status_indicator; + Gtk::Label *m_label; + Gtk::Image *m_crown = nullptr; +}; + +class MemberList { +public: + MemberList(); + Gtk::Widget *GetRoot() const; + + void UpdateMemberList(); + void Clear(); + void SetActiveChannel(Snowflake id); + +private: + void AttachUserMenuHandler(Gtk::ListBoxRow *row, Snowflake id); + + Gtk::ScrolledWindow *m_main; + Gtk::ListBox *m_listbox; + + Snowflake m_guild_id; + Snowflake m_chan_id; + + std::unordered_map m_id_to_row; +}; -- cgit v1.2.3