Skip to main content

ScrollEdgeArrow

Struct ScrollEdgeArrow 

Source
pub struct ScrollEdgeArrow<C> { /* private fields */ }
Expand description

A strip that scrolls, with an arrow over a fade at each end that has more to show. The arrow scrolls most of the strip at a time, and leaves when that end is reached.

The strip is horizontal unless ScrollEdgeArrow::vertical. Children keep their size when they have one, so give them a width: without it they share the room first, as in any row, down to what their content needs. Every scroll builds the strip again to know whether an arrow still applies, so what goes in should be cheap to build.

use ravenrs_widgets::{Button, ScrollEdgeArrow, Ui};

let photos: Vec<Button> = (1..=30).map(|n| Button::new(format!("Photo {n}"))).collect();
let strip = ScrollEdgeArrow::new(photos).spacing(8.0);
let mut ui = Ui::new(strip, ravenrs_style::Theme::raven_dark());
ui.update();

Implementations§

Source§

impl<C: ViewSeq> ScrollEdgeArrow<C>

Source

pub fn new(children: C) -> Self

A horizontal strip of children (a tuple of up to 12 views or a Vec).

Source

pub fn vertical(self) -> Self

Scrolls up and down, taking the height its parent gives it.

Source

pub fn spacing(self, spacing: f32) -> Self

Gap between children, in logical pixels (default 8).

Source

pub fn padding(self, padding: impl Into<Insets>) -> Self

Inner padding in logical pixels.

Source

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

A fixed height. A horizontal strip takes the height of its children by default.

Source

pub fn fade(self, fade: Semantic) -> Self

The color the arrows fade from, which should be what is behind the strip ([Semantic::Canvas] by default).

Trait Implementations§

Source§

impl<C> Debug for ScrollEdgeArrow<C>

Source§

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

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

impl<C: ViewSeq> View for ScrollEdgeArrow<C>

Source§

fn build(&self, cx: &mut BuildCx<'_>) -> NodeId

Creates this view’s node for the current build.
Source§

fn type_name(&self) -> &'static str

The name the diagnostics panel shows this view’s cost under.

Auto Trait Implementations§

§

impl<C> Freeze for ScrollEdgeArrow<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for ScrollEdgeArrow<C>
where C: RefUnwindSafe,

§

impl<C> Send for ScrollEdgeArrow<C>
where C: Send,

§

impl<C> Sync for ScrollEdgeArrow<C>
where C: Sync,

§

impl<C> Unpin for ScrollEdgeArrow<C>
where C: Unpin,

§

impl<C> UnsafeUnpin for ScrollEdgeArrow<C>
where C: UnsafeUnpin,

§

impl<C> UnwindSafe for ScrollEdgeArrow<C>
where C: UnwindSafe,

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> ErasedDestructor for T
where T: 'static,

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, 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<V> ViewExt for V
where V: View,

Source§

fn padding(self, padding: impl Into<Insets>) -> Styled<Self>

Adds padding inside the box, in logical pixels.
Source§

fn background(self, fill: impl Into<Fill>) -> Styled<Self>

Paints a background behind the content.
Source§

fn frame(self, width: Option<f32>, height: Option<f32>) -> Styled<Self>

Fixes the width and/or height in logical pixels; None keeps the content size.
Source§

fn width(self, width: f32) -> Styled<Self>

Fixes the width in logical pixels.
Source§

fn height(self, height: f32) -> Styled<Self>

Fixes the height in logical pixels.
Source§

fn grow(self, grow: f32) -> Styled<Self>

Takes a share of the free space in the parent stack.
Source§

fn stretch(self) -> Styled<Self>

Stretches across the parent stack’s cross axis.
Source§

fn centered(self) -> Styled<Self>

Centers the content inside the box.
Source§

fn tooltip(self, text: impl Into<String>) -> Tooltip<Self>

Shows text above the view while the pointer is over it; see Tooltip.
Source§

fn opacity(self, opacity: f32) -> Faded<Self>

Draws the view and everything in it at this opacity, from 0.0 to 1.0, easing to it when it changes. Layout and input stay as they are; see Faded.
§

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