public override void Redraw()
{
for (int l = 0; l < h; l++){
Move (y + l, x);
int item = l + top;
if (item >= items){
Curses.attrset (ColorNormal);
for (int c = 0; c < w; c++)
Curses.addch (' ');
continue;
}
bool marked = allow_mark ? provider.IsMarked (item) : false;
if (item == selected){
if (marked)
Curses.attrset (ColorHotNormal);
else
Curses.attrset (ColorFocus);
} else {
if (marked)
Curses.attrset (ColorHotFocus);
else
Curses.attrset (ColorNormal);
}
provider.Render (y + l, x, w, item);
}
PositionCursor ();
}