pub struct Panel {
side: PanelSide,
id: Id,
frame: Option<Frame>,
resizable: bool,
show_separator_line: bool,
default_size: Option<f32>,
size_range: Rangef,
}Expand description
A panel that covers an entire side
(left, right,
top or bottom)
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::Panel::left("my_left_panel").show_inside(ui, |ui| {
ui.label("Hello World!");
});Fields§
§side: PanelSide§id: Id§frame: Option<Frame>§resizable: bool§show_separator_line: bool§default_size: Option<f32>The size is defined as being either the width for a Vertical Panel or the height for a Horizontal Panel.
size_range: RangefThe size is defined as being either the width for a Vertical Panel or the height for a Horizontal Panel.
Implementations§
Source§impl Panel
impl Panel
Sourcepub fn left(id: impl Into<Id>) -> Self
pub fn left(id: impl Into<Id>) -> Self
Create a left panel.
The id should be globally unique, e.g. Id::new("my_left_panel").
Sourcepub fn right(id: impl Into<Id>) -> Self
pub fn right(id: impl Into<Id>) -> Self
Create a right panel.
The id should be globally unique, e.g. Id::new("my_right_panel").
Sourcepub fn top(id: impl Into<Id>) -> Self
pub fn top(id: impl Into<Id>) -> Self
Create a top panel.
The id should be globally unique, e.g. Id::new("my_top_panel").
By default this is NOT resizable.
Sourcepub fn bottom(id: impl Into<Id>) -> Self
pub fn bottom(id: impl Into<Id>) -> Self
Create a bottom panel.
The id should be globally unique, e.g. Id::new("my_bottom_panel").
By default this is NOT resizable.
Sourcefn new(side: PanelSide, id: impl Into<Id>) -> Self
fn new(side: PanelSide, id: impl Into<Id>) -> Self
Create a panel.
The id should be globally unique, e.g. Id::new("my_panel").
Sourcepub fn resizable(self, resizable: bool) -> Self
pub fn resizable(self, resizable: bool) -> Self
Can panel be resized by dragging the edge of it?
Default is true.
If you want your panel to be resizable you also need to make the ui use the available space.
This can be done by using Ui::take_available_space, or using 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. - …
Sourcepub fn show_separator_line(self, show_separator_line: bool) -> Self
pub fn show_separator_line(self, show_separator_line: bool) -> Self
Show a separator line, even when not interacting with it?
Default: true.
Sourcepub fn default_size(self, default_size: f32) -> Self
pub fn default_size(self, default_size: f32) -> Self
The initial wrapping width of the Panel, including margins.
Sourcepub fn size_range(self, size_range: impl Into<Rangef>) -> Self
pub fn size_range(self, size_range: impl Into<Rangef>) -> Self
The allowable size range for the panel, including margins.
Sourcepub fn exact_size(self, size: f32) -> Self
pub fn exact_size(self, size: f32) -> Self
Enforce this exact size, including margins.
Source§impl Panel
impl Panel
pub fn default_width(self, default_size: f32) -> Self
pub fn min_width(self, min_size: f32) -> Self
pub fn max_width(self, max_size: f32) -> Self
pub fn width_range(self, size_range: impl Into<Rangef>) -> Self
pub fn exact_width(self, size: f32) -> Self
pub fn default_height(self, default_size: f32) -> Self
pub fn min_height(self, min_size: f32) -> Self
pub fn max_height(self, max_size: f32) -> Self
pub fn height_range(self, size_range: impl Into<Rangef>) -> Self
pub fn exact_height(self, size: f32) -> Self
Source§impl Panel
impl Panel
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>
👎Deprecated: Use show_inside() instead
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>>
👎Deprecated: Use show_animated_inside() instead
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: Self,
expanded_panel: Self,
add_contents: impl FnOnce(&mut Ui, f32) -> R,
) -> Option<InnerResponse<R>>
👎Deprecated: Use show_animated_between_inside() instead
pub fn show_animated_between<R>( ctx: &Context, is_expanded: bool, collapsed_panel: Self, expanded_panel: Self, 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: Self,
expanded_panel: Self,
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: Self, expanded_panel: Self, add_contents: impl FnOnce(&mut Ui, f32) -> R, ) -> InnerResponse<R>
Show either a collapsed or a expanded panel, with a nice animation between.
Source§impl Panel
impl Panel
Sourcefn show_inside_dyn<'c, R>(
self,
ui: &mut Ui,
add_contents: Box<dyn FnOnce(&mut Ui) -> R + 'c>,
) -> InnerResponse<R>
fn show_inside_dyn<'c, R>( self, ui: &mut Ui, add_contents: Box<dyn FnOnce(&mut Ui) -> R + 'c>, ) -> InnerResponse<R>
Show the panel inside a Ui.
Sourcefn show_dyn<'c, R>(
self,
ctx: &Context,
add_contents: Box<dyn FnOnce(&mut Ui) -> R + 'c>,
) -> InnerResponse<R>
fn show_dyn<'c, R>( self, ctx: &Context, add_contents: Box<dyn FnOnce(&mut Ui) -> R + 'c>, ) -> InnerResponse<R>
Show the panel at the top level.
fn prepare_resizable_panel(&self, panel_sizer: &mut PanelSizer<'_>, ui: &Ui)
fn resize_panel(&self, panel_sizer: &PanelSizer<'_>, ui: &Ui) -> (bool, bool)
fn cursor_icon(&self, panel_sizer: &PanelSizer<'_>) -> CursorIcon
Sourcefn get_animated_panel(self, ctx: &Context, is_expanded: bool) -> Option<Self>
fn get_animated_panel(self, ctx: &Context, is_expanded: bool) -> Option<Self>
Get the real or fake panel to animate if is_expanded is true.
Sourcefn get_animated_between_panel(
ctx: &Context,
is_expanded: bool,
collapsed_panel: Self,
expanded_panel: Self,
) -> Self
fn get_animated_between_panel( ctx: &Context, is_expanded: bool, collapsed_panel: Self, expanded_panel: Self, ) -> Self
Get either the collapsed or expended panel to animate.