improved reactive ui and events

This commit is contained in:
2022-03-04 13:28:52 +01:00
parent 043d431e94
commit 46f03fbfe4
6 changed files with 128 additions and 57 deletions

View File

@@ -8,48 +8,51 @@ class WindowManager {
Depends on: KernelEvents, Peripheral
**/
public static var instance:WindowManager;
private var currentMainContext:WindowContext;
private final allContexts:Array<WindowContext> = new Array();
private final outputMap:Map<String, WindowContext> = new Map();
@:allow(kernel.Init)
private function new() {
KernelEvents.instance.onKey.handle(params -> {
if (currentMainContext != null) {
currentMainContext.keyTrigger.trigger(params);
currentMainContext.onKeyTrigger.trigger(params);
}
});
KernelEvents.instance.onKeyUp.handle(keyCode -> {
if (currentMainContext != null) {
currentMainContext.keyUpTrigger.trigger(keyCode);
currentMainContext.onKeyUpTrigger.trigger(keyCode);
}
});
KernelEvents.instance.onMouseClick.handle(params -> {
if (currentMainContext != null) {
currentMainContext.clickTrigger.trigger(params);
currentMainContext.onClickTrigger.trigger(params);
}
});
KernelEvents.instance.onMouseDrag.handle(params -> {
if (currentMainContext != null) {
currentMainContext.mouseDragTrigger.trigger(params);
currentMainContext.onMouseDragTrigger.trigger(params);
}
});
KernelEvents.instance.onMouseScroll.handle(params -> {
if (currentMainContext != null) {
currentMainContext.mouseScrollTrigger.trigger(params);
currentMainContext.onMouseScrollTrigger.trigger(params);
}
});
KernelEvents.instance.onMouseUp.handle(params -> {
if (currentMainContext != null) {
currentMainContext.mouseUpTrigger.trigger(params);
}
// if (currentMainContext != null) {
currentMainContext.onMouseUpTrigger.trigger(params);
// }
});
KernelEvents.instance.onPaste.handle(text -> {
if (currentMainContext != null) {
currentMainContext.pasteTrigger.trigger(text);
currentMainContext.onPasteTrigger.trigger(text);
}
});
@@ -58,10 +61,6 @@ class WindowManager {
});
}
private var currentMainContext:WindowContext;
private final allContexts:Array<WindowContext> = new Array();
private final outputMap:Map<String, WindowContext> = new Map();
public function createNewContext():WindowContext {
var newContext = new WindowContext(new VirtualTermWriter());