About LCD with buttons and menus

Hi, I need some advice about this.

I want to program the follow: a 20x4 LCD with 7 buttons. I have 7 menus, each menu has 5 submenus and a cursor selects the line that I need to change (variables). Two buttons are up and down (if I hold, the variable increments/decrement faster), another button changes de cursor position, another select the config menu (if I hold select advanced config)... Who is the best way that I can program this?

Structs? Array pointers to functions? One struct that holds all menus? Global variables? One function for each submenu? It seems more complex. Need some advice to start point.

Thanks in advance!

The variables are of different types (int, float, boolean...). But some menus share some variables. Do you speak about struct right?

any help please?