/// What is driving an [`crate::Event::MouseWheel`] event.
///
/// This lets a [`crate::ScrollArea`] treat the different kinds of scrolling differently,
/// e.g. rubber-band past the edge while the fingers are on the trackpad,
/// but bounce during the system-driven momentum phase.
///
/// This is about mice and trackpads. Touch screens don't produce [`crate::Event::MouseWheel`]
/// events at all; they scroll by dragging with the pointer (see [`crate::Event::Touch`]).
///
/// ## Platform-specific
/// * **macOS**: [`Self::Wheel`], [`Self::Trackpad`] or [`Self::Momentum`].
/// * **Wayland, Windows, X11, web**: always [`Self::Unknown`], until winit reports the source.