pub struct PaneGrid<'a, Message, Renderer> { /* private fields */ }
Expand description
A collection of panes distributed using either vertical or horizontal splits to completely fill the space available.
This distribution of space is common in tiling window managers (like
awesome
, i3
, or even
tmux
).
A PaneGrid
supports:
- Vertical and horizontal splits
- Tracking of the last active pane
- Mouse-based resizing
- Drag and drop to reorganize panes
- Hotkey support
- Configurable modifier keys
State
API to perform actions programmatically (split
,swap
,resize
, etc.)
Example
enum PaneState {
SomePane,
AnotherKindOfPane,
}
enum Message {
PaneDragged(pane_grid::DragEvent),
PaneResized(pane_grid::ResizeEvent),
}
let (mut state, _) = pane_grid::State::new(PaneState::SomePane);
let pane_grid =
PaneGrid::new(&mut state, |pane, state| {
pane_grid::Content::new(match state {
PaneState::SomePane => Text::new("This is some pane"),
PaneState::AnotherKindOfPane => Text::new("This is another kind of pane"),
})
})
.on_drag(Message::PaneDragged)
.on_resize(10, Message::PaneResized);
Implementations
sourceimpl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> where
Renderer: Renderer,
impl<'a, Message, Renderer> PaneGrid<'a, Message, Renderer> where
Renderer: Renderer,
sourcepub fn new<T>(
state: &'a mut State<T>,
view: impl Fn(Pane, &'a mut T) -> Content<'a, Message, Renderer>
) -> Self
pub fn new<T>(
state: &'a mut State<T>,
view: impl Fn(Pane, &'a mut T) -> Content<'a, Message, Renderer>
) -> Self
sourcepub fn on_drag<F>(self, f: F) -> Self where
F: 'a + Fn(DragEvent) -> Message,
pub fn on_drag<F>(self, f: F) -> Self where
F: 'a + Fn(DragEvent) -> Message,
Enables the drag and drop interactions of the PaneGrid
, which will
use the provided function to produce messages.
sourcepub fn on_resize<F>(self, leeway: u16, f: F) -> Self where
F: 'a + Fn(ResizeEvent) -> Message,
pub fn on_resize<F>(self, leeway: u16, f: F) -> Self where
F: 'a + Fn(ResizeEvent) -> Message,
Enables the resize interactions of the PaneGrid
, which will
use the provided function to produce messages.
The leeway
describes the amount of space around a split that can be
used to grab it.
The grabbable area of a split will have a length of spacing + leeway
,
properly centered. In other words, a length of
(spacing + leeway) / 2.0
on either side of the split line.
Trait Implementations
sourceimpl<'a, Message, Renderer> From<PaneGrid<'a, Message, Renderer>> for Element<'a, Message, Renderer> where
Renderer: 'a + Renderer,
Message: 'a,
impl<'a, Message, Renderer> From<PaneGrid<'a, Message, Renderer>> for Element<'a, Message, Renderer> where
Renderer: 'a + Renderer,
Message: 'a,
sourceimpl<'a, Message, Renderer> Widget<Message, Renderer> for PaneGrid<'a, Message, Renderer> where
Renderer: Renderer,
impl<'a, Message, Renderer> Widget<Message, Renderer> for PaneGrid<'a, Message, Renderer> where
Renderer: Renderer,
sourcefn on_event(
&mut self,
event: Event,
layout: Layout<'_>,
cursor_position: Point,
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>
) -> Status
fn on_event(
&mut self,
event: Event,
layout: Layout<'_>,
cursor_position: Point,
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>
) -> Status
sourcefn mouse_interaction(
&self,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
renderer: &Renderer
) -> Interaction
fn mouse_interaction(
&self,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle,
renderer: &Renderer
) -> Interaction
Returns the current mouse::Interaction
of the Widget
. Read more
Auto Trait Implementations
impl<'a, Message, Renderer> !RefUnwindSafe for PaneGrid<'a, Message, Renderer>
impl<'a, Message, Renderer> !Send for PaneGrid<'a, Message, Renderer>
impl<'a, Message, Renderer> !Sync for PaneGrid<'a, Message, Renderer>
impl<'a, Message, Renderer> Unpin for PaneGrid<'a, Message, Renderer>
impl<'a, Message, Renderer> !UnwindSafe for PaneGrid<'a, Message, Renderer>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more