pass events to ui element
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package lib.ui.reactive;
|
||||
|
||||
import kernel.Log;
|
||||
import kernel.ButtonType;
|
||||
import util.Observable;
|
||||
using tink.CoreApi;
|
||||
|
||||
@@ -7,17 +9,13 @@ import util.Color;
|
||||
import util.Vec.Vec2;
|
||||
import util.MathI;
|
||||
|
||||
class TextElement implements IElement {
|
||||
public var changed(default, null):Signal<Noise>;
|
||||
|
||||
private var changedTrigger:SignalTrigger<Noise>;
|
||||
|
||||
class TextElement extends UIElement {
|
||||
private final text:Observable<String>;
|
||||
private final bg:Color;
|
||||
private final fg:Color;
|
||||
|
||||
public function new(text:Observable<String>, ?background:Color = Black, ?textColor:Color = White) {
|
||||
setupTrigger();
|
||||
super();
|
||||
|
||||
this.text = text;
|
||||
this.bg = background;
|
||||
@@ -28,11 +26,6 @@ class TextElement implements IElement {
|
||||
});
|
||||
}
|
||||
|
||||
private function setupTrigger() {
|
||||
changedTrigger = Signal.trigger();
|
||||
changed = changedTrigger.asSignal();
|
||||
}
|
||||
|
||||
public function render(bounds:Vec2<Int>):Canvas {
|
||||
var rtn = new Canvas();
|
||||
|
||||
@@ -45,4 +38,8 @@ class TextElement implements IElement {
|
||||
|
||||
return rtn;
|
||||
}
|
||||
|
||||
public override function handleClickEvent(pos: Vec2<Int>,button: ButtonType):Void {
|
||||
Log.debug('Click: ${this.text.get()}');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user