improved reactive ui and events
This commit is contained in:
@@ -13,42 +13,42 @@ import lib.TermWriteable;
|
||||
class WindowContext implements TermWriteable {
|
||||
private final writer:VirtualTermWriter;
|
||||
|
||||
public var clickSignal(default, null):Signal<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
public var keySignal(default, null):Signal<{keyCode:Int, isHeld:Bool}>;
|
||||
public var keyUpSignal(default, null):Signal<Int>;
|
||||
public var mouseDragSignal(default, null):Signal<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
public var mouseScrollSignal(default, null):Signal<{dir:Int, pos:Vec2<Int>}>;
|
||||
public var mouseUpSignal(default, null):Signal<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
public var pasteSignal(default, null):Signal<String>;
|
||||
public var onClick(default, null):Signal<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
public var onKey(default, null):Signal<{keyCode:Int, isHeld:Bool}>;
|
||||
public var onKeyUp(default, null):Signal<Int>;
|
||||
public var onMouseDrag(default, null):Signal<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
public var onMouseScroll(default, null):Signal<{dir:Int, pos:Vec2<Int>}>;
|
||||
public var onMouseUp(default, null):Signal<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
public var onPaste(default, null):Signal<String>;
|
||||
|
||||
@:allow(kernel.ui.WindowManager) private final clickTrigger:SignalTrigger<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final keyTrigger:SignalTrigger<{keyCode:Int, isHeld:Bool}>;
|
||||
@:allow(kernel.ui.WindowManager) private final keyUpTrigger:SignalTrigger<Int>;
|
||||
@:allow(kernel.ui.WindowManager) private final mouseDragTrigger:SignalTrigger<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final mouseScrollTrigger:SignalTrigger<{dir:Int, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final mouseUpTrigger:SignalTrigger<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final pasteTrigger:SignalTrigger<String>;
|
||||
@:allow(kernel.ui.WindowManager) private final onClickTrigger:SignalTrigger<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final onKeyTrigger:SignalTrigger<{keyCode:Int, isHeld:Bool}>;
|
||||
@:allow(kernel.ui.WindowManager) private final onKeyUpTrigger:SignalTrigger<Int>;
|
||||
@:allow(kernel.ui.WindowManager) private final onMouseDragTrigger:SignalTrigger<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final onMouseScrollTrigger:SignalTrigger<{dir:Int, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final onMouseUpTrigger:SignalTrigger<{button:ButtonType, pos:Vec2<Int>}>;
|
||||
@:allow(kernel.ui.WindowManager) private final onPasteTrigger:SignalTrigger<String>;
|
||||
|
||||
@:allow(kernel.ui.WindowManager)
|
||||
private function new(writer:VirtualTermWriter) {
|
||||
this.writer = writer;
|
||||
this.onResize = writer.onResize;
|
||||
|
||||
this.clickTrigger = Signal.trigger();
|
||||
this.keyTrigger = Signal.trigger();
|
||||
this.keyUpTrigger = Signal.trigger();
|
||||
this.mouseDragTrigger = Signal.trigger();
|
||||
this.mouseScrollTrigger = Signal.trigger();
|
||||
this.mouseUpTrigger = Signal.trigger();
|
||||
this.pasteTrigger = Signal.trigger();
|
||||
this.onClickTrigger = Signal.trigger();
|
||||
this.onKeyTrigger = Signal.trigger();
|
||||
this.onKeyUpTrigger = Signal.trigger();
|
||||
this.onMouseDragTrigger = Signal.trigger();
|
||||
this.onMouseScrollTrigger = Signal.trigger();
|
||||
this.onMouseUpTrigger = Signal.trigger();
|
||||
this.onPasteTrigger = Signal.trigger();
|
||||
|
||||
this.clickSignal = clickTrigger.asSignal();
|
||||
this.keySignal = keyTrigger.asSignal();
|
||||
this.keyUpSignal = keyUpTrigger.asSignal();
|
||||
this.mouseDragSignal = mouseDragTrigger.asSignal();
|
||||
this.mouseScrollSignal = mouseScrollTrigger.asSignal();
|
||||
this.mouseUpSignal = mouseUpTrigger.asSignal();
|
||||
this.pasteSignal = pasteTrigger.asSignal();
|
||||
this.onClick = onClickTrigger.asSignal();
|
||||
this.onKey = onKeyTrigger.asSignal();
|
||||
this.onKeyUp = onKeyUpTrigger.asSignal();
|
||||
this.onMouseDrag = onMouseDragTrigger.asSignal();
|
||||
this.onMouseScroll = onMouseScrollTrigger.asSignal();
|
||||
this.onMouseUp = onMouseUpTrigger.asSignal();
|
||||
this.onPaste = onPasteTrigger.asSignal();
|
||||
}
|
||||
|
||||
public var onResize(default, null):Signal<Vec2<Int>>;
|
||||
|
||||
Reference in New Issue
Block a user