I finally managed to get vertical scroll kind of working playing with vertical menu size and set_format.
There is still an issues:
it seems that window is required to be at least N cols wide, where N is the length of the largest string between all NCursesMenuItems.
I'd expect NCursesMenuItems to be automatically truncated given window dimension, eg:
"mvwprintw(WIN, 1, 1, "%.*s", WIN.width(), str);"
Instead it seems i've got to truncate inputted NCursesMenuItems myself and then pass it to menu.
Is this correct?