mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38: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_BUGZ_PWD (""), /** */
|
||||||
UI_ANTE ("false"), /** */
|
UI_ANTE ("false"), /** */
|
||||||
UI_SKIN ("default"), /** */
|
UI_SKIN ("default"), /** */
|
||||||
|
UI_HOMEMENU (HomeMenus.constructed.toString()), /** */
|
||||||
|
|
||||||
DEV_MODE_ENABLED ("false"), /** */
|
DEV_MODE_ENABLED ("false"), /** */
|
||||||
DEV_MILLING_LOSS ("true"), /** */
|
DEV_MILLING_LOSS ("true"), /** */
|
||||||
@@ -126,6 +127,12 @@ public class ForgePreferences {
|
|||||||
tiny, small, medium, large
|
tiny, small, medium, large
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
public enum HomeMenus {
|
||||||
|
/** */
|
||||||
|
constructed, draft, sealed, quest, settings, utilities
|
||||||
|
}
|
||||||
|
|
||||||
/** Instantiates a ForgePreferences object. */
|
/** Instantiates a ForgePreferences object. */
|
||||||
public ForgePreferences() {
|
public ForgePreferences() {
|
||||||
preferenceValues = new HashMap<FPref, String>();
|
preferenceValues = new HashMap<FPref, String>();
|
||||||
|
|||||||
@@ -21,7 +21,10 @@ import javax.swing.SwingUtilities;
|
|||||||
|
|
||||||
import net.slightlymagic.braids.util.UtilFunctions;
|
import net.slightlymagic.braids.util.UtilFunctions;
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
|
import forge.Singletons;
|
||||||
import forge.control.FControl;
|
import forge.control.FControl;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.view.home.SplashFrame;
|
import forge.view.home.SplashFrame;
|
||||||
import forge.view.toolbox.CardFaceSymbols;
|
import forge.view.toolbox.CardFaceSymbols;
|
||||||
import forge.view.toolbox.FProgressBar;
|
import forge.view.toolbox.FProgressBar;
|
||||||
@@ -124,6 +127,21 @@ public class FView {
|
|||||||
|
|
||||||
barProgress.setDescription("Forge is ready to launch.");
|
barProgress.setDescription("Forge is ready to launch.");
|
||||||
g.setVisible(true);
|
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()
|
} // End FView()
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import forge.control.FControl;
|
|||||||
import forge.control.match.ControlField;
|
import forge.control.match.ControlField;
|
||||||
import forge.properties.ForgePreferences;
|
import forge.properties.ForgePreferences;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
|
import forge.view.home.HomeTopLevel;
|
||||||
import forge.view.match.ViewField;
|
import forge.view.match.ViewField;
|
||||||
import forge.view.match.ViewTabber;
|
import forge.view.match.ViewTabber;
|
||||||
import forge.view.toolbox.FOverlay;
|
import forge.view.toolbox.FOverlay;
|
||||||
@@ -97,6 +98,11 @@ public class GuiTopLevel extends JFrame implements Display, CardContainer {
|
|||||||
return this.control;
|
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.ControlDraft;
|
||||||
import forge.control.home.ControlSealed;
|
import forge.control.home.ControlSealed;
|
||||||
import forge.control.home.ControlUtilities;
|
import forge.control.home.ControlUtilities;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.view.toolbox.FButton;
|
import forge.view.toolbox.FButton;
|
||||||
import forge.view.toolbox.FPanel;
|
import forge.view.toolbox.FPanel;
|
||||||
import forge.view.toolbox.FRoundedPanel;
|
import forge.view.toolbox.FRoundedPanel;
|
||||||
@@ -171,19 +173,21 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlMenu.add(btnExit, constraints);
|
pnlMenu.add(btnExit, constraints);
|
||||||
|
|
||||||
control = new ControlHomeUI(this);
|
control = new ControlHomeUI(this);
|
||||||
|
|
||||||
// Open "constructed" menu on first run.
|
|
||||||
showConstructedMenu();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Opens menu for constructed mode. */
|
/** Opens menu for constructed mode. */
|
||||||
public void showConstructedMenu() {
|
public void showConstructedMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnConstructed.setToggled(true);
|
btnConstructed.setToggled(true);
|
||||||
|
btnConstructed.grabFocus();
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
pnlContent.add(constructed, "w 100%!, h 100%!");
|
pnlContent.add(constructed, "w 100%!, h 100%!");
|
||||||
pnlContent.revalidate();
|
pnlContent.revalidate();
|
||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
|
|
||||||
|
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||||
|
ForgePreferences.HomeMenus.constructed.toString());
|
||||||
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Opens menu for draft mode. */
|
/** Opens menu for draft mode. */
|
||||||
@@ -191,10 +195,15 @@ public class HomeTopLevel extends FPanel {
|
|||||||
clearToggles();
|
clearToggles();
|
||||||
btnDraft.setToggled(true);
|
btnDraft.setToggled(true);
|
||||||
btnDraft.grabFocus();
|
btnDraft.grabFocus();
|
||||||
|
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
pnlContent.add(draft, "w 100%!, h 100%!");
|
pnlContent.add(draft, "w 100%!, h 100%!");
|
||||||
pnlContent.revalidate();
|
pnlContent.revalidate();
|
||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
|
|
||||||
|
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||||
|
ForgePreferences.HomeMenus.draft.toString());
|
||||||
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Opens menu for sealed mode. */
|
/** Opens menu for sealed mode. */
|
||||||
@@ -202,10 +211,15 @@ public class HomeTopLevel extends FPanel {
|
|||||||
clearToggles();
|
clearToggles();
|
||||||
btnSealed.setToggled(true);
|
btnSealed.setToggled(true);
|
||||||
btnSealed.grabFocus();
|
btnSealed.grabFocus();
|
||||||
|
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
pnlContent.add(sealed, "w 100%!, h 100%!");
|
pnlContent.add(sealed, "w 100%!, h 100%!");
|
||||||
pnlContent.revalidate();
|
pnlContent.revalidate();
|
||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
|
|
||||||
|
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||||
|
ForgePreferences.HomeMenus.sealed.toString());
|
||||||
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Opens menu for quest mode. */
|
/** Opens menu for quest mode. */
|
||||||
@@ -213,10 +227,15 @@ public class HomeTopLevel extends FPanel {
|
|||||||
clearToggles();
|
clearToggles();
|
||||||
btnQuest.setToggled(true);
|
btnQuest.setToggled(true);
|
||||||
btnQuest.grabFocus();
|
btnQuest.grabFocus();
|
||||||
|
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
pnlContent.add(quest, "w 99%!, h 95%!, gaptop 2.5%, gapleft 0.5%");
|
pnlContent.add(quest, "w 99%!, h 95%!, gaptop 2.5%, gapleft 0.5%");
|
||||||
pnlContent.revalidate();
|
pnlContent.revalidate();
|
||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
|
|
||||||
|
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||||
|
ForgePreferences.HomeMenus.quest.toString());
|
||||||
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Opens menu for settings. */
|
/** Opens menu for settings. */
|
||||||
@@ -224,10 +243,15 @@ public class HomeTopLevel extends FPanel {
|
|||||||
clearToggles();
|
clearToggles();
|
||||||
btnSettings.setToggled(true);
|
btnSettings.setToggled(true);
|
||||||
btnSettings.grabFocus();
|
btnSettings.grabFocus();
|
||||||
|
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
pnlContent.add(settings, "w 99%!, h 95%!, gaptop 2.5%, gapleft 0.5%");
|
pnlContent.add(settings, "w 99%!, h 95%!, gaptop 2.5%, gapleft 0.5%");
|
||||||
pnlContent.revalidate();
|
pnlContent.revalidate();
|
||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
|
|
||||||
|
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||||
|
ForgePreferences.HomeMenus.settings.toString());
|
||||||
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Opens menu for utilities. */
|
/** Opens menu for utilities. */
|
||||||
@@ -235,10 +259,15 @@ public class HomeTopLevel extends FPanel {
|
|||||||
clearToggles();
|
clearToggles();
|
||||||
btnUtilities.setToggled(true);
|
btnUtilities.setToggled(true);
|
||||||
btnUtilities.grabFocus();
|
btnUtilities.grabFocus();
|
||||||
|
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
pnlContent.add(utilities, "w 100%!, h 100%!");
|
pnlContent.add(utilities, "w 100%!, h 100%!");
|
||||||
pnlContent.revalidate();
|
pnlContent.revalidate();
|
||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
|
|
||||||
|
Singletons.getModel().getPreferences().setPref(FPref.UI_HOMEMENU,
|
||||||
|
ForgePreferences.HomeMenus.utilities.toString());
|
||||||
|
Singletons.getModel().getPreferences().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return ControlConstructed */
|
/** @return ControlConstructed */
|
||||||
|
|||||||
Reference in New Issue
Block a user