[−][src]Struct conrod_core::widget::list::List
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.
Methods
impl<D> List<D, Dynamic> where
D: Direction,
[src]
D: Direction,
impl List<Left, Dynamic>
[src]
pub fn flow_left(num_items: usize) -> Self
[src]
Begin building a new List
flowing from right to left.
impl List<Right, Dynamic>
[src]
pub fn flow_right(num_items: usize) -> Self
[src]
Begin building a new List
flowing from left to right.
impl List<Up, Dynamic>
[src]
impl List<Down, Dynamic>
[src]
pub fn flow_down(num_items: usize) -> Self
[src]
Begin building a new List
flowing from top to bottom.
impl<D, S> List<D, S> where
D: Direction,
S: ItemSize,
[src]
D: Direction,
S: ItemSize,
pub fn from_item_size(num_items: usize, item_size: S) -> Self
[src]
Begin building a new List
given some direction and item size.
pub fn item_size(self, length: Scalar) -> List<D, Fixed>
[src]
Specify a fixed item size, where size is a Scalar
in the direction that the List
is
flowing. When a List
is constructed with this method, all items will have a fixed, equal
length.
impl<D> List<D, Fixed> where
D: Direction,
[src]
D: Direction,
pub fn instantiate_all_items(self) -> Self
[src]
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.
pub fn instantiate_only_visible_items(self) -> Self
[src]
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.
impl<D, S> List<D, S> where
D: Direction,
S: ItemSize,
[src]
D: Direction,
S: ItemSize,
pub fn scrollbar_next_to(self) -> Self
[src]
Specifies that the List
should be scrollable and should provide a Scrollbar
to the
right of the items.
pub fn scrollbar_on_top(self) -> Self
[src]
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.
pub fn scrollbar_thickness(self, w: Scalar) -> Self
[src]
The width of the Scrollbar
.
pub fn scrollbar_color(self, color: Color) -> Self
[src]
The color of the Scrollbar
.
Trait Implementations
impl<D, S> Common for List<D, S>
[src]
fn common(&self) -> &CommonBuilder
[src]
fn common_mut(&mut self) -> &mut CommonBuilder
[src]
impl<D, S> Widget for List<D, S> where
D: Direction,
S: ItemSize,
[src]
D: Direction,
S: ItemSize,
type State = State
State to be stored within the Ui
s widget cache. Read more
type Style = Style
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
type Event = (Items<D, S>, Option<Scrollbar<D::Axis>>)
The type of event yielded by the widget, returned via the Widget::set
function. Read more
fn init_state(&self, id_gen: Generator) -> Self::State
[src]
fn style(&self) -> Self::Style
[src]
fn update(self, args: UpdateArgs<Self>) -> Self::Event
[src]
fn default_x_position(&self, ui: &Ui) -> Position
[src]
The default Position for the widget along the x axis. Read more
fn default_y_position(&self, ui: &Ui) -> Position
[src]
The default Position for the widget along the y axis. Read more
fn default_x_dimension(&self, ui: &Ui) -> Dimension
[src]
The default width for the Widget. Read more
fn default_y_dimension(&self, ui: &Ui) -> Dimension
[src]
The default height of the widget. Read more
fn drag_area(
&self,
_dim: Dimensions,
_style: &Self::Style,
_theme: &Theme
) -> Option<Rect>
[src]
&self,
_dim: Dimensions,
_style: &Self::Style,
_theme: &Theme
) -> Option<Rect>
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
fn kid_area(&self, args: KidAreaArgs<Self>) -> KidArea
[src]
The area on which child widgets will be placed when using the Place
Position
methods.
fn is_over(&self) -> IsOverFn
[src]
Returns either of the following: Read more
fn parent(self, parent_id: Id) -> Self
[src]
Set the parent widget for this Widget by passing the WidgetId of the parent. Read more
fn no_parent(self) -> Self
[src]
Specify that this widget has no parent widgets.
fn place_on_kid_area(self, b: bool) -> Self
[src]
Set whether or not the Widget should be placed on the kid_area. Read more
fn graphics_for(self, id: Id) -> Self
[src]
Indicates that the Widget is used as a non-interactive graphical element for some other widget. Read more
fn floating(self, is_floating: bool) -> Self
[src]
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
fn crop_kids(self) -> Self
[src]
Indicates that all widgets who are children of this widget should be cropped to the kid_area
of this widget. Read more
fn scroll_kids(self) -> Self
[src]
Makes the widget's KidArea
scrollable. Read more
fn scroll_kids_vertically(self) -> Self
[src]
Makes the widget's KidArea
scrollable. Read more
fn scroll_kids_horizontally(self) -> Self
[src]
Set whether or not the widget's KidArea
is scrollable (the default is false). Read more
fn and<F>(self, build: F) -> Self where
F: FnOnce(Self) -> Self,
[src]
F: FnOnce(Self) -> Self,
A builder method that "lifts" the Widget through the given build
function. Read more
fn and_mut<F>(self, mutate: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
A builder method that mutates the Widget with the given mutate
function. Read more
fn and_if<F>(self, cond: bool, build: F) -> Self where
F: FnOnce(Self) -> Self,
[src]
F: FnOnce(Self) -> Self,
A method that conditionally builds the Widget with the given build
function. Read more
fn and_then<T, F>(self, maybe: Option<T>, build: F) -> Self where
F: FnOnce(Self, T) -> Self,
[src]
F: FnOnce(Self, T) -> Self,
A method that optionally builds the Widget with the given build
function. Read more
fn set<'a, 'b>(self, id: Id, ui_cell: &'a mut UiCell<'b>) -> Self::Event
[src]
Note: There should be no need to override this method. Read more
impl<D: Clone, S: Clone> Clone for List<D, S>
[src]
Auto Trait Implementations
impl<D, S> Send for List<D, S> where
D: Send,
S: Send,
D: Send,
S: Send,
impl<D, S> Sync for List<D, S> where
D: Sync,
S: Sync,
D: Sync,
S: Sync,
Blanket Implementations
impl<W> Positionable for W where
W: Widget,
[src]
W: Widget,
fn x_position(Self, Position) -> W
[src]
fn y_position(Self, Position) -> W
[src]
fn get_x_position(&Self, &Ui) -> Position
[src]
fn get_y_position(&Self, &Ui) -> Position
[src]
fn depth(Self, f32) -> W
[src]
fn get_depth(&Self) -> f32
[src]
fn x(self, x: Scalar) -> Self
[src]
Build with the given Absolute Position along the x axis.
fn y(self, y: Scalar) -> Self
[src]
Build with the given Absolute Position along the y axis.
fn xy(self, point: Point) -> Self
[src]
Set the Position with some Point.
fn x_y(self, x: Scalar, y: Scalar) -> Self
[src]
Set the Position with x y coordinates.
fn x_position_relative(self, x: Relative) -> Self
[src]
Set the x Position Relative to the previous widget.
fn y_position_relative(self, y: Relative) -> Self
[src]
Set the y Position Relative to the previous widget.
fn x_y_position_relative(self, x: Relative, y: Relative) -> Self
[src]
Set the x and y Positions Relative to the previous widget.
fn x_position_relative_to(self, other: Id, x: Relative) -> Self
[src]
Set the x Position Relative to the given widget.
fn y_position_relative_to(self, other: Id, y: Relative) -> Self
[src]
Set the y Position Relative to the given widget.
fn x_y_position_relative_to(self, other: Id, x: Relative, y: Relative) -> Self
[src]
Set the x and y Positions Relative to the given widget.
fn x_relative(self, x: Scalar) -> Self
[src]
Set the Position as a Scalar along the x axis Relative to the middle of previous widget. Read more
fn y_relative(self, y: Scalar) -> Self
[src]
Set the Position as a Scalar along the y axis Relative to the middle of previous widget. Read more
fn xy_relative(self, point: Point) -> Self
[src]
Set the Position as a Point Relative to the middle of the previous widget.
fn x_y_relative(self, x: Scalar, y: Scalar) -> Self
[src]
Set the Position as Scalars along the x and y axes Relative to the middle of the previous widget. Read more
fn x_relative_to(self, other: Id, x: Scalar) -> Self
[src]
Set the position relative to the widget with the given widget::Id.
fn y_relative_to(self, other: Id, y: Scalar) -> Self
[src]
Set the position relative to the widget with the given widget::Id.
fn xy_relative_to(self, other: Id, xy: Point) -> Self
[src]
Set the position relative to the widget with the given widget::Id.
fn x_y_relative_to(self, other: Id, x: Scalar, y: Scalar) -> Self
[src]
Set the position relative to the widget with the given widget::Id.
fn x_direction(self, direction: Direction, x: Scalar) -> Self
[src]
Build with the Position along the x axis as some distance from another widget.
fn y_direction(self, direction: Direction, y: Scalar) -> Self
[src]
Build with the Position along the y axis as some distance from another widget.
fn down(self, y: Scalar) -> Self
[src]
Build with the Position as some distance below another widget.
fn up(self, y: Scalar) -> Self
[src]
Build with the Position as some distance above another widget.
fn left(self, x: Scalar) -> Self
[src]
Build with the Position as some distance to the left of another widget.
fn right(self, x: Scalar) -> Self
[src]
Build with the Position as some distance to the right of another widget.
fn x_direction_from(self, other: Id, direction: Direction, x: Scalar) -> Self
[src]
Build with the Position along the x axis as some distance from the given widget.
fn y_direction_from(self, other: Id, direction: Direction, y: Scalar) -> Self
[src]
Build with the Position along the y axis as some distance from the given widget.
fn down_from(self, other: Id, y: Scalar) -> Self
[src]
Build with the Position as some distance below the given widget.
fn up_from(self, other: Id, y: Scalar) -> Self
[src]
Build with the Position as some distance above the given widget.
fn left_from(self, other: Id, x: Scalar) -> Self
[src]
Build with the Position as some distance to the left of the given widget.
fn right_from(self, other: Id, x: Scalar) -> Self
[src]
Build with the Position as some distance to the right of the given widget.
fn x_align(self, align: Align) -> Self
[src]
Align the Position of the widget along the x axis.
fn y_align(self, align: Align) -> Self
[src]
Align the Position of the widget along the y axis.
fn align_left(self) -> Self
[src]
Align the position to the left (only effective for Up or Down Direction
s).
fn align_middle_x(self) -> Self
[src]
Align the position to the middle (only effective for Up or Down Direction
s).
fn align_right(self) -> Self
[src]
Align the position to the right (only effective for Up or Down Direction
s).
fn align_top(self) -> Self
[src]
Align the position to the top (only effective for Left or Right Direction
s).
fn align_middle_y(self) -> Self
[src]
Align the position to the middle (only effective for Left or Right Direction
s).
fn align_bottom(self) -> Self
[src]
Align the position to the bottom (only effective for Left or Right Direction
s).
fn x_align_to(self, other: Id, align: Align) -> Self
[src]
Align the Position of the widget with the given widget along the x axis.
fn y_align_to(self, other: Id, align: Align) -> Self
[src]
Align the Position of the widget with the given widget along the y axis.
fn align_left_of(self, other: Id) -> Self
[src]
Align the position to the left (only effective for Up or Down Direction
s).
fn align_middle_x_of(self, other: Id) -> Self
[src]
Align the position to the middle (only effective for Up or Down Direction
s).
fn align_right_of(self, other: Id) -> Self
[src]
Align the position to the right (only effective for Up or Down Direction
s).
fn align_top_of(self, other: Id) -> Self
[src]
Align the position to the top (only effective for Left or Right Direction
s).
fn align_middle_y_of(self, other: Id) -> Self
[src]
Align the position to the middle (only effective for Left or Right Direction
s).
fn align_bottom_of(self, other: Id) -> Self
[src]
Align the position to the bottom (only effective for Left or Right Direction
s).
fn x_place_on(self, other: Id, place: Place) -> Self
[src]
Place the widget at some position on the other
Widget along the x axis.
fn y_place_on(self, other: Id, place: Place) -> Self
[src]
Place the widget at some position on the other
Widget along the y axis.
fn middle_of(self, other: Id) -> Self
[src]
Place the widget in the middle of the given Widget.
fn top_left_of(self, other: Id) -> Self
[src]
Place the widget in the top left corner of the given Widget.
fn top_left_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the top left corner of the given Widget with the given margin between both edges. Read more
fn top_left_with_margins_on(self, other: Id, top: Scalar, left: Scalar) -> Self
[src]
Place the widget in the top left corner of the given Widget with the given margins between each respective edge. Read more
fn top_right_of(self, other: Id) -> Self
[src]
Place the widget in the top right corner of the given Widget.
fn top_right_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the top right corner of the given Widget with the given margin between both edges. Read more
fn top_right_with_margins_on(
self,
other: Id,
top: Scalar,
right: Scalar
) -> Self
[src]
self,
other: Id,
top: Scalar,
right: Scalar
) -> Self
Place the widget in the top right corner of the given Widget with the given margins between each respective edge. Read more
fn bottom_left_of(self, other: Id) -> Self
[src]
Place the widget in the bottom left corner of the given Widget.
fn bottom_left_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the bottom left corner of the given Widget with the given margin between both edges. Read more
fn bottom_left_with_margins_on(
self,
other: Id,
bottom: Scalar,
left: Scalar
) -> Self
[src]
self,
other: Id,
bottom: Scalar,
left: Scalar
) -> Self
Place the widget in the bottom left corner of the given Widget with the given margins between each respective edge. Read more
fn bottom_right_of(self, other: Id) -> Self
[src]
Place the widget in the bottom right corner of the given Widget.
fn bottom_right_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the bottom right corner of the given Widget with the given margin between both edges. Read more
fn bottom_right_with_margins_on(
self,
other: Id,
bottom: Scalar,
right: Scalar
) -> Self
[src]
self,
other: Id,
bottom: Scalar,
right: Scalar
) -> Self
Place the widget in the bottom right corner of the given Widget with the given margins between each respective edge. Read more
fn mid_top_of(self, other: Id) -> Self
[src]
Place the widget in the middle of the top edge of the given Widget.
fn mid_top_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the top edge of the given Widget with the given margin between the edges. Read more
fn mid_bottom_of(self, other: Id) -> Self
[src]
Place the widget in the middle of the bottom edge of the given Widget.
fn mid_bottom_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the bottom edge of the given Widget with the given margin between the edges. Read more
fn mid_left_of(self, other: Id) -> Self
[src]
Place the widget in the middle of the left edge of the given Widget.
fn mid_left_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the left edge of the given Widget with the given margin between the edges. Read more
fn mid_right_of(self, other: Id) -> Self
[src]
Place the widget in the middle of the right edge of the given Widget.
fn mid_right_with_margin_on(self, other: Id, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the right edge of the given Widget with the given margin between the edges. Read more
fn x_place(self, place: Place) -> Self
[src]
Place the widget at some position on the Widget along the x axis.
fn y_place(self, place: Place) -> Self
[src]
Place the widget at some position on the Widget along the y axis.
fn middle(self) -> Self
[src]
Place the widget in the middle of the current parent Widget.
fn top_left(self) -> Self
[src]
Place the widget in the top left corner of the current parent Widget.
fn top_left_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the top left corner of the current parent Widget with the given margin between both edges. Read more
fn top_left_with_margins(self, top: Scalar, left: Scalar) -> Self
[src]
Place the widget in the top left corner of the current parent Widget with the given margins between each respective edge. Read more
fn top_right(self) -> Self
[src]
Place the widget in the top right corner of the current parent Widget.
fn top_right_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the top right corner of the current parent Widget with the given margin between both edges. Read more
fn top_right_with_margins(self, top: Scalar, right: Scalar) -> Self
[src]
Place the widget in the top right corner of the current parent Widget with the given margins between each respective edge. Read more
fn bottom_left(self) -> Self
[src]
Place the widget in the bottom left corner of the current parent Widget.
fn bottom_left_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the bottom left corner of the current parent Widget with the given margin between both edges. Read more
fn bottom_left_with_margins(self, bottom: Scalar, left: Scalar) -> Self
[src]
Place the widget in the bottom left corner of the current parent Widget with the given margins between each respective edge. Read more
fn bottom_right(self) -> Self
[src]
Place the widget in the bottom right corner of the current parent Widget.
fn bottom_right_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the bottom right corner of the current parent Widget with the given margin between both edges. Read more
fn bottom_right_with_margins(self, bottom: Scalar, right: Scalar) -> Self
[src]
Place the widget in the bottom right corner of the current parent Widget with the given margins between each respective edge. Read more
fn mid_top(self) -> Self
[src]
Place the widget in the middle of the top edge of the current parent Widget.
fn mid_top_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the top edge of the current parent Widget with the given margin from the edge. Read more
fn mid_bottom(self) -> Self
[src]
Place the widget in the middle of the bottom edge of the current parent Widget.
fn mid_bottom_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the bottom edge of the current parent Widget with the given margin from the edge. Read more
fn mid_left(self) -> Self
[src]
Place the widget in the middle of the left edge of the current parent Widget.
fn mid_left_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the left edge of the current parent Widget with the given margin from the edge. Read more
fn mid_right(self) -> Self
[src]
Place the widget in the middle of the right edge of the current parent Widget.
fn mid_right_with_margin(self, mgn: Scalar) -> Self
[src]
Place the widget in the middle of the right edge of the current parent Widget with the given margin from the edge. Read more
impl<W> Sizeable for W where
W: Widget,
[src]
W: Widget,
fn x_dimension(Self, Dimension) -> W
[src]
fn y_dimension(Self, Dimension) -> W
[src]
fn get_x_dimension(&Self, &Ui) -> Dimension
[src]
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.
fn get_y_dimension(&Self, &Ui) -> Dimension
[src]
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.
fn w(self, w: Scalar) -> Self
[src]
Set the absolute width for the widget.
fn h(self, h: Scalar) -> Self
[src]
Set the absolute height for the widget.
fn wh(self, wh: Dimensions) -> Self
[src]
Set the dimensions for the widget.
fn w_h(self, width: Scalar, height: Scalar) -> Self
[src]
Set the width and height for the widget.
fn w_of(self, idx: Id) -> Self
[src]
Set the width as the width of the widget at the given index.
fn padded_w_of(self, idx: Id, pad: Scalar) -> Self
[src]
Set the width as the width of the widget at the given index padded at both ends by the given Scalar. Read more
fn h_of(self, idx: Id) -> Self
[src]
Set the height as the height of the widget at the given index.
fn padded_h_of(self, idx: Id, pad: Scalar) -> Self
[src]
Set the height as the height of the widget at the given index padded at both ends by the given Scalar. Read more
fn wh_of(self, idx: Id) -> Self
[src]
Set the dimensions as the dimensions of the widget at the given index.
fn padded_wh_of(self, idx: Id, pad: Scalar) -> Self
[src]
Set the dimensions as the dimensions of the widget at the given index with all four edges padded by the given scalar. Read more
fn kid_area_w_of(self, idx: Id) -> Self
[src]
Set the width as the width of the padded area of the widget at the given index.
fn padded_kid_area_w_of(self, idx: Id, pad: Scalar) -> Self
[src]
Set the width as the KidArea
width for the widget at the given index, padded at both ends by the given scalar. Read more
fn kid_area_h_of(self, idx: Id) -> Self
[src]
Set the height as the KidArea
height of the widget at the given index.
fn padded_kid_area_h_of(self, idx: Id, pad: Scalar) -> Self
[src]
Set the height as the KidArea
height of the widget at the given index, padded at both ends by the given scalar. Read more
fn kid_area_wh_of(self, idx: Id) -> Self
[src]
Set the dimensions as the KidArea
dimensions of the widget at the given index.
fn padded_kid_area_wh_of(self, idx: Id, pad: Scalar) -> Self
[src]
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
fn get_w(&self, ui: &Ui) -> Option<Scalar>
[src]
Get the absolute width of the widget as a Scalar value.
fn get_h(&self, ui: &Ui) -> Option<Scalar>
[src]
Get the height of the widget.
fn get_wh(&self, ui: &Ui) -> Option<Dimensions>
[src]
The dimensions for the widget.
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,