Assuming that the main problem is not draw on LCD but something related to walking in menus , there is very preliminary menu handling code . i had to implement menu handling in one of my projects but it is not the first prio .
The code is very incomplete and not compiled withm lot of erros
Ignore statements with questionmark .
Idea is to design reconfigurable menu built during system startup with possiblity to add or remove menu items on fly . Menu functoinality is separated from LCD handling and other subsystems interrested in menu pressing . If any subsystem wishes to insert menu and monitor action (press) on it must subscribe new menu and own references in menu_PutMenu
menu_DelMenu is not compiicated but attention must be paid that user must not delete menu while there menu under focus is child of the parent menu being deleted . That will clear pointers and lead to malfucntion .
Incomplete functions are :
menu_DrawMenu , Record memory management , Keyboard input reading
The code is destined to use with Ucos .