Move the selection cursor on a settings screen.
(self, direction)
| 739 | return SETTINGS_MAP.get(screen, []) |
| 740 | |
| 741 | def _settings_move_selection(self, direction): |
| 742 | """Move the selection cursor on a settings screen.""" |
| 743 | screen = self.current_screen |
| 744 | settings = self._get_settings_for_screen(screen) |
| 745 | if not settings: |
| 746 | return |
| 747 | n = len(settings) |
| 748 | current = self._settings_selected.get(screen, 0) |
| 749 | new_idx = (current + direction) % n |
| 750 | self._settings_selected[screen] = new_idx |
| 751 | |
| 752 | # Keep scroll window in sync so selected item is always visible |
| 753 | ROW_H = 26 |
| 754 | header_h = 26 |
| 755 | visible = (self.height - header_h) // ROW_H |
| 756 | scroll = self._settings_scroll.get(screen, 0) |
| 757 | if new_idx < scroll: |
| 758 | scroll = new_idx |
| 759 | elif new_idx >= scroll + visible: |
| 760 | scroll = new_idx - visible + 1 |
| 761 | self._settings_scroll[screen] = max(0, scroll) |
| 762 | |
| 763 | def _settings_activate(self): |
| 764 | """Edit the currently selected setting on a settings screen.""" |
no test coverage detected