/************************************************************************ Get a pointer to the next selected item using internal counter ************************************************************************/ ItemEntry* ItemListbox::getNextSelectedItem() const { if (!d_multiSelect) { return 0; } return findSelectedItem(d_nextSelectionIndex); }
/************************************************************************ Get a pointer to the first selected item ************************************************************************/ ItemEntry* ItemListbox::getFirstSelectedItem(size_t start_index) const { if (!d_multiSelect) { return d_lastSelected; } return findSelectedItem(start_index); }
void ButtonSet::setSelectedItem(int index) { Item* sel = findSelectedItem(); if (!sel || sel->getIndex() != index) { sel->setSelected(false); m_items[index]->setSelected(true); } }
void AMenu::selectPrevious() { auto iter = findSelectedItem(); if ( iter != _items.end() ) { (*iter)->deselect(); iter = (iter == _items.begin() ) ? _items.end() - 1 : std::prev(iter); (*iter)->select(); } else { selectFirst(); } }
void AMenu::selectNext() { auto iter = findSelectedItem(); if ( iter != _items.end() ) { (*iter)->deselect(); iter = ( iter == _items.end() - 1 ) ? _items.begin() : std::next(iter); (*iter)->select(); } else { selectFirst(); } }
AMenuItemPtr AMenu::getSelectedItem() { auto iter = findSelectedItem(); return iter != _items.end() ? *iter : AMenuItemPtr(); }