add compass rose

This commit is contained in:
Daniel Barlow 2025-06-10 13:51:10 +01:00
parent 7543e775e5
commit a47026f5d3

View File

@ -339,6 +339,7 @@ label.readout {
(string.format "%.1f km/h" (* app-state.speed 3.6)))
:osm (: (widget:get_window) :invalidate_rect nil)
:arrow (: (widget:get_window) :invalidate_rect nil)
:rose (: (widget:get_window) :invalidate_rect nil)
:time (widget:set_label
(hhmmss (+ utc-offset app-state.time-of-day)))
))))
@ -378,6 +379,48 @@ label.readout {
true)
}))))
(fn deg->rad [degrees]
(* math.pi (/ degrees 180)))
(fn rose []
(let [height 60]
(register-widget
:rose
(Gtk.Label {
:halign Gtk.Align.START
:valign Gtk.Align.START
:width height :height height
:on_draw
(fn [self g]
(g:save)
(g:set_line_width 1)
(g:set_source_rgb 0.4 0.0 0.1)
(g:arc (// height 2) (// height 2) 15
0 (* 2 math.pi))
(g:stroke)
(g:translate (// height 2) (// height 2))
(g:rotate (- (deg->rad app-state.orientation.actual)))
(g:translate (// height -2) (// height -2))
(g:set_line_width 2)
(g:move_to (// height 2) height)
(g:line_to (// height 2) 0)
(g:move_to 10 20)
(g:line_to (// height 2) 0)
(g:line_to (- height 10) 20)
(g:stroke)
(g:set_source_rgb 1 1 0)
(g:move_to (// height -2) (// height -2))
(g:text_path "N")
(g:fill)
(g:restore)
true)
}))))
(local socket-path (or (. arg 1) "/var/run/gnss-share.sock"))
@ -434,6 +477,7 @@ label.readout {
(: :add (osm-widget))
(: :add_overlay (readouts))
(: :add_overlay (arrow))
(: :add_overlay (rose))
))
(window:show_all)