From e258549ef32e64600eff3f8872d8fe21c7cf148e Mon Sep 17 00:00:00 2001 From: drdev Date: Sat, 9 May 2015 21:46:22 +0000 Subject: [PATCH] Fix so other screens show up correctly --- forge-gui-mobile/src/forge/Forge.java | 5 ++++ .../src/forge/screens/FScreen.java | 2 +- .../achievements/AchievementsScreen.java | 4 --- .../src/forge/screens/home/HomeScreen.java | 30 ++++++------------- .../src/forge/screens/home/LoadGameMenu.java | 4 --- .../src/forge/screens/home/NewGameMenu.java | 4 --- .../src/forge/screens/online/OnlineMenu.java | 4 --- .../screens/settings/SettingsScreen.java | 4 --- 8 files changed, 15 insertions(+), 42 deletions(-) diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index b77d90c6a1d..df6459b667f 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -24,6 +24,7 @@ import forge.properties.ForgePreferences.FPref; import forge.screens.FScreen; import forge.screens.SplashScreen; import forge.screens.home.HomeScreen; +import forge.screens.home.NewGameMenu; import forge.screens.match.MatchController; import forge.sound.MusicPlaylist; import forge.sound.SoundSystem; @@ -118,6 +119,10 @@ public class Forge implements ApplicationListener { Gdx.input.setCatchMenuKey(true); openScreen(HomeScreen.instance); splashScreen = null; + + if (isLandscapeMode()) { //open preferred new game screen by default if landscape mode + NewGameMenu.getPreferredScreen().open(); + } } public static Clipboard getClipboard() { diff --git a/forge-gui-mobile/src/forge/screens/FScreen.java b/forge-gui-mobile/src/forge/screens/FScreen.java index 538d89d470a..aeed760cc6e 100644 --- a/forge-gui-mobile/src/forge/screens/FScreen.java +++ b/forge-gui-mobile/src/forge/screens/FScreen.java @@ -135,7 +135,7 @@ public abstract class FScreen extends FContainer { //draw landscape backdrop first if needed FScreen backdrop = getLandscapeBackdropScreen(); if (backdrop != null) { - backdrop.draw(g); + g.draw(backdrop); //temporarily shift into position for drawing in front of backdrop setLeft(Forge.getScreenWidth() - getWidth()); g.draw(this); diff --git a/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java b/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java index b3098a3341f..2ceab160efc 100644 --- a/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java +++ b/forge-gui-mobile/src/forge/screens/achievements/AchievementsScreen.java @@ -45,10 +45,6 @@ public class AchievementsScreen extends FScreen { Forge.openScreen(achievementsScreen); } - public static boolean isCurrentScreen() { - return Forge.getCurrentScreen() == achievementsScreen; - } - private final FComboBox cbCollections = add(new FComboBox()); private final TrophyCase trophyCase = add(new TrophyCase()); diff --git a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java index b7a4c2bf6c6..d5654114f07 100644 --- a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java @@ -32,6 +32,7 @@ public class HomeScreen extends FScreen { private final FLabel lblLogo = add(new FLabel.Builder().icon(FSkinImage.LOGO).iconInBackground().iconScaleFactor(1).build()); private final ArrayList buttons = new ArrayList(); + private int activeButtonIndex; private FDeckChooser deckManager; private HomeScreen() { @@ -40,24 +41,28 @@ public class HomeScreen extends FScreen { addButton("New Game", new FEventHandler() { @Override public void handleEvent(FEvent e) { + activeButtonIndex = 0; NewGameMenu.getPreferredScreen().open(); } }); addButton("Load Game", new FEventHandler() { @Override public void handleEvent(FEvent e) { + activeButtonIndex = 1; LoadGameMenu.getPreferredScreen().open(); } }); addButton("Play Online", new FEventHandler() { @Override public void handleEvent(FEvent e) { + activeButtonIndex = 2; OnlineMenu.getPreferredScreen().open(); } }); addButton("Deck Manager", new FEventHandler() { @Override public void handleEvent(FEvent e) { + activeButtonIndex = 3; if (deckManager == null) { deckManager = new FDeckChooser(GameType.DeckManager, false, null); deckManager.setHeaderCaption("Deck Manager"); @@ -68,12 +73,14 @@ public class HomeScreen extends FScreen { addButton("Achievements", new FEventHandler() { @Override public void handleEvent(FEvent e) { + activeButtonIndex = 4; AchievementsScreen.show(); } }); addButton("Settings", new FEventHandler() { @Override public void handleEvent(FEvent e) { + activeButtonIndex = 5; SettingsScreen.show(); } }); @@ -139,31 +146,12 @@ public class HomeScreen extends FScreen { if (w > h) { w = h * MAIN_MENU_WIDTH_FACTOR; - MenuButton activeButton = null; - if (NewGameMenu.getPreferredScreen().isCurrentScreen()) { - activeButton = buttons.get(0); - } - else if (LoadGameMenu.getPreferredScreen().isCurrentScreen()) { - activeButton = buttons.get(1); - } - else if (OnlineMenu.getPreferredScreen().isCurrentScreen()) { - activeButton = buttons.get(2); - } - else if (Forge.getCurrentScreen() == deckManager) { - activeButton = buttons.get(3); - } - else if (AchievementsScreen.isCurrentScreen()) { - activeButton = buttons.get(4); - } - else if (SettingsScreen.isCurrentScreen()) { - activeButton = buttons.get(5); - } - float y1 = 0; float h1 = h; float y2 = 0; float h2 = 0; - if (activeButton != null) { + if (activeButtonIndex != -1) { + MenuButton activeButton = buttons.get(activeButtonIndex); h1 = activeButton.getTop(); y2 = activeButton.getBottom(); h2 = h - y2; diff --git a/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java b/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java index 3e8cbf89c28..22e4c7ca688 100644 --- a/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java +++ b/forge-gui-mobile/src/forge/screens/home/LoadGameMenu.java @@ -63,10 +63,6 @@ public class LoadGameMenu extends FPopupMenu { initializeScreen(); Forge.setBackScreen(screen); } - - public boolean isCurrentScreen() { - return Forge.getCurrentScreen() == screen; - } } private static final ForgePreferences prefs = FModel.getPreferences(); diff --git a/forge-gui-mobile/src/forge/screens/home/NewGameMenu.java b/forge-gui-mobile/src/forge/screens/home/NewGameMenu.java index e0c6918c5e1..f9300f814d3 100644 --- a/forge-gui-mobile/src/forge/screens/home/NewGameMenu.java +++ b/forge-gui-mobile/src/forge/screens/home/NewGameMenu.java @@ -65,10 +65,6 @@ public class NewGameMenu extends FPopupMenu { initializeScreen(); Forge.setBackScreen(screen); } - - public boolean isCurrentScreen() { - return Forge.getCurrentScreen() == screen; - } } private static final ForgePreferences prefs = FModel.getPreferences(); diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java index c967d5c64d7..3ac4595c66d 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java @@ -55,10 +55,6 @@ public class OnlineMenu extends FPopupMenu { initializeScreen(); Forge.setBackScreen(screen); } - - public boolean isCurrentScreen() { - return Forge.getCurrentScreen() == screen; - } } private static final ForgePreferences prefs = FModel.getPreferences(); diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java b/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java index 2cee67ccf4d..66b4be51927 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsScreen.java @@ -23,10 +23,6 @@ public class SettingsScreen extends TabPageScreen { Forge.openScreen(settingsScreen); } - public static boolean isCurrentScreen() { - return Forge.getCurrentScreen() == settingsScreen; - } - @SuppressWarnings("unchecked") private SettingsScreen() { super(new TabPage[] {