pub struct RippleRegistry { /* private fields */ }Expand description
Registro de ripples vivos, retenido por el runtime entre frames. Una
instancia por ventana; el runtime llama Self::trigger en el press y
Self::paint tras el paint del contenido.
Implementations§
Source§impl RippleRegistry
impl RippleRegistry
pub fn new() -> Self
Sourcepub fn trigger(
&mut self,
key: u64,
lx: f32,
ly: f32,
color: Color,
duration: Duration,
now: Instant,
)
pub fn trigger( &mut self, key: u64, lx: f32, ly: f32, color: Color, duration: Duration, now: Instant, )
Registra una salpicadura nueva sobre el nodo de key key, originada en
(lx, ly) relativo a su rect. now es el instante del press. Varios
presses rápidos apilan ondas concurrentes (como Material).
Sourcepub fn animating(&self) -> bool
pub fn animating(&self) -> bool
true si hay alguna salpicadura viva (el runtime ya lo sabe por el
retorno de Self::paint, pero es cómodo para decidir antes).
Sourcepub fn paint<Msg>(
&mut self,
scene: &mut Scene,
mounted: &Mounted<Msg>,
computed: &ComputedLayout,
now: Instant,
) -> bool
pub fn paint<Msg>( &mut self, scene: &mut Scene, mounted: &Mounted<Msg>, computed: &ComputedLayout, now: Instant, ) -> bool
Pinta las salpicaduras vivas sobre scene, cada una como un círculo que
crece (radio con ease-out hasta cubrir el nodo) y se desvanece, recortado
al contorno redondeado del nodo. Resuelve el rect de cada nodo por su
ripple.key en mounted/computed (así sigue al nodo si se redimensiona).
Descarta las agotadas. Devuelve true si queda alguna viva → pedir frame.
Llamar DESPUÉS del paint del contenido (la onda va encima, translúcida).