summaryrefslogtreecommitdiff
path: root/src/components/memberlist.hpp
blob: d61b2b325ef8c1b1e75bb19d9611381357513378 (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
32
33
34
35
36
#pragma once
#include <gtkmm/treemodel.h>
#include <gtkmm/treestore.h>
#include <gtkmm/treeview.h>

#include "cellrenderermemberlist.hpp"
#include "discord/snowflake.hpp"

class MemberList {
public:
    MemberList();
    Gtk::Widget *GetRoot();

    void UpdateMemberList();
    void Clear();
    void SetActiveChannel(Snowflake id);

private:
    class ModelColumns : public Gtk::TreeModel::ColumnRecord {
    public:
        ModelColumns();

        Gtk::TreeModelColumn<MemberListRenderType> m_type;
        Gtk::TreeModelColumn<uint64_t> m_id;
        Gtk::TreeModelColumn<Glib::ustring> m_name;
    };

    ModelColumns m_columns;
    Glib::RefPtr<Gtk::TreeStore> m_model;
    Gtk::TreeView m_view;

    Gtk::ScrolledWindow m_main;

    Snowflake m_active_channel;
    Snowflake m_active_guild;
};