Skip to main content

MessageScrollerState

Struct MessageScrollerState 

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

The entity-owned scrolling state for a MessageScroller.

The state owns only GPUI’s virtual-list bookkeeping. Message data remains with the caller and is read by the row renderer passed to MessageScroller::new.

Implementations§

Source§

impl MessageScrollerState

Source

pub fn new(item_count: usize, cx: &mut Context<'_, Self>) -> Self

Create a state for item_count rows and enable tail following.

The constructor receives the entity context so the list’s scroll handler can safely defer its entity update until GPUI has released the list’s internal borrow.

Source

pub fn item_count(&self) -> usize

Return the current number of rows known by the virtual list.

Source

pub fn is_scrolled_up(&self) -> bool

Return whether the user has scrolled away from the latest content.

Source

pub fn is_following_tail(&self) -> bool

Return whether the list is actively following its tail.

Source

pub fn reset(&mut self, item_count: usize, cx: &mut Context<'_, Self>)

Reset the list to item_count rows.

Source

pub fn splice( &mut self, old_range: Range<usize>, count: usize, cx: &mut Context<'_, Self>, ) -> bool

Replace old_range with count new rows.

Returns false when the range is outside the current list and leaves the state unchanged.

Source

pub fn append(&mut self, count: usize, cx: &mut Context<'_, Self>) -> bool

Append count rows to the end of the list.

Source

pub fn prepend(&mut self, count: usize, cx: &mut Context<'_, Self>) -> bool

Prepend count rows while preserving the current scroll anchor.

Source

pub fn remeasure(&mut self, cx: &mut Context<'_, Self>)

Mark all rows for remeasurement while preserving a proportional anchor.

Source

pub fn remeasure_items( &mut self, range: Range<usize>, cx: &mut Context<'_, Self>, ) -> bool

Mark rows in range for remeasurement while preserving an item anchor.

Returns false when the range is outside the current list.

Source

pub fn scroll_to_item( &mut self, index: usize, cx: &mut Context<'_, Self>, ) -> bool

Scroll to the row at index, if it exists.

Source

pub fn scroll_to_end(&mut self, cx: &mut Context<'_, Self>)

Resume tail following and scroll to the latest row.

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

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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