This commit is contained in:
2022-02-21 15:35:37 +01:00
parent f21e49c520
commit 0ad907f74a
33 changed files with 788 additions and 815 deletions

View File

@@ -8,120 +8,118 @@ import util.Vec.Vec2;
import lib.TermWriteable;
class WindowContext implements TermWriteable {
private final writer:VirtualTermWriter;
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 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>;
@: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 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>;
public function new(writer:VirtualTermWriter) {
this.writer = writer;
this.onResize = writer.onResize;
public 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.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.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.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();
public var onResize(default, null):Signal<Vec2<Int>>;
}
@:allow(kernel.ui)
private function setTarget(target:TermWriteable) {
writer.setTarget(target);
}
public var onResize(default, null):Signal<Vec2<Int>>;
@:allow(kernel.ui)
private function enable() {
writer.enable();
}
@:allow(kernel.ui)
private function setTarget(target: TermWriteable) {
writer.setTarget(target);
}
@:allow(kernel.ui)
private function disable() {
writer.disable();
}
@:allow(kernel.ui)
private function enable() {
writer.enable();
}
@:allow(kernel.ui)
private function disable() {
writer.disable();
}
@:allow(kernel.ui)
private function isEnabled() {
return writer.isEnabled();
}
@:allow(kernel.ui)
private function isEnabled() {
return writer.isEnabled();
}
public function write(text:String) {
writer.write(text);
}
writer.write(text);
}
public function scroll(y:Int) {
writer.scroll(y);
}
writer.scroll(y);
}
public function getCursorPos():Vec2<Int> {
return writer.getCursorPos();
}
public function setCursorPos(x:Int, y:Int) {
writer.setCursorPos(x,y);
}
writer.setCursorPos(x, y);
}
public function getCursorBlink():Bool {
return writer.getCursorBlink();
}
public function setCursorBlink(blink:Bool) {
writer.setCursorBlink(blink);
}
writer.setCursorBlink(blink);
}
public function getSize():Vec2<Int> {
return writer.getSize();
}
public function clear() {
writer.clear();
}
writer.clear();
}
public function clearLine() {
writer.clearLine();
}
writer.clearLine();
}
public function getTextColor():Color {
return writer.getTextColor();
}
public function setTextColor(colour:Color) {
writer.setTextColor(colour);
}
writer.setTextColor(colour);
}
public function getBackgroundColor():Color {
return writer.getBackgroundColor();
}
public function setBackgroundColor(color:Color) {
writer.setBackgroundColor(color);
}
writer.setBackgroundColor(color);
}
public function isColor():Bool {
return writer.isColor();