allow multiple components to display shared user menu

This commit is contained in:
ouwou
2020-11-08 00:44:26 -05:00
parent 0c442a423e
commit f124626a6d
12 changed files with 143 additions and 105 deletions

View File

@@ -68,6 +68,14 @@ MainWindow::MainWindow()
auto *member_list = m_members.GetRoot();
auto *chat = m_chat.GetRoot();
m_members.signal_action_show_user_menu().connect([this](const GdkEvent *event, Snowflake id, Snowflake guild_id) {
m_signal_action_show_user_menu.emit(event, id, guild_id);
});
m_chat.signal_action_open_user_menu().connect([this](const GdkEvent *event, Snowflake id, Snowflake guild_id) {
m_signal_action_show_user_menu.emit(event, id, guild_id);
});
chat->set_vexpand(true);
chat->set_hexpand(true);
@@ -238,3 +246,7 @@ MainWindow::type_signal_action_join_guild MainWindow::signal_action_join_guild()
MainWindow::type_signal_action_set_status MainWindow::signal_action_set_status() {
return m_signal_action_set_status;
}
MainWindow::type_signal_action_show_user_menu MainWindow::signal_action_show_user_menu() {
return m_signal_action_show_user_menu;
}

View File

@@ -38,6 +38,7 @@ public:
typedef sigc::signal<void> type_signal_action_reload_css;
typedef sigc::signal<void> type_signal_action_join_guild;
typedef sigc::signal<void> type_signal_action_set_status;
typedef sigc::signal<void, const GdkEvent *, Snowflake, Snowflake> type_signal_action_show_user_menu;
type_signal_action_connect signal_action_connect();
type_signal_action_disconnect signal_action_disconnect();
@@ -45,6 +46,7 @@ public:
type_signal_action_reload_css signal_action_reload_css();
type_signal_action_join_guild signal_action_join_guild();
type_signal_action_set_status signal_action_set_status();
type_signal_action_show_user_menu signal_action_show_user_menu();
protected:
type_signal_action_connect m_signal_action_connect;
@@ -53,6 +55,7 @@ protected:
type_signal_action_reload_css m_signal_action_reload_css;
type_signal_action_join_guild m_signal_action_join_guild;
type_signal_action_set_status m_signal_action_set_status;
type_signal_action_show_user_menu m_signal_action_show_user_menu;
protected:
Gtk::Box m_main_box;