ltk

Struct Viewport

Source
pub struct Viewport<Msg: Clone> {
    pub child: Box<Element<Msg>>,
    pub width: Option<f32>,
    pub height: Option<f32>,
    pub fade_bottom: f32,
}
Expand description

A non-scrollable clipped viewport for revealing only part of a child tree.

Unlike Scroll, this widget does not own any gesture state. It simply renders its child into an off-screen canvas and blits the result into the allocated rect, clipping anything outside.

Fields§

§child: Box<Element<Msg>>

The child element to render inside the viewport.

§width: Option<f32>

Optional fixed width in logical pixels. When omitted the viewport reports max_width as its preferred width — i.e. it stretches to fill whatever horizontal slice the parent layout gives it. Set explicitly when the viewport has to coexist with flex siblings (the flex would otherwise lose every pixel to the viewport’s max_width claim) or whenever the inner content has its own intrinsic width and the viewport is just a vertical clip.

§height: Option<f32>

Optional fixed height in logical pixels. When omitted the viewport reports the child’s natural height.

§fade_bottom: f32

Logical pixels at the bottom edge that fade to transparent during the blit. Zero leaves the bottom hard-edged. Useful for slide-in panels so the leading edge of the animation does not knife-cut against the layer below it.

Implementations§

Source§

impl<Msg: Clone> Viewport<Msg>

Source

pub fn new(child: impl Into<Element<Msg>>) -> Self

Source

pub fn width(self, w: f32) -> Self

Set a fixed viewport width in logical pixels. Mirrors Self::height: with an explicit value the viewport reports w as its preferred width and the child is laid out against w rather than the parent-supplied max_width.

Source

pub fn height(self, h: f32) -> Self

Set a fixed viewport height in logical pixels.

Source

pub fn fade_bottom(self, px: f32) -> Self

Feather the bottom px rows of the viewport so its lower edge dissolves to transparent. Drawn by the GLES blit shader as a linear alpha ramp over the bottom band; the software backend currently renders a hard edge regardless.

Source

pub fn preferred_size(&self, max_width: f32, canvas: &Canvas) -> (f32, f32)

Source

pub fn draw(&self)

No-op — rendering is handled by layout_and_draw in draw.rs.

Trait Implementations§

Source§

impl<Msg: Clone + 'static> From<Viewport<Msg>> for Element<Msg>

Source§

fn from(v: Viewport<Msg>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<Msg> Freeze for Viewport<Msg>

§

impl<Msg> !RefUnwindSafe for Viewport<Msg>

§

impl<Msg> !Send for Viewport<Msg>

§

impl<Msg> !Sync for Viewport<Msg>

§

impl<Msg> Unpin for Viewport<Msg>

§

impl<Msg> !UnwindSafe for Viewport<Msg>

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
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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