Add card overlay settings and prevent losing scroll position on settings screen

This commit is contained in:
drdev
2014-05-31 20:06:55 +00:00
parent be2de74a0b
commit daefff97c4
5 changed files with 40 additions and 7 deletions

View File

@@ -10,6 +10,7 @@ import forge.assets.FSkinColor;
import forge.assets.FSkinFont; import forge.assets.FSkinFont;
import forge.assets.FSkinColor.Colors; import forge.assets.FSkinColor.Colors;
import forge.assets.FSkinTexture; import forge.assets.FSkinTexture;
import forge.screens.settings.SettingsScreen;
import forge.toolbox.FContainer; import forge.toolbox.FContainer;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
@@ -53,7 +54,7 @@ public abstract class FScreen extends FContainer {
} }
public void showMenu() { public void showMenu() {
Forge.openScreen(new forge.screens.settings.SettingsScreen()); //TODO: Build menu containing settings item SettingsScreen.show(); //TODO: Build menu containing settings item
//buildMenu(); //buildMenu();
} }

View File

@@ -58,7 +58,7 @@ public class HomeScreen extends FScreen {
addButton("Settings", new FEventHandler() { addButton("Settings", new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
Forge.openScreen(new SettingsScreen()); SettingsScreen.show();
} }
}, true); }, true);
} }

View File

@@ -1,6 +1,5 @@
package forge.screens.match.views; package forge.screens.match.views;
import forge.Forge;
import forge.assets.FSkinImage; import forge.assets.FSkinImage;
import forge.deck.FDeckViewer; import forge.deck.FDeckViewer;
import forge.game.player.RegisteredPlayer; import forge.game.player.RegisteredPlayer;
@@ -8,6 +7,7 @@ import forge.menu.FDropDownMenu;
import forge.menu.FMenuItem; import forge.menu.FMenuItem;
import forge.player.GamePlayerUtil; import forge.player.GamePlayerUtil;
import forge.screens.match.FControl; import forge.screens.match.FControl;
import forge.screens.settings.SettingsScreen;
import forge.toolbox.FEvent; import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FEvent.FEventHandler;
@@ -50,7 +50,7 @@ public class VGameMenu extends FDropDownMenu {
addItem(new FMenuItem("Settings", FSkinImage.SETTINGS, new FEventHandler() { addItem(new FMenuItem("Settings", FSkinImage.SETTINGS, new FEventHandler() {
@Override @Override
public void handleEvent(FEvent e) { public void handleEvent(FEvent e) {
Forge.openScreen(new forge.screens.settings.SettingsScreen()); SettingsScreen.show();
} }
})); }));
} }

View File

@@ -36,6 +36,7 @@ public class SettingsPage extends TabPage {
lstSettings.addGroup("Random Deck Generation"); lstSettings.addGroup("Random Deck Generation");
lstSettings.addGroup("Advanced Settings"); lstSettings.addGroup("Advanced Settings");
lstSettings.addGroup("Graphic Options"); lstSettings.addGroup("Graphic Options");
lstSettings.addGroup("Card Overlays");
//lstSettings.addGroup("Sound Options"); //TODO: Uncomment when sound supported //lstSettings.addGroup("Sound Options"); //TODO: Uncomment when sound supported
//General Settings //General Settings
@@ -140,15 +141,37 @@ public class SettingsPage extends TabPage {
"Show match background image on battlefield, otherwise background texture shown instead."), "Show match background image on battlefield, otherwise background texture shown instead."),
4); 4);
//Card Overlays
lstSettings.addItem(new BooleanSetting(FPref.UI_SHOW_CARD_OVERLAYS,
"Show Card Overlays",
"Show name, mana cost, p/t, and id overlays for cards, otherwise they're hidden."),
5);
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_CARD_NAME,
"Show Card Name Overlays",
"Show name overlays for cards, otherwise they're hidden."),
5);
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_CARD_MANA_COST,
"Show Card Mana Cost Overlays",
"Show mana cost overlays for cards, otherwise they're hidden."),
5);
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_CARD_POWER,
"Show Card P/T Overlays",
"Show power/tougness/loyalty overlays for cards, otherwise they're hidden."),
5);
lstSettings.addItem(new BooleanSetting(FPref.UI_OVERLAY_CARD_ID,
"Show Card ID Overlays",
"Show id overlays for cards, otherwise they're hidden."),
5);
//Sound Options //Sound Options
/*lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_SOUNDS, /*lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_SOUNDS,
"Enable Sounds", "Enable Sounds",
"Enable sound effects during the game."), "Enable sound effects during the game."),
5); 6);
lstSettings.addItem(new BooleanSetting(FPref.UI_ALT_SOUND_SYSTEM, lstSettings.addItem(new BooleanSetting(FPref.UI_ALT_SOUND_SYSTEM,
"Use Alternate Sound System", "Use Alternate Sound System",
"Use the alternate sound system (only use if you have issues with sound not playing or disappearing)."), "Use the alternate sound system (only use if you have issues with sound not playing or disappearing)."),
5);*/ //TODO: Uncomment when sound supported 6);*/ //TODO: Uncomment when sound supported
} }
@Override @Override

View File

@@ -14,7 +14,16 @@ public class SettingsScreen extends TabPageScreen {
protected static final float SETTING_HEIGHT = Utils.AVG_FINGER_HEIGHT + Utils.scaleY(12); protected static final float SETTING_HEIGHT = Utils.AVG_FINGER_HEIGHT + Utils.scaleY(12);
protected static final float SETTING_PADDING = Utils.scaleY(5); protected static final float SETTING_PADDING = Utils.scaleY(5);
public SettingsScreen() { private static SettingsScreen settingsScreen; //keep settings screen around so scroll positions maintained
public static void show() {
if (settingsScreen == null) {
settingsScreen = new SettingsScreen();
}
Forge.openScreen(settingsScreen);
}
private SettingsScreen() {
super(new TabPage[] { super(new TabPage[] {
new SettingsPage(), new SettingsPage(),
new FilesPage()/*, new FilesPage()/*,