MenuBackend library or other proposals

Hi all!

Merry Christmas and happy new Year 2014!

After some time, I post a new topic again. This time I'm striking with the "MenuBackend library". In the last days I've been tracking its older post:

http://forum.arduino.cc/index.php/topic,38053.0.html

but it seems a little bit updated. Anyway I have a problem whenever my application starts, because it does never go to the root MenuItem until I force my code to go there. Here is a piece of my code:

//beneath is list of menu items needed to build the menu
MenuItem miStart = MenuItem("Start");

MenuItem miStatus = MenuItem("Status");
MenuItem miEvent1 = MenuItem("Event1");
MenuItem miEvent2 = MenuItem("Event2");
MenuItem miAlarms = MenuItem("Alarms");

MenuItem miMemory = MenuItem("Datalog");
MenuItem miUserTab = MenuItem("UserTable");
MenuItem miLogTab = MenuItem("LogTable");

MenuItem miDiagn = MenuItem("Diagnostic");
MenuItem miDigIn = MenuItem("DigIn");
MenuItem miDigOut = MenuItem("DigOut");
MenuItem miCOM1 = MenuItem("COM1");
MenuItem miCOM2 = MenuItem("COM2");

MenuItem miSetUp = MenuItem("SetUp");
MenuItem miRTC = MenuItem("RTC");
MenuItem miLang = MenuItem("Lang");

//this function builds the menu and connects the correct items together
void MenuSetup() {
  menu.getRoot().add(miStart);

  miStart.addRight(       miStatus       );
  miStatus.addRight(      miMemory       );
  miStatus.addLeft(       miStart        );
  miMemory.addRight(      miDiagn        );
  miMemory.addLeft(       miStatus       );
  miDiagn.addRight(       miSetUp        );
  miDiagn.addLeft(        miMemory       );
  miSetUp.addRight(       miStart        );
  miSetUp.addLeft(        miDiagn        );

  miStatus.addAfter(      miEvent1       );
  miEvent1.addAfter(      miEvent2       );
  miEvent1.addBefore(     miAlarms       );
  miEvent1.addRight(      miDiagn        );
  miEvent2.addAfter(      miAlarms       );
  miEvent2.addBefore(     miEvent1       );
  miEvent2.addRight(      miDiagn        );
  miAlarms.addAfter(      miEvent1       );
  miAlarms.addBefore(     miEvent2       );
  miAlarms.addRight(      miDiagn        );

  miMemory.addAfter(      miUserTab      );
  miUserTab.addAfter(     miLogTab       );
  miUserTab.addRight(     miDiagn        );
  miUserTab.addBefore(    miLogTab       );
  miLogTab.addRight(      miDiagn        );
  miLogTab.addBefore(     miUserTab      );
  miLogTab.addAfter(      miUserTab      );

  miDiagn.addAfter(       miDigIn        );
  miDigIn.addBefore(      miCOM2         );
  miDigIn.addAfter(       miDigOut       );
  miDigIn.addRight(       miSetUp        );
  miDigOut.addBefore(     miDigIn        );
  miDigOut.addAfter(      miCOM1         );
  miDigOut.addRight(      miSetUp        );
  miCOM1.addBefore(       miDigOut       );
  miCOM1.addAfter(        miCOM2         );
  miCOM1.addRight(        miSetUp        );
  miCOM2.addBefore(       miCOM1         );
  miCOM2.addAfter(        miDigIn        );
  miCOM2.addRight(        miSetUp        );

  miSetUp.addAfter(       miRTC          );
  miRTC.addRight(         miStart        );
  miRTC.addBefore(        miLang         );
  miRTC.addAfter(         miLang         );
  miLang.addRight(        miStart        );
  miLang.addBefore(       miRTC          );
  miLang.addAfter(        miRTC          );

}

I assume that the root item must be "miStart" item, but it doesn't seem so. :grin:

Regards,