Struct egui::containers::collapsing_header::CollapsingHeader

source ·
pub struct CollapsingHeader {
    text: WidgetText,
    default_open: bool,
    open: Option<bool>,
    id_salt: Id,
    enabled: bool,
    selectable: bool,
    selected: bool,
    show_background: bool,
    icon: Option<IconPainter>,
}
Expand description

A header which can be collapsed/expanded, revealing a contained Ui region.

egui::CollapsingHeader::new("Heading")
    .show(ui, |ui| {
        ui.label("Body");
    });

// Short version:
ui.collapsing("Heading", |ui| { ui.label("Body"); });

If you want to customize the header contents, see CollapsingState::show_header.

Fields§

§text: WidgetText§default_open: bool§open: Option<bool>§id_salt: Id§enabled: bool§selectable: bool§selected: bool§show_background: bool§icon: Option<IconPainter>

Implementations§

source§

impl CollapsingHeader

source

pub fn new(text: impl Into<WidgetText>) -> Self

The CollapsingHeader starts out collapsed unless you call default_open.

The label is used as an Id source. If the label is unique and static this is fine, but if it changes or there are several CollapsingHeader with the same title you need to provide a unique id source with Self::id_salt.

source

pub fn default_open(self, open: bool) -> Self

By default, the CollapsingHeader is collapsed. Call .default_open(true) to change this.

source

pub fn open(self, open: Option<bool>) -> Self

Calling .open(Some(true)) will make the collapsing header open this frame (or stay open).

Calling .open(Some(false)) will make the collapsing header close this frame (or stay closed).

Calling .open(None) has no effect (default).

source

pub fn id_salt(self, id_salt: impl Hash) -> Self

Explicitly set the source of the Id of this widget, instead of using title label. This is useful if the title label is dynamic or not unique.

source

pub fn id_source(self, id_salt: impl Hash) -> Self

👎Deprecated: Renamed id_salt

Explicitly set the source of the Id of this widget, instead of using title label. This is useful if the title label is dynamic or not unique.

source

pub fn enabled(self, enabled: bool) -> Self

If you set this to false, the CollapsingHeader will be grayed out and un-clickable.

This is a convenience for Ui::disable.

source

pub fn show_background(self, show_background: bool) -> Self

Should the CollapsingHeader show a background behind it? Default: false.

To show it behind all CollapsingHeader you can just use:

ui.visuals_mut().collapsing_header_frame = true;
source

pub fn icon( self, icon_fn: impl FnOnce(&mut Ui, f32, &Response) + 'static, ) -> Self

Use the provided function to render a different CollapsingHeader icon. Defaults to a triangle that animates as the CollapsingHeader opens and closes.

For example:

fn circle_icon(ui: &mut egui::Ui, openness: f32, response: &egui::Response) {
    let stroke = ui.style().interact(&response).fg_stroke;
    let radius = egui::lerp(2.0..=3.0, openness);
    ui.painter().circle_filled(response.rect.center(), radius, stroke.color);
}

egui::CollapsingHeader::new("Circles")
  .icon(circle_icon)
  .show(ui, |ui| { ui.label("Hi!"); });
source§

impl CollapsingHeader

source

fn begin(self, ui: &mut Ui) -> Prepared

source

pub fn show<R>( self, ui: &mut Ui, add_body: impl FnOnce(&mut Ui) -> R, ) -> CollapsingResponse<R>

source

pub fn show_unindented<R>( self, ui: &mut Ui, add_body: impl FnOnce(&mut Ui) -> R, ) -> CollapsingResponse<R>

source

fn show_dyn<'c, R>( self, ui: &mut Ui, add_body: Box<dyn FnOnce(&mut Ui) -> R + 'c>, indented: bool, ) -> CollapsingResponse<R>

Auto Trait Implementations§

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> 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<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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<T, U> TryFrom<U> for T
where U: Into<T>,

source§

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>,

source§

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.