39 lines
799 B
Haxe
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);
|
|
}
|
|
}
|