Struct rerun::external::eframe::egui::containers::CollapsingHeader
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<Box<dyn FnOnce(&mut Ui, f32, &Response)>>,
}
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<Box<dyn FnOnce(&mut Ui, f32, &Response)>>
Implementations§
§impl CollapsingHeader
impl CollapsingHeader
pub fn new(text: impl Into<WidgetText>) -> CollapsingHeader
pub fn new(text: impl Into<WidgetText>) -> CollapsingHeader
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
.
pub fn default_open(self, open: bool) -> CollapsingHeader
pub fn default_open(self, open: bool) -> CollapsingHeader
By default, the CollapsingHeader
is collapsed.
Call .default_open(true)
to change this.
pub fn open(self, open: Option<bool>) -> CollapsingHeader
pub fn open(self, open: Option<bool>) -> CollapsingHeader
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).
pub fn id_salt(self, id_salt: impl Hash) -> CollapsingHeader
pub fn id_salt(self, id_salt: impl Hash) -> CollapsingHeader
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.
pub fn id_source(self, id_salt: impl Hash) -> CollapsingHeader
👎Deprecated: Renamed id_salt
pub fn id_source(self, id_salt: impl Hash) -> CollapsingHeader
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.
pub fn enabled(self, enabled: bool) -> CollapsingHeader
pub fn enabled(self, enabled: bool) -> CollapsingHeader
If you set this to false
, the CollapsingHeader
will be grayed out and un-clickable.
This is a convenience for Ui::disable
.
pub fn show_background(self, show_background: bool) -> CollapsingHeader
pub fn show_background(self, show_background: bool) -> CollapsingHeader
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;
pub fn icon(
self,
icon_fn: impl FnOnce(&mut Ui, f32, &Response) + 'static
) -> CollapsingHeader
pub fn icon( self, icon_fn: impl FnOnce(&mut Ui, f32, &Response) + 'static ) -> CollapsingHeader
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!"); });
§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 Freeze for CollapsingHeader
impl !RefUnwindSafe for CollapsingHeader
impl !Send for CollapsingHeader
impl !Sync for CollapsingHeader
impl Unpin for CollapsingHeader
impl !UnwindSafe 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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request