Improve touch support for iOS viewer
Adds pinch-zoom and swipe to change slides.
Bug: skia:
Change-Id: I0860c933208c8cf83027675a9de11b3f782de8e3
Reviewed-on: https://skia-review.googlesource.com/142898
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 9ea36a4..6d5905a 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -1181,6 +1181,23 @@
switch (state) {
case Window::kUp_InputState: {
fGesture.touchEnd(castedOwner);
+#if defined(SK_BUILD_FOR_IOS)
+ // TODO: move IOS swipe detection higher up into the platform code
+ SkPoint dir;
+ if (fGesture.isFling(&dir)) {
+ // swiping left or right
+ if (SkTAbs(dir.fX) > SkTAbs(dir.fY)) {
+ if (dir.fX < 0) {
+ this->setCurrentSlide(fCurrentSlide < fSlides.count() - 1 ?
+ fCurrentSlide + 1 : 0);
+ } else {
+ this->setCurrentSlide(fCurrentSlide > 0 ?
+ fCurrentSlide - 1 : fSlides.count() - 1);
+ }
+ }
+ fGesture.reset();
+ }
+#endif
break;
}
case Window::kDown_InputState: {