From 0559fb9365b6f618fa75412b894622d71a8dd910 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Thu, 25 Apr 2024 10:49:43 +0200 Subject: [PATCH] dom: first draft for window setTimeout --- src/html/window.zig | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/html/window.zig b/src/html/window.zig index 5a34ae06..900e5ef5 100644 --- a/src/html/window.zig +++ b/src/html/window.zig @@ -19,6 +19,10 @@ const std = @import("std"); const parser = @import("netsurf"); +const jsruntime = @import("jsruntime"); +const Callback = jsruntime.Callback; +const CallbackArg = jsruntime.CallbackArg; +const Loop = jsruntime.Loop; const EventTarget = @import("../dom/event_target.zig").EventTarget; @@ -82,4 +86,16 @@ pub const Window = struct { if (self.storageShelf == null) return parser.DOMError.NotSupported; return &self.storageShelf.?.bucket.session; } + + // TODO handle callback arguments. + pub fn _setTimeout(_: *Window, loop: *Loop, cbk: Callback, delay: ?u32) !u32 { + const ddelay: u63 = delay orelse 0; + loop.timeout(ddelay * std.time.ns_per_ms, cbk); + // TODO handle timeout ID + return 1; + } + + pub fn _clearTimeout(_: *Window, _: *Loop, id: u32) !void { + _ = id; + } };