Use SkTouchGesture to handle pinch events in Android SampleApp.

http://codereview.appspot.com/4631043/


git-svn-id: http://skia.googlecode.com/svn/trunk@1624 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index f0c4e59..c003e4a 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -1175,6 +1175,37 @@
     return new GestureClick(this);
 }
 
+union IntPtr {
+    int     fInt;
+    void*   fPtr;
+};
+
+static void* int2ptr(int n) {
+    IntPtr data;
+    data.fInt = n;
+    return data.fPtr;
+}
+
+bool SampleWindow::handleTouch(int ownerId, float x, float y, SkView::Click::State state) {
+    void* click = int2ptr(ownerId);
+    switch(state) {
+        case SkView::Click::kDown_State:
+            fGesture.touchBegin(click, x, y);
+            break;
+        case SkView::Click::kMoved_State:
+            fGesture.touchMoved(click, x, y);
+            this->inval(NULL);
+            break;
+        case SkView::Click::kUp_State:
+            fGesture.touchEnd(click);
+            this->inval(NULL);
+            break;
+        default:
+            return false;
+    }
+    return true;
+}
+
 bool SampleWindow::onClick(Click* click) {
     if (GestureClick::IsGesture(click)) {
         float x = SkScalarToFloat(click->fCurr.fX);
diff --git a/samplecode/SampleApp.h b/samplecode/SampleApp.h
index 37a3d09..25e3964 100644
--- a/samplecode/SampleApp.h
+++ b/samplecode/SampleApp.h
@@ -58,6 +58,8 @@
     void changeZoomLevel(float delta);
     bool nextSample();
     bool previousSample();
+    bool handleTouch(int ownerId, float x, float y,
+            SkView::Click::State state);
 
 protected:
     virtual void onDraw(SkCanvas* canvas);