diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 51c974ed5a0..673772dfb77 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -62,6 +62,7 @@ public class ImageView extends ItemView { private GroupDef groupBy = null; private ItemInfo focalItem; private boolean updatingLayout; + private float totalZoomAmount; private final ArrayList orderedItems = new ArrayList(); private final ArrayList groups = new ArrayList(); @@ -545,7 +546,7 @@ public class ImageView extends ItemView { } @Override - protected boolean onScrollerTap(float x, float y, int count) { + protected boolean tap(float x, float y, int count) { ItemInfo item = getItemAtPoint(x, y); if (count == 1) { selectItem(item); @@ -558,6 +559,22 @@ public class ImageView extends ItemView { return true; } + @Override + protected boolean zoom(float x, float y, float amount) { + totalZoomAmount += amount; + + float columnZoomAmount = Utils.AVG_FINGER_WIDTH; + while (totalZoomAmount >= columnZoomAmount) { + setColumnCount(getColumnCount() - 1); + totalZoomAmount -= columnZoomAmount; + } + while (totalZoomAmount <= -columnZoomAmount) { + setColumnCount(getColumnCount() + 1); + totalZoomAmount += columnZoomAmount; + } + return true; + } + private ItemInfo getItemAtPoint(float x, float y) { for (int i = groups.size() - 1; i >= 0; i--) { Group group = groups.get(i); diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java b/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java index ae8b852cbb2..38d1b8b7093 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java @@ -55,7 +55,12 @@ public abstract class ItemView { @Override public boolean tap(float x, float y, int count) { - return onScrollerTap(x, y, count); + return ItemView.this.tap(x, y, count); + } + + @Override + public boolean zoom(float x, float y, float amount) { + return ItemView.this.zoom(x, y, amount); } @Override @@ -64,7 +69,10 @@ public abstract class ItemView { } } - protected boolean onScrollerTap(float x, float y, int count) { + protected boolean tap(float x, float y, int count) { + return false; + } + protected boolean zoom(float x, float y, float amount) { return false; } protected abstract float getScrollHeight();