summaryrefslogtreecommitdiff
path: root/src/components/channellist/classic
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2024-01-08 20:53:59 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2024-01-08 20:53:59 -0500
commit1e6d16f44a07da92c35b19dadf6385c2868ab295 (patch)
tree94db694240a9baf04b7fdfdb819c13a175c8a32e /src/components/channellist/classic
parent9131158cbbf5800dd103d5b5fbfff96384352c77 (diff)
downloadabaddon-portaudio-1e6d16f44a07da92c35b19dadf6385c2868ab295.tar.gz
abaddon-portaudio-1e6d16f44a07da92c35b19dadf6385c2868ab295.zip
hide dm header unless selected in classic channel list
Diffstat (limited to 'src/components/channellist/classic')
-rw-r--r--src/components/channellist/classic/guildlist.cpp26
-rw-r--r--src/components/channellist/classic/guildlist.hpp3
2 files changed, 29 insertions, 0 deletions
diff --git a/src/components/channellist/classic/guildlist.cpp b/src/components/channellist/classic/guildlist.cpp
index 97741cf..ca7c96f 100644
--- a/src/components/channellist/classic/guildlist.cpp
+++ b/src/components/channellist/classic/guildlist.cpp
@@ -1,6 +1,18 @@
#include "guildlist.hpp"
#include "guildlistfolderitem.hpp"
+class GuildListDMsButton : public Gtk::EventBox {
+public:
+ GuildListDMsButton() {
+ m_img.property_pixbuf() = Abaddon::Get().GetImageManager().GetPlaceholder(48);
+ add(m_img);
+ show_all_children();
+ }
+
+private:
+ Gtk::Image m_img;
+};
+
GuildList::GuildList() {
set_selection_mode(Gtk::SELECTION_NONE);
show_all_children();
@@ -11,6 +23,16 @@ void GuildList::UpdateListing() {
Clear();
+ auto *dms = Gtk::make_managed<GuildListDMsButton>();
+ dms->show();
+ dms->signal_button_press_event().connect([this](GdkEventButton *ev) -> bool {
+ if (ev->type == GDK_BUTTON_PRESS && ev->button == GDK_BUTTON_PRIMARY) {
+ m_signal_dms_selected.emit();
+ }
+ return false;
+ });
+ add(*dms);
+
// does this function still even work ??lol
const auto folders = discord.GetUserSettings().GuildFolders;
const auto guild_ids = discord.GetUserSortedGuilds();
@@ -86,3 +108,7 @@ void GuildList::Clear() {
GuildList::type_signal_guild_selected GuildList::signal_guild_selected() {
return m_signal_guild_selected;
}
+
+GuildList::type_signal_dms_selected GuildList::signal_dms_selected() {
+ return m_signal_dms_selected;
+}
diff --git a/src/components/channellist/classic/guildlist.hpp b/src/components/channellist/classic/guildlist.hpp
index dc19102..d76e80d 100644
--- a/src/components/channellist/classic/guildlist.hpp
+++ b/src/components/channellist/classic/guildlist.hpp
@@ -20,9 +20,12 @@ private:
public:
using type_signal_guild_selected = sigc::signal<void, Snowflake>;
+ using type_signal_dms_selected = sigc::signal<void>;
type_signal_guild_selected signal_guild_selected();
+ type_signal_dms_selected signal_dms_selected();
private:
type_signal_guild_selected m_signal_guild_selected;
+ type_signal_dms_selected m_signal_dms_selected;
};