Mouse updates

This commit is contained in:
Able 2024-11-14 18:33:29 -06:00
parent d5f4ce18a3
commit b0f6aa53bd

View file

@ -2,13 +2,33 @@ sunset := @use("../../../libraries/sunset_proto/src/lib.hb")
render := @use("../../../libraries/render/src/lib.hb") render := @use("../../../libraries/render/src/lib.hb")
intouch := @use("../../../libraries/intouch/src/lib.hb") intouch := @use("../../../libraries/intouch/src/lib.hb")
main := fn(): void { horizon_api := @use("../../../libraries/horizon_api/src/lib.hb");
screen := render.init(true) .{new_label, render_label_to_surface, set_label_text} := horizon_api.widgets.label
stn := @use("../../../libraries/stn/src/lib.hb");
.{Vec2} := stn.math
psf := @embed("../../../assets/consolefonts/tamsyn/10x20r.psf")
img := @embed("../../../assets/wallpaper.qoi")
main := fn(): int {
sunset.server.start() sunset.server.start()
screen := render.init(true)
render.clear(screen, render.black) render.clear(screen, render.black)
mouse_x := 0 font := @unwrap(render.text.font_from_psf2(@bitcast(&psf), false))
mouse_y := 0
wallpaper := render.image.from(@bitcast(&img))
if wallpaper == null {
// stn.panic("Wallpaper not loaded\0")
return 1
}
mouse_x := 100
mouse_y := 100
text_label := new_label("Hi\0")
loop { loop {
mouse_event := intouch.recieve_mouse_event() mouse_event := intouch.recieve_mouse_event()
@ -38,26 +58,33 @@ main := fn(): void {
mouse_y -= change_y mouse_y -= change_y
if mouse_event.left { if mouse_event.left {
// set_label_text(text_label, "LEFT CLICK\0") set_label_text(text_label, "LEFT CLICK\0")
} }
if mouse_event.middle { if mouse_event.middle {
// set_label_text(text_label, "MIDDLE CLICK\0") set_label_text(text_label, "MIDDLE CLICK\0")
} }
if mouse_event.right { if mouse_event.right {
// set_label_text(text_label, "RIGHT CLICK\0") set_label_text(text_label, "RIGHT CLICK\0")
} }
} }
{ {
// render.clear(screen, render.black) render.clear(screen, render.black)
render.put_surface(screen, wallpaper, .(0, 0), false)
render.put_rect(screen, .(0, 0), .(screen.width - 1, screen.height - 1), render.white)
} }
if sunset.server.incoming() { if sunset.server.incoming() {
// render.clear(screen, render.black)
//
sunset.server.collect_frames() sunset.server.collect_frames()
sunset.server.render_clients(screen) sunset.server.render_clients(screen)
} }
{
pos := Vec2(uint).(1, screen.height - 21)
render_label_to_surface(screen, text_label, font, pos)
render.put_rect(screen, .(0, screen.height - 21), .(screen.width - 1, 20), render.white)
}
// Mouse cursor // Mouse cursor
{ {
render.put_filled_rect(screen, .(mouse_x, mouse_y), .(20, 20), render.black) render.put_filled_rect(screen, .(mouse_x, mouse_y), .(20, 20), render.black)
@ -66,4 +93,6 @@ main := fn(): void {
render.sync(screen) render.sync(screen)
} }
return 0
} }