pub struct PaneGroup { /* private fields */ }Expand description
Stateful owner of a recursive pane split tree: which pane is active, how
new panes’ content is created, and (via its Render impl) the
split/close/focus keybinding wiring and active-pane highlight.
Create with cx.new(|cx| PaneGroup::new(cx, pane)), optionally
.with_pane_factory(..) to control what split-created panes contain.
Implementations§
Source§impl PaneGroup
impl PaneGroup
Sourcepub fn new(cx: &mut Context<'_, Self>, pane: Entity<Pane>) -> Self
pub fn new(cx: &mut Context<'_, Self>, pane: Entity<Pane>) -> Self
Boots a single-leaf tree containing pane.
Takes cx: &mut Context<Self> (a refinement over phase-01’s
new(pane: Entity<Pane>) pseudocode) — needed to allocate this
group’s own FocusHandle and subscribe to pane’s
[PaneEvent::Empty].
Sourcepub fn with_pane_factory(
self,
factory: impl Fn(&mut Context<'_, Pane>) -> Pane + 'static,
) -> Self
pub fn with_pane_factory( self, factory: impl Fn(&mut Context<'_, Pane>) -> Pane + 'static, ) -> Self
Sourcepub fn active_pane(&self) -> &Entity<Pane>
pub fn active_pane(&self) -> &Entity<Pane>
The currently active (keyboard/action target) pane.
Sourcepub fn set_active_pane(
&mut self,
pane: Entity<Pane>,
cx: &mut Context<'_, Self>,
)
pub fn set_active_pane( &mut self, pane: Entity<Pane>, cx: &mut Context<'_, Self>, )
Sets the active pane directly, for callers holding a specific
Entity<Pane> handle (e.g. programmatically laying out an initial
grid, or a “reveal this file’s pane” flow) rather than a keyboard
direction. No tree-membership validation: setting a pane outside
this group’s tree only makes subsequent split/close_active
target a detached pane, which is inert (not a crash risk) but almost
certainly not what the caller wants.
Sourcepub fn split(&mut self, dir: SplitDirection, cx: &mut Context<'_, Self>)
pub fn split(&mut self, dir: SplitDirection, cx: &mut Context<'_, Self>)
Splits the active pane in dir: appends a sibling into the active
pane’s parent axis if it already runs along dir’s axis (N-way
split), otherwise wraps the active pane in a new two-child axis. The
new pane becomes active.
Sourcepub fn close_active(
&mut self,
cx: &mut Context<'_, Self>,
) -> Result<(), CannotRemoveLastPane>
pub fn close_active( &mut self, cx: &mut Context<'_, Self>, ) -> Result<(), CannotRemoveLastPane>
Removes the active pane from the tree. Errs if it is the last pane.
Sourcepub fn focus(&mut self, dir: SplitDirection, cx: &mut Context<'_, Self>)
pub fn focus(&mut self, dir: SplitDirection, cx: &mut Context<'_, Self>)
Moves the active pane to its neighbor in dir, if one exists in the
same axis as the active pane’s immediate parent split.
Trait Implementations§
Source§impl Focusable for PaneGroup
impl Focusable for PaneGroup
Source§fn focus_handle(&self, _cx: &App) -> FocusHandle
fn focus_handle(&self, _cx: &App) -> FocusHandle
Auto Trait Implementations§
impl !RefUnwindSafe for PaneGroup
impl !Send for PaneGroup
impl !Sync for PaneGroup
impl !UnwindSafe for PaneGroup
impl Freeze for PaneGroup
impl Unpin for PaneGroup
impl UnsafeUnpin for PaneGroup
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more