Struct kas::widgets::ScrollBar

source ·
pub struct ScrollBar<D = Direction>
where D: Directional,
{ /* private fields */ }
Expand description

A scroll bar

Scroll bars allow user-input of a value between 0 and a defined maximum, and allow the size of the grip to be specified.

Messages

On value change, pushes a value of type ScrollMsg.

Layout

It is safe to not call size_rules before set_rect for this type.

Implementations§

source§

impl<D> ScrollBar<D>
where D: Directional + Default,

source

pub fn new() -> ScrollBar<D>

Construct a scroll bar

Default values are assumed for all parameters.

source§

impl ScrollBar<Down>

source

pub fn down() -> ScrollBar<Down>

Construct a scroll bar (vertical)

Default values are assumed for all parameters.

source§

impl ScrollBar<Right>

source

pub fn right() -> ScrollBar<Right>

Construct a scroll bar (horizontal)

Default values are assumed for all parameters.

source§

impl<D> ScrollBar<D>
where D: Directional,

source

pub fn new_dir(direction: D) -> ScrollBar<D>

Construct a scroll bar with the given direction

Default values are assumed for all parameters.

source

pub fn direction(&self) -> Direction

Get the scroll bar’s direction

source

pub fn set_invisible(&mut self, invisible: bool)

Set invisible property

An “invisible” scroll bar is only drawn on mouse-hover

source

pub fn with_invisible(self, invisible: bool) -> ScrollBar<D>

Set invisible property (inline)

An “invisible” scroll bar is only drawn on mouse-hover

source

pub fn with_limits(self, max_value: i32, grip_size: i32) -> ScrollBar<D>

Set the initial page length

See ScrollBar::set_limits.

source

pub fn with_value(self, value: i32) -> ScrollBar<D>

Set the initial value

source

pub fn set_limits(&mut self, max_value: i32, grip_size: i32) -> Action

Set the page limits

The max_value parameter specifies the maximum possible value. (The minimum is always 0.) For a scroll region, this should correspond to the maximum possible offset.

The grip_size parameter specifies the size of the grip relative to the maximum value: the grip size relative to the length of the scroll bar is grip_size / (max_value + grip_size). For a scroll region, this should correspond to the size of the visible region. The minimum value is 1.

The choice of units is not important (e.g. can be pixels or lines), so long as both parameters use the same units.

Returns Action::REDRAW if a redraw is required.

source

pub fn max_value(&self) -> i32

Read the current max value

See also the ScrollBar::set_limits documentation.

source

pub fn grip_size(&self) -> i32

Read the current grip value

See also the ScrollBar::set_limits documentation.

source

pub fn value(&self) -> i32

Get the current value

source

pub fn set_value(&mut self, cx: &mut EventState, value: i32) -> bool

Set the value

Returns true if the value changes.

Trait Implementations§

source§

impl<D> Clone for ScrollBar<D>
where D: Clone + Directional,

source§

fn clone(&self) -> ScrollBar<D>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl<D> Debug for ScrollBar<D>
where D: Debug + Directional,

source§

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

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

impl<D> Default for ScrollBar<D>
where D: Default + Directional,

source§

fn default() -> ScrollBar<D>

Returns the “default value” for a type. Read more
source§

impl<D> Events for ScrollBar<D>
where D: Directional,

source§

