pub struct Scroll<T, W> { /* private fields */ }
Expand description
A container that scrolls its contents.
This container holds a single child, and uses the wheel to scroll it when the child’s bounds are larger than the viewport.
The child is laid out with completely unconstrained layout bounds by
default. Restrict to a specific axis with vertical
or horizontal
.
When restricted to scrolling on a specific axis the child’s size is
locked on the opposite axis.
Implementations§
§impl<T, W> Scroll<T, W>where
W: Widget<T>,
impl<T, W> Scroll<T, W>where W: Widget<T>,
pub fn new(child: W) -> Scroll<T, W>
pub fn new(child: W) -> Scroll<T, W>
Create a new scroll container.
This method will allow scrolling in all directions if child’s bounds are larger than the viewport. Use vertical and horizontal methods to limit scrolling to a specific axis.
pub fn scroll_by<C>(&mut self, ctx: &mut C, delta: Vec2) -> boolwhere
C: ChangeCtx,
pub fn scroll_by<C>(&mut self, ctx: &mut C, delta: Vec2) -> boolwhere C: ChangeCtx,
Scroll by delta
units.
Returns true
if the scroll offset has changed.
pub fn scroll_to<C>(&mut self, ctx: &mut C, region: Rect) -> boolwhere
C: ChangeCtx,
pub fn scroll_to<C>(&mut self, ctx: &mut C, region: Rect) -> boolwhere C: ChangeCtx,
Scroll the minimal distance to show the target region
.
If the target region is larger than the viewport, we will display the portion that fits, prioritizing the portion closest to the origin.
pub fn scroll_to_on_axis<C>(
&mut self,
ctx: &mut C,
axis: Axis,
position: f64
) -> boolwhere
C: ChangeCtx,
pub fn scroll_to_on_axis<C>( &mut self, ctx: &mut C, axis: Axis, position: f64 ) -> boolwhere C: ChangeCtx,
Scroll to this position on a particular axis.
Returns true
if the scroll offset has changed.
§impl<T, W> Scroll<T, W>
impl<T, W> Scroll<T, W>
pub fn vertical(self) -> Scroll<T, W>
pub fn vertical(self) -> Scroll<T, W>
Restrict scrolling to the vertical axis while locking child width.
pub fn horizontal(self) -> Scroll<T, W>
pub fn horizontal(self) -> Scroll<T, W>
Restrict scrolling to the horizontal axis while locking child height.
pub fn content_must_fill(self, must_fill: bool) -> Scroll<T, W>
pub fn content_must_fill(self, must_fill: bool) -> Scroll<T, W>
Builder-style method to set whether the child must fill the view.
If false
(the default) there is no minimum constraint on the child’s
size. If true
, the child must have at least the same size as the parent
Scroll
widget.
pub fn disable_scrollbars(self) -> Scroll<T, W>
pub fn disable_scrollbars(self) -> Scroll<T, W>
Disable both scrollbars
pub fn set_content_must_fill(&mut self, must_fill: bool)
pub fn set_content_must_fill(&mut self, must_fill: bool)
Set whether the child’s size must be greater than or equal the size of
the Scroll
widget.
See content_must_fill
for more details.
pub fn set_enabled_scrollbars(&mut self, enabled: ScrollbarsEnabled)
pub fn set_enabled_scrollbars(&mut self, enabled: ScrollbarsEnabled)
Set which scrollbars should be enabled.
If scrollbars are disabled, scrolling will still occur as a result of scroll events from a trackpad or scroll wheel.
pub fn set_vertical_scroll_enabled(&mut self, enabled: bool)
pub fn set_vertical_scroll_enabled(&mut self, enabled: bool)
Set whether the content can be scrolled in the vertical direction.
pub fn set_horizontal_scroll_enabled(&mut self, enabled: bool)
pub fn set_horizontal_scroll_enabled(&mut self, enabled: bool)
Set whether the content can be scrolled in the horizontal direction.
pub fn child_size(&self) -> Size
pub fn child_size(&self) -> Size
Returns the size of the child widget.
pub fn viewport_rect(&self) -> Rect
pub fn viewport_rect(&self) -> Rect
Returns a Rect
representing the currently visible region.
This is relative to the bounds of the content.
pub fn offset_for_axis(&self, axis: Axis) -> f64
pub fn offset_for_axis(&self, axis: Axis) -> f64
Return the scroll offset on a particular axis
Trait Implementations§
§impl<T, W> Widget<T> for Scroll<T, W>where
T: Data,
W: Widget<T>,
impl<T, W> Widget<T> for Scroll<T, W>where T: Data, W: Widget<T>,
§fn event(
&mut self,
ctx: &mut EventCtx<'_, '_>,
event: &Event,
data: &mut T,
env: &Env
)
fn event( &mut self, ctx: &mut EventCtx<'_, '_>, event: &Event, data: &mut T, env: &Env )
§fn lifecycle(
&mut self,
ctx: &mut LifeCycleCtx<'_, '_>,
event: &LifeCycle,
data: &T,
env: &Env
)
fn lifecycle( &mut self, ctx: &mut LifeCycleCtx<'_, '_>, event: &LifeCycle, data: &T, env: &Env )
§fn layout(
&mut self,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
data: &T,
env: &Env
) -> Size
fn layout( &mut self, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> Size
§fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &T, env: &Env)
fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, data: &T, env: &Env)
§fn compute_max_intrinsic(
&mut self,
axis: Axis,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
data: &T,
env: &Env
) -> f64
fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> f64
Auto Trait Implementations§
impl<T, W> !RefUnwindSafe for Scroll<T, W>
impl<T, W> !Send for Scroll<T, W>
impl<T, W> !Sync for Scroll<T, W>
impl<T, W> Unpin for Scroll<T, W>where T: Unpin, W: Unpin,
impl<T, W> !UnwindSafe for Scroll<T, W>
Blanket Implementations§
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> RoundFrom<T> for T
impl<T> RoundFrom<T> for T
§fn round_from(x: T) -> T
fn round_from(x: T) -> T
§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,
§fn round_into(self) -> U
fn round_into(self) -> U
§impl<T, W> TestWidgetExt<T> for Wwhere
T: Data,
W: Widget<T> + 'static,
impl<T, W> TestWidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,
§impl<T, W> WidgetExt<T> for Wwhere
T: Data,
W: Widget<T> + 'static,
impl<T, W> WidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,
§fn align_left(self) -> Align<T>
fn align_left(self) -> Align<T>
Align
widget, configured to align left.§fn align_right(self) -> Align<T>
fn align_right(self) -> Align<T>
Align
widget, configured to align right.§fn align_vertical(self, align: UnitPoint) -> Align<T>
fn align_vertical(self, align: UnitPoint) -> Align<T>
Align
widget, configured to align vertically.§fn align_horizontal(self, align: UnitPoint) -> Align<T>
fn align_horizontal(self, align: UnitPoint) -> Align<T>
Align
widget, configured to align horizontally.§fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
SizedBox
with an explicit width.§fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
SizedBox
with an explicit height.§fn fix_size(
self,
width: impl Into<KeyOrValue<f64>>,
height: impl Into<KeyOrValue<f64>>
) -> SizedBox<T>
fn fix_size( self, width: impl Into<KeyOrValue<f64>>, height: impl Into<KeyOrValue<f64>> ) -> SizedBox<T>
SizedBox
with an explicit width and height§fn expand_width(self) -> SizedBox<T>
fn expand_width(self) -> SizedBox<T>
§fn expand_height(self) -> SizedBox<T>
fn expand_height(self) -> SizedBox<T>
§fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
§fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
§fn border(
self,
color: impl Into<KeyOrValue<Color>>,
width: impl Into<KeyOrValue<f64>>
) -> Container<T>
fn border( self, color: impl Into<KeyOrValue<Color>>, width: impl Into<KeyOrValue<f64>> ) -> Container<T>
§fn controller<C>(self, controller: C) -> ControllerHost<Self, C>where
C: Controller<T, Self>,
fn controller<C>(self, controller: C) -> ControllerHost<Self, C>where C: Controller<T, Self>,
Controller
.§fn on_added(
self,
f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static
) -> ControllerHost<Self, Added<T, Self>>
fn on_added( self, f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static ) -> ControllerHost<Self, Added<T, Self>>
§fn on_click(
self,
f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static
) -> ControllerHost<Self, Click<T>>
fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static ) -> ControllerHost<Self, Click<T>>
§fn debug_paint_layout(self) -> EnvScope<T, Self>
fn debug_paint_layout(self) -> EnvScope<T, Self>
layout
Rect
s of this widget and its children.§fn debug_widget_id(self) -> EnvScope<T, Self>
fn debug_widget_id(self) -> EnvScope<T, Self>
WidgetId
s for this widget and its children, when hot. Read more§fn debug_invalidation(self) -> DebugInvalidation<T, Self>
fn debug_invalidation(self) -> DebugInvalidation<T, Self>
§fn debug_widget(self) -> EnvScope<T, Self>
fn debug_widget(self) -> EnvScope<T, Self>
DEBUG_WIDGET
env variable for this widget (and its descendants). Read more§fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
§fn disabled_if(
self,
disabled_if: impl Fn(&T, &Env) -> bool + 'static
) -> DisabledIf<T, Self>
fn disabled_if( self, disabled_if: impl Fn(&T, &Env) -> bool + 'static ) -> DisabledIf<T, Self>
DisabledIf
widget. Read more