diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 02abc5c7e1e..39ded4eb59f 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -922,9 +922,10 @@ public class Forge implements ApplicationListener { private int mouseMovedX, mouseMovedY; @Override - public boolean mouseMoved(int x, int y) { - mouseMovedX = x; - mouseMovedY = y; + public boolean mouseMoved(int screenX, int screenY) { + mouseMovedX = screenX; + mouseMovedY = screenY; + updatePotentialListeners(screenX, screenY); return true; } diff --git a/forge-gui-mobile/src/forge/assets/FSkinFont.java b/forge-gui-mobile/src/forge/assets/FSkinFont.java index 7eea723e7cc..b10f1a96cbe 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinFont.java +++ b/forge-gui-mobile/src/forge/assets/FSkinFont.java @@ -331,10 +331,18 @@ public class FSkinFont { return fontSize > MIN_FONT_SIZE; } + public boolean canIncrease() { + return MAX_FONT_SIZE - fontSize > 2; + } + public FSkinFont shrink() { return _get(fontSize - 1); } + public FSkinFont increase() { + return _get(fontSize + 3); + } + public String getCharacterSet(String langCode) { if (langUniqueCharacterSet.containsKey(langCode)) { return langUniqueCharacterSet.get(langCode); diff --git a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java index b949c5130b8..0885dd95fd9 100644 --- a/forge-gui-mobile/src/forge/itemmanager/ItemManager.java +++ b/forge-gui-mobile/src/forge/itemmanager/ItemManager.java @@ -87,9 +87,9 @@ public abstract class ItemManager extends FContainer im private final TextSearchFilter searchFilter; private final FLabel btnSearch = new FLabel.ButtonBuilder() - .icon(Forge.hdbuttons ? FSkinImage.HDSEARCH : FSkinImage.SEARCH).iconScaleFactor(0.9f).build(); + .icon(Forge.hdbuttons ? FSkinImage.HDSEARCH : FSkinImage.SEARCH).iconScaleFactor(0.9f).selectable().build(); private final FLabel btnView = new FLabel.ButtonBuilder() - .iconScaleFactor(0.9f).build(); //icon set later + .iconScaleFactor(0.9f).selectable().build(); //icon set later private final FLabel btnAdvancedSearchOptions = new FLabel.Builder() .selectable(true).align(Align.center) .icon(Forge.hdbuttons ? FSkinImage.HDPREFERENCE : FSkinImage.SETTINGS).iconScaleFactor(0.9f) diff --git a/forge-gui-mobile/src/forge/menu/FMenuItem.java b/forge-gui-mobile/src/forge/menu/FMenuItem.java index 0ecc4a57f83..1b8e7a00fbf 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuItem.java +++ b/forge-gui-mobile/src/forge/menu/FMenuItem.java @@ -120,6 +120,9 @@ public class FMenuItem extends FDisplayObject implements IButton { float w = getWidth(); float h = HEIGHT; + if (isHovered() && !pressed) + g.fillRect(PRESSED_COLOR.brighter().alphaColor(0.4f), 0, 0, w, h); + if (showPressedColor()) { g.fillRect(PRESSED_COLOR, 0, 0, w, h); } diff --git a/forge-gui-mobile/src/forge/menu/FMenuTab.java b/forge-gui-mobile/src/forge/menu/FMenuTab.java index c23b0d2352c..34198ae06d4 100644 --- a/forge-gui-mobile/src/forge/menu/FMenuTab.java +++ b/forge-gui-mobile/src/forge/menu/FMenuTab.java @@ -99,6 +99,8 @@ public class FMenuTab extends FDisplayObject { y = PADDING; w = getWidth() - 2 * PADDING; h = getHeight() - 2 * PADDING; + if (isHovered()) + g.fillRect(SEL_BACK_COLOR.brighter(), x, y, w, h); g.drawText(text, FONT, foreColor, x, y, w, h, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/screens/LaunchScreen.java b/forge-gui-mobile/src/forge/screens/LaunchScreen.java index 0f9c8452392..5917c67972e 100644 --- a/forge-gui-mobile/src/forge/screens/LaunchScreen.java +++ b/forge-gui-mobile/src/forge/screens/LaunchScreen.java @@ -78,11 +78,12 @@ public abstract class LaunchScreen extends FScreen { @Override public void draw(Graphics g) { if (Forge.hdstart) - g.drawImage(pressed ? FSkinImage.HDBTN_START_DOWN : FSkinImage.HDBTN_START_UP, - 0, 0, getWidth(), getHeight()); + g.drawImage(pressed ? FSkinImage.HDBTN_START_DOWN : + isHovered() ? FSkinImage.HDBTN_START_OVER : FSkinImage.HDBTN_START_UP, + isHovered() ? -2 : 0, 0, getWidth(), getHeight()); else - g.drawImage(pressed ? FSkinImage.BTN_START_DOWN : FSkinImage.BTN_START_UP, - 0, 0, getWidth(), getHeight()); + g.drawImage(pressed ? FSkinImage.BTN_START_DOWN : + isHovered() ? FSkinImage.BTN_START_OVER : FSkinImage.BTN_START_UP, 0, 0, getWidth(), getHeight()); //its must be enabled or you can't start any game modes if (!Forge.isLoadingaMatch()) { if(!btnStart.isEnabled()) diff --git a/forge-gui-mobile/src/forge/screens/TabPageScreen.java b/forge-gui-mobile/src/forge/screens/TabPageScreen.java index bb6a8f0442f..0b06722a946 100644 --- a/forge-gui-mobile/src/forge/screens/TabPageScreen.java +++ b/forge-gui-mobile/src/forge/screens/TabPageScreen.java @@ -396,8 +396,7 @@ public class TabPageScreen> extends FScreen { g.drawText(caption, font, TAB_FORE_COLOR, x, y, w, h, false, Align.left, true); g.endClip(); } - } - else { + } else { float y = h - padding - TAB_FONT.getCapHeight(); g.drawText(caption, TAB_FONT, TAB_FORE_COLOR, padding, y - padding, w, h - y + padding, false, Align.center, true); @@ -408,7 +407,8 @@ public class TabPageScreen> extends FScreen { iconHeight *= w / iconWidth; iconWidth = w; } - g.drawImage(icon, padding + (w - iconWidth) / 2, (y - iconHeight) / 2, iconWidth, iconHeight); + float mod = isHovered() ? iconWidth/8f : 0; + g.drawImage(icon, (padding + (w - iconWidth) / 2)-mod/2, ((y - iconHeight) / 2)-mod/2, iconWidth+mod, iconHeight+mod); } } diff --git a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java index be544dd5bfa..e2079ac9d2b 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java @@ -60,8 +60,8 @@ public class PlayerPanel extends FContainer { private LobbySlotType type = LobbySlotType.LOCAL; private final FLabel nameRandomiser; - private final FLabel avatarLabel = new FLabel.Builder().opaque(true).iconScaleFactor(0.99f).alphaComposite(1).iconInBackground(true).build(); - private final FLabel sleeveLabel = new FLabel.Builder().opaque(true).iconScaleFactor(0.99f).alphaComposite(1).iconInBackground(true).build(); + private final FLabel avatarLabel = new FLabel.Builder().opaque(true).iconScaleFactor(0.99f).selectable().alphaComposite(1).iconInBackground(true).build(); + private final FLabel sleeveLabel = new FLabel.Builder().opaque(true).iconScaleFactor(0.99f).selectable().alphaComposite(1).iconInBackground(true).build(); private int avatarIndex, sleeveIndex; final Localizer localizer = Localizer.getInstance(); diff --git a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java index 2e8c39f913b..7cd11b00b4b 100644 --- a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java @@ -314,7 +314,7 @@ public class HomeScreen extends FScreen { public void draw(Graphics g) { if (Forge.isLandscapeMode()) { //draw text only for Landscape mode - g.drawText(getText(), getFont(), getForeColor(), 0, 0, getWidth(), getHeight(), false, Align.left, true); + g.drawText(getText(), isHovered() && getFont().canIncrease() ? getFont().increase() : getFont(), getForeColor(), 0, 0, getWidth(), getHeight(), false, Align.left, true); } else { //draw buttons normally for portrait mode super.draw(g); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java b/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java index 0248b00eb78..b8ab4262e57 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VAvatar.java @@ -126,8 +126,8 @@ public class VAvatar extends FDisplayObject { @Override public void draw(Graphics g) { - float w = getWidth(); - float h = getHeight(); + float w = isHovered() ? getWidth()/16f+getWidth() : getWidth(); + float h = isHovered() ? getWidth()/16f+getHeight() : getHeight(); if (avatarAnimation != null && !MatchController.instance.getGameView().isMatchOver()) { if (player.wasAvatarLifeChanged()) { diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java b/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java index ed52f4a3634..f2064e1008c 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPhaseIndicator.java @@ -159,8 +159,8 @@ public class VPhaseIndicator extends FContainer { else { backColor = FSkinColor.get(Colors.CLR_PHASE_INACTIVE_DISABLED); } - g.fillRect(backColor, x, 0, w, h); - g.drawText(caption, font, Color.BLACK, x, 0, w, h, false, Align.center, true); + g.fillRect(isHovered() ? backColor.brighter() : backColor, x, 0, w, h); + g.drawText(caption, isHovered() && font.canIncrease() ? font.increase() : font, Color.BLACK, x, 0, w, h, false, Align.center, true); } } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java index 12c9c791561..e1c23f63ab1 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VPlayerPanel.java @@ -610,7 +610,8 @@ public class VPlayerPanel extends FContainer { if (lblLife.getRotate180()) { g.startRotateTransform(x + w / 2, y + h / 2, 180); } - g.drawImage(icon, x, y, w, h); + float mod = isHovered() ? w/8f:0; + g.drawImage(icon, x-mod/2, y-mod/2, w+mod, h+mod); if (lblLife.getRotate180()) { g.endTransform(); } @@ -637,7 +638,8 @@ public class VPlayerPanel extends FContainer { h = icon.getHeight() * w / icon.getWidth(); x = (getWidth() - w) / 2; y = INFO_TAB_PADDING_Y; - g.drawImage(icon, x, y, w, h); + float mod = isHovered() ? w/8f:0; + g.drawImage(icon, x-mod/2, y-mod/2, w+mod, h+mod); y += h + INFO_TAB_PADDING_Y; g.drawText(value, INFO_FONT, INFO_FORE_COLOR, 0, y, getWidth(), getHeight() - y + 1, false, Align.center, false); diff --git a/forge-gui-mobile/src/forge/screens/match/views/VStack.java b/forge-gui-mobile/src/forge/screens/match/views/VStack.java index c835fc9c664..295a9093635 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VStack.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VStack.java @@ -373,7 +373,7 @@ public class VStack extends FDropDown { g.startClip(0, 0, w, getHeight()); //clip based on actual height - g.fillRect(Color.BLACK, x, y, w, h); //draw rectangle for border + g.fillRect(isHovered() ? Color.GRAY : Color.BLACK, x, y, w, h); //draw rectangle for border x += BORDER_THICKNESS; y += BORDER_THICKNESS; diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java index f826bb7f158..22f79d3ff10 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java @@ -38,7 +38,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView { private static final float GAP_Y_FACTOR = 0.02f; private final FButton btnContinue, btnRestart, btnQuit; - private final FLabel lblTitle, lblLog, lblStats, btnCopyLog, btnMinimize; + private final FLabel lblTitle, lblLog, lblStats, btnCopyLog, btnShowBattlefield; private final FTextArea txtLog; private final OutcomesPanel pnlOutcomes; private final GameView game; @@ -109,14 +109,14 @@ public class ViewWinLose extends FOverlay implements IWinLoseView { }); txtLog.setFont(FSkinFont.get(12)); - btnCopyLog = add(new FLabel.ButtonBuilder().text(localizer.getMessage("btnCopyToClipboard")).command(new FEventHandler() { + btnCopyLog = add(new FLabel.ButtonBuilder().text(localizer.getMessage("btnCopyToClipboard")).selectable().command(new FEventHandler() { @Override public void handleEvent(FEvent e) { Forge.getClipboard().setContents(txtLog.getText()); } }).build()); - btnMinimize = add(new FLabel.ButtonBuilder().text(localizer.getMessage("lblMinimize")).font(FSkinFont.get(12)).command(new FEventHandler() { + btnShowBattlefield = add(new FLabel.ButtonBuilder().text(localizer.getMessage("lblShowBattlefield")).font(FSkinFont.get(12)).selectable().command(new FEventHandler() { @Override public void handleEvent(FEvent e) { hide(); @@ -208,7 +208,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView { float y2 = height - dy - h; btnCopyLog.setBounds(width / 4, y2, width / 2, h); txtLog.setBounds(x, y, w, y2 - y - dy); - btnMinimize.setBounds(width / 4,0,width / 2, h); + btnShowBattlefield.setBounds(width / 4,0,width / 2, h); } private static class OutcomesPanel extends FContainer { diff --git a/forge-gui-mobile/src/forge/toolbox/FButton.java b/forge-gui-mobile/src/forge/toolbox/FButton.java index b291ddd0102..4c62825ae36 100644 --- a/forge-gui-mobile/src/forge/toolbox/FButton.java +++ b/forge-gui-mobile/src/forge/toolbox/FButton.java @@ -28,6 +28,7 @@ public class FButton extends FDisplayObject implements IButton { private FSkinFont font; private FSkinColor foreColor = DEFAULT_FORE_COLOR; private boolean toggled = false; + private boolean pressed = false; private FEventHandler command; public enum Corner { @@ -182,6 +183,7 @@ public class FButton extends FDisplayObject implements IButton { @Override public final boolean press(float x, float y) { + pressed = true; if (isToggled()) { return true; } imgL = FSkinImage.BTN_DOWN_LEFT; imgM = FSkinImage.BTN_DOWN_CENTER; @@ -203,6 +205,7 @@ public class FButton extends FDisplayObject implements IButton { @Override public final boolean release(float x, float y) { + pressed = false; if (isToggled()) { return true; } resetImg(); return true; @@ -245,21 +248,21 @@ public class FButton extends FDisplayObject implements IButton { 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); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_LEFT : FSkinImage.BTN_OVER_LEFT : imgL, 0, 0, h, h); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_CENTER : FSkinImage.BTN_OVER_CENTER : imgM, h, 0, w - (2 * h), h); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_RIGHT : FSkinImage.BTN_OVER_RIGHT : imgR, w - h, 0, h, h); } else { - g.drawImage(imgL, 0, 0, cornerButtonWidth, h); - g.drawImage(imgR, cornerButtonWidth, 0, w - cornerButtonWidth, h); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_LEFT : FSkinImage.BTN_OVER_LEFT : imgL, 0, 0, cornerButtonWidth, h); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_RIGHT : FSkinImage.BTN_OVER_RIGHT : imgR, cornerButtonWidth, 0, w - cornerButtonWidth, h); } x += PADDING; w -= 2 * PADDING; break; case BottomLeft: g.startClip(x, y, w, h); - g.drawImage(imgM, 0, 0, cornerButtonWidth, cornerButtonHeight); - g.drawImage(imgR, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_CENTER : FSkinImage.BTN_OVER_CENTER : imgM, 0, 0, cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_RIGHT : FSkinImage.BTN_OVER_RIGHT : imgR, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight); g.endClip(); w -= cornerTextOffsetX; y += cornerTextOffsetY; @@ -267,8 +270,8 @@ public class FButton extends FDisplayObject implements IButton { break; case BottomRight: g.startClip(x, y, w, h); - g.drawImage(imgL, 0, 0, cornerButtonWidth, cornerButtonHeight); - g.drawImage(imgM, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_LEFT : FSkinImage.BTN_OVER_LEFT : imgL, 0, 0, cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_CENTER : FSkinImage.BTN_OVER_CENTER : imgM, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight); g.endClip(); x += cornerTextOffsetX; w -= cornerTextOffsetX; @@ -279,9 +282,9 @@ public class FButton extends FDisplayObject implements IButton { g.startClip(x, y, w, h); cornerButtonWidth = w / 3; cornerTextOffsetX = cornerButtonWidth / 2; - g.drawImage(imgL, 0, 0, cornerButtonWidth, cornerButtonHeight); - g.drawImage(imgM, cornerButtonWidth, 0, w - 2 * cornerButtonWidth, cornerButtonHeight); - g.drawImage(imgR, w - cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_LEFT : FSkinImage.BTN_OVER_LEFT : imgL, 0, 0, cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_CENTER : FSkinImage.BTN_OVER_CENTER : imgM, cornerButtonWidth, 0, w - 2 * cornerButtonWidth, cornerButtonHeight); + g.drawImage(isHovered() && !pressed ? hdbuttonskin() ? FSkinImage.HDBTN_OVER_RIGHT : FSkinImage.BTN_OVER_RIGHT : imgR, w - cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight); g.endClip(); x += cornerTextOffsetX / 2; w -= cornerTextOffsetX; diff --git a/forge-gui-mobile/src/forge/toolbox/FCardPanel.java b/forge-gui-mobile/src/forge/toolbox/FCardPanel.java index 1cc86190639..edc32c84d9a 100644 --- a/forge-gui-mobile/src/forge/toolbox/FCardPanel.java +++ b/forge-gui-mobile/src/forge/toolbox/FCardPanel.java @@ -96,11 +96,13 @@ public class FCardPanel extends FDisplayObject { public void draw(Graphics g) { if (card == null) { return; } boolean animate = Forge.animatedCardTapUntap; + //TODO: FCardPanel ishovered and CardStackPosition is BehindHorz or BehindVert... + float mod = isHighlighted()||isHovered() ? getWidth()/16f : 0f; float padding = getPadding(); - float x = padding; - float y = padding; - float w = getWidth() - 2 * padding; - float h = getHeight() - 2 * padding; + float x = padding-mod/2; + float y = padding-mod/2; + float w = (getWidth() - 2 * padding)+mod; + float h = (getHeight() - 2 * padding)+mod; if (w == h) { //adjust width if needed to make room for tapping w = h / ASPECT_RATIO; } diff --git a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java index a64644362d3..043ec947bb1 100644 --- a/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java +++ b/forge-gui-mobile/src/forge/toolbox/FDisplayObject.java @@ -13,6 +13,7 @@ public abstract class FDisplayObject { private boolean enabled = true; private boolean rotate90 = false; private boolean rotate180 = false; + private boolean hovered = false; private final Rectangle bounds = new Rectangle(); public final Rectangle screenPos = new Rectangle(); @@ -86,6 +87,13 @@ public abstract class FDisplayObject { visible = b0; } + public boolean isHovered() { + return hovered; + } + public void setHovered(boolean b0) { + hovered = b0; + } + public boolean getRotate90() { return rotate90; } @@ -117,10 +125,15 @@ public abstract class FDisplayObject { } public abstract void draw(Graphics g); + public float scrX, scrY; public void buildTouchListeners(float screenX, float screenY, List listeners) { if (enabled && visible && screenPos.contains(screenX, screenY)) { listeners.add(this); } + //TODO: needs better logic, it must be the only current selectable + setHovered(this.enabled && this.visible && this.screenPos.contains(screenX, screenY)); + scrX = screenX; + scrY = screenY; } public boolean press(float x, float y) { diff --git a/forge-gui-mobile/src/forge/toolbox/FLabel.java b/forge-gui-mobile/src/forge/toolbox/FLabel.java index 15d23f80ce6..5cf2287d0ca 100644 --- a/forge-gui-mobile/src/forge/toolbox/FLabel.java +++ b/forge-gui-mobile/src/forge/toolbox/FLabel.java @@ -1,5 +1,6 @@ package forge.toolbox; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Align; @@ -378,8 +379,8 @@ public class FLabel extends FDisplayObject implements IButton { } y += (h - iconHeight) / 2; } - - g.drawImage(icon, x, y, iconWidth, iconHeight); + float mod = isHovered() && selectable ? iconWidth < iconHeight ? iconWidth/8f : iconHeight/8f : 0; + g.drawImage(icon, x-mod/2, y-mod/2, iconWidth+mod, iconHeight+mod); if (!text.isEmpty()) { x += iconOffset; @@ -388,6 +389,12 @@ public class FLabel extends FDisplayObject implements IButton { } } else if (!text.isEmpty()) { + float oldAlpha = g.getfloatAlphaComposite(); + if (isHovered() && selectable) { + g.setAlphaComposite(0.4f); + g.fillRect(Color.GRAY, x, y, w, h); + g.setAlphaComposite(oldAlpha); + } drawText(g, x, y, w, h, alignment); } } diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 7401bc3df18..7613c437a9b 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -2591,6 +2591,7 @@ lblUnlockTitleBar=Entriegle Titelzeile lblRestoreDown=Unten wiederherstellen lblMaximize=Mximieren lblMinimize=Minimieren +lblShowBattlefield=Show Battlefield #QuestFileLister.java lblNameAndRank=Name | Rang lblModeAndDifficulty=Modus | Schwierigkeit diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index bf89ea1c9ed..7376e81af85 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -2589,6 +2589,7 @@ lblUnlockTitleBar=Unlock Title Bar lblRestoreDown=Restore Down lblMaximize=Maximize lblMinimize=Minimize +lblShowBattlefield=Show Battlefield #QuestFileLister.java lblNameAndRank=Name | Rank lblModeAndDifficulty=Mode | Difficulty diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 73c6a002be7..63a68ca0953 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -2589,6 +2589,7 @@ lblUnlockTitleBar=desbloquear la barra de título lblRestoreDown=Restaurar abajo lblMaximize=Maximizar lblMinimize=Minimizar +lblShowBattlefield=Show Battlefield #QuestFileLister.java lblNameAndRank=Nombre | Rango lblModeAndDifficulty=Modo | Dificultad diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 8e0ab1304cf..1ececea2773 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -2588,6 +2588,7 @@ lblUnlockTitleBar=Sblocca barra del titolo lblRestoreDown=Ripristina lblMaximize=Massimizza lblMinimize=Minimizza +lblShowBattlefield=Show Battlefield #QuestFileLister.java lblNameAndRank=Nome | Rango lblModeAndDifficulty=Modo | Difficoltà diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index f95f9caf33f..34c1ec6b9a9 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -2588,6 +2588,7 @@ lblUnlockTitleBar=タイトルバーをアンロック lblRestoreDown=元に戻す lblMaximize=最大化 lblMinimize=最小化 +lblShowBattlefield=Show Battlefield #QuestFileLister.java lblNameAndRank=名前 | ランク lblModeAndDifficulty=モード | 難易度 diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index e05a1261b2e..821393d9b13 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -2590,6 +2590,7 @@ lblUnlockTitleBar=解锁标题栏 lblRestoreDown=还原 lblMaximize=最大化 lblMinimize=最小化 +lblShowBattlefield=Show Battlefield #QuestFileLister.java lblNameAndRank=名称 | 等级 lblModeAndDifficulty=模式 | 难度