Ratatouille v0.5.1 Ratatouille.Renderer.Canvas View Source
A canvas represents a terminal window, a subvision of it for rendering, and a sparse mapping of positions to cells.
A %Canvas{}
struct can be rendered to different output formats. This includes
the primary use-case of rendering to the termbox-managed window, but also
rendering to strings, which is useful for testing.
Link to this section Summary
Functions
Copies the canvas to a new one with the render box consumed by the given dx
and dy
.
Creates a new canvas with n
columns (from the left) consumed.
Creates a new canvas with n
rows (from the top) consumed.
Creates an empty canvas with the given dimensions.
Merges a list of cells into the canvas, provided that the cells are located within the canvas's rendering box. Returns a new canvas with the merged cells.
Copies the canvas to a new one with the render box padded on each side (top,
left, bottom, right) by size
. Pass a negative size to remove padding.
Link to this section Types
t()
View Sourcet() :: %Ratatouille.Renderer.Canvas{ cells: map(), outer_box: Ratatouille.Renderer.Box.t(), render_box: Ratatouille.Renderer.Box.t() }
Link to this section Functions
Copies the canvas to a new one with the render box consumed by the given dx
and dy
.
The render box is used to indicate the empty, renderable space on the canvas,
so this might be called with a dy
of 1 after rendering a line of text. The
box is consumed left-to-right and top-to-bottom.
Creates a new canvas with n
columns (from the left) consumed.
Creates a new canvas with n
rows (from the top) consumed.
from_dimensions(x, y)
View Sourcefrom_dimensions(non_neg_integer(), non_neg_integer()) :: t()
Creates an empty canvas with the given dimensions.
Examples
iex> Canvas.from_dimensions(10, 20)
%Canvas{
outer_box: %Ratatouille.Renderer.Box{
top_left: %ExTermbox.Position{x: 0, y: 0},
bottom_right: %ExTermbox.Position{x: 9, y: 19}
},
render_box: %Ratatouille.Renderer.Box{
top_left: %ExTermbox.Position{x: 0, y: 0},
bottom_right: %ExTermbox.Position{x: 9, y: 19}
},
cells: %{}
}
merge_cells(canvas, cells)
View Sourcemerge_cells(t(), [ExTermbox.Cell.t()]) :: t()
Merges a list of cells into the canvas, provided that the cells are located within the canvas's rendering box. Returns a new canvas with the merged cells.
Copies the canvas to a new one with the render box padded on each side (top,
left, bottom, right) by size
. Pass a negative size to remove padding.
put_box(canvas, render_box)
View Sourceput_box(t(), Ratatouille.Renderer.Box.t()) :: t()