91 return PanelSpec { std::move(options), out };
98template <
typename... Children>
110 std::apply([&](
const Children&... child) { (child.ApplyTo(*result), ...); },
children);
123template <
typename... Children>
124 requires(LayoutBuildable<Children> && ...)
126 return ContainerSpec<Children...> { std::move(options),
true,
nullptr,
127 std::make_tuple(std::move(children)...) };
141template <
typename... Children>
142 requires(LayoutBuildable<Children> && ...)
144 Children... children) {
145 return ContainerSpec<Children...> { std::move(options),
true, out,
146 std::make_tuple(std::move(children)...) };
158template <
typename... Children>
159 requires(LayoutBuildable<Children> && ...)
161 return ContainerSpec<Children...> { std::move(options),
false,
nullptr,
162 std::make_tuple(std::move(children)...) };
176template <
typename... Children>
177 requires(LayoutBuildable<Children> && ...)
179 Children... children) {
180 return ContainerSpec<Children...> { std::move(options),
false, out,
181 std::make_tuple(std::move(children)...) };
A layout node that organizes child nodes into a row or column.
Definition Container.h:101
virtual RefPtr< Container > AddColumn(const ContainerOptions &options={}, InsertPosition position={})=0
Create a child column container.
virtual RefPtr< Panel > AddPanel(const PanelOptions &options={}, InsertPosition position={})=0
Create a panel with a new View (window-default view configuration).
virtual RefPtr< Container > AddRow(const ContainerOptions &options={}, InsertPosition position={})=0
Create a child row container.
A nullable smart pointer.
Definition RefPtr.h:126
Root namespace for every public Ultralight type, function, and enumeration.
ContainerSpec< Children... > column(ContainerOptions options, Children... children)
Describe a column container with child elements.
Definition Builder.h:160
ContainerSpec< Children... > row(ContainerOptions options, Children... children)
Describe a row container with child elements.
Definition Builder.h:125
PanelSpec panel(PanelOptions options={}, RefPtr< Panel > *out=nullptr)
Describe a panel in a builder expression (see Builder.h for an example).
Definition Builder.h:90
Configuration options for a row or column container.
Definition Options.h:265
A container element inside a Build()/BuildLayout() expression.
Definition Builder.h:99
std::tuple< Children... > children
Definition Builder.h:103
bool is_row
Definition Builder.h:101
ContainerOptions options
Definition Builder.h:100
void ApplyTo(Container &parent) const
Definition Builder.h:105
RefPtr< Container > * out
Definition Builder.h:102
Configuration options for a panel in a row or column.
Definition Options.h:182
A panel element inside a Build()/BuildLayout() expression.
Definition Builder.h:69
PanelOptions options
Definition Builder.h:70
void ApplyTo(Container &parent) const
Definition Builder.h:73
RefPtr< Panel > * out
Definition Builder.h:71