Struct rat_widget::splitter::SplitState
source · pub struct SplitState {Show 13 fields
pub area: Rect,
pub inner: Rect,
pub widget_areas: Vec<Rect>,
pub focus: FocusFlag,
pub focus_marker: Option<usize>,
pub splitline_areas: Vec<Rect>,
pub splitline_blind_areas: Vec<Rect>,
pub splitline_mark_areas: Vec<Position>,
pub direction: Direction,
pub split_type: SplitType,
pub mark_offset: u16,
pub mouse: MouseFlagsN,
pub non_exhaustive: NonExhaustive,
}Expand description
State & event handling.
Fields§
§area: RectTotal area.
inner: RectArea inside the border.
widget_areas: Vec<Rect>The widget areas.
Use this after calling layout() to render your widgets.
If the widget is resized, widget_areas and splitline_areas are used to build the constraints for the new layout.
focus: FocusFlagFocus
focus_marker: Option<usize>If the split has the focus you can navigate between the split-markers. This is the currently active split-marker.
splitline_areas: Vec<Rect>Area used by the splitter. This is area is used for moving the splitter. It might overlap with the widget area.
splitline_blind_areas: Vec<Rect>If there is a mark_offset, that leaves a blind spot above. This is noticeable, when the split_type is Scroll.
splitline_mark_areas: Vec<Position>Start position for drawing the mark.
direction: DirectionDirection of the split.
split_type: SplitTypeSplit type.
mark_offset: u16Offset of the mark from top/left.
mouse: MouseFlagsNMouseflags.
non_exhaustive: NonExhaustiveImplementations§
source§impl SplitState
impl SplitState
sourcepub fn set_screen_split_pos(&mut self, n: usize, pos: (u16, u16)) -> bool
pub fn set_screen_split_pos(&mut self, n: usize, pos: (u16, u16)) -> bool
Set the position for the nth splitter.
The position is limited the combined area of the two adjacent areas.
sourcepub fn move_split_left(&mut self, n: usize, delta: u16) -> bool
pub fn move_split_left(&mut self, n: usize, delta: u16) -> bool
Move the nth split position. Does nothing if the direction is not matching.
sourcepub fn move_split_right(&mut self, n: usize, delta: u16) -> bool
pub fn move_split_right(&mut self, n: usize, delta: u16) -> bool
Move the nth split position. Does nothing if the direction is not matching.
sourcepub fn move_split_up(&mut self, n: usize, delta: u16) -> bool
pub fn move_split_up(&mut self, n: usize, delta: u16) -> bool
Move the nth split position. Does nothing if the direction is not matching.
sourcepub fn move_split_down(&mut self, n: usize, delta: u16) -> bool
pub fn move_split_down(&mut self, n: usize, delta: u16) -> bool
Move the nth split position. Does nothing if the direction is not matching.
sourcepub fn select_next_split(&mut self) -> bool
pub fn select_next_split(&mut self) -> bool
Select the next splitter for manual adjustment.
sourcepub fn select_prev_split(&mut self) -> bool
pub fn select_prev_split(&mut self) -> bool
Select the previous splitter for manual adjustment.
Trait Implementations§
source§impl Debug for SplitState
impl Debug for SplitState
source§impl Default for SplitState
impl Default for SplitState
source§impl HandleEvent<Event, MouseOnly, Outcome> for SplitState
impl HandleEvent<Event, MouseOnly, Outcome> for SplitState
source§impl HandleEvent<Event, Regular, Outcome> for SplitState
impl HandleEvent<Event, Regular, Outcome> for SplitState
source§impl HasFocusFlag for SplitState
impl HasFocusFlag for SplitState
source§fn z_areas(&self) -> &[ZRect]
fn z_areas(&self) -> &[ZRect]
source§fn is_focused(&self) -> bool
fn is_focused(&self) -> bool
source§fn lost_focus(&self) -> bool
fn lost_focus(&self) -> bool
source§fn gained_focus(&self) -> bool
fn gained_focus(&self) -> bool
Auto Trait Implementations§
impl !Freeze for SplitState
impl !RefUnwindSafe for SplitState
impl !Send for SplitState
impl !Sync for SplitState
impl Unpin for SplitState
impl !UnwindSafe for SplitState
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> 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