My main concept was to assembling each line of screen individually and put them in the screen line by line.
I put each menu items (and any other screen element)in a c-style array first and pass both of the content and the lenght of the menu item to the function that arranges in the desired pattern ad prints it.
My problem is that this strategy led to a (very)hard-to manage parameter list of function and a long(long) list of variable init section. And all of this would be much longer when I wanted to create submenus too.