Skip to main content

Crate llimphi_widget_timeline

Crate llimphi_widget_timeline 

Source
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   resto

Uso 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§

TimelinePalette
Paleta + dimensiones del timeline. Las medidas viajan acá (igual que SliderPalette) porque definen cómo se ve la barra — el caller no toca el Style directamente.

Functions§

timeline_view
Compone una barra de progreso clickeable.
timeline_view_marked
Igual que timeline_view pero pinta además unas marcas (bookmarks) en las fracciones marks (0.0..=1.0): finas barras verticales con el color palette.mark, bajo el playhead. Las fracciones fuera de rango se ignoran. El resto del comportamiento (recorrido, playhead, click-to-seek) es idéntico — timeline_view es este con marks vacío.