summaryrefslogtreecommitdiff
path: root/src/components/channellist/classic/guildlist.hpp
blob: d76e80d94e914efa445001f07da7b437bae00e46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include <gtkmm/listbox.h>
#include "discord/snowflake.hpp"
#include "discord/usersettings.hpp"

class GuildListGuildItem;

class GuildList : public Gtk::ListBox {
public:
    GuildList();

    void UpdateListing();

private:
    void AddGuild(Snowflake id);
    void AddFolder(const UserSettingsGuildFoldersEntry &folder);
    void Clear();

    GuildListGuildItem *CreateGuildWidget(Snowflake id);

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;
};