blob: 2d745d3d6f1693b0970a4059ca13b27c19108da0 (
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
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#pragma once
#include <gtkmm/listbox.h>
#include <gtkmm/menu.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);
// todo code duplication not good no sir
Gtk::Menu m_menu_guild;
Gtk::MenuItem m_menu_guild_copy_id;
Gtk::MenuItem m_menu_guild_settings;
Gtk::MenuItem m_menu_guild_leave;
Gtk::MenuItem m_menu_guild_mark_as_read;
Gtk::MenuItem m_menu_guild_toggle_mute;
Snowflake m_menu_guild_target;
void OnGuildSubmenuPopup();
public:
using type_signal_guild_selected = sigc::signal<void, Snowflake>;
using type_signal_dms_selected = sigc::signal<void>;
using type_signal_action_guild_leave = sigc::signal<void, Snowflake>;
using type_signal_action_guild_settings = sigc::signal<void, Snowflake>;
type_signal_guild_selected signal_guild_selected();
type_signal_dms_selected signal_dms_selected();
type_signal_action_guild_leave signal_action_guild_leave();
type_signal_action_guild_settings signal_action_guild_settings();
private:
type_signal_guild_selected m_signal_guild_selected;
type_signal_dms_selected m_signal_dms_selected;
type_signal_action_guild_leave m_signal_action_guild_leave;
type_signal_action_guild_settings m_signal_action_guild_settings;
};
|