pub struct ResizableSplit {
pub split_percent: u16,
pub min_percent: u16,
pub max_percent: u16,
pub is_dragging: bool,
pub is_hovering: bool,
pub direction: SplitDirection,
pub divider_pos: u16,
}split only.Expand description
Tracks the state of a resizable split
Fields§
§split_percent: u16Current split position as percentage (0-100) For Vertical: left panel percentage (e.g., 70 means left is 70%, right is 30%) For Horizontal: top panel percentage (e.g., 70 means top is 70%, bottom is 30%)
min_percent: u16Minimum percentage for first panel (left or top)
max_percent: u16Maximum percentage for first panel (left or top)
is_dragging: boolWhether currently dragging the divider
is_hovering: boolWhether mouse is hovering over the divider
direction: SplitDirectionDirection of the split
divider_pos: u16The column or row position of the divider (updated each frame)
Implementations§
Source§impl ResizableSplit
impl ResizableSplit
Sourcepub fn new_with_direction(
initial_percent: u16,
direction: SplitDirection,
) -> Self
pub fn new_with_direction( initial_percent: u16, direction: SplitDirection, ) -> Self
Create a new split with a specific direction
Sourcepub fn update_divider_position(&mut self, area: Rect)
pub fn update_divider_position(&mut self, area: Rect)
Update the divider position based on the current area
Sourcepub fn is_on_divider(
&self,
mouse_column: u16,
mouse_row: u16,
area: Rect,
) -> bool
pub fn is_on_divider( &self, mouse_column: u16, mouse_row: u16, area: Rect, ) -> bool
Check if a mouse position is on the divider We give it a 3-unit wide hit area for easier clicking (columns for vertical, rows for horizontal)
Sourcepub fn start_drag(&mut self)
pub fn start_drag(&mut self)
Start dragging the divider
Sourcepub fn update_from_mouse(
&mut self,
mouse_column: u16,
mouse_row: u16,
area: Rect,
)
pub fn update_from_mouse( &mut self, mouse_column: u16, mouse_row: u16, area: Rect, )
Update the split position based on mouse position
Sourcepub fn right_percent(&self) -> u16
pub fn right_percent(&self) -> u16
Get the percentage for the second panel (right for vertical, bottom for horizontal)
Sourcepub fn bottom_percent(&self) -> u16
pub fn bottom_percent(&self) -> u16
Alias for right_percent - gets the percentage for the bottom panel
Sourcepub fn render_divider_indicator(&self, _frame: &mut Frame<'_>, _area: Rect)
pub fn render_divider_indicator(&self, _frame: &mut Frame<'_>, _area: Rect)
Render a visual indicator on the divider when hovering or dragging Note: Does nothing - border colors are changed on the panes themselves
Trait Implementations§
Source§impl Clone for ResizableSplit
impl Clone for ResizableSplit
Source§fn clone(&self) -> ResizableSplit
fn clone(&self) -> ResizableSplit
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResizableSplit
impl Debug for ResizableSplit
Auto Trait Implementations§
impl Freeze for ResizableSplit
impl RefUnwindSafe for ResizableSplit
impl Send for ResizableSplit
impl Sync for ResizableSplit
impl Unpin for ResizableSplit
impl UnwindSafe for ResizableSplit
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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> 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 more