3#include "qml_material/carousel/carousel_keylines.hpp"
4#include "qml_material/carousel/carousel_strategy.hpp"
9enum class HeroScrollZone
17struct CarouselScrollStrategy {
18 KeylineList default_keylines;
19 QVector<KeylineList> start_steps;
20 QVector<KeylineList> end_steps;
21 qreal start_shift_distance = 0;
22 qreal end_shift_distance = 0;
23 bool hero_lerp =
false;
24 bool keep_leading_peek =
false;
25 qreal viewport_size = 0;
27 static auto build(
const KeylineList& default_keylines, qreal carousel_main_axis_size)
28 -> 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,
38 bool round_to_step =
false) const -> KeylineList;
40 auto zoneFor(qreal scroll_offset, qreal keyline_max) const -> HeroScrollZone;