summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-18 17:53:44 -0700
committernicolasroard <nicolasroard@google.com>2012-10-18 23:36:56 -0700
commitb184f83254e8a930112c4db9364669a936f295d8 (patch)
tree5b71c06911f2471acd73382ea6b22c12d5625677 /src/com/android/gallery3d/filtershow/ui/ImageCurves.java
parent3b50e7b4baceebfea3fb3ccc7aca2966a20d02b9 (diff)
downloadandroid_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.tar.gz
android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.tar.bz2
android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.zip
Improves Curves & Crop UI
bug:7361722 - Use new assets - Add a margin - Add a popup menu - Add a new button showing the current channel - Add popup menu, new assets, new button for Crop as well Change-Id: I0e09098e3135d2213f7f4cd64cd75a3a518a07da
Diffstat (limited to 'src/com/android/gallery3d/filtershow/ui/ImageCurves.java')
-rw-r--r--src/com/android/gallery3d/filtershow/ui/ImageCurves.java37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index 84edf234a..78898610d 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -13,6 +13,7 @@ import android.os.AsyncTask;
import android.util.AttributeSet;
import android.view.MotionEvent;
+import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.filters.ImageFilterCurves;
import com.android.gallery3d.filtershow.imageshow.ImageSlave;
import com.android.gallery3d.filtershow.presets.ImagePreset;
@@ -23,7 +24,7 @@ public class ImageCurves extends ImageSlave {
Paint gPaint = new Paint();
Path gPathSpline = new Path();
- private int mCurrentCurveIndex = 0;
+ private int mCurrentCurveIndex = Spline.RGB;
private boolean mDidAddPoint = false;
private boolean mDidDelete = false;
private ControlPoint mCurrentControlPoint = null;
@@ -33,6 +34,8 @@ public class ImageCurves extends ImageSlave {
int[] blueHistogram = new int[256];
Path gHistoPath = new Path();
+ boolean mDoingTouchMove = false;
+
public ImageCurves(Context context) {
super(context);
resetCurve();
@@ -107,14 +110,15 @@ public class ImageCurves extends ImageSlave {
if (i != mCurrentCurveIndex && !spline.isOriginal()) {
// And we only display a curve if it has more than two
// points
- spline.draw(canvas, Spline.colorForCurve(i), getWidth(), getHeight(), false);
+ spline.draw(canvas, Spline.colorForCurve(i), getWidth(),
+ getHeight(), false, mDoingTouchMove);
}
}
}
// ...but we always display the current curve.
getSpline(mCurrentCurveIndex)
.draw(canvas, Spline.colorForCurve(mCurrentCurveIndex), getWidth(), getHeight(),
- true);
+ true, mDoingTouchMove);
drawToast(canvas);
}
@@ -168,8 +172,10 @@ public class ImageCurves extends ImageSlave {
if (mDidDelete) {
mDidDelete = false;
}
+ mDoingTouchMove = false;
return true;
}
+ mDoingTouchMove = true;
if (mDidDelete) {
return true;
@@ -190,7 +196,8 @@ public class ImageCurves extends ImageSlave {
if (spline.isPointContained(posX, pick)) {
mCurrentControlPoint.x = posX;
mCurrentControlPoint.y = posY;
- } else if (pick != -1) {
+ spline.didMovePoint(mCurrentControlPoint);
+ } else if (pick != -1 && spline.getNbPoints() > 2) {
spline.deletePoint(pick);
mDidDelete = true;
}
@@ -285,4 +292,26 @@ public class ImageCurves extends ImageSlave {
paint2.setARGB(255, 200, 200, 200);
canvas.drawPath(gHistoPath, paint2);
}
+
+ public void setChannel(int itemId) {
+ switch (itemId) {
+ case R.id.curve_menu_rgb: {
+ mCurrentCurveIndex = Spline.RGB;
+ break;
+ }
+ case R.id.curve_menu_red: {
+ mCurrentCurveIndex = Spline.RED;
+ break;
+ }
+ case R.id.curve_menu_green: {
+ mCurrentCurveIndex = Spline.GREEN;
+ break;
+ }
+ case R.id.curve_menu_blue: {
+ mCurrentCurveIndex = Spline.BLUE;
+ break;
+ }
+ }
+ invalidate();
+ }
}