rat_widget::clipper

Struct ClipperLayout

Source
pub struct ClipperLayout { /* private fields */ }
Expand description

ClipperLayout holds all areas for the widgets that want to be displayed.

It uses its own layout coordinates. The scroll offset is in layout coordinates too.

Implementations§

Source§

impl ClipperLayout

Source

pub fn new(stride: usize) -> Self

New layout.

Source

pub fn with_layout(layout: StructuredLayout) -> Self

New layout from StructuredLayout

Source

pub fn width_changed(&self, width: u16) -> bool

Has the target width of the layout changed.

This is helpful if you only want vertical scrolling, and build your layout to fit.

Source

pub fn add(&mut self, area: &[Rect]) -> AreaHandle

Add a layout area.

Source

pub fn layout_handle(&self, handle: AreaHandle) -> Box<[Rect]>

Get the layout area for the given handle

Source

pub fn len(&self) -> usize

Number of areas.

Source

pub fn is_empty(&self) -> bool

Contains areas?

Source

pub fn layout(&mut self, page: Rect) -> Rect

Run the layout algorithm.

Returns the extended area to render all visible widgets. The size of this area is the required size of the buffer.

  • page: in layout coordinates
  • ->: extended area in layout coordinates.
Source

pub fn page_area(&self) -> Rect

Page area in layout coordinates

Source

pub fn ext_page_area(&self) -> Rect

Extended page area in layout coordinates. This area is at least as large as page_area() and has enough space for partially visible widgets.

Source

pub fn max_layout_pos(&self) -> (u16, u16)

Returns the bottom-right corner for the Layout.

Source

pub fn first_layout_area(&self) -> Option<Box<[Rect]>>

First visible area in buffer in layout coordinates.

Caution Order is the order of addition, not necessarily the top-left area.

Source

pub fn first_layout_handle(&self) -> Option<AreaHandle>

First visible area-handle.

Caution Order is the order of addition, not necessarily the top-left area.

Source

pub fn buf_handle(&self, handle: AreaHandle) -> Box<[Rect]>

Converts the areas behind the handle to buffer coordinates. This will return coordinates relative to the extended page. Or None.

Source

pub fn buf_area(&self, area: Rect) -> Rect

Converts the layout area to buffer coordinates and clips to the buffer area.

Trait Implementations§

Source§

impl Clone for ClipperLayout

Source§

fn clone(&self) -> ClipperLayout

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClipperLayout

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ClipperLayout

Source§

fn default() -> ClipperLayout

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.