Skip to main content

auto_scroll_zone

Function auto_scroll_zone 

Source
pub fn auto_scroll_zone<State, V>(
    child: V,
    coordinator: DragCoordinator,
    controller: ScrollController,
) -> AutoScrollZone<State>
where State: 'static, V: View<State>,
Expand description

Wrap child — a scroll surface holding controller — in an edge auto-scroll zone for sessions on coordinator, with the default AutoScroll. See the module docs.

use frust_widgets::drag::{AutoScroll, DragCoordinator, auto_scroll_zone, drag_target};
use frust_widgets::{ScrollController, SizedBox, scroll_view};

struct App;

let drag = DragCoordinator::new();
let scroll = ScrollController::new();
let column = scroll_view(SizedBox::<App>(None, Some(2_000.0))).controller(scroll.clone());
let _zone = auto_scroll_zone(
    drag_target::<u32, App, _>(column, drag.clone()),
    drag.clone(),
    scroll.clone(),
)
.config(AutoScroll {
    edge_px: 48.0,
    ..AutoScroll::default()
});