Skip to main content

ScrollViewport

Struct ScrollViewport 

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

A handle to the enclosing scroll area’s live viewport, handed to the content builder by LayoutScrollArea::new_with. Because a scroll area lays its content out as its OWN layout root, every descendant’s tracked rect is already in the same content-local space the scroll offset indexes into — so visible is a plain rect overlap, no scroll-transform math.

Implementations§

Source§

impl ScrollViewport

Source

pub fn offset(&self) -> (ReadSignal<f32>, ReadSignal<f32>)

The live scroll offset (x, y) in content-local px.

Source

pub fn reveal(&self, item: NodeId, margin: f32)

Scrolls the minimum distance needed to bring item fully into view, leaving margin px of breathing room at whichever edge it entered from. A no-op when the item is already visible.

This is what keyboard navigation needs and what a scroll offset alone cannot express: moving a selection down a list should follow it, without yanking the view when the item was on screen all along. item must be a node inside this scroll’s content, so its tracked rect shares the content-local space the offset indexes into.

Source

pub fn rect(&self) -> ReadSignal<Rect>

The live viewport rect; its width/height are the visible window’s size.

Source

pub fn scroll_to_top(&self)

Puts the view back at the top-left.

For content that has been replaced rather than resized — a page swapped for another one — which is the one thing the scroll area cannot tell on its own: a shorter page is clamped back into range automatically, but only the caller knows that what is in the viewport is now a different thing, and that being three screens down someone else’s page is not where the reader left off.

peek for the same reason as reveal, and this is where it bites hardest: “the page changed” is noticed by an effect, so a reactive read of the offset would make every wheel tick re-run the effect that puts the offset back — the viewport pinned to the top for good.

Trait Implementations§

Source§

impl Clone for ScrollViewport

Source§

fn clone(&self) -> ScrollViewport

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

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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 = 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more