commit fa9053f56a68d2aa798341ba2f1c7c4f9ad08501
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Thu Nov 10 22:24:30 2016 +0000

    Progress with Effects3D

diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
index ab907ff..2780b53 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DActivity.java
@@ -540,7 +540,20 @@ public class Effects3DActivity extends Activity
 
   public void remove(View v)
     {
-    android.util.Log.e("effects3D", "removing!");
+    //android.util.Log.e("effects3D", "removing!");
+
+    int numEffects = mEffects.size();
+    Effects3DEffect effect;
+
+    for(int i=0; i<numEffects; i++)
+      {
+      effect = mEffects.get(i);
+
+      if( effect.thisView(v) )
+        {
+        android.util.Log.e("effects3D", "effect: "+i);
+        }
+      }
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
index a0650fe..f8acd7b 100644
--- a/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
+++ b/src/main/java/org/distorted/examples/effects3d/Effects3DEffect.java
@@ -67,6 +67,9 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
   private Dynamic2D mCenterDyn;
   private Static2D  mCenterSta;
 
+  private View mButton;
+  private long mId;
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // requires knowledge about effect nature
 
@@ -93,22 +96,24 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
     {
     switch(mName)
       {
-      case DISTORT: object.distort(mDyn3, mCenterDyn, mRegionDyn); break;
-      case DEFORM : object.deform (mDyn3, mCenterDyn            ); break;
-      case SINK   : object.sink   (mDyn1, mCenterDyn, mRegionDyn); break;
-      case SWIRL  : object.swirl  (mDyn1, mCenterDyn, mRegionDyn); break;
-      case WAVE   : object.wave   (mDyn5, mCenterDyn, mRegionDyn); break;
-
-      case ALPHA            : object.alpha     (mDyn1,        mRegionDyn, false); break;
-      case SMOOTH_ALPHA     : object.alpha     (mDyn1,        mRegionDyn, true ); break;
-      case CHROMA           : object.chroma    (mDyn1, mDyn3, mRegionDyn, false); break;
-      case SMOOTH_CHROMA    : object.chroma    (mDyn1, mDyn3, mRegionDyn, true ); break;
-      case BRIGHTNESS       : object.brightness(mDyn1,        mRegionDyn, false); break;
-      case SMOOTH_BRIGHTNESS: object.brightness(mDyn1,        mRegionDyn, true ); break;
-      case SATURATION       : object.saturation(mDyn1,        mRegionDyn, false); break;
-      case SMOOTH_SATURATION: object.saturation(mDyn1,        mRegionDyn, true ); break;
-      case CONTRAST         : object.contrast  (mDyn1,        mRegionDyn, false); break;
-      case SMOOTH_CONTRAST  : object.contrast  (mDyn1,        mRegionDyn, true ); break;
+      case DISTORT: mId = object.distort(mDyn3, mCenterDyn, mRegionDyn); break;
+      case DEFORM : mId = object.deform (mDyn3, mCenterDyn            ); break;
+      case SINK   : mId = object.sink   (mDyn1, mCenterDyn, mRegionDyn); break;
+      case SWIRL  : mId = object.swirl  (mDyn1, mCenterDyn, mRegionDyn); break;
+      case WAVE   : mId = object.wave   (mDyn5, mCenterDyn, mRegionDyn); break;
+
+      case ALPHA            : mId = object.alpha     (mDyn1,        mRegionDyn, false); break;
+      case SMOOTH_ALPHA     : mId = object.alpha     (mDyn1,        mRegionDyn, true ); break;
+      case CHROMA           : mId = object.chroma    (mDyn1, mDyn3, mRegionDyn, false); break;
+      case SMOOTH_CHROMA    : mId = object.chroma    (mDyn1, mDyn3, mRegionDyn, true ); break;
+      case BRIGHTNESS       : mId = object.brightness(mDyn1,        mRegionDyn, false); break;
+      case SMOOTH_BRIGHTNESS: mId = object.brightness(mDyn1,        mRegionDyn, true ); break;
+      case SATURATION       : mId = object.saturation(mDyn1,        mRegionDyn, false); break;
+      case SMOOTH_SATURATION: mId = object.saturation(mDyn1,        mRegionDyn, true ); break;
+      case CONTRAST         : mId = object.contrast  (mDyn1,        mRegionDyn, false); break;
+      case SMOOTH_CONTRAST  : mId = object.contrast  (mDyn1,        mRegionDyn, true ); break;
+
+      default: mId = -1;
       }
     }
 
@@ -381,6 +386,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                mText      = (TextView)effect.findViewById(R.id.effect1dText);
                seek[0]    = (SeekBar)effect.findViewById(R.id.effect1dbar1);
                mSeekID[0] = seek[0].getId();
+               mButton    = effect.findViewById(R.id.button1dRemove);
                break;
       case 2 : effect     = act.getLayoutInflater().inflate(R.layout.effect2d, null);
                mText      = (TextView)effect.findViewById(R.id.effect2dText);
@@ -388,6 +394,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                seek[1]    = (SeekBar)effect.findViewById(R.id.effect2dbar2);
                mSeekID[0] = seek[0].getId();
                mSeekID[1] = seek[1].getId();
+               mButton    = effect.findViewById(R.id.button2dRemove);
                break;
       case 3 : effect     = act.getLayoutInflater().inflate(R.layout.effect3d, null);
                mText      = (TextView)effect.findViewById(R.id.effect3dText);
@@ -397,6 +404,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                mSeekID[0] = seek[0].getId();
                mSeekID[1] = seek[1].getId();
                mSeekID[2] = seek[2].getId();
+               mButton    = effect.findViewById(R.id.button3dRemove);
                break;
       case 4 : effect     = act.getLayoutInflater().inflate(R.layout.effect4d, null);
                mText      = (TextView)effect.findViewById(R.id.effect4dText);
@@ -408,6 +416,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                mSeekID[1] = seek[1].getId();
                mSeekID[2] = seek[2].getId();
                mSeekID[3] = seek[3].getId();
+               mButton    = effect.findViewById(R.id.button4dRemove);
                break;
       case 5 : effect     = act.getLayoutInflater().inflate(R.layout.effect5d, null);
                mText      = (TextView)effect.findViewById(R.id.effect5dText);
@@ -421,6 +430,7 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
                mSeekID[2] = seek[2].getId();
                mSeekID[3] = seek[3].getId();
                mSeekID[4] = seek[4].getId();
+               mButton    = effect.findViewById(R.id.button5dRemove);
                break;
       default: android.util.Log.e("Effects3DEffect", "dimension "+mDimension+" not supported!");
                return null;
@@ -591,6 +601,13 @@ class Effects3DEffect implements SeekBar.OnSeekBarChangeListener
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public boolean thisView(View v)
+    {
+    return v==mButton;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public void onStartTrackingTouch(SeekBar bar) { }
diff --git a/src/main/res/layout/effect1d.xml b/src/main/res/layout/effect1d.xml
index 31da0de..20bb5a8 100644
--- a/src/main/res/layout/effect1d.xml
+++ b/src/main/res/layout/effect1d.xml
@@ -24,7 +24,7 @@
                     android:text="@string/removebut"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/button"
+                    android:id="@+id/button1dRemove"
                     android:layout_weight="0.2"
                     android:layout_marginTop="3dp"
                     android:onClick="remove"/>
diff --git a/src/main/res/layout/effect2d.xml b/src/main/res/layout/effect2d.xml
index cec8907..01fd228 100644
--- a/src/main/res/layout/effect2d.xml
+++ b/src/main/res/layout/effect2d.xml
@@ -24,7 +24,7 @@
                     android:text="@string/removebut"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/button"
+                    android:id="@+id/button2dRemove"
                     android:layout_weight="0.2"
                     android:layout_marginTop="3dp"
                     android:onClick="remove"/>
diff --git a/src/main/res/layout/effect3d.xml b/src/main/res/layout/effect3d.xml
index ac49466..bcc3c19 100644
--- a/src/main/res/layout/effect3d.xml
+++ b/src/main/res/layout/effect3d.xml
@@ -24,7 +24,7 @@
                     android:text="@string/removebut"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/button"
+                    android:id="@+id/button3dRemove"
                     android:layout_weight="0.2"
                     android:layout_marginTop="3dp"
                     android:onClick="remove"/>
diff --git a/src/main/res/layout/effect4d.xml b/src/main/res/layout/effect4d.xml
index c7f17c1..3e192cc 100644
--- a/src/main/res/layout/effect4d.xml
+++ b/src/main/res/layout/effect4d.xml
@@ -24,7 +24,7 @@
                     android:text="@string/removebut"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/button"
+                    android:id="@+id/button4dRemove"
                     android:layout_weight="0.2"
                     android:layout_marginTop="3dp"
                     android:onClick="remove"/>
diff --git a/src/main/res/layout/effect5d.xml b/src/main/res/layout/effect5d.xml
index 0339e9b..ff28d84 100644
--- a/src/main/res/layout/effect5d.xml
+++ b/src/main/res/layout/effect5d.xml
@@ -24,7 +24,7 @@
                     android:text="@string/removebut"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:id="@+id/button"
+                    android:id="@+id/button5dRemove"
                     android:layout_weight="0.2"
                     android:layout_marginTop="3dp"
                     android:onClick="remove"/>
