pub struct CollapsingHeader { /* private fields */ }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.
Implementations§
Source§impl CollapsingHeader
impl CollapsingHeader
Sourcepub fn new(text: impl Into<WidgetText>) -> Self
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.
Sourcepub fn default_open(self, open: bool) -> Self
pub fn default_open(self, open: bool) -> Self
By default, the CollapsingHeader is collapsed.
Call .default_open(true) to change this.
Sourcepub fn open(self, open: Option<bool>) -> Self
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).
Sourcepub fn id_salt(self, id_salt: impl AsIdSalt) -> Self
pub fn id_salt(self, id_salt: impl AsIdSalt) -> 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.
Sourcepub fn enabled(self, enabled: bool) -> Self
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.
Sourcepub fn show_background(self, show_background: bool) -> Self
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;Sourcepub fn icon(
self,
icon_fn: impl FnOnce(&mut Ui, f32, &Response) + 'static,
) -> Self
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
impl CollapsingHeader
pub fn show<R>( self, ui: &mut Ui, add_body: impl FnOnce(&mut Ui) -> R, ) -> CollapsingResponse<R>
pub fn show_unindented<R>( self, ui: &mut Ui, add_body: impl FnOnce(&mut Ui) -> R, ) -> CollapsingResponse<R>
Auto Trait Implementations§
impl !RefUnwindSafe for CollapsingHeader
impl !Send for CollapsingHeader
impl !Sync for CollapsingHeader
impl !UnwindSafe for CollapsingHeader
impl Freeze for CollapsingHeader
impl Unpin for CollapsingHeader
impl UnsafeUnpin for CollapsingHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more