Struct ScrollBars

Source
pub struct ScrollBars<W>
where W: Scrollable + Widget,
{ /* private fields */ }
Expand description

Scroll bar controls

This is a wrapper adding scroll bar controls around a child. Note that this widget does not enable scrolling; see ScrollBarRegion for that.

Scroll bar positioning does not respect the inner widget’s margins, since the result looks poor when content is scrolled. Instead the content should force internal margins by wrapping contents with a (zero-sized) frame. ScrollRegion already does this.

Implementations§

Source§

impl<W> ScrollBars<W>
where W: Scrollable + Widget,

Source

pub fn new(inner: W) -> ScrollBars<W>

Construct

By default scroll bars are automatically enabled based on requirements. Use the HasScrollBars trait to adjust this behaviour.

Source

pub fn inner(&self) -> &W

Access inner widget directly

Source

pub fn inner_mut(&mut self) -> &mut W

Access inner widget directly

Trait Implementations§

Source§

impl<W> Clone for ScrollBars<W>
where W: Clone + Scrollable + Widget,

Source§

fn clone(&self) -> ScrollBars<W>

Returns a duplicate 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<W> Debug for ScrollBars<W>
where W: Debug + Scrollable + Widget,

Source§

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

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

impl<W> Default for ScrollBars<W>
where W: Scrollable + Widget + Default,

Source§

fn default() -> ScrollBars<W>

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

impl<W> Deref for ScrollBars<W>
where W: Scrollable + Widget,

Source§

type Target = W

The resulting type after dereferencing.
Source§

fn deref(&self) -> &<ScrollBars<W> as Deref>::Target

Dereferences the value.
Source§

impl<W> DerefMut for ScrollBars<W>
where W: Scrollable + Widget,

Source§

fn deref_mut(&mut self) -> &mut <ScrollBars<W> as Deref>::Target

Mutably dereferences the value.
Source§

impl<W> Events for ScrollBars<W>
where W: Scrollable + Widget,

Source§

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

Handler for messages from children/descendants Read more
Source§

