Current section
Files
Jump to
Current section
Files
lib/renderer/types.ex
defmodule Orange.Renderer.Cell do
@moduledoc false
defstruct [:foreground, :background, modifiers: [], character: " "]
end
defmodule Orange.Renderer.Box do
@moduledoc false
# Boxes are builing blocks of the render tree. A box children can either be:
# - A list of boxes
# - A single text
@type t :: %__MODULE__{
children: [t] | binary,
padding:
{top :: non_neg_integer, right :: non_neg_integer, bottom :: non_neg_integer,
left :: non_neg_integer},
border: {top :: boolean, right :: boolean, bottom :: boolean, left :: boolean} | nil,
style: [text_modifiers: [atom], background_color: :atom, color: :atom],
width: non_neg_integer | nil,
height: non_neg_integer | nil,
layout_direction: :row | :column,
scroll: {x :: non_neg_integer, y :: non_neg_integer},
outer_area: Orange.Renderer.Area.t(),
inner_area: Orange.Renderer.Area.t()
}
defstruct [
:children,
:padding,
:border,
:style,
:width,
:height,
:layout_direction,
:scroll,
:outer_area,
:inner_area,
:title
]
end
defmodule Orange.Renderer.Area do
@moduledoc false
@type t :: %__MODULE__{
x: non_neg_integer,
y: non_neg_integer,
width: non_neg_integer,
height: non_neg_integer
}
defstruct [:x, :y, :width, :height]
end