add compass rose
This commit is contained in:
parent
7543e775e5
commit
a47026f5d3
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user