fn handle_scroll( &mut self, cx: &mut EventCx<'_>, _: &<ScrollBars<W> as Widget>::Data, _: Scroll, )

Handler for scrolling Read more
Source§

fn handle_event( &mut self, _: &mut EventCx<'_>, _: &<ScrollBars<W> as Widget>::Data, _: Event, ) -> IsUsed

Handle an Event 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_hover(&mut self, cx: &mut EventCx<'_>, state: bool)

Mouse focus handler Read more
Source§

impl<W> HasBool for ScrollBars<W>
where W: Scrollable + Widget + HasBool,

Source§

fn get_bool(&self) -> bool

Get the widget’s state
Source§

fn set_bool(&mut self, state: bool) -> Action

Set the widget’s state
Source§

impl<W> HasScrollBars for ScrollBars<W>
where W: Scrollable + Widget,

Source§

fn get_mode(&self) -> ScrollBarMode

Get mode
Source§

fn set_mode(&mut self, mode: ScrollBarMode) -> Action

Set mode
Source§

fn get_visible_bars(&self) -> (bool, bool)

Get currently visible bars Read more
Source§

fn set_visible_bars(&mut self, bars: (bool, bool)) -> Action

Set enabled bars without adjusting mode Read more
Source§

fn with_auto_bars(self) -> Self
where Self: Sized,

Set auto mode (inline)
Source§

fn with_fixed_bars(self, horiz: bool, vert: bool) -> Self
where Self: Sized,

Set fixed bars (inline)
Source§

fn with_invisible_bars(self, horiz: bool, vert: bool) -> Self
where Self: Sized,

Set invisible bars (inline)
Source§

impl<W> HasStr for ScrollBars<W>
where W: Scrollable + Widget + HasStr,

Source§

fn get_str(&self) -> &str

Get text by reference
Source§

fn get_string(&self) -> String

Get text as a String
Source§

impl<W> HasString for ScrollBars<W>

Source§

fn set_str(&mut self, text: &str) -> Action

Set text from a &str Read more
Source§

fn set_string(&mut self, text: String) -> Action

Set text from a string
Source§

impl<W> Layout for ScrollBars<W>
where W: Scrollable + Widget,

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, hints: AlignHints)

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<W> Scrollable for ScrollBars<W>
where W: Scrollable + Widget,

Source§

fn scroll_axes(&self, size: Size) -> (bool, bool)

Given size size, returns whether (horiz, vert) scrolling is required Read more
Source§

fn max_scroll_offset(&self) -> Offset

Get the maximum scroll offset Read more
Source§

fn scroll_offset(&self) -> Offset

Get the current scroll offset Read more
Source§

fn set_scroll_offset(&mut self, cx: &mut EventCx<'_>, offset: Offset) -> Offset

Set the scroll offset Read more
Source§

impl<W> Widget for ScrollBars<W>
where W: Scrollable + Widget,

Source§

type Data = <W as Widget>::Data

Input data type Read more
Source§

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

Erase type Read more
Source§

fn for_child_node( &mut self, data: &<ScrollBars<W> 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<W> Freeze for ScrollBars<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for ScrollBars<W>
where W: RefUnwindSafe,

§

impl<W> !Send for ScrollBars<W>

§

impl<W> !Sync for ScrollBars<W>

§

impl<W> Unpin for ScrollBars<W>
where W: Unpin,

§

impl<W> UnwindSafe for ScrollBars<W>
where W: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn align(self, hints: AlignHints) -> Align<Self>

Apply an alignment hint Read more
Source§

fn pack(self, hints: AlignHints) -> Pack<Self>

Apply an alignment hint, squash and align the result Read more
Source§

fn margins(self, dirs: Directions, style: MarginStyle) -> Margins<Self>

Specify margins Read more
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 map_message<M, N, H>(self, handler: H) -> AdaptEvents<Self>
where M: Debug + 'static, N: Debug + 'static, H: Fn(usize, M) -> N + 'static,

Add a child handler to map messages of type M to N 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
Source§

impl<S, T> Cast<T> for S
where T: Conv<S>,

Source§

fn cast(self) -> T

Cast from Self to T Read more
Source§

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

Try converting from Self to T Read more
Source§

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

Source§

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

Try approximate conversion from Self to T Read more
Source§

fn cast_approx(self) -> T

Cast approximately from Self to T Read more
Source§

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

Source§

fn cast_trunc(self) -> T

Cast to integer, truncating Read more
Source§

fn cast_nearest(self) -> T

Cast to the nearest integer Read more
Source§

fn cast_floor(self) -> T

Cast the floor to an integer Read more
Source§

fn cast_ceil(self) -> T

Cast the ceiling to an integer Read more
Source§

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

Try converting to integer with truncation Read more
Source§

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

Try converting to the nearest integer Read more
Source§

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

Try converting the floor to an integer Read more
Source§

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

Try convert the ceiling to an integer 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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

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

Source§

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.
Source§

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.
Source§

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.
Source§

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.

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<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
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<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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<S, R> ThemeSize for R
where S: ThemeSize + ?Sized, R: Deref<Target = S>,

Source§

fn scale_factor(&self) -> f32

Get the scale factor
Source§

fn dpem(&self) -> f32

Get the Em size of the standard font in pixels
Source§

fn min_scroll_size(&self, axis_is_vertical: bool) -> i32

The minimum size of a scrollable area
Source§

fn grip_len(&self) -> i32

The length of the grip (draggable handle) on a scroll bar or slider
Source§

fn scroll_bar_width(&self) -> i32

The width of a vertical scroll bar
Source§

fn margins(&self, style: MarginStyle) -> Margins

Get margin size
Source§

fn feature(&self, feature: Feature, axis_is_vertical: bool) -> SizeRules

Size rules for a feature
Source§

fn align_feature(&self, feature: Feature, rect: Rect, align: AlignPair) -> Rect

Align a feature’s rect Read more
Source§

fn frame(&self, style: FrameStyle, axis_is_vertical: bool) -> FrameRules

Size of a frame around another element
Source§

fn line_height(&self, class: TextClass) -> i32

The height of a line of text by class Read more
Source§

fn text_configure(&self, text: &mut dyn SizableText, class: TextClass)

Configure a text object, setting font properties
Source§

fn text_rules( &self, text: &mut dyn SizableText, class: TextClass, axis: AxisInfo, ) -> SizeRules

Get SizeRules for a text element
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> Upcast<T> for T

Source§

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

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