Right now, every widget created is quite monolithic, you cannot easily put them together to create a more complex widget. We need to change that.
Concepts needed:
a general visual container type (not just the screen). I think vertical list and horizontal list would be a start. They could be nested.
abstract away standard ncurses functions: mvwprintw, mvwaddch, box, werase, wattron, wattroff. The goal is to handle nested geometries -- widgets do not need to worry about its place in the larger canvas.
formalize navigation rule to ensure consistent experience no matter how a widget is structured.
tab/shift-tab navigation rule
arrow keys navigation rule (how to enable it? special Function key to switch mode?)
canvas-shifting rule
The branch tf/composability would be where I'd experiment on such concepts.
Right now, every widget created is quite monolithic, you cannot easily put them together to create a more complex widget. We need to change that.
Concepts needed:
mvwprintw
,mvwaddch
,box
,werase
,wattron
,wattroff
. The goal is to handle nested geometries -- widgets do not need to worry about its place in the larger canvas.The branch
tf/composability
would be where I'd experiment on such concepts.