Multi-function interfaces?

Sorry if this is a simple question. But I'm trying to figure out how to design menu based interfaces within the Ard using a 20x4 LCD. While I have the LCD working fine, and can send data to/from the unit, I'm having trouble in figuring out how to "switch" between screens.

Essentially I have 4 function buttons. 1 for an "increase some variable", 1 for a "decrease some variable" functions, one for 'menu or select' and another.. for arbitrary functions I haven't decided on yet.

What I'd like, is to have an operating screen that displays whatever information I choose -- and this part I have already. When user pushes the Menu button, menu appears. Use the up/down to navigate the menu, push 'menu' again and you enter into the settings for that item. up/down again selects various changeable values, 'menu' again and you can edit the value. 'menu' exits the edit-value.

While I'm passable @ C (I'm better in PHP or TCL/Tk) I'm not quite sure how to design a program structure that this kind of interface will work in while in the loop().

anyone have any suggestions or skeleton ideas?