summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/ui/Spline.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/Spline.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/Spline.java')
-rw-r--r--src/com/android/gallery3d/filtershow/ui/Spline.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/Spline.java b/src/com/android/gallery3d/filtershow/ui/Spline.java
index ddbf97c74..67840dc23 100644
--- a/src/com/android/gallery3d/filtershow/ui/Spline.java
+++ b/src/com/android/gallery3d/filtershow/ui/Spline.java
@@ -24,6 +24,7 @@ public class Spline {
private static final String LOGTAG = "Spline";
private final Paint gPaint = new Paint();
+ private ControlPoint mCurrentControlPoint = null;
public Spline() {
mPoints = new Vector<ControlPoint>();
@@ -63,6 +64,10 @@ public class Spline {
return Color.WHITE;
}
+ public void didMovePoint(ControlPoint point) {
+ mCurrentControlPoint = point;
+ }
+
public boolean isOriginal() {
if (this.getNbPoints() > 2) {
return false;
@@ -169,10 +174,10 @@ public class Spline {
}
public void draw(Canvas canvas, int color, int canvasWidth, int canvasHeight,
- boolean showHandles) {
- float w = canvasWidth;
+ boolean showHandles, boolean moving) {
+ float w = canvasWidth - mCurveHandleSize;
float h = canvasHeight - mCurveHandleSize;
- float dx = 0;
+ float dx = mCurveHandleSize / 2;
float dy = mCurveHandleSize / 2;
// The cubic spline equation is (from numerical recipes in C):
@@ -249,6 +254,20 @@ public class Spline {
paint.setStrokeWidth(curveWidth + 2);
paint.setColor(Color.BLACK);
canvas.drawPath(path, paint);
+
+ if (moving && mCurrentControlPoint != null) {
+ float px = mCurrentControlPoint.x * w;
+ float py = mCurrentControlPoint.y * h;
+ paint.setStrokeWidth(3);
+ paint.setColor(Color.BLACK);
+ canvas.drawLine(px, py, px, h, paint);
+ canvas.drawLine(0, py, px, py, paint);
+ paint.setStrokeWidth(1);
+ paint.setColor(color);
+ canvas.drawLine(px, py, px, h, paint);
+ canvas.drawLine(0, py, px, py, paint);
+ }
+
paint.setStrokeWidth(curveWidth);
paint.setColor(color);
canvas.drawPath(path, paint);