void QueueListBox::ItemRightClicked(GG::ListBox::iterator it, const GG::Pt& pt, const GG::Flags<GG::ModKey>& modkeys) { GG::MenuItem menu_contents; menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_UP_QUEUE_ITEM"), 1, false, false)); menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_DOWN_QUEUE_ITEM"), 2, false, false)); menu_contents.next_level.push_back(GG::MenuItem(UserString("DELETE_QUEUE_ITEM"), 3, false, false)); GG::PopupMenu popup(pt.x, pt.y, ClientUI::GetFont(), menu_contents, ClientUI::TextColor(), ClientUI::WndOuterBorderColor(), ClientUI::WndColor(), ClientUI::EditHiliteColor()); if (popup.Run()) { switch (popup.MenuID()) { case 1: { // move item to top if (GG::ListBox::Row* row = *it) QueueItemMovedSignal(row, 0); break; } case 2: { // move item to bottom if (GG::ListBox::Row* row = *it) QueueItemMovedSignal(row, NumRows()); break; } case 3: { // delete item QueueItemDeletedSignal(it); break; } default: break; } } }
void QueueListBox::KeyPress(GG::Key key, boost::uint32_t key_code_point, GG::Flags<GG::ModKey> mod_keys) { if (Disabled()) { CUIListBox::KeyPress(key, key_code_point, mod_keys); return; } if (key == GG::GGK_DELETE) { QueueListBox::iterator it = Caret(); if (it == end()) return; QueueItemDeletedSignal(it); } else { CUIListBox::KeyPress(key, key_code_point, mod_keys); } }