Expand description
llimphi-widget-timeline — barra de progreso/scrub clickeable.
Pattern análogo a llimphi-widget-slider/-progress: el widget no
mantiene estado. El caller guarda la posición actual en su Model,
le pasa la fracción de avance (0.0..=1.0 = posición/duración) y un
handler Fn(f32) -> Option<Msg> que recibe la fracción donde el
usuario clickeó (scrub absoluto, estilo VLC). El widget no sabe de
tiempo ni de duración: sólo pinta el avance y reporta dónde se clickeó
como fracción del ancho de la barra (on_click_at). Quien mapea esa
fracción a un seek concreto es la app.
[ ██████████▏░░░░░░░░░░░░ ]
recorrido playhead restoUso típico (reproductor):
ⓘ
let frac = pos.as_secs_f64() / dur.as_secs_f64();
timeline_view(frac as f32, &TimelinePalette::default(), |f| {
Some(Msg::Command(MediaCommand::SeekTo { fraction: f }))
})Structs§
- Timeline
Palette - Paleta + dimensiones del timeline. Las medidas viajan acá (igual que
SliderPalette) porque definen cómo se ve la barra — el caller no toca elStyledirectamente.
Functions§
- timeline_
view - Compone una barra de progreso clickeable.
- timeline_
view_ marked - Igual que
timeline_viewpero pinta además unas marcas (bookmarks) en las fraccionesmarks(0.0..=1.0): finas barras verticales con el colorpalette.mark, bajo el playhead. Las fracciones fuera de rango se ignoran. El resto del comportamiento (recorrido, playhead, click-to-seek) es idéntico —timeline_viewes este conmarksvacío.