pub struct SidePanel { /* private fields */ }
Expand description
A panel that covers the entire left or right side of a Ui
or screen.
The order in which you add panels matter! The first panel you add will always be the outermost, and the last you add will always be the innermost.
⚠ Always add any CentralPanel
last.
See the module level docs for more details.
egui::SidePanel::left("my_left_panel").show(ctx, |ui| {
ui.label("Hello World!");
});
See also TopBottomPanel
.
Implementations§
source§impl SidePanel
impl SidePanel
sourcepub fn left(id: impl Into<Id>) -> SidePanel
pub fn left(id: impl Into<Id>) -> SidePanel
The id should be globally unique, e.g. Id::new("my_left_panel")
.
sourcepub fn right(id: impl Into<Id>) -> SidePanel
pub fn right(id: impl Into<Id>) -> SidePanel
The id should be globally unique, e.g. Id::new("my_right_panel")
.
sourcepub fn new(side: Side, id: impl Into<Id>) -> SidePanel
pub fn new(side: Side, id: impl Into<Id>) -> SidePanel
The id should be globally unique, e.g. Id::new("my_panel")
.
sourcepub fn resizable(self, resizable: bool) -> SidePanel
pub fn resizable(self, resizable: bool) -> SidePanel
Can panel be resized by dragging the edge of it?
Default is true
.
If you want your panel to be resizable you also need a widget in it that takes up more space as you resize it, such as:
- Wrapping text (
Ui::horizontal_wrapped
). - A
ScrollArea
. - A
Separator
. - A
TextEdit
. - …
sourcepub fn show_separator_line(self, show_separator_line: bool) -> SidePanel
pub fn show_separator_line(self, show_separator_line: bool) -> SidePanel
Show a separator line, even when not interacting with it?
Default: true
.
sourcepub fn default_width(self, default_width: f32) -> SidePanel
pub fn default_width(self, default_width: f32) -> SidePanel
The initial wrapping width of the SidePanel
.
sourcepub fn width_range(self, width_range: impl Into<Rangef>) -> SidePanel
pub fn width_range(self, width_range: impl Into<Rangef>) -> SidePanel
The allowable width range for the panel.
sourcepub fn exact_width(self, width: f32) -> SidePanel
pub fn exact_width(self, width: f32) -> SidePanel
Enforce this exact width.
source§impl SidePanel
impl SidePanel
sourcepub fn show_inside<R>(
self,
ui: &mut Ui,
add_contents: impl FnOnce(&mut Ui) -> R
) -> InnerResponse<R>
pub fn show_inside<R>( self, ui: &mut Ui, add_contents: impl FnOnce(&mut Ui) -> R ) -> InnerResponse<R>
Show the panel inside a Ui
.
sourcepub fn show<R>(
self,
ctx: &Context,
add_contents: impl FnOnce(&mut Ui) -> R
) -> InnerResponse<R>
pub fn show<R>( self, ctx: &Context, add_contents: impl FnOnce(&mut Ui) -> R ) -> InnerResponse<R>
Show the panel at the top level.
sourcepub fn show_animated<R>(
self,
ctx: &Context,
is_expanded: bool,
add_contents: impl FnOnce(&mut Ui) -> R
) -> Option<InnerResponse<R>>
pub fn show_animated<R>( self, ctx: &Context, is_expanded: bool, add_contents: impl FnOnce(&mut Ui) -> R ) -> Option<InnerResponse<R>>
Show the panel if is_expanded
is true
,
otherwise don’t show it, but with a nice animation between collapsed and expanded.
sourcepub fn show_animated_inside<R>(
self,
ui: &mut Ui,
is_expanded: bool,
add_contents: impl FnOnce(&mut Ui) -> R
) -> Option<InnerResponse<R>>
pub fn show_animated_inside<R>( self, ui: &mut Ui, is_expanded: bool, add_contents: impl FnOnce(&mut Ui) -> R ) -> Option<InnerResponse<R>>
Show the panel if is_expanded
is true
,
otherwise don’t show it, but with a nice animation between collapsed and expanded.
sourcepub fn show_animated_between<R>(
ctx: &Context,
is_expanded: bool,
collapsed_panel: SidePanel,
expanded_panel: SidePanel,
add_contents: impl FnOnce(&mut Ui, f32) -> R
) -> Option<InnerResponse<R>>
pub fn show_animated_between<R>( ctx: &Context, is_expanded: bool, collapsed_panel: SidePanel, expanded_panel: SidePanel, add_contents: impl FnOnce(&mut Ui, f32) -> R ) -> Option<InnerResponse<R>>
Show either a collapsed or a expanded panel, with a nice animation between.
sourcepub fn show_animated_between_inside<R>(
ui: &mut Ui,
is_expanded: bool,
collapsed_panel: SidePanel,
expanded_panel: SidePanel,
add_contents: impl FnOnce(&mut Ui, f32) -> R
) -> InnerResponse<R>
pub fn show_animated_between_inside<R>( ui: &mut Ui, is_expanded: bool, collapsed_panel: SidePanel, expanded_panel: SidePanel, add_contents: impl FnOnce(&mut Ui, f32) -> R ) -> InnerResponse<R>
Show either a collapsed or a expanded panel, with a nice animation between.
Auto Trait Implementations§
impl Freeze for SidePanel
impl RefUnwindSafe for SidePanel
impl Send for SidePanel
impl Sync for SidePanel
impl Unpin for SidePanel
impl UnwindSafe for SidePanel
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>
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§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
.source§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
.source§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.source§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.