pub struct List<D, S> {
pub common: CommonBuilder,
pub style: Style,
pub item_instantiation: ItemInstantiation,
/* private fields */
}
Expand description
A helper widget, useful for instantiating a sequence of widgets in a vertical list.
The List
widget simplifies this process by:
- Generating
widget::Id
s. - Simplifying the positioning and sizing of items.
- Optimised widget instantiation by only instantiating visible items. This is very useful for
lists containing many items, i.e. a
FileNavigator
over a directory with thousands of files.
Fields
common: CommonBuilder
Common widget building params for the List
.
style: Style
Unique styling for the List
.
item_instantiation: ItemInstantiation
Whether all or only visible items should be instantiated.
Implementations
Begin building a new List
flowing from left to right.
Begin building a new List
given some direction and item size.
Indicates that an Item
should be instantiated for every element in the list, regardless of
whether or not the Item
would be visible.
This is the default (and only) behaviour for List
s with dynamic item sizes. This is
because a List
cannot know the total length of its combined items in advanced when each
item is dynamically sized and their size is not given until they are set.
Note: This may cause significantly heavier CPU load for lists containing many items (100+). We only recommend using this when absolutely necessary as large lists may cause unnecessary bloating within the widget graph, and in turn result in greater traversal times.
Indicates that only Item
s that are visible should be instantiated. This ensures that we
avoid bloating the widget graph with unnecessary nodes and in turn keep traversal times to
a minimum.
This is the default behaviour for List
s with fixed item sizes.
Specifies that the List
should be scrollable and should provide a Scrollbar
to the
right of the items.
Specifies that the List
should be scrollable and should provide a Scrollbar
that hovers
above the right edge of the items and automatically hides when the user is not scrolling.
The width of the Scrollbar
.
The color of the Scrollbar
.
Trait Implementations
Borrows the CommonBuilder
field.
Mutably borrows the CommonBuilder
field.
Every widget is required to have its own associated Style
type. This type is intended to
contain high-level styling information for the widget that can be optionally specified by
a user of the widget. Read more
The type of event yielded by the widget, returned via the Widget::set
function. Read more
Return the initial State of the Widget. Read more
Update our Widget’s unique Widget::State via the State wrapper type (the
state
field within the UpdateArgs). Read more
The default Position for the widget along the x axis. Read more
The default Position for the widget along the y axis. Read more
The default width for the Widget. Read more
The default height of the widget. Read more
If the widget is draggable, implement this method and return the position and dimensions of the draggable space. The position should be relative to the center of the widget. Read more
The area on which child widgets will be placed when using the Place
Position
methods.
Set the parent widget for this Widget by passing the WidgetId of the parent. Read more
Set whether or not the Widget should be placed on the kid_area. Read more
Indicates that the Widget is used as a non-interactive graphical element for some other widget. Read more
Set whether or not the widget is floating (the default is false
).
A typical example of a floating widget would be a pop-up or alert window. Read more
Indicates that all widgets who are children of this widget should be cropped to the
kid_area
of this widget. Read more
Makes the widget’s KidArea
scrollable. Read more
Makes the widget’s KidArea
scrollable. Read more
Set whether or not the widget’s KidArea
is scrollable (the default is false). Read more
A builder method that “lifts” the Widget through the given build
function. Read more
A builder method that mutates the Widget with the given mutate
function. Read more
A method that conditionally builds the Widget with the given build
function. Read more
A method that optionally builds the Widget with the given build
function. Read more
Auto Trait Implementations
impl<D, S> RefUnwindSafe for List<D, S> where
D: RefUnwindSafe,
S: RefUnwindSafe,
impl<D, S> UnwindSafe for List<D, S> where
D: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Build with the given Position along the x axis.
Build with the given Position along the y axis.
Get the Position along the x axis.
Get the Position along the y axis.
The depth at which the widget should be rendered relatively to its sibling widgets.
Set the x Position Relative to the previous widget.
Set the y Position Relative to the previous widget.
Set the x and y Positions Relative to the previous widget.
Set the x Position Relative to the given widget.
Set the y Position Relative to the given widget.
Set the x and y Positions Relative to the given widget.
Set the Position as a Scalar along the x axis Relative to the middle of previous widget. Read more
Set the Position as a Scalar along the y axis Relative to the middle of previous widget. Read more
Set the Position as a Point Relative to the middle of the previous widget.
Set the Position as Scalars along the x and y axes Relative to the middle of the previous widget. Read more
Set the position relative to the widget with the given widget::Id.
Set the position relative to the widget with the given widget::Id.
Set the position relative to the widget with the given widget::Id.
Set the position relative to the widget with the given widget::Id.
Build with the Position along the x axis as some distance from another widget.
Build with the Position along the y axis as some distance from another widget.
Build with the Position as some distance below another widget.
Build with the Position as some distance to the left of another widget.
Build with the Position as some distance to the right of another widget.
Build with the Position along the x axis as some distance from the given widget.
Build with the Position along the y axis as some distance from the given widget.
Build with the Position as some distance below the given widget.
Build with the Position as some distance above the given widget.
Build with the Position as some distance to the left of the given widget.
Build with the Position as some distance to the right of the given widget.
Align the position to the left (only effective for Up or Down Direction
s).
Align the position to the middle (only effective for Up or Down Direction
s).
Align the position to the right (only effective for Up or Down Direction
s).
Align the position to the top (only effective for Left or Right Direction
s).
Align the position to the middle (only effective for Left or Right Direction
s).
Align the position to the bottom (only effective for Left or Right Direction
s).
Align the Position of the widget with the given widget along the x axis.
Align the Position of the widget with the given widget along the y axis.
Align the position to the left (only effective for Up or Down Direction
s).
Align the position to the middle (only effective for Up or Down Direction
s).
Align the position to the right (only effective for Up or Down Direction
s).
Align the position to the top (only effective for Left or Right Direction
s).
Align the position to the middle (only effective for Left or Right Direction
s).
Align the position to the bottom (only effective for Left or Right Direction
s).
Place the widget at some position on the other
Widget along the x axis.
Place the widget at some position on the other
Widget along the y axis.
Place the widget in the top left corner of the given Widget.
Place the widget in the top left corner of the given Widget with the given margin between both edges. Read more
Place the widget in the top left corner of the given Widget with the given margins between each respective edge. Read more
Place the widget in the top right corner of the given Widget.
Place the widget in the top right corner of the given Widget with the given margin between both edges. Read more
Place the widget in the top right corner of the given Widget with the given margins between each respective edge. Read more
Place the widget in the bottom left corner of the given Widget.
Place the widget in the bottom left corner of the given Widget with the given margin between both edges. Read more
Place the widget in the bottom left corner of the given Widget with the given margins between each respective edge. Read more
Place the widget in the bottom right corner of the given Widget.
Place the widget in the bottom right corner of the given Widget with the given margin between both edges. Read more
Place the widget in the bottom right corner of the given Widget with the given margins between each respective edge. Read more
Place the widget in the middle of the top edge of the given Widget.
Place the widget in the middle of the top edge of the given Widget with the given margin between the edges. Read more
Place the widget in the middle of the bottom edge of the given Widget.
Place the widget in the middle of the bottom edge of the given Widget with the given margin between the edges. Read more
Place the widget in the middle of the left edge of the given Widget.
Place the widget in the middle of the left edge of the given Widget with the given margin between the edges. Read more
Place the widget in the middle of the right edge of the given Widget.
Place the widget in the middle of the right edge of the given Widget with the given margin between the edges. Read more
Place the widget at some position on the Widget along the x axis.
Place the widget at some position on the Widget along the y axis.
Place the widget in the top left corner of the current parent Widget.
Place the widget in the top left corner of the current parent Widget with the given margin between both edges. Read more
Place the widget in the top left corner of the current parent Widget with the given margins between each respective edge. Read more
Place the widget in the top right corner of the current parent Widget.
Place the widget in the top right corner of the current parent Widget with the given margin between both edges. Read more
Place the widget in the top right corner of the current parent Widget with the given margins between each respective edge. Read more
Place the widget in the bottom left corner of the current parent Widget.
Place the widget in the bottom left corner of the current parent Widget with the given margin between both edges. Read more
Place the widget in the bottom left corner of the current parent Widget with the given margins between each respective edge. Read more
Place the widget in the bottom right corner of the current parent Widget.
Place the widget in the bottom right corner of the current parent Widget with the given margin between both edges. Read more
Place the widget in the bottom right corner of the current parent Widget with the given margins between each respective edge. Read more
Place the widget in the middle of the top edge of the current parent Widget.
Place the widget in the middle of the top edge of the current parent Widget with the given margin from the edge. Read more
Place the widget in the middle of the bottom edge of the current parent Widget.
Place the widget in the middle of the bottom edge of the current parent Widget with the given margin from the edge. Read more
Place the widget in the middle of the left edge of the current parent Widget.
Place the widget in the middle of the left edge of the current parent Widget with the given margin from the edge. Read more
Place the widget in the middle of the right edge of the current parent Widget.
Place the widget in the middle of the right edge of the current parent Widget with the given margin from the edge. Read more
We attempt to retrieve the x
Dimension for the widget via the following:
- Check for specified value at
maybe_x_dimension
- Otherwise, use the default returned by Widget::default_x_dimension.
We attempt to retrieve the y
Dimension for the widget via the following:
- Check for specified value at
maybe_y_dimension
- Otherwise, use the default returned by Widget::default_y_dimension.
Set the length along the x axis.
Set the length along the y axis.
Set the dimensions for the widget.
Set the width as the width of the widget at the given index padded at both ends by the given Scalar. Read more
Set the height as the height of the widget at the given index padded at both ends by the given Scalar. Read more
Set the dimensions as the dimensions of the widget at the given index.
Set the dimensions as the dimensions of the widget at the given index with all four edges padded by the given scalar. Read more
Set the width as the width of the padded area of the widget at the given index.
Set the width as the KidArea
width for the widget at the given index, padded at both ends
by the given scalar. Read more
Set the height as the KidArea
height of the widget at the given index.
Set the height as the KidArea
height of the widget at the given index, padded at both
ends by the given scalar. Read more
Set the dimensions as the KidArea
dimensions of the widget at the given index.
Set the dimensions as the KidArea
dimensions of the widget at the given index, padded at
all four edges by the given scalar. Read more
Get the absolute width of the widget as a Scalar value.
The dimensions for the widget.