void DrawMenu(int idx, int col, int line)
{
int max = 0;
var menu = Menus [idx];
if (menu.Children == null)
return;
foreach (var m in menu.Children){
if (m == null)
continue;
if (m.Width > max)
max = m.Width;
}
max += 4;
DrawFrame (col + x, line, max, menu.Children.Length + 2, true);
for (int i = 0; i < menu.Children.Length; i++){
var item = menu.Children [i];
Move (line + 1 + i, col + 1);
Curses.attrset (item == null ? Application.ColorFocus : i == menu.Current ? Application.ColorMenuSelected : Application.ColorMenu);
for (int p = 0; p < max - 2; p++)
Curses.addch (item == null ? Curses.ACS_HLINE : ' ');
if (item == null)
continue;
Move (line + 1 + i, col + 2);
DrawHotString (item.Title,
i == menu.Current ? Application.ColorMenuHotSelected : Application.ColorMenuHot,
i == menu.Current ? Application.ColorMenuSelected : Application.ColorMenu);
// The help string
var l = item.Help.Length;
Move (line + 1 + i, col + x + max - l - 2);
Curses.addstr (item.Help);
}
}