fn handle_event( &mut self, cx: &mut EventCx<'_>, _: &<ScrollBar<D> as Widget>::Data, event: Event ) -> IsUsed

Handle an Event Read more
source§

fn handle_messages( &mut self, cx: &mut EventCx<'_>, _: &<ScrollBar<D> as Widget>::Data )

Handler for messages from children/descendants Read more
source§

fn handle_hover(&mut self, cx: &mut EventCx<'_>, _: bool) -> IsUsed

Mouse focus handler Read more
source§

fn steal_event( &mut self, _: &mut EventCx<'_>, _: &<ScrollBar<D> as Widget>::Data, _: &Id, _: &Event ) -> IsUsed

Potentially steal an event before it reaches a child Read more
source§

fn make_child_id(&mut self, index: usize) -> Id

Make an identifier for a child Read more
source§

fn configure(&mut self, cx: &mut ConfigCx<'_>)

Configure self Read more
source§

fn configure_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Configure children Read more
source§

fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Update self using input data Read more
source§

fn update_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Update children Read more
source§

fn navigable(&self) -> bool

Is this widget navigable via Tab key? Read more
source§

fn handle_scroll( &mut self, cx: &mut EventCx<'_>, data: &Self::Data, scroll: Scroll )

Handler for scrolling Read more
source§

impl<D> Layout for ScrollBar<D>
where D: Directional,

source§

fn size_rules(&mut self, sizer: SizeCx<'_>, axis: AxisInfo) -> SizeRules

Get size rules for the given axis Read more
source§

fn set_rect(&mut self, cx: &mut ConfigCx<'_>, rect: Rect)

Set size and position Read more
source§

fn find_id(&mut self, coord: Coord) -> Option<Id>

Translate a coordinate to an Id Read more
source§

fn draw(&mut self, draw: DrawCx<'_>)

Draw a widget and its children Read more
source§

fn as_layout(&self) -> &dyn Layout

Get as a dyn Layout Read more
source§

fn id_ref(&self) -> &Id

Get the widget’s identifier Read more
source§

fn rect(&self) -> Rect

Get the widget’s region, relative to its parent. Read more
source§

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

Get the name of the widget struct Read more
source§

fn num_children(&self) -> usize

Get the number of child widgets Read more
source§

fn get_child(&self, index: usize) -> Option<&dyn Layout>

Access a child as a dyn Layout Read more
source§

fn nav_next(&self, reverse: bool, from: Option<usize>) -> Option<usize>

Navigation in spatial order Read more
source§

fn find_child_index(&self, id: &Id) -> Option<usize>

Find the child which is an ancestor of this id, if any Read more
source§

fn translation(&self) -> Offset

Get translation of children relative to this widget Read more
source§

impl<D> Widget for ScrollBar<D>
where D: Directional,

§

type Data = ()

Input data type Read more
source§

fn as_node<'a>( &'a mut self, data: &'a <ScrollBar<D> as Widget>::Data ) -> Node<'a>

Erase type Read more
source§

fn for_child_node( &mut self, data: &<ScrollBar<D> as Widget>::Data, index: usize, closure: Box<dyn FnOnce(Node<'_>) + '_> )

Call closure on child with given index, if index < self.num_children(). Read more

Auto Trait Implementations§

§

impl<D> RefUnwindSafe for ScrollBar<D>
where D: RefUnwindSafe,

§

impl<D = Direction> !Send for ScrollBar<D>

§

impl<D = Direction> !Sync for ScrollBar<D>

§

impl<D> Unpin for ScrollBar<D>
where D: Unpin,

§

impl<D> UnwindSafe for ScrollBar<D>
where D: UnwindSafe,

Blanket Implementations§

source§

impl<W> AdaptWidget for W
where W: Widget,

source§

fn map<A, F>(self, f: F) -> Map<A, Self, F>
where F: for<'a> Fn(&'a A) -> &'a Self::Data,

Map data type via a function Read more
source§

fn on_configure<F>(self, f: F) -> AdaptEvents<Self>
where F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self) + 'static,

Call the given closure on Events::configure Read more
source§

fn on_update<F>(self, f: F) -> AdaptEvents<Self>
where F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self, &Self::Data) + 'static,

Call the given closure on Events::update Read more
source§

fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
where M: Debug + 'static, H: Fn(&mut AdaptEventCx<'_, '_>, &mut Self, M) + 'static,

Add a handler on message of type M Read more
source§

fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
where H: Fn(&mut AdaptEventCx<'_, '_>, &mut Self, &Self::Data) + 'static,

Add a generic message handler Read more
source§

fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>

Construct a wrapper, setting minimum size in pixels Read more
source§

fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>

Construct a wrapper, setting minimum size in Em Read more
source§

fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>

Construct a wrapper widget adding a label Read more
source§

impl<W> AdaptWidgetAny for W
where W: Widget<Data = ()>,

source§

fn map_any<A>(self) -> MapAny<A, Self>

Map any input data to () Read more
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<S, T> Cast<T> for S
where T: Conv<S>,

§

fn cast(self) -> T

Cast from Self to T Read more
§

fn try_cast(self) -> Result<T, Error>

Try converting from Self to T Read more
§

impl<S, T> CastApprox<T> for S
where T: ConvApprox<S>,

§

fn try_cast_approx(self) -> Result<T, Error>

Try approximate conversion from Self to T Read more
§

fn cast_approx(self) -> T

Cast approximately from Self to T Read more
§

impl<S, T> CastFloat<T> for S
where T: ConvFloat<S>,

§

fn cast_trunc(self) -> T

Cast to integer, truncating Read more
§

fn cast_nearest(self) -> T

Cast to the nearest integer Read more
§

fn cast_floor(self) -> T

Cast the floor to an integer Read more
§

fn cast_ceil(self) -> T

Cast the ceiling to an integer Read more
§

fn try_cast_trunc(self) -> Result<T, Error>

Try converting to integer with truncation Read more
§

fn try_cast_nearest(self) -> Result<T, Error>

Try converting to the nearest integer Read more
§

fn try_cast_floor(self) -> Result<T, Error>

Try converting the floor to an integer Read more
§

fn try_cast_ceil(self) -> Result<T, Error>

Try convert the ceiling to an integer 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<W> LayoutExt for W
where W: Layout + ?Sized,

source§

fn id(&self) -> Id

Get the widget’s identifier Read more
source§

fn eq_id<T>(&self, rhs: T) -> bool
where Id: PartialEq<T>,

Test widget identifier for equality Read more
source§

fn identify(&self) -> IdentifyWidget<'_>

Display as “StructName#Id”
source§

fn is_ancestor_of(&self, id: &Id) -> bool

Check whether id is self or a descendant Read more
source§

fn is_strict_ancestor_of(&self, id: &Id) -> bool

Check whether id is not self and is a descendant Read more
source§

fn for_children(&self, f: impl FnMut(&dyn Layout))

Run a closure on all children
source§

fn for_children_try<E>( &self, f: impl FnMut(&dyn Layout) -> Result<(), E> ) -> Result<(), E>

Run a fallible closure on all children Read more
source§

fn find_widget(&self, id: &Id) -> Option<&dyn Layout>

Find the descendant with this id, if any 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<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
source§

impl<T> ToOwned for T
where T: Clone,

§

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>,

§

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>,

§

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<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