Mosaic_ui.SpinnerAnimated loading indicator with preset frame sets.
Animated spinner cycling through configurable frame sets.
A spinner cycles through an array of text frames at a fixed interval, rendering the current frame with a configurable foreground color. Animation advances on each tick: elapsed time accumulates and the frame index advances by one or more steps when the interval threshold is reached.
Several built-in frame sets are provided (dots, line, arc, etc.). Custom frame sets can be constructed directly as frame_set records.
type frame_set = {frames : string array;Frames to cycle through.
*)interval : float;Time between frames, in milliseconds.
*)}The type for animation frame sets. The spinner advances one frame each time interval milliseconds have elapsed.
val dots : frame_setBraille dot pattern (10 frames, 80 ms).
val dots2 : frame_setBraille block pattern (8 frames, 80 ms).
val line : frame_setASCII line rotation (4 frames, 130 ms).
val arc : frame_setQuarter-circle arc (6 frames, 100 ms).
val bounce : frame_setBraille bounce (4 frames, 120 ms).
val circle : frame_setCircle animation (3 frames, 120 ms).
val create :
parent:Renderable.t ->
?index:int ->
?id:string ->
?style:Toffee.Style.t ->
?visible:bool ->
?z_index:int ->
?opacity:float ->
?frame_set:frame_set ->
?color:Ansi.Color.t ->
unit ->
tcreate ~parent () is a spinner attached to parent, with:
frame_set is the animation sequence. Defaults to default_frame_set.color is the foreground color for the spinner glyphs. Defaults to Ansi.Color.t.White.val node : t -> Renderable.tnode t is the underlying Renderable.t of t.
module Props : sig ... endapply_props t props replaces all properties of t with props. Wraps the frame index when the frame set changes. Always triggers a re-render.
val frame_index : t -> intframe_index t is the current zero-based frame index of t.
val elapsed : t -> floatelapsed t is the accumulated time in milliseconds since the last frame advance of t.
set_frame_set t fs changes the frame set of t to fs. Resets elapsed time to 0. and wraps the frame index to the new frame count.
val set_color : t -> Ansi.Color.t -> unitset_color t c changes the foreground color of t to c. Re-renders only if c differs from the current color.
val pp : Format.formatter -> t -> unitpp ppf t formats t on ppf for debugging.