MCPcopy Create free account
hub / github.com/Snapchat/Valdi / onScrollDrag

Method onScrollDrag

snap_drawing/src/snap_drawing/cpp/Layers/ScrollLayer.cpp:156–184  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154}
155
156void ScrollLayer::onScrollDrag(GestureRecognizerState state, const DragEvent& event) {
157 cancelScrollAnimation();
158
159 if (state == GestureRecognizerStateBegan) {
160 _scrollGestureOffset = _contentOffset;
161 }
162
163 if (_scroller != nullptr) {
164 _scroller->onDrag(state, event);
165 }
166
167 auto dragVelocity = Vector::make(_horizontal ? event.velocity.dx : 0.0f, !_horizontal ? event.velocity.dy : 0.0f);
168 auto targetOffset = targetOffsetForInteractiveOffset(
169 Point(_scrollGestureOffset.x - event.offset.width, _scrollGestureOffset.y - event.offset.height));
170
171 if (state == GestureRecognizerStateBegan) {
172 resumeScrollPerfLogger();
173 if (_dismissKeyboardOnDrag) {
174 requestFocus(this);
175 }
176 if (_listener != nullptr) {
177 _listener->onDragStart(*this, _contentOffset, dragVelocity);
178 }
179 } else if (state == GestureRecognizerStateEnded) {
180 onScrollEnded(targetOffset, dragVelocity);
181 } else {
182 setContentOffset(targetOffset, dragVelocity, false);
183 }
184}
185
186void ScrollLayer::onScrollWheel(GestureRecognizerState /*state*/, const WheelScrollEvent& scrollEvent) {
187 auto desiredContentOffset = getContentOffset().makeOffset(scrollEvent.direction.dx, scrollEvent.direction.dy);

Callers 2

onInitializeMethod · 0.95

Calls 3

PointClass · 0.50
onDragMethod · 0.45
onDragStartMethod · 0.45

Tested by 1