I built an app that uses nested menus, but they only work the first try, then fail to pop.
Menus that exit by the X or by calling D4D_EscapeScreen(), as in the example, work fine.
When a menu calls another screen with a menu, and when all exits follow the X or D4D_EscapeScreen(), they also work fine.
But if a nested menu directly calls the main screen with D4D_ActivateScreen (D4D_TRUE), the next use of the menus fails to work.
I tried to unwind the history by calling D4D_EscapeScreen() twice, and this works. For example, if in the callback of the second menu:
D4D_EscapeScreen();
D4D_EscapeScreen();
D4D_ActivateScreen(..., D4D_TRUE)
However, this causes some screen flicker as the previous menu paints.
Is there a proper way to leave a nested menu that does not break the following use?
Solved! Go to Solution.
Hi,
there is two possible way how to do it.
First one is: Create all menu screen with "replacescreen in history" parameter set to D4D_TRUE when you call the D4D_ActivateScreen. And each D4D_EscapeScreen jump to screen from where you call the first menu screen.
Or new eGUI 3.00 brings new function D4D_EscapeToBaseScreen() and this function clears complete screen history and activate automatically the first one screen.
To get the release candidate of new eGUI send me the private message with description of your project and email.
Best regards
Gargy
Hi,
there is two possible way how to do it.
First one is: Create all menu screen with "replacescreen in history" parameter set to D4D_TRUE when you call the D4D_ActivateScreen. And each D4D_EscapeScreen jump to screen from where you call the first menu screen.
Or new eGUI 3.00 brings new function D4D_EscapeToBaseScreen() and this function clears complete screen history and activate automatically the first one screen.
To get the release candidate of new eGUI send me the private message with description of your project and email.
Best regards
Gargy