mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-19 20:11:59 +03:00
join/leave guild
This commit is contained in:
@@ -149,6 +149,10 @@ ChannelList::ChannelList() {
|
||||
m_guild_menu_copyid->signal_activate().connect(sigc::mem_fun(*this, &ChannelList::on_menu_copyid));
|
||||
m_guild_menu.append(*m_guild_menu_copyid);
|
||||
|
||||
m_guild_menu_leave = Gtk::manage(new Gtk::MenuItem("_Leave Guild", true));
|
||||
m_guild_menu_leave->signal_activate().connect(sigc::mem_fun(*this, &ChannelList::on_menu_leave));
|
||||
m_guild_menu.append(*m_guild_menu_leave);
|
||||
|
||||
m_guild_menu.show_all();
|
||||
|
||||
m_list->set_activate_on_single_click(true);
|
||||
@@ -339,6 +343,12 @@ void ChannelList::on_menu_copyid() {
|
||||
m_signal_action_guild_copy_id.emit(row->ID);
|
||||
}
|
||||
|
||||
void ChannelList::on_menu_leave() {
|
||||
auto row = dynamic_cast<ChannelListRow *>(m_list->get_selected_row());
|
||||
if (row != nullptr)
|
||||
m_signal_action_guild_leave.emit(row->ID);
|
||||
}
|
||||
|
||||
void ChannelList::AttachMenuHandler(Gtk::ListBoxRow *row) {
|
||||
row->signal_button_press_event().connect([&, row](GdkEventButton *e) -> bool {
|
||||
if (e->type == GDK_BUTTON_PRESS && e->button == GDK_BUTTON_SECONDARY) {
|
||||
@@ -371,3 +381,7 @@ ChannelList::type_signal_action_guild_move_down ChannelList::signal_action_guild
|
||||
ChannelList::type_signal_action_guild_copy_id ChannelList::signal_action_guild_copy_id() {
|
||||
return m_signal_action_guild_copy_id;
|
||||
}
|
||||
|
||||
ChannelList::type_signal_action_guild_leave ChannelList::signal_action_guild_leave() {
|
||||
return m_signal_action_guild_leave;
|
||||
}
|
||||
|
||||
@@ -97,9 +97,11 @@ protected:
|
||||
Gtk::MenuItem *m_guild_menu_up;
|
||||
Gtk::MenuItem *m_guild_menu_down;
|
||||
Gtk::MenuItem *m_guild_menu_copyid;
|
||||
Gtk::MenuItem *m_guild_menu_leave;
|
||||
void on_menu_move_up();
|
||||
void on_menu_move_down();
|
||||
void on_menu_copyid();
|
||||
void on_menu_leave();
|
||||
|
||||
Glib::Dispatcher m_update_dispatcher;
|
||||
//mutable std::mutex m_update_mutex;
|
||||
@@ -113,15 +115,18 @@ public:
|
||||
typedef sigc::signal<void, Snowflake> type_signal_action_guild_move_up;
|
||||
typedef sigc::signal<void, Snowflake> type_signal_action_guild_move_down;
|
||||
typedef sigc::signal<void, Snowflake> type_signal_action_guild_copy_id;
|
||||
typedef sigc::signal<void, Snowflake> type_signal_action_guild_leave;
|
||||
|
||||
type_signal_action_channel_item_select signal_action_channel_item_select();
|
||||
type_signal_action_guild_move_up signal_action_guild_move_up();
|
||||
type_signal_action_guild_move_down signal_action_guild_move_down();
|
||||
type_signal_action_guild_copy_id signal_action_guild_copy_id();
|
||||
type_signal_action_guild_leave signal_action_guild_leave();
|
||||
|
||||
protected:
|
||||
type_signal_action_channel_item_select m_signal_action_channel_item_select;
|
||||
type_signal_action_guild_move_up m_signal_action_guild_move_up;
|
||||
type_signal_action_guild_move_down m_signal_action_guild_move_down;
|
||||
type_signal_action_guild_copy_id m_signal_action_guild_copy_id;
|
||||
type_signal_action_guild_leave m_signal_action_guild_leave;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user