feat(tahuantinsuyu): coord labels con minutos + control en panel
- Precisión a minutos: `format_coord_compact` ahora emite
"DD°MM'{signo}" (ej. "14°56'♈"). Trabaja en minutos enteros para
evitar drift de floats acumulado, hace rollover correcto a través
de bordes de signo (29°60' → 0° del siguiente) y wrap-around de
ángulos negativos. 5 tests verdes:
* 0° → "0°00'♈"
* 14.9333° → "14°56'♈"
* 29.9995° → "0°00'♉" (carry-over)
* 270° → "0°00'♑"
* -10° → "20°00'♓" (wrap)
- Toggle en panel: nuevo `Control::Toggle` "Coordenadas (grado°min')"
en NatalModule, default ON, hotkey C. Sincronización bidireccional:
panel → canvas via `set_show_coords` (idempotente, no emite),
canvas → panel via nuevo evento `CanvasEvent::ShowCoordsChanged`
que el shell traduce a `panel.set_toggle("natal","show_coords",…)`.
Sin loop porque el setter no emite.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -222,6 +222,12 @@ pub mod natal {
|
||||
default: true,
|
||||
hotkey: Some("P".into()),
|
||||
},
|
||||
Control::Toggle {
|
||||
key: "show_coords".into(),
|
||||
label: "Coordenadas (grado°min')".into(),
|
||||
default: true,
|
||||
hotkey: Some("C".into()),
|
||||
},
|
||||
// Filtros de aspectos: cambian QUÉ se computa, no QUÉ
|
||||
// se pinta del render. Recompose al togglear.
|
||||
Control::Toggle {
|
||||
|
||||
Reference in New Issue
Block a user