Struct rerun::external::re_ui::ListItem

source ·
pub struct ListItem<'a> { /* private fields */ }
Expand description

Generic widget for use in lists.

Layout:

┌───┬────────────────────────────────────────────────────────────┬───┐
│   │┌──────┐ ┌──────┐                           ┌──────┐┌──────┐│   │
│   ││  __  │ │      │                           │      ││      ││   │
│   ││  \/  │ │ icon │  label                    │ btns ││ btns ││   │
│   ││      │ │      │                           │      ││      ││   │
│   │└──────┘ └──────┘                           └──────┘└──────┘│   │
└───┴────────────────────────────────────────────────────────────┴───┘
    ◀───────────── allocated width (used for layout) ───────────▶
◀────────────── clip rectangle (used for highlighting) ─────────────▶

Features:

  • selectable
  • full span highlighting based on clip rectangle
  • optional icon
  • optional on-hover buttons on the right
  • optional collapsing behavior for trees

This widget relies on the clip rectangle to be properly set as it use it for the shape if its background highlighting. This has a significant impact on the hierarchy of the UI. This is typically how things should be laid out:

Panel (no margin, set the clip rectangle)
└── ScrollArea (no margin)
    └── Frame (with inner margin)
        └── ListItem

See ReUi::panel_content for an helper to build the egui::Frame with proper margins.

Implementations§

source§

impl<'a> ListItem<'a>

source

pub fn new(re_ui: &'a ReUi, text: impl Into<WidgetText>) -> ListItem<'a>

Create a new ListItem with the given label.

source

pub fn interactive(self, interactive: bool) -> ListItem<'a>

Can the user click and interact with it?

Set to false for items that only show info, but shouldn’t be interactive.

source

pub fn selected(self, selected: bool) -> ListItem<'a>

Set the selected state of the item.

source

pub fn draggable(self, draggable: bool) -> ListItem<'a>

Make the item draggable.

source

pub fn drop_target_style(self, drag_target: bool) -> ListItem<'a>

Highlight the item as the current drop target.

Use this while dragging, to highlight which container will receive the drop at any given time. Note: this flag has otherwise no behavioural effect. It’s up to the caller to set it when the item is being hovered (or otherwise selected as drop target) while a drag is in progress.

source

pub fn subdued(self, subdued: bool) -> ListItem<'a>

Set the subdued state of the item.

Note: takes precedence over Self::weak if set.

source

pub fn weak(self, weak: bool) -> ListItem<'a>

Set the weak state of the item.

Note: Self::subdued takes precedence if set.

source

pub fn italics(self, italics: bool) -> ListItem<'a>

Render text in italic.

source

pub fn label_style(self, style: LabelStyle) -> ListItem<'a>

Style the label for an unnamed items.

The styling is applied on top of to Self::weak and Self::subdued. It also implies Self::italics.

source

pub fn force_hovered(self, force_hovered: bool) -> ListItem<'a>

Override the hovered state even if the item is not actually hovered.

Used to highlight items representing things that are hovered elsewhere in the UI. Note that the egui::Response returned by Self::show_flat, Self::show_hierarchical, and Self::show_hierarchical_with_content will still reflect the actual hover state.

source

pub fn with_height(self, height: f32) -> ListItem<'a>

Set the item height.

The default is provided by ReUi::list_item_height and is suitable for hierarchical lists.

source

pub fn width_allocation_mode(self, mode: WidthAllocationMode) -> ListItem<'a>

Set the width allocation mode.

source

pub fn with_icon(self, icon: &'a Icon) -> ListItem<'a>

Provide an Icon to be displayed on the left of the item.

source

pub fn with_icon_fn( self, icon_fn: impl FnOnce(&ReUi, &Ui, Rect, WidgetVisuals) + 'a ) -> ListItem<'a>

Provide a custom closure to draw an icon on the left of the item.

source

pub fn with_buttons( self, buttons: impl FnOnce(&ReUi, &mut Ui) -> Response + 'a ) -> ListItem<'a>

Provide a closure to display on-hover buttons on the right of the item.

Buttons also show when the item is selected, in order to support clicking them on touch screens.

Notes:

  • If buttons are used, the item will allocate the full available width of the parent. If the enclosing UI adapts to the childrens width, it will unnecessarily grow. If buttons aren’t used, the item will only allocate the width needed for the text and icons if any.
  • A right to left layout is used, so the right-most button must be added first.
source

pub fn show_flat(self, ui: &mut Ui) -> Response

Draw the item as part of a flat list.

source

pub fn show_hierarchical(self, ui: &mut Ui) -> Response

Draw the item as a leaf node from a hierarchical list.

source

pub fn show_hierarchical_with_content<R>( self, ui: &mut Ui, id: impl Into<Id>, default_open: bool, add_body: impl FnOnce(&ReUi, &mut Ui) -> R ) -> ShowCollapsingResponse<R>

Draw the item as a non-leaf node from a hierarchical list.

Auto Trait Implementations§

§

impl<'a> Freeze for ListItem<'a>

§

impl<'a> !RefUnwindSafe for ListItem<'a>

§

impl<'a> !Send for ListItem<'a>

§

impl<'a> !Sync for ListItem<'a>

§

impl<'a> Unpin for ListItem<'a>

§

impl<'a> !UnwindSafe for ListItem<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.