Crate cuicui_layout
source ·Expand description
Layouting system for bevy cuicui.
The layouting system is very dumb. It is based on Containers.
A Container layouts its content in either a column or a row.
The individual items are positioned according to:
Container::align: The container’s childrenAlignment.Container::distrib: The container’s childrenDistribution.Container::flow: The direction in which the container’s childrenFlow.
By default, items are aligned at the center of the container, distributed on the flow direction evenly within the container.
All things in a cuicui layout has a known size. This is why everything needs to live in a root container of a fixed size.
That’s it! Now make a nice UI using bevy.
Re-exports
pub use dsl::LayoutDsl;
Modules
- Bevy [
Bundle]s grouping components used by the layouting systems. - The
LayoutDsltype used to bring layout bundles to thecuicui_dsl::dslmacro. - Functions to simplify using
dsl::LayoutDsl.
Macros
- Reorganize rust method syntax to play wonderfully with bevy’s hierarchy spawning mechanism.
Structs
- The layouting systems,
compute_layout, just this system as added byPlugin. - An error caused by a bad layout.
- The layouting systems,
compute_layoutand systems added byadd_content_sized. - Parameters of a container, ie: a node that contains other nodes.
- When
ComputeContentSize::compute_contentis evaulated.add_content_sizedautomatically adds the relevant systems to this set. - Stores the tick of the last time
compute_layout::<F>ran. - Use this camera’s logical size as the root fixed-size container for
cuicui_layout. - Add the
compute_layoutsystem to the bevyUpdateset. - Position and size of a
Nodeas computed by the layouting algo. - Set this
Rootto track theLayoutRootCamera’s size. - A
Tthat applies to thewidthandheightof something.
Enums
- The cross axis alignment. Aka alignment.
- The main axis alignment. Aka distribution.
- The layout direction of a
Container. - A constraint on an axis of a terminal
Node(ie: doesn’t have aChildrenconstraint). - A [
Component] integrating the attached [Entity] into thecuicui_layoutlayouting algorithm. - A constraint on an axis of containers.
Traits
- Extends [
App] to support addingComputeContentSize. - The static version of whatever implements
ComputeContentSize. - A [
SystemParam] to compute the size of content-sized layoutNodes. - The type used in a
dsl!macro to create bundles to spawn when creating the entity tree.
Functions
- A run condition to tell whether it’s necessary to recompute layout.
- Update transform of things that have a
PosRectcomponent.
Type Definitions
WorldQueryitem used by the layout function.