mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Improve corner button appearance
This commit is contained in:
@@ -10,14 +10,14 @@ import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
import forge.game.Game;
|
||||
import forge.screens.match.FControl;
|
||||
import forge.screens.match.input.ButtonUtil;
|
||||
import forge.toolbox.FButton;
|
||||
import forge.toolbox.FButton.Corner;
|
||||
import forge.toolbox.FContainer;
|
||||
import forge.utils.Utils;
|
||||
|
||||
public class VPrompt extends FContainer {
|
||||
public static final float BTN_WIDTH = Utils.AVG_FINGER_WIDTH;
|
||||
public static final float HEIGHT = Utils.AVG_FINGER_HEIGHT;
|
||||
public static final float BTN_WIDTH = HEIGHT * 1.5f;
|
||||
|
||||
private static final FSkinColor backColor = FSkinColor.get(Colors.CLR_THEME2);
|
||||
private static final FSkinColor foreColor = FSkinColor.get(Colors.CLR_TEXT);
|
||||
@@ -41,6 +41,8 @@ public class VPrompt extends FContainer {
|
||||
}));
|
||||
btnOk.setSize(BTN_WIDTH, HEIGHT);
|
||||
btnCancel.setSize(BTN_WIDTH, HEIGHT);
|
||||
btnOk.setCorner(Corner.BottomLeft);
|
||||
btnCancel.setCorner(Corner.BottomRight);
|
||||
}
|
||||
|
||||
public FButton getBtnOk() {
|
||||
|
||||
@@ -12,7 +12,6 @@ import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
|
||||
public class FButton extends FDisplayObject {
|
||||
private static final int insetX = 25;
|
||||
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);
|
||||
@@ -23,6 +22,13 @@ public class FButton extends FDisplayObject {
|
||||
private boolean toggled = false;
|
||||
private Runnable command;
|
||||
|
||||
public enum Corner {
|
||||
None,
|
||||
BottomLeft,
|
||||
BottomRight
|
||||
}
|
||||
private Corner corner = Corner.None;
|
||||
|
||||
/**
|
||||
* Instantiates a new FButton.
|
||||
*/
|
||||
@@ -96,6 +102,13 @@ public class FButton extends FDisplayObject {
|
||||
}
|
||||
}
|
||||
|
||||
public Corner getCorner() {
|
||||
return corner;
|
||||
}
|
||||
public void setCorner(Corner corner0) {
|
||||
corner = corner0;
|
||||
}
|
||||
|
||||
public void setCommand(Runnable command0) {
|
||||
command = command0;
|
||||
}
|
||||
@@ -129,6 +142,11 @@ public class FButton extends FDisplayObject {
|
||||
float w = getWidth();
|
||||
float h = getHeight();
|
||||
|
||||
float cornerButtonWidth = w / 2;
|
||||
float cornerButtonHeight = h * 1.5f;
|
||||
float cornerTextOffsetX = cornerButtonWidth / 2;
|
||||
float cornerTextOffsetY = (cornerButtonHeight - h) / 2;
|
||||
|
||||
FSkinColor foreColor = FORE_COLOR;
|
||||
boolean disabled = !isEnabled();
|
||||
if (disabled) {
|
||||
@@ -136,15 +154,31 @@ public class FButton extends FDisplayObject {
|
||||
foreColor = DISABLED_FORE_COLOR;
|
||||
}
|
||||
|
||||
if (w > 2 * h) {
|
||||
g.drawImage(imgL, 0, 0, h, h);
|
||||
g.drawImage(imgM, h, 0, w - (2 * h), h);
|
||||
g.drawImage(imgR, w - h, 0, h, h);
|
||||
}
|
||||
else {
|
||||
float buttonWidth = w / 2;
|
||||
g.drawImage(imgL, 0, 0, buttonWidth, h);
|
||||
g.drawImage(imgR, buttonWidth, 0, w - buttonWidth, h);
|
||||
//determine images to draw and text alignment based on which corner button is in (if any)
|
||||
switch (corner) {
|
||||
case None:
|
||||
if (w > 2 * h) {
|
||||
g.drawImage(imgL, 0, 0, h, h);
|
||||
g.drawImage(imgM, h, 0, w - (2 * h), h);
|
||||
g.drawImage(imgR, w - h, 0, h, h);
|
||||
}
|
||||
else {
|
||||
g.drawImage(imgL, 0, 0, cornerButtonWidth, h);
|
||||
g.drawImage(imgR, cornerButtonWidth, 0, w - cornerButtonWidth, h);
|
||||
}
|
||||
break;
|
||||
case BottomLeft:
|
||||
g.drawImage(imgM, 0, 0, cornerButtonWidth, cornerButtonHeight);
|
||||
g.drawImage(imgR, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight);
|
||||
w -= cornerTextOffsetX;
|
||||
h += cornerTextOffsetY;
|
||||
break;
|
||||
case BottomRight:
|
||||
g.drawImage(imgL, 0, 0, cornerButtonWidth, cornerButtonHeight);
|
||||
g.drawImage(imgM, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight);
|
||||
w += cornerTextOffsetX;
|
||||
h += cornerTextOffsetY;
|
||||
break;
|
||||
}
|
||||
|
||||
if (disabled) {
|
||||
@@ -152,7 +186,7 @@ public class FButton extends FDisplayObject {
|
||||
}
|
||||
|
||||
if (!StringUtils.isEmpty(text)) {
|
||||
g.drawText(text, font, foreColor, insetX, 0, w - 2 * insetX, h, false, HAlignment.CENTER, true);
|
||||
g.drawText(text, font, foreColor, 0, 0, w, h, false, HAlignment.CENTER, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user