diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 044f6b4ef31..a47f4e038e9 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -66,6 +66,7 @@ public class Forge implements ApplicationListener { public static boolean enableUIMask = false; public static boolean enablePreloadExtendedArt = false; public static String locale = "en-US"; + public static boolean hdbuttons = false; public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0, boolean value) { if (GuiBase.getInterface() == null) { diff --git a/forge-gui-mobile/src/forge/assets/FSkin.java b/forge-gui-mobile/src/forge/assets/FSkin.java index 4d64d273ee2..a0646decf94 100644 --- a/forge-gui-mobile/src/forge/assets/FSkin.java +++ b/forge-gui-mobile/src/forge/assets/FSkin.java @@ -190,6 +190,7 @@ public class FSkin { final FileHandle f8 = getDefaultSkinFile(ForgeConstants.SPRITE_SLEEVES_FILE); final FileHandle f9 = getDefaultSkinFile(ForgeConstants.SPRITE_SLEEVES2_FILE); final FileHandle f10 = getDefaultSkinFile(ForgeConstants.SPRITE_BORDER_FILE); + final FileHandle f11 = getSkinFile(ForgeConstants.SPRITE_BUTTONS_FILE); try { textures.put(f1.path(), new Texture(f1)); @@ -207,7 +208,13 @@ public class FSkin { t.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear); textures.put(f7.path(), t); } - + //hdbuttons + if (f11.exists()) { + Texture tf11 = new Texture(f11, true); + tf11.setFilter(Texture.TextureFilter.MipMapLinearLinear, Texture.TextureFilter.Linear); + textures.put(f11.path(), tf11); + Forge.hdbuttons = true; + } else { Forge.hdbuttons = false; } //how to refresh buttons when a theme don't have hd buttons? //update colors for (final FSkinColor.Colors c : FSkinColor.Colors.values()) { c.setColor(new Color(preferredIcons.getPixel(c.getX(), c.getY()))); diff --git a/forge-gui-mobile/src/forge/assets/FSkinImage.java b/forge-gui-mobile/src/forge/assets/FSkinImage.java index cdaaceeaaf7..407b7028c3e 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinImage.java +++ b/forge-gui-mobile/src/forge/assets/FSkinImage.java @@ -228,6 +228,25 @@ public enum FSkinImage implements FImage { BTN_DISABLED_LEFT (FSkinProp.IMG_BTN_DISABLED_LEFT, SourceFile.ICONS), BTN_DISABLED_CENTER (FSkinProp.IMG_BTN_DISABLED_CENTER, SourceFile.ICONS), BTN_DISABLED_RIGHT (FSkinProp.IMG_BTN_DISABLED_RIGHT, SourceFile.ICONS), + //Hdbuttons + HDBTN_UP_LEFT (FSkinProp.IMG_HDBTN_UP_LEFT, SourceFile.BUTTONS), + HDBTN_UP_CENTER (FSkinProp.IMG_HDBTN_UP_CENTER, SourceFile.BUTTONS), + HDBTN_UP_RIGHT (FSkinProp.IMG_HDBTN_UP_RIGHT, SourceFile.BUTTONS), + HDBTN_OVER_LEFT (FSkinProp.IMG_HDBTN_OVER_LEFT, SourceFile.BUTTONS), + HDBTN_OVER_CENTER (FSkinProp.IMG_HDBTN_OVER_CENTER, SourceFile.BUTTONS), + HDBTN_OVER_RIGHT (FSkinProp.IMG_HDBTN_OVER_RIGHT, SourceFile.BUTTONS), + HDBTN_DOWN_LEFT (FSkinProp.IMG_HDBTN_DOWN_LEFT, SourceFile.BUTTONS), + HDBTN_DOWN_CENTER (FSkinProp.IMG_HDBTN_DOWN_CENTER, SourceFile.BUTTONS), + HDBTN_DOWN_RIGHT (FSkinProp.IMG_HDBTN_DOWN_RIGHT, SourceFile.BUTTONS), + HDBTN_FOCUS_LEFT (FSkinProp.IMG_HDBTN_FOCUS_LEFT, SourceFile.BUTTONS), + HDBTN_FOCUS_CENTER (FSkinProp.IMG_HDBTN_FOCUS_CENTER, SourceFile.BUTTONS), + HDBTN_FOCUS_RIGHT (FSkinProp.IMG_HDBTN_FOCUS_RIGHT, SourceFile.BUTTONS), + HDBTN_TOGGLE_LEFT (FSkinProp.IMG_HDBTN_TOGGLE_LEFT, SourceFile.BUTTONS), + HDBTN_TOGGLE_CENTER (FSkinProp.IMG_HDBTN_TOGGLE_CENTER, SourceFile.BUTTONS), + HDBTN_TOGGLE_RIGHT (FSkinProp.IMG_HDBTN_TOGGLE_RIGHT, SourceFile.BUTTONS), + HDBTN_DISABLED_LEFT (FSkinProp.IMG_HDBTN_DISABLED_LEFT, SourceFile.BUTTONS), + HDBTN_DISABLED_CENTER (FSkinProp.IMG_HDBTN_DISABLED_CENTER, SourceFile.BUTTONS), + HDBTN_DISABLED_RIGHT (FSkinProp.IMG_HDBTN_DISABLED_RIGHT, SourceFile.BUTTONS), //Foils FOIL_01 (FSkinProp.FOIL_01, SourceFile.FOILS), @@ -312,6 +331,7 @@ public enum FSkinImage implements FImage { TROPHIES(ForgeConstants.SPRITE_TROPHIES_FILE), ABILITIES(ForgeConstants.SPRITE_ABILITY_FILE), BORDERS(ForgeConstants.SPRITE_BORDER_FILE), + BUTTONS(ForgeConstants.SPRITE_BUTTONS_FILE), MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE), PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE); diff --git a/forge-gui-mobile/src/forge/toolbox/FButton.java b/forge-gui-mobile/src/forge/toolbox/FButton.java index e3909565f42..33b64b7b4fc 100644 --- a/forge-gui-mobile/src/forge/toolbox/FButton.java +++ b/forge-gui-mobile/src/forge/toolbox/FButton.java @@ -1,5 +1,6 @@ package forge.toolbox; +import forge.Forge; import org.apache.commons.lang3.StringUtils; import com.badlogic.gdx.Input.Keys; @@ -54,10 +55,21 @@ public class FButton extends FDisplayObject implements IButton { resetImg(); } + private boolean hdbuttonskin(){ + return Forge.hdbuttons; + } + private void resetImg() { - imgL = FSkinImage.BTN_UP_LEFT; - imgM = FSkinImage.BTN_UP_CENTER; - imgR = FSkinImage.BTN_UP_RIGHT; + if (hdbuttonskin()) + { + imgL = FSkinImage.HDBTN_UP_LEFT; + imgM = FSkinImage.HDBTN_UP_CENTER; + imgR = FSkinImage.HDBTN_UP_RIGHT; + } else { + imgL = FSkinImage.BTN_UP_LEFT; + imgM = FSkinImage.BTN_UP_CENTER; + imgR = FSkinImage.BTN_UP_RIGHT; + } } public String getText() { @@ -83,9 +95,16 @@ public class FButton extends FDisplayObject implements IButton { resetImg(); } else { - imgL = FSkinImage.BTN_DISABLED_LEFT; - imgM = FSkinImage.BTN_DISABLED_CENTER; - imgR = FSkinImage.BTN_DISABLED_RIGHT; + if (hdbuttonskin()) + { + imgL = FSkinImage.HDBTN_DISABLED_LEFT; + imgM = FSkinImage.HDBTN_DISABLED_CENTER; + imgR = FSkinImage.HDBTN_DISABLED_RIGHT; + } else { + imgL = FSkinImage.BTN_DISABLED_LEFT; + imgM = FSkinImage.BTN_DISABLED_CENTER; + imgR = FSkinImage.BTN_DISABLED_RIGHT; + } } } @@ -102,17 +121,31 @@ public class FButton extends FDisplayObject implements IButton { toggled = b0; if (toggled) { - imgL = FSkinImage.BTN_TOGGLE_LEFT; - imgM = FSkinImage.BTN_TOGGLE_CENTER; - imgR = FSkinImage.BTN_TOGGLE_RIGHT; + if (hdbuttonskin()) + { + imgL = FSkinImage.HDBTN_TOGGLE_LEFT; + imgM = FSkinImage.HDBTN_TOGGLE_CENTER; + imgR = FSkinImage.HDBTN_TOGGLE_RIGHT; + } else { + imgL = FSkinImage.BTN_TOGGLE_LEFT; + imgM = FSkinImage.BTN_TOGGLE_CENTER; + imgR = FSkinImage.BTN_TOGGLE_RIGHT; + } } else if (isEnabled()) { resetImg(); } else { - imgL = FSkinImage.BTN_DISABLED_LEFT; - imgM = FSkinImage.BTN_DISABLED_CENTER; - imgR = FSkinImage.BTN_DISABLED_RIGHT; + if (hdbuttonskin()) + { + imgL = FSkinImage.HDBTN_DISABLED_LEFT; + imgM = FSkinImage.HDBTN_DISABLED_CENTER; + imgR = FSkinImage.HDBTN_DISABLED_RIGHT; + } else { + imgL = FSkinImage.BTN_DISABLED_LEFT; + imgM = FSkinImage.BTN_DISABLED_CENTER; + imgR = FSkinImage.BTN_DISABLED_RIGHT; + } } } @@ -137,9 +170,18 @@ public class FButton extends FDisplayObject implements IButton { @Override public final boolean press(float x, float y) { if (isToggled()) { return true; } - imgL = FSkinImage.BTN_DOWN_LEFT; - imgM = FSkinImage.BTN_DOWN_CENTER; - imgR = FSkinImage.BTN_DOWN_RIGHT; + + if (hdbuttonskin()) + { + imgL = FSkinImage.HDBTN_DOWN_LEFT; + imgM = FSkinImage.HDBTN_DOWN_CENTER; + imgR = FSkinImage.HDBTN_DOWN_RIGHT; + } else { + imgL = FSkinImage.BTN_DOWN_LEFT; + imgM = FSkinImage.BTN_DOWN_CENTER; + imgR = FSkinImage.BTN_DOWN_RIGHT; + } + return true; } diff --git a/forge-gui/res/skins/default/sprite_buttons.png b/forge-gui/res/skins/default/sprite_buttons.png new file mode 100644 index 00000000000..2c5f8b7c699 Binary files /dev/null and b/forge-gui/res/skins/default/sprite_buttons.png differ diff --git a/forge-gui/src/main/java/forge/assets/FSkinProp.java b/forge-gui/src/main/java/forge/assets/FSkinProp.java index a2074450960..e6b3c426af7 100644 --- a/forge-gui/src/main/java/forge/assets/FSkinProp.java +++ b/forge-gui/src/main/java/forge/assets/FSkinProp.java @@ -284,6 +284,25 @@ public enum FSkinProp { IMG_BTN_DISABLED_LEFT (new int[] {80, 200, 40, 40}, PropType.ICON), IMG_BTN_DISABLED_CENTER (new int[] {120, 200, 1, 40}, PropType.ICON), IMG_BTN_DISABLED_RIGHT (new int[] {160, 200, 40, 40}, PropType.ICON), + //hd buttons + IMG_HDBTN_UP_LEFT (new int[] {2, 2, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_UP_CENTER (new int[] {162, 2, 1, 165}, PropType.BUTTONS), + IMG_HDBTN_UP_RIGHT (new int[] {322, 2, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_OVER_LEFT (new int[] {2, 169, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_OVER_CENTER (new int[] {162, 169, 1, 165}, PropType.BUTTONS), + IMG_HDBTN_OVER_RIGHT (new int[] {322, 169, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_DOWN_LEFT (new int[] {2, 336, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_DOWN_CENTER (new int[] {162, 336, 1, 165}, PropType.BUTTONS), + IMG_HDBTN_DOWN_RIGHT (new int[] {322, 336, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_FOCUS_LEFT (new int[] {2, 503, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_FOCUS_CENTER (new int[] {162, 503, 1, 165}, PropType.BUTTONS), + IMG_HDBTN_FOCUS_RIGHT (new int[] {322, 503, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_TOGGLE_LEFT (new int[] {2, 670, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_TOGGLE_CENTER (new int[] {162, 670, 1, 165}, PropType.BUTTONS), + IMG_HDBTN_TOGGLE_RIGHT (new int[] {322, 670, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_DISABLED_LEFT (new int[] {2, 837, 160, 165}, PropType.BUTTONS), + IMG_HDBTN_DISABLED_CENTER (new int[] {162, 837, 1, 165}, PropType.BUTTONS), + IMG_HDBTN_DISABLED_RIGHT (new int[] {322, 837, 160, 165}, PropType.BUTTONS), IMG_FAV1 (new int[] {0, 0, 100, 100}, PropType.FAVICON), IMG_FAV2 (new int[] {100, 0, 100, 100}, PropType.FAVICON), @@ -378,6 +397,7 @@ public enum FSkinProp { TROPHY, ABILITY, BORDERS, + BUTTONS, MANAICONS, PLANAR_CONQUEST, FAVICON diff --git a/forge-gui/src/main/java/forge/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/properties/ForgeConstants.java index 63d3894158a..f41e434e2e8 100644 --- a/forge-gui/src/main/java/forge/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/properties/ForgeConstants.java @@ -95,6 +95,7 @@ public final class ForgeConstants { public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png"; public static final String SPRITE_ABILITY_FILE = "sprite_ability.png"; public static final String SPRITE_BORDER_FILE = "sprite_border.png"; + public static final String SPRITE_BUTTONS_FILE = "sprite_buttons.png"; public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png"; public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png";