mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Second attempt at fixing focus issues on home screen.
Home screen now persists current submenu selection over restart.
This commit is contained in:
@@ -59,6 +59,7 @@ public class ForgePreferences {
|
||||
UI_BUGZ_PWD (""), /** */
|
||||
UI_ANTE ("false"), /** */
|
||||
UI_SKIN ("default"), /** */
|
||||
UI_HOMEMENU (HomeMenus.constructed.toString()), /** */
|
||||
|
||||
DEV_MODE_ENABLED ("false"), /** */
|
||||
DEV_MILLING_LOSS ("true"), /** */
|
||||
@@ -126,6 +127,12 @@ public class ForgePreferences {
|
||||
tiny, small, medium, large
|
||||
}
|
||||
|
||||
/** */
|
||||
public enum HomeMenus {
|
||||
/** */
|
||||
constructed, draft, sealed, quest, settings, utilities
|
||||
}
|
||||
|
||||
/** Instantiates a ForgePreferences object. */
|
||||
public ForgePreferences() {
|
||||
preferenceValues = new HashMap<FPref, String>();
|
||||
|
||||
@@ -21,7 +21,10 @@ import javax.swing.SwingUtilities;
|
||||
|
||||
import net.slightlymagic.braids.util.UtilFunctions;
|
||||
import forge.AllZone;
|
||||
import forge.Singletons;
|
||||
import forge.control.FControl;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.view.home.SplashFrame;
|
||||
import forge.view.toolbox.CardFaceSymbols;
|
||||
import forge.view.toolbox.FProgressBar;
|
||||
@@ -124,6 +127,21 @@ public class FView {
|
||||
|
||||
barProgress.setDescription("Forge is ready to launch.");
|
||||
g.setVisible(true);
|
||||
|
||||
// Open previous menu on first run, or constructed.
|
||||
// Focus is reset when the frame becomes visible,
|
||||
// so the call to show the menu must happen here.
|
||||
final ForgePreferences.HomeMenus lastMenu =
|
||||
ForgePreferences.HomeMenus.valueOf(Singletons.getModel().getPreferences().getPref(FPref.UI_HOMEMENU));
|
||||
|
||||
switch(lastMenu) {
|
||||
case draft: g.getHomeView().showDraftMenu(); break;
|
||||
case sealed: g.getHomeView().showSealedMenu(); break;
|
||||
case quest: g.getHomeView().showQuestMenu(); break;
|
||||
case settings: g.getHomeView().showSettingsMenu(); break;
|
||||
case utilities: g.getHomeView().showUtilitiesMenu(); break;
|
||||
default: g.getHomeView().showConstructedMenu();
|
||||
}
|
||||
}
|
||||
});
|
||||
} // End FView()
|
||||
|
||||
@@ -38,6 +38,7 @@ import forge.control.FControl;
|
||||
import forge.control.match.ControlField;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.view.home.HomeTopLevel;
|
||||
import forge.view.match.ViewField;
|
||||
import forge.view.match.ViewTabber;
|
||||
import forge.view.toolbox.FOverlay;
|
||||
@@ -97,6 +98,11 @@ public class GuiTopLevel extends JFrame implements Display, CardContainer {
|
||||
return this.control;
|
||||
}
|
||||
|
||||
/** @return {@link forge.view.home.HomeTopLevel} */
|
||||
public HomeTopLevel getHomeView() {
|
||||
return control.getHomeController().getView();
|
||||
}
|
||||
|
||||
/*
|
||||
* ========================================================
|
||||
*
|
||||
|
||||
@@ -34,6 +34,8 @@ import forge.control.home.ControlConstructed;
|
||||
import forge.control.home.ControlDraft;
|
||||
import forge.control.home.ControlSealed;
|
||||
import forge.control.home.ControlUtilities;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.view.toolbox.FButton;
|
||||
import forge.view.toolbox.FPanel;
|
||||
import forge.view.toolbox.FRoundedPanel;
|
||||
@@ -171,19 +173,21 @@ public class HomeTopLevel extends FPanel {
|
||||
pnlMenu.add(btnExit, constraints);
|
||||
|
||||
control = new ControlHomeUI(this);
|
||||
|
||||
// Open "constructed" menu on first run.
|
||||
showConstructedMenu();
|
||||
}
|
||||
|
||||
/** Opens menu for constructed mode. */
|
||||
public void showConstructedMenu() {
|
||||
clearToggles();
|
||||
btnConstructed.setToggled(true);
|
||||
btnConstructed.grabFocus();
|
||||
pnlContent.removeAll();
|
||||
pnlContent.add(constructed, "w 100%!, h 100%!");
|
||||
pnlContent.revalidate();
|
||||
pnlContent.repaint();
|
||||
|
||||
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||
ForgePreferences.HomeMenus.constructed.toString());
|
||||
Singletons.getModel().getPreferences().save();
|
||||
}
|
||||
|
||||
/** Opens menu for draft mode. */
|
||||
@@ -191,10 +195,15 @@ public class HomeTopLevel extends FPanel {
|
||||
clearToggles();
|
||||
btnDraft.setToggled(true);
|
||||
btnDraft.grabFocus();
|
||||
|
||||
pnlContent.removeAll();
|
||||
pnlContent.add(draft, "w 100%!, h 100%!");
|
||||
pnlContent.revalidate();
|
||||
pnlContent.repaint();
|
||||
|
||||
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||
ForgePreferences.HomeMenus.draft.toString());
|
||||
Singletons.getModel().getPreferences().save();
|
||||
}
|
||||
|
||||
/** Opens menu for sealed mode. */
|
||||
@@ -202,10 +211,15 @@ public class HomeTopLevel extends FPanel {
|
||||
clearToggles();
|
||||
btnSealed.setToggled(true);
|
||||
btnSealed.grabFocus();
|
||||
|
||||
pnlContent.removeAll();
|
||||
pnlContent.add(sealed, "w 100%!, h 100%!");
|
||||
pnlContent.revalidate();
|
||||
pnlContent.repaint();
|
||||
|
||||
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||
ForgePreferences.HomeMenus.sealed.toString());
|
||||
Singletons.getModel().getPreferences().save();
|
||||
}
|
||||
|
||||
/** Opens menu for quest mode. */
|
||||
@@ -213,10 +227,15 @@ public class HomeTopLevel extends FPanel {
|
||||
clearToggles();
|
||||
btnQuest.setToggled(true);
|
||||
btnQuest.grabFocus();
|
||||
|
||||
pnlContent.removeAll();
|
||||
pnlContent.add(quest, "w 99%!, h 95%!, gaptop 2.5%, gapleft 0.5%");
|
||||
pnlContent.revalidate();
|
||||
pnlContent.repaint();
|
||||
|
||||
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||
ForgePreferences.HomeMenus.quest.toString());
|
||||
Singletons.getModel().getPreferences().save();
|
||||
}
|
||||
|
||||
/** Opens menu for settings. */
|
||||
@@ -224,10 +243,15 @@ public class HomeTopLevel extends FPanel {
|
||||
clearToggles();
|
||||
btnSettings.setToggled(true);
|
||||
btnSettings.grabFocus();
|
||||
|
||||
pnlContent.removeAll();
|
||||
pnlContent.add(settings, "w 99%!, h 95%!, gaptop 2.5%, gapleft 0.5%");
|
||||
pnlContent.revalidate();
|
||||
pnlContent.repaint();
|
||||
|
||||
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||
ForgePreferences.HomeMenus.settings.toString());
|
||||
Singletons.getModel().getPreferences().save();
|
||||
}
|
||||
|
||||
/** Opens menu for utilities. */
|
||||
@@ -235,10 +259,15 @@ public class HomeTopLevel extends FPanel {
|
||||
clearToggles();
|
||||
btnUtilities.setToggled(true);
|
||||
btnUtilities.grabFocus();
|
||||
|
||||
pnlContent.removeAll();
|
||||
pnlContent.add(utilities, "w 100%!, h 100%!");
|
||||
pnlContent.revalidate();
|
||||
pnlContent.repaint();
|
||||
|
||||
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||
ForgePreferences.HomeMenus.utilities.toString());
|
||||
Singletons.getModel().getPreferences().save();
|
||||
}
|
||||
|
||||
/** @return ControlConstructed */
|
||||
|
||||
Reference in New Issue
Block a user