Merge branch 'mobile-hometranslations-exit' into 'master'

Mobile only: Translate home menus and add an exit button

See merge request core-developers/forge!2038
This commit is contained in:
swordshine
2019-08-16 00:43:39 +00:00
6 changed files with 61 additions and 25 deletions

View File

@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.Forge; import forge.Forge;
import forge.Graphics; import forge.Graphics;
import forge.assets.FSkinColor; import forge.assets.FSkinColor;
@@ -20,7 +19,10 @@ import forge.toolbox.FButton;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
import forge.toolbox.FLabel; import forge.toolbox.FLabel;
import forge.toolbox.FOptionPane;
import forge.toolbox.FScrollPane; import forge.toolbox.FScrollPane;
import forge.util.Callback;
import forge.util.Localizer;
import forge.util.Utils; import forge.util.Utils;
public class HomeScreen extends FScreen { public class HomeScreen extends FScreen {
@@ -41,28 +43,30 @@ public class HomeScreen extends FScreen {
private HomeScreen() { private HomeScreen() {
super((Header)null); super((Header)null);
addButton("New Game", new FEventHandler() { final Localizer localizer = Localizer.getInstance();
addButton(localizer.getMessage("lblNewGame"), new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
activeButtonIndex = 0; activeButtonIndex = 0;
NewGameMenu.getPreferredScreen().open(); NewGameMenu.getPreferredScreen().open();
} }
}); });
addButton("Load Game", new FEventHandler() { addButton(localizer.getMessage("lblLoadGame"), new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
activeButtonIndex = 1; activeButtonIndex = 1;
LoadGameMenu.getPreferredScreen().open(); LoadGameMenu.getPreferredScreen().open();
} }
}); });
addButton("Play Online", new FEventHandler() { addButton(localizer.getMessage("lblOnlineMultiplayer"), new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
activeButtonIndex = 2; activeButtonIndex = 2;
OnlineScreen.Lobby.open(); OnlineScreen.Lobby.open();
} }
}); });
addButton("Deck Manager", new FEventHandler() { addButton(localizer.getMessage("lblDeckManager"), new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
activeButtonIndex = 3; activeButtonIndex = 3;
@@ -76,25 +80,42 @@ public class HomeScreen extends FScreen {
return 0; return 0;
} }
}; };
deckManager.setHeaderCaption("Deck Manager"); deckManager.setHeaderCaption(localizer.getMessage("lblDeckManager"));
} }
Forge.openScreen(deckManager); Forge.openScreen(deckManager);
} }
}); });
addButton("Achievements", new FEventHandler() { addButton(localizer.getMessage("Achievements"), new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
activeButtonIndex = 4; activeButtonIndex = 4;
AchievementsScreen.show(); AchievementsScreen.show();
} }
}); });
addButton("Settings", new FEventHandler() { addButton(localizer.getMessage("lblGameSettings"), new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
activeButtonIndex = 5; activeButtonIndex = 5;
SettingsScreen.show(true); SettingsScreen.show(true);
} }
}); });
addButton(localizer.getMessage("lblExit"), new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
activeButtonIndex = 6;
FOptionPane.showConfirmDialog(
localizer.getMessage("lblAreYouSureYouWishExitForge"),
localizer.getMessage("lblExitForge"),
localizer.getMessage("lblExit"), localizer.getMessage("lblCancel"), false, new Callback<Boolean>() {
@Override
public void run(Boolean result) {
if (result) {
Forge.exit(true);
}
}
});
}
});
baseButtonCount = buttons.size(); baseButtonCount = buttons.size();
} }

View File

