UI module

begin_container

procedureextensionexperimentalsince 0.31.0Source

Open a container as the current parent; end_container closes it. Containers written with for do both.

Example↗
ui := headless();
defer free_ui(*ui);
push_ui(*ui);
begin_frame(*ui);
begin_container(.VERTICAL, .GROUP, .{ gap = 4 }, #location());
label("inside");
end_container(*ui);
end_frame(*ui);
pop_ui();
assert(find_role(*ui, .TEXT).text == "inside");
begin_container :: (
    axis: Axis,
    role: Role,
    style: Style,
    loc: Source_Code_Location
) -> *Node

Open a container as the current parent; end_container closes it. Containers written with for do both.

Parameters

axis: Axis
which way the children are laid out.
role: Role
what the container is.
style: Style
layout and paint options.
loc: Source_Code_Location
the call site. It identifies the node from one frame to the next, so pass the caller's location.

Returns

Example↗
ui := headless();
defer free_ui(*ui);
push_ui(*ui);
begin_frame(*ui);
begin_container(.VERTICAL, .GROUP, .{ gap = 4 }, #location());
label("inside");
end_container(*ui);
end_frame(*ui);
pop_ui();
assert(find_role(*ui, .TEXT).text == "inside");

See also