39 lines
799 B
Haxe

package lib.ui.rendere;
class List implements IUIEventDelegate {
private final onElementClick:Null<Int->Void>;
public function new(?onElementClick:Int->Void) {
this.onElementClick = onElementClick;
}
public function render(list:Array<String>):Canvas {
var canvas = new Canvas();
for (line in 0...list.length) {
for (char in 0...list[line].length) {
var c = list[line].charAt(char);
canvas.set({x: char, y: line}, {
char: c,
textColor: Color.White,
bg: Color.Black,
});
}
}
return canvas;
}
public function getEventHandlers():UIEvents {
return {
onClick: handleClick
};
}
private function handleClick(e:{button:kernel.ButtonType, pos:Pos}):Void {
if (this.onElementClick == null) {
return;
}
this.onElementClick(e.pos.y);
}
}