package lib.ui.rendere; class List implements IUIEventDelegate { private final onElementClick:NullVoid>; public function new(?onElementClick:Int->Void) { this.onElementClick = onElementClick; } public function render(list:Array):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); } }