View Source Kino.Frame (Kino v0.5.2)
A placeholder for outputs.
A frame wraps outputs that can be dynamically updated at any time.
Also see Kino.animate/3
which offers a convenience on
top of this widget.
Examples
widget = Kino.Frame.new() |> Kino.render()
for i <- 1..100 do
Kino.Frame.render(widget, i)
Process.sleep(50)
end
Or with a scheduled task in the background.
widget = Kino.Frame.new() |> Kino.render()
Kino.Frame.periodically(widget, 50, 0, fn i ->
Kino.Frame.render(widget, i)
{:cont, i + 1}
end)
Link to this section Summary
Functions
Renders and appends the given term to the frame.
Removes all outputs within the given frame.
Starts a widget process.
Registers a callback to run periodically in the widget process.
Renders the given term within the frame.
Link to this section Types
Specs
t()
Link to this section Functions
Specs
Renders and appends the given term to the frame.
Specs
clear(t()) :: :ok
Removes all outputs within the given frame.
Specs
new() :: t()
Starts a widget process.
Specs
periodically(t(), pos_integer(), term(), (term() -> {:cont, term()} | :halt)) :: :ok
Registers a callback to run periodically in the widget process.
The callback is run every interval_ms
milliseconds and receives
the accumulated value. The callback should return either of:
{:cont, acc}
- the continue with the new accumulated value:halt
- to no longer schedule callback evaluation
The callback is run for the first time immediately upon registration.
Specs
Renders the given term within the frame.
This works similarly to Kino.render/1
, but the rendered
output replaces existing frame contents.