From c4c2de03f94e36263e3cbe663353fef358fe2417 Mon Sep 17 00:00:00 2001 From: drdev Date: Mon, 10 Mar 2014 03:20:27 +0000 Subject: [PATCH] Improve appearance of disable button --- forge-m-base/src/forge/Forge.java | 7 +++++++ forge-m-base/src/forge/toolbox/FButton.java | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/forge-m-base/src/forge/Forge.java b/forge-m-base/src/forge/Forge.java index ccfa2640814..4d4b52efc6a 100644 --- a/forge-m-base/src/forge/Forge.java +++ b/forge-m-base/src/forge/Forge.java @@ -547,6 +547,13 @@ public class Forge implements ApplicationListener { batch.begin(); } + public void setImageTint(Color color) { + batch.setColor(color); + } + public void clearImageTint() { + batch.setColor(Color.WHITE); + } + public void drawImage(FImage image, float x, float y, float w, float h) { image.draw(this, x, y, w, h); } diff --git a/forge-m-base/src/forge/toolbox/FButton.java b/forge-m-base/src/forge/toolbox/FButton.java index 12411efc06c..5a07979dc80 100644 --- a/forge-m-base/src/forge/toolbox/FButton.java +++ b/forge-m-base/src/forge/toolbox/FButton.java @@ -2,6 +2,7 @@ package forge.toolbox; import org.apache.commons.lang3.StringUtils; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import forge.Forge.Graphics; @@ -12,7 +13,9 @@ import forge.assets.FSkinImage; public class FButton extends FDisplayObject { private static final int insetX = 25; - private static final FSkinColor foreColor = FSkinColor.get(Colors.CLR_TEXT); + private static final FSkinColor FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT); + private static final Color DISABLED_COMPOSITE = new Color(1, 1, 1, 0.25f); + private static final FSkinColor DISABLED_FORE_COLOR = FORE_COLOR.alphaColor(DISABLED_COMPOSITE.a); private FSkinImage imgL, imgM, imgR; private String text; @@ -126,6 +129,13 @@ public class FButton extends FDisplayObject { float w = getWidth(); float h = getHeight(); + FSkinColor foreColor = FORE_COLOR; + boolean disabled = !isEnabled(); + if (disabled) { + g.setImageTint(DISABLED_COMPOSITE); + foreColor = DISABLED_FORE_COLOR; + } + if (w > 2 * h) { g.drawImage(imgL, 0, 0, h, h); g.drawImage(imgM, h, 0, w - (2 * h), h); @@ -136,6 +146,11 @@ public class FButton extends FDisplayObject { g.drawImage(imgL, 0, 0, buttonWidth, h); g.drawImage(imgR, buttonWidth, 0, w - buttonWidth, h); } + + if (disabled) { + g.clearImageTint(); + } + if (!StringUtils.isEmpty(text)) { g.drawText(text, font, foreColor, insetX, 0, w - 2 * insetX, h, false, HAlignment.CENTER, true); }