This commit is contained in:
2026-03-03 16:10:38 +01:00
parent 35aae3b707
commit 5f0b7d3dc8
16 changed files with 766 additions and 334 deletions

View File

@@ -1,20 +1,11 @@
window._web_wire_evt_queue = [];
if (window.rkt_event_queue === undefined) { window.rkt_event_queue = []; }
window._web_wire_queue_worker = function() {
if (typeof web_ui_wire_handle_event === 'function') {
while (window._web_wire_evt_queue.length > 0) {
let evt = window._web_wire_evt_queue.shift();
web_ui_wire_handle_event(JSON.stringify(evt));
}
}
window.setTimeout(window._web_wire_queue_worker, 5);
window.rkt_put_evt = function(evt) {
window.rkt_event_queue.push(evt);
};
window.setTimeout(window._web_wire_queue_worker, 15);
window._web_wire_put_evt = function(evt) { window._web_wire_evt_queue.push(evt); };
window._web_wire_event_info = function(e, id, evt) {
window.rkt_event_info = function(e, id, evt) {
let obj = {};
if (e == 'input') {
obj['data'] = evt.data;
@@ -53,13 +44,7 @@ window._web_wire_event_info = function(e, id, evt) {
return obj;
};
window._web_wire_get_evts = function() {
let v = _web_wire_evt_queue;
_web_wire_evt_queue = [];
return JSON.stringify(v); // This needs no extra type info, as it is internally used only
};
window._web_wire_bind_evt_ids = function(win_nr, selector, event_kind) {
window.rkt_bind_evt_ids = function(win_nr, selector, event_kind) {
try {
let nodelist = document.querySelectorAll(selector);
if (nodelist === undefined || nodelist === null) {
@@ -75,8 +60,8 @@ window._web_wire_bind_evt_ids = function(win_nr, selector, event_kind) {
el.addEventListener(event_kind,
function(e) {
let obj = {evt: event_kind, id: el_id, selector: selector, window: win_nr,
js_evt: window._web_wire_event_info(event_kind, el_id, e) };
window._web_wire_put_evt(obj);
js_evt: window.rkt_event_info(event_kind, el_id, e) };
window.rkt_put_evt(obj);
}
);
let info = [ el_id, el_tag, el_type ];
@@ -89,35 +74,3 @@ window._web_wire_bind_evt_ids = function(win_nr, selector, event_kind) {
}
};
window._web_wire_resize_timeout = false;
window.addEventListener('resize', function() {
clearTimeout(window._web_wire_resize_timeout);
let f = function() {
let obj = { selector: 'global', evt: 'window-resize', h: window.outerWidth, w: window.outerHeight };
window._web_wire_put_evt(obj);
};
window._web_wire_resize_timeout = setTimeout(f, 250);
});
window._web_wire_x = window.screenX;
window._web_wire_y = window.screenY;
window._web_wire_move_interval = setInterval(function() {
let x = window.screenX;
let y = window.screenY;
if (x != window._web_wire_x || y != window._web_wire_y) {
window._web_wire_x = x;
window._web_wire_y = y;
let obj = { selector: 'global', evt: 'window-move', x: x, y: y };
window._web_wire_put_evt(obj);
}
}, 500);
document.addEventListener('readystatechange', event => {
// When window loaded ( external resources are loaded too- `css`,`src`, etc...)
if (event.target.readyState === "complete") {
let obj = { selector: 'global', evt: 'html-loaded' };
window._web_wire_put_evt(obj);
}
});