void BattleroomListCtrl::OnUserMenuAddToGroup( wxCommandEvent& event ) { int id = event.GetId(); wxString groupname = m_popup->GetGroupByEvtID(id); wxString nick = GetSelectedUserNick(); useractions().AddUserToGroup( groupname, nick ); Disconnect( GROUP_ID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( BattleroomListCtrl::OnUserMenuCreateGroup), 0, this ); }
void BattleroomListCtrl::OnUserMenuCreateGroup(wxCommandEvent& /*unused*/) { wxString name; if (ui().AskText(_("Enter name"), _("Please enter the name for the new group.\nAfter clicking ok you will be taken to adjust its settings."), name)) { wxString nick = GetSelectedUserNick(); useractions().AddGroup(name); useractions().AddUserToGroup(name, nick); ui().mw().ShowConfigure(MainWindow::OPT_PAGE_GROUPS); } }
void BattleroomListCtrl::OnListRightClick( wxListEvent& event ) { wxLogDebugFunc( _T("") ); if ( m_ro ) return; int index = event.GetIndex(); if ( index == -1 || index >= (long)m_data.size()) return; User& user = *GetDataFromIndex( event.GetIndex() ); m_sel_user = &user; //this is set for event handlers if ( user.BattleStatus().IsBot() ) { wxLogMessage(_T("Bot")); int item = m_popup->FindItem( _("Spectator") ); m_popup->Enable( item, false ); m_popup->Check( item, false ); m_popup->Enable( m_popup->FindItem( _("Ring") ), false ); m_popup->Enable( m_popup->FindItem( _("Kick") ),true); } else { wxLogMessage(_T("User")); assert( m_popup ); int item = m_popup->FindItem( _("Spectator") ); m_popup->Check( item, m_sel_user->BattleStatus().spectator ); m_popup->Enable( item, true ); m_popup->Enable( m_popup->FindItem( _("Ring") ), true ); bool isSelUserMe = ( ui().IsThisMe(user) ); m_popup->Enable( m_popup->FindItem( _("Kick") ),!isSelUserMe); } wxLogMessage(_T("Popup")); m_popup->EnableItems( !user.BattleStatus().IsBot(), GetSelectedUserNick() );//this updates groups, therefore we need to update the connection to evt handlers too std::vector<int> groups_ids = m_popup->GetGroupIds(); for (std::vector<int>::const_iterator it = groups_ids.begin(); it != groups_ids.end(); ++it) { Connect( *it, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( BattleroomListCtrl::OnUserMenuAddToGroup ), 0, this ); } Connect( GROUP_ID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( BattleroomListCtrl::OnUserMenuCreateGroup), 0, this ); PopupMenu( m_popup ); wxLogMessage(_T("Done")); }
void BattleroomListCtrl::OnUserMenuDeleteFromGroup( wxCommandEvent& /*unused*/ ) { wxString nick = GetSelectedUserNick(); useractions().RemoveUser( nick ); }