move menu selection forward or backward and skip empty items that are not selectable
| 1120 | |
| 1121 | // move menu selection forward or backward and skip empty items that are not selectable |
| 1122 | int movemenuselection(int currentmenusel, int direction) |
| 1123 | { |
| 1124 | direction = clamp(direction, -1, 1); |
| 1125 | int newmenusel = currentmenusel; |
| 1126 | bool selectable = false; |
| 1127 | for(int i = 0; i < curmenu->items.length(); i++) |
| 1128 | { |
| 1129 | newmenusel += direction; |
| 1130 | newmenusel = normalizemenuselection(newmenusel, curmenu->items.length()); |
| 1131 | selectable = curmenu->items.inrange(newmenusel) && curmenu->items[newmenusel]->gettext() && curmenu->items[newmenusel]->gettext()[0] != '\0'; |
| 1132 | if(selectable) break; |
| 1133 | } |
| 1134 | |
| 1135 | if(selectable) return newmenusel; |
| 1136 | else return currentmenusel; |
| 1137 | } |
| 1138 | |
| 1139 | bool menukey(int code, bool isdown, SDL_Keymod mod) |
| 1140 | { |
no test coverage detected