Struct rat_widget::splitter::SplitState
source · #[non_exhaustive]pub struct SplitState {
pub area: Rect,
pub inner: Rect,
pub widget_areas: Vec<Rect>,
pub splitline_areas: Vec<Rect>,
pub splitline_mark_areas: Vec<Position>,
pub mark_offset: u16,
pub direction: Direction,
pub split_type: SplitType,
pub lengths: Vec<u16>,
pub focus: FocusFlag,
pub focus_marker: Option<usize>,
pub mouse: MouseFlagsN,
/* private fields */
}Expand description
State & event handling.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.area: RectTotal area. readonly. renewed for each render.
inner: RectArea inside the border. readonly. renewed for each render.
widget_areas: Vec<Rect>The widget areas. Use this after calling layout() to render your widgets. readonly renewed for each render.
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. readonly renewed for each render.
splitline_mark_areas: Vec<Position>Start position for drawing the mark. readonly renewed for each render.
mark_offset: u16Offset of the mark from top/left. readonly renewed for each render.
direction: DirectionDirection of the split. readonly renewed for each render.
split_type: SplitTypereadonly renewed for each render.
lengths: Vec<u16>Layout-widths for the split-areas.
This information is used after the initial render to lay out the splitter. read+write
focus: FocusFlagFocus. read+write
focus_marker: Option<usize>If the splitter has the focus you can navigate between the split-markers. This is the currently active split-marker. read+write
mouse: MouseFlagsNMouseflags. read+write
Implementations§
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 change is bigger than the length of the split.
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 change is bigger than the length of the split.
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 change is bigger than the length of the split.
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 change is bigger than the length of the split.
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.
Is the split hidden?
sourcepub fn hide_split(&mut self, n: usize) -> bool
pub fn hide_split(&mut self, n: usize) -> bool
Hide the split and adds its area to the following split.
pub fn show_split(&mut self, n: usize) -> bool
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