Создание меню на 2-х кнопках с помощью библиотеки MenuSystem
- Войдите на сайт для отправки комментариев
Организую меню настроек всего на 2-х кнопках с помощью библиотеки MenuSystem
Вот как происходит управление меню стандартно в примерах библиотеки с использованием 4-х кнопок:
switch (inChar) { case 'w': // Предыдущий пункт ms.prev(); // Меняем значение текущего пункта на предыдущий displayMenu(); // Выводим на экран break; case 's': // Следующий пункт ms.next(); // Меняем значение текущего пункта на Следующий displayMenu(); // Выводим на экран break; case 'a': // Родительский пункт ms.back(); // Меняем значение текущего пункта на Родительский displayMenu(); // Выводим на экран break; case 'd': // Выбор текущего пункта ms.select(); // Переходим к текущему пункту или подменю, если оно есть !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! displayMenu(); // Выводим на экран break;
Я использую всего две кнопки, на которые забито ms.next() для перебора пунктов, и ms.select(); для выбора.
Для возврата на уровень вверх, добавил в каждый уровень пункт BACK и при его выборе выполняю функцию:
void on_item_back_selected(MenuItem* p_menu_item) //функция вызываемая при выборе пункта BACK { ms.back(); //выполняется поднятие на уровень вверх в меню }
Теперь нужно организовать проход функцией ms.next() по кругу, т. е. что бы после последнего пункта текущего уровня меню, появлялся первый. Сейчас на последнем пункте перебор останавливается, и дальнейшие нажатия игнорируются. Примеры пересмотрел вроде ни чего подобного не нашел. Возможно ли так сделать без корректировки самой библиотеки?
Посмотрел что в библиотеке скачаной через "Менеджер библиотек", в файле keywords.txt указаны команды:
При скачивании библиотеки с GitHub, скетч не компилируется, ругается уже на первое упоминание: MenuSystem ms;
В общем вроде бы решил через изменения в библиотеке:
Буду благодарен, если подскажите как все же запустить смену пунктов меню по кругу из скетча.
Вот то loop это булевая величина она или true или false. Попробуйте написать ms.next(1) глядишь пойдет...
Заработало! Спасибо.