2024-09-18 03:38:49 -05:00
|
|
|
stn := @use("../../stn/src/lib.hb");
|
2024-10-15 20:30:24 -05:00
|
|
|
.{string, memory, buffer, log} := stn
|
|
|
|
|
|
|
|
render := @use("../../../libraries/render/src/lib.hb")
|
2024-09-13 16:40:05 -05:00
|
|
|
|
2024-09-18 03:38:49 -05:00
|
|
|
input := @use("../../intouch/src/lib.hb")
|
2024-09-17 19:26:37 -05:00
|
|
|
|
2024-10-13 22:34:33 -05:00
|
|
|
widgets := @use("widgets.hb")
|
|
|
|
|
2024-07-20 12:54:58 -05:00
|
|
|
WindowID := struct {
|
|
|
|
host_id: int,
|
|
|
|
window_id: int,
|
|
|
|
}
|
|
|
|
|
2024-10-13 22:34:33 -05:00
|
|
|
VoidWindowID := WindowID.(0, 0)
|
|
|
|
|
2024-10-15 20:30:24 -05:00
|
|
|
create_window := fn(channel: int): ^render.Surface {
|
2024-09-13 16:40:05 -05:00
|
|
|
// 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")
|
2024-10-15 20:30:24 -05:00
|
|
|
mem_buf := memory.request_page(1)
|
2024-09-13 16:40:05 -05:00
|
|
|
|
|
|
|
if windowing_system_buffer == 0 {
|
2024-10-15 20:30:24 -05:00
|
|
|
return 0
|
2024-09-13 16:40:05 -05:00
|
|
|
} else {
|
2024-10-23 15:22:28 -05:00
|
|
|
// ! bad able, stop using string messages :ragey:
|
2024-10-15 20:30:24 -05:00
|
|
|
// 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
|
|
|
|
|
2024-10-23 15:22:28 -05:00
|
|
|
ret := buffer.recv([u8; 4096], windowing_system_buffer, mem_buf)
|
2024-10-15 20:30:24 -05:00
|
|
|
if ret == 0 {
|
|
|
|
log.info("No messages\0")
|
|
|
|
}
|
|
|
|
|
|
|
|
if *mem_buf == 0 {
|
|
|
|
log.info("No messages\0")
|
|
|
|
}
|
2024-10-13 22:34:33 -05:00
|
|
|
|
2024-10-15 20:30:24 -05:00
|
|
|
return 0
|
2024-09-13 16:40:05 -05:00
|
|
|
}
|
2024-07-21 06:47:25 -05:00
|
|
|
}
|