stn := @use("../../stn/src/lib.hb"); .{string, memory, buffer, log} := stn render := @use("../../../libraries/render/src/lib.hb") input := @use("../../intouch/src/lib.hb") widgets := @use("widgets.hb") ui := @use("ui.hb") WindowID := struct { host_id: int, window_id: int, } VoidWindowID := WindowID.(0, 0) create_window := fn(channel: int): ^render.Surface { // get the horizon buffer // request a new window and provide the callback buffer // wait to recieve a message windowing_system_buffer := buffer.search("XHorizon\0") mem_buf := memory.request_page(1) if windowing_system_buffer == 0 { return @as(^render.Surface, idk) } else { // ! bad able, stop using string messages :ragey: // msg := "\{01}\0" // msg_length := 2 // @as(void, @eca(3, windowing_system_buffer, msg, msg_length)) x := 0 loop if x > 1000 break else x += 1 ret := buffer.recv([u8; 4096], windowing_system_buffer, mem_buf) if ret == null { log.info("No messages\0") } if *mem_buf == 0 { log.info("No messages\0") } return @as(^render.Surface, idk) } }