pub type ScaleFn<Msg> = Arc<dyn Fn(GesturePhase, f32, f32, f32) -> Option<Msg> + Send + Sync>;Expand description
Handler de gesto de escala (pinch-to-zoom). Recibe (phase, factor, focal_x, focal_y):
factor: cambio de escala incremental y multiplicativo desde el evento anterior —1.0= sin cambio,>1.0agranda (zoom in),<1.0achica (zoom out). El caller acumula conmi_zoom *= factory, si quiere, lo clampa a su rango. EnBegin/Endel factor es1.0.focal_x/focal_y: punto focal del gesto relativo a la esquina superior-izquierda del rect del nodo (mismo espacio que los handlers*_at). Es el punto que debe quedar fijo bajo el cursor al hacer zoom — el caller lo usa para zoomear “hacia el cursor” en vez de hacia el centro. En Ctrl+rueda es la posición del cursor; en trackpad, idem.
Devolver Some(Msg) dispara una transición; None ignora el evento. El
runtime lo resuelve con hit_test_scale: el nodo más al frente bajo el
cursor que declare un on_scale consume el gesto. Es la base del zoom de
los canvases (pineal/cosmos/nakui).
Aliased Type§
pub struct ScaleFn<Msg> { /* private fields */ }