From 4173bacca33e671a8f461914040cb38a49902257 Mon Sep 17 00:00:00 2001 From: drdev Date: Sat, 28 Jun 2014 04:33:17 +0000 Subject: [PATCH] Change Vanguard to use list view by default --- .../src/forge/itemmanager/views/ImageView.java | 14 ++++++++------ .../src/forge/itemmanager/views/ItemView.java | 15 ++++++++++----- .../src/forge/toolbox/FContainer.java | 4 ++-- .../src/forge/toolbox/FScrollPane.java | 2 +- .../java/forge/itemmanager/ItemManagerConfig.java | 2 +- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 66970b3dc68..3a287d5b662 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -61,6 +61,7 @@ public class ImageView extends ItemView { private final List selectedIndices = new ArrayList(); private int columnCount = 4; + private float scrollHeight = 0; private ColumnDef pileBy = null; private GroupDef groupBy = null; private ItemInfo focalItem; @@ -529,6 +530,7 @@ public class ImageView extends ItemView { group.setBounds(groupX, groupY, groupWidth, y - groupY); y += PADDING; } + scrollHeight = y; if (forRefresh) { //refresh ordered items if needed int index = 0; @@ -551,7 +553,7 @@ public class ImageView extends ItemView { @Override protected float getScrollHeight() { - return groups.get(groups.size() - 1).getBottom() + PADDING; + return scrollHeight; } @Override @@ -776,8 +778,8 @@ public class ImageView extends ItemView { ItemInfo itemInfo = orderedItems.get(selectedIndices.get(0)); Vector2 screenPos = itemInfo.group.getScreenPosition(); Vector2 relPos = itemInfo.group.getChildRelativePosition(itemInfo); - return new Rectangle(screenPos.x + relPos.x - SEL_BORDER_SIZE, - screenPos.y + relPos.y - itemInfo.group.getTop() - SEL_BORDER_SIZE, + return new Rectangle(screenPos.x + relPos.x - SEL_BORDER_SIZE + itemInfo.group.getLeft(), + screenPos.y + relPos.y - SEL_BORDER_SIZE, itemInfo.getWidth() + 2 * SEL_BORDER_SIZE, itemInfo.getHeight() + 2 * SEL_BORDER_SIZE); } @@ -849,7 +851,7 @@ public class ImageView extends ItemView { if (items.isEmpty()) { return; } final float visibleTop = getScrollValue(); - final float visibleBottom = visibleTop + getHeight(); + final float visibleBottom = visibleTop + getScroller().getHeight(); for (ItemInfo itemInfo : items) { if (itemInfo.getBottom() < visibleTop) { continue; @@ -890,8 +892,8 @@ public class ImageView extends ItemView { //provide special override for this function to account for special ItemInfo positioning logic @Override - public Vector2 getChildRelativePosition(FDisplayObject child) { - return new Vector2(child.getLeft() - getScrollLeft(), child.getTop() - getScrollValue()); + protected Vector2 getChildRelativePosition(FDisplayObject child, float offsetX, float offsetY) { + return new Vector2(child.getLeft() - getScrollLeft() + offsetX - getLeft(), child.getTop() - getScrollValue() + offsetY - getTop()); } } private class Pile extends FDisplayObject { diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java b/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java index 207e6782d3f..3609bcc7f7a 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ItemView.java @@ -49,14 +49,19 @@ public abstract class ItemView { @Override protected ScrollBounds layoutAndGetScrollBounds(float visibleWidth, float visibleHeight) { onResize(visibleWidth, visibleHeight); - //scroll selection into view whenever view height changes - if (visibleHeight != heightBackup) { - heightBackup = visibleHeight; - scrollSelectionIntoView(); - } return new ScrollBounds(visibleWidth, ItemView.this.getScrollHeight()); } + protected void setScrollPositionsAfterLayout(float scrollLeft0, float scrollTop0) { + if (getHeight() != heightBackup) { + heightBackup = getHeight(); + scrollSelectionIntoView(); //scroll selection into view whenever view height changes + } + else { + super.setScrollPositionsAfterLayout(scrollLeft0, scrollTop0); + } + } + @Override public boolean tap(float x, float y, int count) { return ItemView.this.tap(x, y, count); diff --git a/forge-gui-mobile/src/forge/toolbox/FContainer.java b/forge-gui-mobile/src/forge/toolbox/FContainer.java index adc2ddb54d7..f6a71d6106e 100644 --- a/forge-gui-mobile/src/forge/toolbox/FContainer.java +++ b/forge-gui-mobile/src/forge/toolbox/FContainer.java @@ -104,11 +104,11 @@ public abstract class FContainer extends FDisplayObject { } } - public Vector2 getChildRelativePosition(FDisplayObject child) { + public final Vector2 getChildRelativePosition(FDisplayObject child) { return getChildRelativePosition(child, 0, 0); } - private Vector2 getChildRelativePosition(FDisplayObject child, float offsetX, float offsetY) { + protected Vector2 getChildRelativePosition(FDisplayObject child, float offsetX, float offsetY) { for (FDisplayObject c : children) { //check direct children first if (child == c) { return new Vector2(c.getLeft() + offsetX, c.getTop() + offsetY); diff --git a/forge-gui-mobile/src/forge/toolbox/FScrollPane.java b/forge-gui-mobile/src/forge/toolbox/FScrollPane.java index 14e9ee05fd3..e368ce7c8ec 100644 --- a/forge-gui-mobile/src/forge/toolbox/FScrollPane.java +++ b/forge-gui-mobile/src/forge/toolbox/FScrollPane.java @@ -130,7 +130,7 @@ public abstract class FScrollPane extends FContainer { } @Override - protected final void doLayout(float width, float height) { + protected void doLayout(float width, float height) { scrollBounds = layoutAndGetScrollBounds(width, height); scrollBounds.increaseWidthTo(width); //ensure scroll bounds extends at least to visible bounds scrollBounds.increaseHeightTo(height); diff --git a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java index caf2e76fec9..1153aa42cee 100644 --- a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java +++ b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java @@ -67,7 +67,7 @@ public enum ItemManagerConfig { SCHEME_DECKS(SColumnUtil.getDecksDefaultColumns(true, false), false, false, false, null, null, 3, 0), VANGUARDS(SColumnUtil.getDecksDefaultColumns(true, false), false, false, true, - null, null, 3, 1), + null, null, 3, 0), DRAFT_DECKS(SColumnUtil.getDecksDefaultColumns(true, false), false, false, false, null, null, 3, 0), SEALED_DECKS(SColumnUtil.getDecksDefaultColumns(true, false), false, false, false,