pub struct SidePanel {
side: Side,
id: Id,
frame: Option<Frame>,
resizable: bool,
show_separator_line: bool,
default_width: f32,
width_range: Rangef,
}
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
.
Fields§
§side: Side
§id: Id
§frame: Option<Frame>
§resizable: bool
§show_separator_line: bool
§default_width: f32
§width_range: Rangef
Implementations§
§impl SidePanel
impl SidePanel
pub 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")
.
pub 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")
.
pub 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")
.
pub 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
crate::ScrollArea
. - A
crate::Separator
. - A
crate::TextEdit
. - …
pub 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
.
pub fn default_width(self, default_width: f32) -> SidePanel
pub fn default_width(self, default_width: f32) -> SidePanel
The initial wrapping width of the SidePanel
, including margins.
pub 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, including margins.
pub fn exact_width(self, width: f32) -> SidePanel
pub fn exact_width(self, width: f32) -> SidePanel
Enforce this exact width, including margins.
§impl SidePanel
impl SidePanel
pub 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
.
pub 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.
pub 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.
pub 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.
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>>
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.
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>
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>
§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> DowncastSync for T
impl<T> DowncastSync for T
§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