@@ -16,14 +16,17 @@ import forge.screens.planarconquest.LoadConquestScreen;
import forge.screens.quest.LoadQuestScreen; import forge.screens.quest.LoadQuestScreen;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
import forge.util.Localizer;
public class LoadGameMenu extends FPopupMenu { public class LoadGameMenu extends FPopupMenu {
final static Localizer localizer = Localizer.getInstance();
public enum LoadGameScreen { public enum LoadGameScreen {
BoosterDraft("Booster Draft", FSkinImage.HAND, LoadDraftScreen.class), BoosterDraft(localizer.getMessage("lblBoosterDraft"), FSkinImage.HAND, LoadDraftScreen.class),
SealedDeck("Sealed Deck", FSkinImage.PACK, LoadSealedScreen.class), SealedDeck(localizer.getMessage("lblSealedDeck"), FSkinImage.PACK, LoadSealedScreen.class),
QuestMode("Quest Mode", FSkinImage.QUEST_ZEP, LoadQuestScreen.class), QuestMode(localizer.getMessage("lblQuestMode"), FSkinImage.QUEST_ZEP, LoadQuestScreen.class),
PlanarConquest("Planar Conquest", FSkinImage.MULTIVERSE, LoadConquestScreen.class), PlanarConquest(localizer.getMessage("lblPlanarConquest"), FSkinImage.MULTIVERSE, LoadConquestScreen.class),
Gauntlet("Gauntlet", FSkinImage.ALPHASTRIKE, LoadGauntletScreen.class); Gauntlet(localizer.getMessage("lblGauntlet"), FSkinImage.ALPHASTRIKE, LoadGauntletScreen.class);
private final FMenuItem item; private final FMenuItem item;
private final Class<? extends FScreen> screenClass; private final Class<? extends FScreen> screenClass;
@@ -44,7 +47,7 @@ public class LoadGameMenu extends FPopupMenu {
if (screen == null) { //don't initialize screen until it's opened the first time if (screen == null) { //don't initialize screen until it's opened the first time
try { try {
screen = screenClass.newInstance(); screen = screenClass.newInstance();
screen.setHeaderCaption("Load Game - " + item.getText()); screen.setHeaderCaption(localizer.getMessage("lblLoadGame") + " - " + item.getText());
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

View File

@@ -18,17 +18,20 @@ import forge.screens.planarconquest.NewConquestScreen;
import forge.screens.quest.NewQuestScreen; import forge.screens.quest.NewQuestScreen;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
import forge.util.Localizer;
public class NewGameMenu extends FPopupMenu { public class NewGameMenu extends FPopupMenu {
final static Localizer localizer = Localizer.getInstance();
public enum NewGameScreen { public enum NewGameScreen {
Constructed("Constructed", FSkinImage.DECKLIST, ConstructedScreen.class), Constructed(localizer.getMessage("lblConstructed"), FSkinImage.DECKLIST, ConstructedScreen.class),
BoosterDraft("Booster Draft", FSkinImage.HAND, NewDraftScreen.class), BoosterDraft(localizer.getMessage("lblBoosterDraft"), FSkinImage.HAND, NewDraftScreen.class),
SealedDeck("Sealed Deck", FSkinImage.PACK, NewSealedScreen.class), SealedDeck(localizer.getMessage("lblSealedDeck"), FSkinImage.PACK, NewSealedScreen.class),
QuestMode("Quest Mode", FSkinImage.QUEST_ZEP, NewQuestScreen.class), QuestMode(localizer.getMessage("lblQuestMode"), FSkinImage.QUEST_ZEP, NewQuestScreen.class),
PuzzleMode("Puzzle Mode", FSkinImage.QUEST_BOOK, PuzzleScreen.class), PuzzleMode(localizer.getMessage("lblPuzzleMode"), FSkinImage.QUEST_BOOK, PuzzleScreen.class),
PlanarConquest("Planar Conquest", FSkinImage.MULTIVERSE, NewConquestScreen.class), PlanarConquest(localizer.getMessage("lblPlanarConquest"), FSkinImage.MULTIVERSE, NewConquestScreen.class),
Gauntlet("Gauntlet", FSkinImage.ALPHASTRIKE, NewGauntletScreen.class); Gauntlet(localizer.getMessage("lblGauntlet"), FSkinImage.ALPHASTRIKE, NewGauntletScreen.class);
private final FMenuItem item; private final FMenuItem item;
private final Class<? extends FScreen> screenClass; private final Class<? extends FScreen> screenClass;
private FScreen screen; private FScreen screen;
@@ -48,7 +51,7 @@ public class NewGameMenu extends FPopupMenu {
if (screen == null) { //don't initialize screen until it's opened the first time if (screen == null) { //don't initialize screen until it's opened the first time
try { try {
screen = screenClass.newInstance(); screen = screenClass.newInstance();
screen.setHeaderCaption("New Game - " + item.getText()); screen.setHeaderCaption(localizer.getMessage("lblNewGame") + " - " + item.getText());
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

View File

@@ -877,3 +877,6 @@ lblDraftRanking=Draft-Rang
lblToughness=Widerstand lblToughness=Widerstand
ttToughness=Widerstand ttToughness=Widerstand
ttType=Typ ttType=Typ
#HomeScreen.java
lblNewGame=Neues Spiel
lblLoadGame=Spiel laden

View File

@@ -876,4 +876,7 @@ lblRanking=Ranking
lblDraftRanking=Draft Ranking lblDraftRanking=Draft Ranking
lblToughness=Toughness lblToughness=Toughness
ttToughness=Toughness ttToughness=Toughness
ttType=Type ttType=Type
#HomeScreen.java
lblNewGame=New Game
lblLoadGame=Load Game

View File

@@ -876,4 +876,7 @@ lblRanking=Ranking
lblDraftRanking=Ranking en el Draft lblDraftRanking=Ranking en el Draft
lblToughness=Resistencia lblToughness=Resistencia
ttToughness=Toughness ttToughness=Toughness
ttType=Type ttType=Type
#HomeScreen.java
lblNewGame=Nueva partida
lblLoadGame=Cargar partida