Skip to main content

ScrollView

Struct ScrollView 

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

ScrollView - A scrollable container.

Provides vertical scrolling with optional follow-end behavior. In constrained layout, the child is measured at unbounded height and clipped to the allocated viewport.

Implementations§

Source§

impl ScrollView

Source

pub fn new(child: Arc<dyn Component>, options: ScrollViewOptions) -> Self

Create a new ScrollView with the given child.

Source

pub fn simple(child: Arc<dyn Component>) -> Self

Create a simple ScrollView with default options.

Source

pub fn primary(child: Arc<dyn Component>) -> Self

Create a primary ScrollView with follow-end behavior.

Source

pub fn child(&self) -> &Arc<dyn Component> ⓘ

Get the child component.

Source

pub fn scroll_top(&self) -> usize

Get the current scroll position.

Source

pub fn is_following_end(&self) -> bool

Check if following the end.

Source

pub fn follows_end(&self) -> bool

Whether this view can automatically follow newly appended content.

Source

pub fn viewport_height(&self) -> usize

Get the viewport height.

Source

pub fn content_height(&self) -> usize

Get the content height.

Source

pub fn is_primary(&self) -> bool

Check if this is the primary scroll view.

Source

pub fn is_scrollbar_visible(&self) -> bool

Check if scrollbar is visible.

Source

pub fn get_content_width(&self, width: usize) -> usize

Get the content width (accounting for scrollbar).

Source

pub fn scroll_by(&self, delta: i32) -> i32

Scroll by the given number of lines.

Returns the unused delta if scrolling hit the boundary. This enables scroll chaining for nested scroll views.

Source

pub fn scroll_to(&self, position: usize)

Scroll to a specific position.

Source

pub fn scroll_to_start(&self)

Scroll to the start.

Source

pub fn scroll_to_end(&self)

Scroll to the end.

Source

pub fn update_layout( &self, content_height: usize, viewport_height: usize, request_render: Option<Arc<dyn Fn() + Send + Sync>>, )

Update layout information (called by the layout system).

Source

pub fn render_with_viewport(&self, width: usize, height: usize) -> Vec<String>

Render fresh child content, applying scroll for a fixed viewport.

Normal UI updates use this path so streamed text and mutable tool components are reflected immediately. The result also primes the cache used by subsequent pure scroll frames.

Source

pub fn render_with_cached_content( &self, width: usize, height: usize, ) -> Vec<String>

Apply the viewport to the last rendered child content when possible. A width change automatically falls back to a fresh render.

Source

pub fn scrollbar_style(&self, text: &str) -> String

Get the scrollbar style (can be customized).

Trait Implementations§

Source§

impl Clone for ScrollView

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Component for ScrollView

Source§

fn render(&self, width: usize) -> Vec<String>

Render the component to lines for the given viewport width. Read more
Source§

fn invalidate(&self)

Invalidate any cached rendering state. Called when theme changes or when component needs to re-render from scratch.
Source§

fn as_any(&self) -> &dyn Any

Downcast to Any for runtime type checking. This enables the layout system to check for LayoutNodeProvider.
Source§

fn handle_input(&self, _data: &str) -> bool

Optional handler for keyboard input when component has focus. Read more
Source§

fn wants_key_release(&self) -> bool

If true, component receives key release events (Kitty protocol). Default is false - release events are filtered out.
Source§

impl LayoutNodeProvider for ScrollView

Source§

fn layout_node(&self) -> Option<LayoutNode>

Get the layout node if this component has one.

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.