OSDN Git Service

Added apply UI callbacks for rotate/mirror operations.
authorRuben Brunk <rubenbrunk@google.com>
Mon, 1 Apr 2013 21:41:45 +0000 (14:41 -0700)
committerRuben Brunk <rubenbrunk@google.com>
Mon, 1 Apr 2013 21:42:33 +0000 (14:42 -0700)
Change-Id: I30bfb439d742248c3241742bd11f64a1b4a22640

src/com/android/gallery3d/filtershow/editors/EditorFlip.java
src/com/android/gallery3d/filtershow/editors/EditorRotate.java
src/com/android/gallery3d/filtershow/imageshow/ImageFlip.java
src/com/android/gallery3d/filtershow/imageshow/ImageRotate.java

index c996dcb..de6240c 100644 (file)
 package com.android.gallery3d.filtershow.editors;
 
 import android.content.Context;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.imageshow.ImageFlip;
 import com.android.gallery3d.filtershow.imageshow.MasterImage;
 
 public class EditorFlip extends Editor implements EditorInfo {
+    public static final String LOGTAG = "EditorFlip";
     public static final int ID = R.id.editorFlip;
     ImageFlip mImageFlip;
 
@@ -44,6 +49,18 @@ public class EditorFlip extends Editor implements EditorInfo {
     }
 
     @Override
+    public void openUtilityPanel(final LinearLayout accessoryViewList) {
+        final Button button = (Button) accessoryViewList.findViewById(R.id.applyEffect);
+        button.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View arg0) {
+                mImageFlip.flip();
+                mImageFlip.saveAndSetPreset();
+            }
+        });
+    }
+
+    @Override
     public int getTextId() {
         return R.string.mirror;
     }
index e495558..a637c08 100644 (file)
 package com.android.gallery3d.filtershow.editors;
 
 import android.content.Context;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.imageshow.ImageRotate;
 import com.android.gallery3d.filtershow.imageshow.MasterImage;
 
 public class EditorRotate extends Editor implements EditorInfo {
+    public static final String LOGTAG = "EditorRotate";
     public static final int ID = R.id.editorRotate;
     ImageRotate mImageRotate;
 
@@ -44,6 +49,19 @@ public class EditorRotate extends Editor implements EditorInfo {
     }
 
     @Override
+    public void openUtilityPanel(final LinearLayout accessoryViewList) {
+        final Button button = (Button) accessoryViewList.findViewById(R.id.applyEffect);
+        button.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View arg0) {
+                mImageRotate.rotate();
+                button.setText(mContext.getString(getTextId()) + " " + mImageRotate.getLocalValue());
+                mImageRotate.saveAndSetPreset();
+            }
+        });
+    }
+
+    @Override
     public int getTextId() {
         return R.string.rotate;
     }
index 70637a3..15197b0 100644 (file)
@@ -58,6 +58,22 @@ public class ImageFlip extends ImageGeometry {
         return (rot / 90) % 2 != 0;
     }
 
+    public void flip() {
+        FLIP flip = getLocalFlip();
+        boolean next = true;
+        // Picks next flip in order from enum FLIP (wrapping)
+        for (FLIP f : FLIP.values()) {
+            if (next) {
+                mNextFlip = f;
+                next = false;
+            }
+            if (f.equals(flip)) {
+                next = true;
+            }
+        }
+        setLocalFlip(mNextFlip);
+    }
+
     @Override
     protected void setActionMove(float x, float y) {
         super.setActionMove(x, y);
index c4b9aa2..ab8023e 100644 (file)
@@ -54,6 +54,13 @@ public class ImageRotate extends ImageGeometry {
         mAngle = (mBaseAngle - angle) % 360;
     }
 
+    public void rotate() {
+        mAngle += 90;
+        mAngle = snappedAngle(mAngle);
+        mAngle %= 360;
+        setLocalRotation(mAngle);
+    }
+
     @Override
     protected void setActionDown(float x, float y) {
         super.setActionDown(x, y);
@@ -76,7 +83,7 @@ public class ImageRotate extends ImageGeometry {
     }
 
     @Override
-    protected int getLocalValue() {
+    public int getLocalValue() {
         return constrainedRotation(snappedAngle(getLocalRotation()));
     }