mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Make zoom activation more flexible
This commit is contained in:
@@ -21,6 +21,7 @@ import forge.assets.FSkinImage;
|
|||||||
import forge.assets.FTextureRegionImage;
|
import forge.assets.FTextureRegionImage;
|
||||||
import forge.assets.ImageCache;
|
import forge.assets.ImageCache;
|
||||||
import forge.card.CardDetailUtil.DetailColors;
|
import forge.card.CardDetailUtil.DetailColors;
|
||||||
|
import forge.card.CardZoom.ActivateHandler;
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
import forge.game.card.CardView;
|
import forge.game.card.CardView;
|
||||||
import forge.game.card.CardView.CardStateView;
|
import forge.game.card.CardView.CardStateView;
|
||||||
@@ -29,7 +30,6 @@ import forge.match.MatchUtil;
|
|||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.toolbox.FList;
|
import forge.toolbox.FList;
|
||||||
import forge.util.Callback;
|
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
public class CardRenderer {
|
public class CardRenderer {
|
||||||
@@ -239,18 +239,18 @@ public class CardRenderer {
|
|||||||
g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, HAlignment.LEFT, true);
|
g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, HAlignment.LEFT, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean cardListItemTap(List<?> cards, int selectedIndex, Callback<Integer> onActivate0, float x, float y, int count, boolean compactMode) {
|
public static boolean cardListItemTap(List<?> cards, int selectedIndex, ActivateHandler activateHandler, float x, float y, int count, boolean compactMode) {
|
||||||
if (x <= getCardListItemHeight(compactMode) * CARD_ART_RATIO) {
|
if (x <= getCardListItemHeight(compactMode) * CARD_ART_RATIO) {
|
||||||
CardZoom.show(cards, selectedIndex, onActivate0);
|
CardZoom.show(cards, selectedIndex, activateHandler);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public static boolean paperCardListItemTap(List<?> cards, int selectedIndex, Callback<Integer> onActivate0, float x, float y, int count, boolean compactMode) {
|
public static boolean paperCardListItemTap(List<?> cards, int selectedIndex, ActivateHandler activateHandler, float x, float y, int count, boolean compactMode) {
|
||||||
float cardArtHeight = getCardListItemHeight(compactMode);
|
float cardArtHeight = getCardListItemHeight(compactMode);
|
||||||
float cardArtWidth = cardArtHeight * CARD_ART_RATIO;
|
float cardArtWidth = cardArtHeight * CARD_ART_RATIO;
|
||||||
if (x <= cardArtWidth && y <= cardArtHeight) {
|
if (x <= cardArtWidth && y <= cardArtHeight) {
|
||||||
CardZoom.show(cards, selectedIndex, onActivate0);
|
CardZoom.show(cards, selectedIndex, activateHandler);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||||
|
|
||||||
import forge.Graphics;
|
import forge.Graphics;
|
||||||
@@ -17,7 +19,6 @@ import forge.item.InventoryItem;
|
|||||||
import forge.screens.FScreen;
|
import forge.screens.FScreen;
|
||||||
import forge.toolbox.FCardPanel;
|
import forge.toolbox.FCardPanel;
|
||||||
import forge.toolbox.FOverlay;
|
import forge.toolbox.FOverlay;
|
||||||
import forge.util.Callback;
|
|
||||||
import forge.util.FCollectionView;
|
import forge.util.FCollectionView;
|
||||||
|
|
||||||
public class CardZoom extends FOverlay {
|
public class CardZoom extends FOverlay {
|
||||||
@@ -30,19 +31,19 @@ public class CardZoom extends FOverlay {
|
|||||||
private static int currentIndex;
|
private static int currentIndex;
|
||||||
private static CardView currentCard, prevCard, nextCard;
|
private static CardView currentCard, prevCard, nextCard;
|
||||||
private static boolean zoomMode = true;
|
private static boolean zoomMode = true;
|
||||||
private static Callback<Integer> onActivate;
|
private static ActivateHandler activateHandler;
|
||||||
|
|
||||||
public static void show(Object item) {
|
public static void show(Object item) {
|
||||||
List<Object> items0 = new ArrayList<Object>();
|
List<Object> items0 = new ArrayList<Object>();
|
||||||
items0.add(item);
|
items0.add(item);
|
||||||
show(items0, 0, null);
|
show(items0, 0, null);
|
||||||
}
|
}
|
||||||
public static void show(FCollectionView<?> items0, int currentIndex0, Callback<Integer> onActivate0) {
|
public static void show(FCollectionView<?> items0, int currentIndex0, ActivateHandler activateHandler0) {
|
||||||
show((List<?>)items0, currentIndex0, onActivate0);
|
show((List<?>)items0, currentIndex0, activateHandler0);
|
||||||
}
|
}
|
||||||
public static void show(final List<?> items0, int currentIndex0, Callback<Integer> onActivate0) {
|
public static void show(final List<?> items0, int currentIndex0, ActivateHandler activateHandler0) {
|
||||||
items = items0;
|
items = items0;
|
||||||
onActivate = onActivate0;
|
activateHandler = activateHandler0;
|
||||||
currentIndex = currentIndex0;
|
currentIndex = currentIndex0;
|
||||||
currentCard = getCardView(items.get(currentIndex));
|
currentCard = getCardView(items.get(currentIndex));
|
||||||
prevCard = currentIndex > 0 ? getCardView(items.get(currentIndex - 1)) : null;
|
prevCard = currentIndex > 0 ? getCardView(items.get(currentIndex - 1)) : null;
|
||||||
@@ -114,9 +115,9 @@ public class CardZoom extends FOverlay {
|
|||||||
zoomMode = !zoomMode;
|
zoomMode = !zoomMode;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (onActivate != null) {
|
if (activateHandler != null) {
|
||||||
hide();
|
hide();
|
||||||
onActivate.run(currentIndex);
|
activateHandler.activate(currentIndex);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -146,9 +147,12 @@ public class CardZoom extends FOverlay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
float messageHeight = MSG_FONT.getCapHeight() * 2.5f;
|
float messageHeight = MSG_FONT.getCapHeight() * 2.5f;
|
||||||
if (onActivate != null) {
|
if (activateHandler != null) {
|
||||||
g.fillRect(MSG_BACK_COLOR, 0, 0, w, messageHeight);
|
String action = activateHandler.getActivateAction(currentIndex);
|
||||||
g.drawText("Swipe up to activate card", MSG_FONT, MSG_FORE_COLOR, 0, 0, w, messageHeight, false, HAlignment.CENTER, true);
|
if (StringUtils.isNotEmpty(action)) {
|
||||||
|
g.fillRect(MSG_BACK_COLOR, 0, 0, w, messageHeight);
|
||||||
|
g.drawText("Swipe up to " + action, MSG_FONT, MSG_FORE_COLOR, 0, 0, w, messageHeight, false, HAlignment.CENTER, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
g.fillRect(MSG_BACK_COLOR, 0, h - messageHeight, w, messageHeight);
|
g.fillRect(MSG_BACK_COLOR, 0, h - messageHeight, w, messageHeight);
|
||||||
g.drawText("Swipe down to switch to " + (zoomMode ? "detail" : "picture") + " view", MSG_FONT, MSG_FORE_COLOR, 0, h - messageHeight, w, messageHeight, false, HAlignment.CENTER, true);
|
g.drawText("Swipe down to switch to " + (zoomMode ? "detail" : "picture") + " view", MSG_FONT, MSG_FORE_COLOR, 0, h - messageHeight, w, messageHeight, false, HAlignment.CENTER, true);
|
||||||
@@ -157,4 +161,9 @@ public class CardZoom extends FOverlay {
|
|||||||
@Override
|
@Override
|
||||||
protected void doLayout(float width, float height) {
|
protected void doLayout(float width, float height) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static interface ActivateHandler {
|
||||||
|
String getActivateAction(int index);
|
||||||
|
void activate(int index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,11 +14,9 @@ import forge.itemmanager.filters.CardSearchFilter;
|
|||||||
import forge.itemmanager.filters.CardTypeFilter;
|
import forge.itemmanager.filters.CardTypeFilter;
|
||||||
import forge.itemmanager.filters.TextSearchFilter;
|
import forge.itemmanager.filters.TextSearchFilter;
|
||||||
import forge.toolbox.FList.CompactModeHandler;
|
import forge.toolbox.FList.CompactModeHandler;
|
||||||
import forge.util.Callback;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ItemManager for cards
|
* ItemManager for cards
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class CardManager extends ItemManager<PaperCard> {
|
public class CardManager extends ItemManager<PaperCard> {
|
||||||
public CardManager(boolean wantUnique0) {
|
public CardManager(boolean wantUnique0) {
|
||||||
@@ -62,24 +60,12 @@ public class CardManager extends ItemManager<PaperCard> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean tap(Integer index, Entry<PaperCard, Integer> value, float x, float y, int count) {
|
public boolean tap(Integer index, Entry<PaperCard, Integer> value, float x, float y, int count) {
|
||||||
return CardRenderer.cardListItemTap(model.getOrderedList(), index, new Callback<Integer>() {
|
return CardRenderer.cardListItemTap(model.getOrderedList(), index, CardManager.this, x, y, count, compactModeHandler.isCompactMode());
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
showMenu(true);
|
|
||||||
}
|
|
||||||
}, x, y, count, compactModeHandler.isCompactMode());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean longPress(Integer index, Entry<PaperCard, Integer> value, float x, float y) {
|
public boolean longPress(Integer index, Entry<PaperCard, Integer> value, float x, float y) {
|
||||||
CardZoom.show(model.getOrderedList(), index, new Callback<Integer>() {
|
CardZoom.show(model.getOrderedList(), index, CardManager.this);
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
showMenu(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import forge.Graphics;
|
|||||||
import forge.assets.FSkinColor;
|
import forge.assets.FSkinColor;
|
||||||
import forge.assets.FSkinFont;
|
import forge.assets.FSkinFont;
|
||||||
import forge.assets.FSkinImage;
|
import forge.assets.FSkinImage;
|
||||||
|
import forge.card.CardZoom.ActivateHandler;
|
||||||
import forge.item.InventoryItem;
|
import forge.item.InventoryItem;
|
||||||
import forge.itemmanager.filters.ItemFilter;
|
import forge.itemmanager.filters.ItemFilter;
|
||||||
import forge.itemmanager.filters.TextSearchFilter;
|
import forge.itemmanager.filters.TextSearchFilter;
|
||||||
@@ -53,7 +54,7 @@ import java.util.*;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
|
||||||
public abstract class ItemManager<T extends InventoryItem> extends FContainer implements IItemManager<T> {
|
public abstract class ItemManager<T extends InventoryItem> extends FContainer implements IItemManager<T>, ActivateHandler {
|
||||||
private ItemPool<T> pool;
|
private ItemPool<T> pool;
|
||||||
protected final ItemManagerModel<T> model;
|
protected final ItemManagerModel<T> model;
|
||||||
private Predicate<? super T> filterPredicate = null;
|
private Predicate<? super T> filterPredicate = null;
|
||||||
@@ -1073,4 +1074,20 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
setBounds(Math.round(x), Math.round(y), Math.round(w), Math.round(h));
|
setBounds(Math.round(x), Math.round(y), Math.round(w), Math.round(h));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getActivateAction(int index) {
|
||||||
|
if (contextMenuBuilder != null) {
|
||||||
|
return "select card";
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void activate(int index) {
|
||||||
|
if (contextMenuBuilder != null) {
|
||||||
|
setSelectedIndex(index);
|
||||||
|
showMenu(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import forge.itemmanager.filters.TextSearchFilter;
|
|||||||
import forge.quest.QuestSpellShop;
|
import forge.quest.QuestSpellShop;
|
||||||
import forge.toolbox.FList;
|
import forge.toolbox.FList;
|
||||||
import forge.toolbox.FList.CompactModeHandler;
|
import forge.toolbox.FList.CompactModeHandler;
|
||||||
import forge.util.Callback;
|
|
||||||
|
|
||||||
|
|
||||||
public final class SpellShopManager extends ItemManager<InventoryItem> {
|
public final class SpellShopManager extends ItemManager<InventoryItem> {
|
||||||
@@ -89,13 +88,7 @@ public final class SpellShopManager extends ItemManager<InventoryItem> {
|
|||||||
@Override
|
@Override
|
||||||
public boolean tap(Integer index, Entry<InventoryItem, Integer> value, float x, float y, int count) {
|
public boolean tap(Integer index, Entry<InventoryItem, Integer> value, float x, float y, int count) {
|
||||||
if (value.getKey() instanceof PaperCard) {
|
if (value.getKey() instanceof PaperCard) {
|
||||||
return CardRenderer.cardListItemTap(model.getOrderedList(), index, new Callback<Integer>() {
|
return CardRenderer.cardListItemTap(model.getOrderedList(), index, SpellShopManager.this, x, y, count, compactModeHandler.isCompactMode());
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
showMenu(true);
|
|
||||||
}
|
|
||||||
}, x, y, count, compactModeHandler.isCompactMode());
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -103,13 +96,7 @@ public final class SpellShopManager extends ItemManager<InventoryItem> {
|
|||||||
@Override
|
@Override
|
||||||
public boolean longPress(Integer index, Entry<InventoryItem, Integer> value, float x, float y) {
|
public boolean longPress(Integer index, Entry<InventoryItem, Integer> value, float x, float y) {
|
||||||
if (value.getKey() instanceof PaperCard) {
|
if (value.getKey() instanceof PaperCard) {
|
||||||
CardZoom.show(model.getOrderedList(), index, new Callback<Integer>() {
|
CardZoom.show(model.getOrderedList(), index, SpellShopManager.this);
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
showMenu(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import forge.toolbox.FTextField;
|
|||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.toolbox.FScrollPane;
|
import forge.toolbox.FScrollPane;
|
||||||
import forge.util.Callback;
|
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -873,13 +872,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
public boolean longPress(float x, float y) {
|
public boolean longPress(float x, float y) {
|
||||||
ItemInfo item = getItemAtPoint(x + getLeft(), y + getTop());
|
ItemInfo item = getItemAtPoint(x + getLeft(), y + getTop());
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
CardZoom.show(orderedItems, orderedItems.indexOf(item), new Callback<Integer>() {
|
CardZoom.show(orderedItems, orderedItems.indexOf(item), itemManager);
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
itemManager.showMenu(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ import forge.FThreads;
|
|||||||
import forge.Graphics;
|
import forge.Graphics;
|
||||||
import forge.card.CardZoom;
|
import forge.card.CardZoom;
|
||||||
import forge.card.CardRenderer.CardStackPosition;
|
import forge.card.CardRenderer.CardStackPosition;
|
||||||
|
import forge.card.CardZoom.ActivateHandler;
|
||||||
import forge.game.card.CardView;
|
import forge.game.card.CardView;
|
||||||
import forge.match.MatchUtil;
|
import forge.match.MatchUtil;
|
||||||
import forge.toolbox.FCardPanel;
|
import forge.toolbox.FCardPanel;
|
||||||
import forge.util.Callback;
|
|
||||||
import forge.util.ThreadUtil;
|
import forge.util.ThreadUtil;
|
||||||
|
|
||||||
public abstract class VCardDisplayArea extends VDisplayArea {
|
public abstract class VCardDisplayArea extends VDisplayArea implements ActivateHandler {
|
||||||
private static final float CARD_STACK_OFFSET = 0.2f;
|
private static final float CARD_STACK_OFFSET = 0.2f;
|
||||||
|
|
||||||
protected final List<CardView> orderedCards = new ArrayList<CardView>();
|
protected final List<CardView> orderedCards = new ArrayList<CardView>();
|
||||||
@@ -174,6 +174,16 @@ public abstract class VCardDisplayArea extends VDisplayArea {
|
|||||||
g.startClip(0, -h, getWidth(), 3 * h);
|
g.startClip(0, -h, getWidth(), 3 * h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getActivateAction(int index) {
|
||||||
|
return "activate card";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void activate(int index) {
|
||||||
|
CardAreaPanel.get(orderedCards.get(index)).selectCard(false);
|
||||||
|
}
|
||||||
|
|
||||||
public static class CardAreaPanel extends FCardPanel {
|
public static class CardAreaPanel extends FCardPanel {
|
||||||
private static final Map<Integer, CardAreaPanel> allCardPanels = new HashMap<Integer, CardAreaPanel>();
|
private static final Map<Integer, CardAreaPanel> allCardPanels = new HashMap<Integer, CardAreaPanel>();
|
||||||
|
|
||||||
@@ -317,12 +327,7 @@ public abstract class VCardDisplayArea extends VDisplayArea {
|
|||||||
|
|
||||||
private void showZoom() {
|
private void showZoom() {
|
||||||
final List<CardView> cards = displayArea.orderedCards;
|
final List<CardView> cards = displayArea.orderedCards;
|
||||||
CardZoom.show(cards, cards.indexOf(getCard()), new Callback<Integer>() {
|
CardZoom.show(cards, cards.indexOf(getCard()), displayArea);
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
CardAreaPanel.get(cards.get(result)).selectCard(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void buildCardPanelList(List<? super FCardPanel> list) {
|
public void buildCardPanelList(List<? super FCardPanel> list) {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import forge.assets.FSkinColor.Colors;
|
|||||||
import forge.card.CardRenderer;
|
import forge.card.CardRenderer;
|
||||||
import forge.card.CardZoom;
|
import forge.card.CardZoom;
|
||||||
import forge.card.CardRenderer.CardStackPosition;
|
import forge.card.CardRenderer.CardStackPosition;
|
||||||
|
import forge.card.CardZoom.ActivateHandler;
|
||||||
import forge.game.card.CardView;
|
import forge.game.card.CardView;
|
||||||
import forge.game.player.PlayerView;
|
import forge.game.player.PlayerView;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
@@ -21,10 +22,9 @@ import forge.item.PaperCard;
|
|||||||
import forge.screens.match.MatchController;
|
import forge.screens.match.MatchController;
|
||||||
import forge.screens.match.views.VAvatar;
|
import forge.screens.match.views.VAvatar;
|
||||||
import forge.screens.match.views.VStack;
|
import forge.screens.match.views.VStack;
|
||||||
import forge.util.Callback;
|
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
public class FChoiceList<T> extends FList<T> {
|
public class FChoiceList<T> extends FList<T> implements ActivateHandler {
|
||||||
public static final FSkinColor ITEM_COLOR = FSkinColor.get(Colors.CLR_ZEBRA);
|
public static final FSkinColor ITEM_COLOR = FSkinColor.get(Colors.CLR_ZEBRA);
|
||||||
public static final FSkinColor ALT_ITEM_COLOR = ITEM_COLOR.getContrastColor(-20);
|
public static final FSkinColor ALT_ITEM_COLOR = ITEM_COLOR.getContrastColor(-20);
|
||||||
public static final FSkinColor SEL_COLOR = FSkinColor.get(Colors.CLR_ACTIVE);
|
public static final FSkinColor SEL_COLOR = FSkinColor.get(Colors.CLR_ACTIVE);
|
||||||
@@ -321,22 +321,12 @@ public class FChoiceList<T> extends FList<T> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean tap(Integer index, T value, float x, float y, int count) {
|
public boolean tap(Integer index, T value, float x, float y, int count) {
|
||||||
return CardRenderer.cardListItemTap(items, index, new Callback<Integer>() {
|
return CardRenderer.cardListItemTap(items, index, FChoiceList.this, x, y, count, compactModeHandler.isCompactMode());
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
}
|
|
||||||
}, x, y, count, compactModeHandler.isCompactMode());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean longPress(Integer index, T value, float x, float y) {
|
public boolean longPress(Integer index, T value, float x, float y) {
|
||||||
CardZoom.show(items, index, new Callback<Integer>() {
|
CardZoom.show(items, index, FChoiceList.this);
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,22 +349,12 @@ public class FChoiceList<T> extends FList<T> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean tap(Integer index, T value, float x, float y, int count) {
|
public boolean tap(Integer index, T value, float x, float y, int count) {
|
||||||
return CardRenderer.cardListItemTap(items, index, new Callback<Integer>() {
|
return CardRenderer.cardListItemTap(items, index, FChoiceList.this, x, y, count, compactModeHandler.isCompactMode());
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
}
|
|
||||||
}, x, y, count, compactModeHandler.isCompactMode());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean longPress(Integer index, T value, float x, float y) {
|
public boolean longPress(Integer index, T value, float x, float y) {
|
||||||
CardZoom.show(items, index, new Callback<Integer>() {
|
CardZoom.show(items, index, FChoiceList.this);
|
||||||
@Override
|
|
||||||
public void run(Integer result) {
|
|
||||||
setSelectedIndex(result);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -453,4 +433,19 @@ public class FChoiceList<T> extends FList<T> {
|
|||||||
g.drawText(player.getName() + " (" + player.getLife() + ")", font, foreColor, x, y, w, h, false, HAlignment.LEFT, true);
|
g.drawText(player.getName() + " (" + player.getLife() + ")", font, foreColor, x, y, w, h, false, HAlignment.LEFT, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getActivateAction(int index) {
|
||||||
|
if (maxChoices > 0) {
|
||||||
|
return "select card";
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void activate(int index) {
|
||||||
|
if (maxChoices > 0) {
|
||||||
|
setSelectedIndex(index);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user