3#include "qml_material/carousel/carousel_keylines.hpp"
4#include "qml_material/carousel/carousel_strategy.hpp"
9enum class HeroScrollZone
17struct CarouselScrollStrategy
19 KeylineList default_keylines;
20 QVector<KeylineList> start_steps;
21 QVector<KeylineList> end_steps;
22 qreal start_shift_distance = 0;
23 qreal end_shift_distance = 0;
24 bool hero_lerp =
false;
25 bool keep_leading_peek =
false;
26 qreal viewport_size = 0;
28 static auto build(
const KeylineList& default_keylines, qreal carousel_main_axis_size) -> CarouselScrollStrategy;
30 static auto build(
const CarouselLayoutInput& in,
const KeylineList& default_keylines)
31 -> CarouselScrollStrategy;
33 static auto buildHero(
const CarouselLayoutInput& in,
bool keep_leading_peek,
34 const QVector<qreal>& snap_offsets, qreal max_scroll_offset)
35 -> CarouselScrollStrategy;
37 auto keylinesForScrollOffset(qreal scroll_offset, qreal max_scroll_offset,
bool round_to_step =
false) const
40 auto zoneFor(qreal scroll_offset, qreal keyline_max) const -> HeroScrollZone;