mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-27 16:16:35 +03:00
allow multiple components to display shared user menu
This commit is contained in:
@@ -28,21 +28,9 @@ public:
|
||||
void SetActiveChannel(Snowflake id);
|
||||
|
||||
private:
|
||||
void on_copy_id_activate();
|
||||
void on_insert_mention_activate();
|
||||
void on_kick_activate();
|
||||
void on_ban_activate();
|
||||
|
||||
void UpdateMemberListInternal();
|
||||
void AttachUserMenuHandler(Gtk::ListBoxRow *row, Snowflake id);
|
||||
|
||||
Gtk::Menu m_menu;
|
||||
Gtk::MenuItem *m_menu_copy_id;
|
||||
Gtk::MenuItem *m_menu_insert_mention;
|
||||
Gtk::MenuItem *m_menu_kick;
|
||||
Gtk::MenuItem *m_menu_ban;
|
||||
Gtk::ListBoxRow *m_row_menu_target = nullptr; // maybe hacky
|
||||
|
||||
std::mutex m_mutex;
|
||||
Glib::Dispatcher m_update_member_list_dispatcher;
|
||||
|
||||
@@ -55,16 +43,10 @@ private:
|
||||
std::unordered_map<Snowflake, Gtk::ListBoxRow *> m_id_to_row;
|
||||
|
||||
public:
|
||||
typedef sigc::signal<void, Snowflake> type_signal_action_insert_mention;
|
||||
typedef sigc::signal<void, Snowflake, Snowflake> type_signal_action_kick; // user_id, guild_id
|
||||
typedef sigc::signal<void, Snowflake, Snowflake> type_signal_action_ban; // ^
|
||||
typedef sigc::signal<void, const GdkEvent *, Snowflake, Snowflake> type_signal_action_show_user_menu;
|
||||
|
||||
type_signal_action_insert_mention signal_action_insert_mention();
|
||||
type_signal_action_kick signal_action_kick();
|
||||
type_signal_action_ban signal_action_ban();
|
||||
type_signal_action_show_user_menu signal_action_show_user_menu();
|
||||
|
||||
private:
|
||||
type_signal_action_insert_mention m_signal_action_insert_mention;
|
||||
type_signal_action_kick m_signal_action_kick;
|
||||
type_signal_action_ban m_signal_action_ban;
|
||||
type_signal_action_show_user_menu m_signal_action_show_user_menu;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user