1515
1616MenuManager menuMgr;
1717
18+ const SubMenuInfo TCGLB_ROOT_SUB_INFO PROGMEM = { " ROOT" , 0 , (uint16_t )-1 , 1 , nullptr };
19+ SubMenuItem MenuManager::ROOT (&TCGLB_ROOT_SUB_INFO, nullptr );
20+
1821class Digital4WayPassThruListener : public SwitchListener {
1922private:
2023 pinid_t backPin = -1 , nextPin = -1 ;
@@ -47,7 +50,7 @@ class Digital4WayPassThruListener : public SwitchListener {
4750void MenuManager::initFor4WayJoystick (MenuRenderer* renderer, MenuItem* root, pinid_t downPin, pinid_t upPin, pinid_t leftPin,
4851 pinid_t rightPin, pinid_t okPin, int speed) {
4952 this ->renderer = renderer;
50- navigator. setRootItem (root);
53+ setRootItem (root);
5154 fourWayPassThru.init (leftPin, rightPin);
5255
5356 if (okPin == 0xffU ) {
@@ -62,14 +65,14 @@ void MenuManager::initFor4WayJoystick(MenuRenderer* renderer, MenuItem* root, pi
6265
6366void MenuManager::initForTwoButton (MenuRenderer *r, MenuItem *root, pinid_t upPin, pinid_t downPin) {
6467 this ->renderer = r;
65- navigator. setRootItem (root);
68+ setRootItem (root);
6669 switches.setEncoder (new TwoButtonSwitchEncoder (upPin, downPin, [](int v) { menuMgr.valueChanged (v); }));
6770 renderer->initialise ();
6871}
6972
7073void MenuManager::initForUpDownOk (MenuRenderer* renderer, MenuItem* root, pinid_t pinDown, pinid_t pinUp, pinid_t pinOk, int speed) {
7174 this ->renderer = renderer;
72- navigator. setRootItem (root);
75+ setRootItem (root);
7376
7477 switches.addSwitch (pinOk, nullptr );
7578 switches.onRelease (pinOk, [](pinid_t /* key*/ , bool held) { menuMgr.onMenuSelect (held); });
@@ -79,7 +82,7 @@ void MenuManager::initForUpDownOk(MenuRenderer* renderer, MenuItem* root, pinid_
7982
8083void MenuManager::initForEncoder (MenuRenderer* renderer, MenuItem* root, pinid_t encoderPinA, pinid_t encoderPinB, pinid_t encoderButton, EncoderType type) {
8184 this ->renderer = renderer;
82- navigator. setRootItem (root);
85+ setRootItem (root);
8386
8487 switches.addSwitch (encoderButton, nullptr );
8588 switches.onRelease (encoderButton, [](pinid_t /* key*/ , bool held) { menuMgr.onMenuSelect (held); });
@@ -130,7 +133,7 @@ void MenuManager::performDirectionMove(bool dirIsBack) {
130133
131134void MenuManager::initWithoutInput (MenuRenderer* renderer, MenuItem* root) {
132135 this ->renderer = renderer;
133- navigator. setRootItem (root);
136+ setRootItem (root);
134137 renderer->initialise ();
135138}
136139
@@ -475,7 +478,7 @@ void MenuManager::resetMenu(bool completeReset) {
475478
476479 MenuItem* currentActive;
477480 if (completeReset) {
478- navigator. setRootItem (navigator.getRoot ());
481+ setRootItem (navigator.getRoot ());
479482 currentActive = nullptr ;
480483 } else {
481484 currentActive = navigator.popNavigationGetActive ();
@@ -527,6 +530,11 @@ MenuItem *MenuManager::findCurrentActive() {
527530 return bmr->getMenuItemAtIndex (getCurrentMenu (), idx);
528531}
529532
533+ void MenuManager::setRootItem (MenuItem *pItem) {
534+ ROOT.setChild (pItem);
535+ navigator.setRootItem (pItem);
536+ }
537+
530538void CurrentEditorRenderingHints::changeEditingParams (CurrentEditorRenderingHints::EditorRenderingType ty, int startOffset, int endOffset) {
531539 if (renderingType == EDITOR_OVERRIDE_LOCK) return ;
532540 renderingType = ty;
0 commit comments