summaryrefslogtreecommitdiffhomepage
path: root/Stars45/MenuScreen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Stars45/MenuScreen.cpp')
-rw-r--r--Stars45/MenuScreen.cpp1073
1 files changed, 0 insertions, 1073 deletions
diff --git a/Stars45/MenuScreen.cpp b/Stars45/MenuScreen.cpp
deleted file mode 100644
index f45d2c5..0000000
--- a/Stars45/MenuScreen.cpp
+++ /dev/null
@@ -1,1073 +0,0 @@
-/* Starshatter: The Open Source Project
- Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
- Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
- Copyright (c) 1997-2006, Destroyer Studios LLC.
-
- AUTHOR: John DiCamillo
-
-*/
-
-#include "MenuScreen.h"
-
-#include "FormDef.h"
-#include "MenuDlg.h"
-
-#include "ExitDlg.h"
-#include "AudDlg.h"
-#include "VidDlg.h"
-#include "OptDlg.h"
-#include "CtlDlg.h"
-#include "JoyDlg.h"
-#include "KeyDlg.h"
-#include "ConfirmDlg.h"
-#include "PlayerDlg.h"
-#include "ModDlg.h"
-#include "ModInfoDlg.h"
-#include "MsnSelectDlg.h"
-#include "MsnEditDlg.h"
-#include "MsnElemDlg.h"
-#include "MsnEventDlg.h"
-#include "MsnEditNavDlg.h"
-#include "FirstTimeDlg.h"
-#include "AwardShowDlg.h"
-#include "LoadDlg.h"
-#include "TacRefDlg.h"
-
-#include "CmpSelectDlg.h"
-#include "NetClientDlg.h"
-#include "NetLobbyDlg.h"
-#include "NetServerDlg.h"
-#include "NetUnitDlg.h"
-#include "NetAddrDlg.h"
-#include "NetPassDlg.h"
-
-#include "Starshatter.h"
-#include "Player.h"
-#include "NetLobby.h"
-#include "NetClientConfig.h"
-#include "NetServerConfig.h"
-
-#include "GameWinDX9.h"
-#include "Video.h"
-#include "Screen.h"
-#include "ActiveWindow.h"
-#include "Mouse.h"
-#include "Keyboard.h"
-#include "FadeView.h"
-#include "Color.h"
-#include "Bitmap.h"
-#include "Font.h"
-#include "FontMgr.h"
-#include "EventDispatch.h"
-#include "DataLoader.h"
-
-// +--------------------------------------------------------------------+
-
-MenuScreen::MenuScreen()
-: screen(0), menudlg(0),
-fadewin(0), fadeview(0), exitdlg(0),
-auddlg(0), viddlg(0), optdlg(0), ctldlg(0), joydlg(0), keydlg(0),
-playdlg(0), confirmdlg(0), firstdlg(0), awarddlg(0), cmpSelectDlg(0),
-msnSelectDlg(0), modDlg(0), modInfoDlg(0),
-msnEditDlg(0), msnElemDlg(0), msnEventDlg(0), msnEditNavDlg(0),
-netClientDlg(0), netAddrDlg(0), netPassDlg(0), netLobbyDlg(0), netServerDlg(0),
-netUnitDlg(0), loadDlg(0), tacRefDlg(0), current_dlg(0), isShown(false)
-{
- loader = DataLoader::GetLoader();
-}
-
-MenuScreen::~MenuScreen()
-{
- TearDown();
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::Setup(Screen* s)
-{
- if (!s)
- return;
-
- screen = s;
-
- Color::SetFade(0);
-
- // create windows
-
- loader->UseFileSystem(true);
-
- FormDef menu_def("MenuDlg", 0);
- menu_def.Load("MenuDlg");
- menudlg = new MenuDlg(screen, menu_def, this);
-
- FormDef exit_def("ExitDlg", 0);
- exit_def.Load("ExitDlg");
- exitdlg = new ExitDlg(screen, exit_def, this);
-
- FormDef aud_def("AudDlg", 0);
- aud_def.Load("AudDlg");
- auddlg = new AudDlg(screen, aud_def, this);
-
- FormDef ctl_def("CtlDlg", 0);
- ctl_def.Load("CtlDlg");
- ctldlg = new CtlDlg(screen, ctl_def, this);
-
- FormDef opt_def("OptDlg", 0);
- opt_def.Load("OptDlg");
- optdlg = new OptDlg(screen, opt_def, this);
-
- FormDef vid_def("VidDlg", 0);
- vid_def.Load("VidDlg");
- viddlg = new VidDlg(screen, vid_def, this);
-
- FormDef mod_def("ModDlg", 0);
- mod_def.Load("ModDlg");
- modDlg = new ModDlg(screen, mod_def, this);
-
- FormDef tac_ref_def("TacRefDlg", 0);
- tac_ref_def.Load("TacRefDlg");
- tacRefDlg = new TacRefDlg(screen, tac_ref_def, this);
-
- FormDef cmp_sel_def("CmpSelectDlg", 0);
- cmp_sel_def.Load("CmpSelectDlg");
- cmpSelectDlg = new CmpSelectDlg(screen, cmp_sel_def, this);
-
- FormDef net_lobby_def("NetLobbyDlg", 0);
- net_lobby_def.Load("NetLobbyDlg");
- netLobbyDlg = new NetLobbyDlg(screen, net_lobby_def, this);
-
- FormDef net_client_def("NetClientDlg", 0);
- net_client_def.Load("NetClientDlg");
- netClientDlg = new NetClientDlg(screen, net_client_def, this);
-
- FormDef net_server_def("NetServerDlg", 0);
- net_server_def.Load("NetServerDlg");
- netServerDlg = new NetServerDlg(screen, net_server_def, this);
-
- FormDef net_unit_def("NetUnitDlg", 0);
- net_unit_def.Load("NetUnitDlg");
- netUnitDlg = new NetUnitDlg(screen, net_unit_def, this);
-
- FormDef net_addr_def("NetAddrDlg", 0);
- net_addr_def.Load("NetAddrDlg");
- netAddrDlg = new NetAddrDlg(screen, net_addr_def, this);
-
- FormDef net_pass_def("NetPassDlg", 0);
- net_pass_def.Load("NetPassDlg");
- netPassDlg = new NetPassDlg(screen, net_pass_def, this);
-
- FormDef msn_edit_def("MsnEditDlg", 0);
- msn_edit_def.Load("MsnEditDlg");
- msnEditDlg = new MsnEditDlg(screen, msn_edit_def, this);
-
- FormDef msn_nav_def("MsnEditNavDlg", 0);
- msn_nav_def.Load("MsnEditNavDlg");
- msnEditNavDlg = new MsnEditNavDlg(screen, msn_nav_def, this);
-
- FormDef msn_elem_def("MsnElemDlg", 0);
- msn_elem_def.Load("MsnElemDlg");
- msnElemDlg = new MsnElemDlg(screen, msn_elem_def, this);
-
- FormDef msn_event_def("MsnEventDlg", 0);
- msn_event_def.Load("MsnEventDlg");
- msnEventDlg = new MsnEventDlg(screen, msn_event_def, this);
-
- FormDef msn_def("MsnSelectDlg", 0);
- msn_def.Load("MsnSelectDlg");
- msnSelectDlg = new MsnSelectDlg(screen, msn_def, this);
-
- FormDef player_def("PlayerDlg", 0);
- player_def.Load("PlayerDlg");
- playdlg = new PlayerDlg(screen, player_def, this);
-
- FormDef award_def("AwardDlg", 0);
- award_def.Load("AwardDlg");
- awarddlg = new AwardShowDlg(screen, award_def, this);
-
- FormDef joy_def("JoyDlg", 0);
- joy_def.Load("JoyDlg");
- joydlg = new JoyDlg(screen, joy_def, this);
-
- FormDef key_def("KeyDlg", 0);
- key_def.Load("KeyDlg");
- keydlg = new KeyDlg(screen, key_def, this);
-
- FormDef first_def("FirstTimeDlg", 0);
- first_def.Load("FirstTimeDlg");
- firstdlg = new FirstTimeDlg(screen, first_def, this);
-
- FormDef mod_info_def("ModInfoDlg", 0);
- mod_info_def.Load("ModInfoDlg");
- modInfoDlg = new ModInfoDlg(screen, mod_info_def, this);
-
- FormDef confirm_def("ConfirmDlg", 0);
- confirm_def.Load("ConfirmDlg");
- confirmdlg = new ConfirmDlg(screen, confirm_def, this);
-
- FormDef load_def("LoadDlg", 0);
- load_def.Load("LoadDlg");
- loadDlg = new LoadDlg(screen, load_def);
-
- fadewin = new Window(screen, 0, 0, 1, 1);
- fadeview = new FadeView(fadewin, 2, 0, 0);
- fadewin->AddView(fadeview);
- screen->AddWindow(fadewin);
-
- loader->UseFileSystem(Starshatter::UseFileSystem());
-
- ShowMenuDlg();
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::TearDown()
-{
- if (screen) {
- if (menudlg) screen->DelWindow(menudlg);
- if (netClientDlg) screen->DelWindow(netClientDlg);
- if (netAddrDlg) screen->DelWindow(netAddrDlg);
- if (netPassDlg) screen->DelWindow(netPassDlg);
- if (netLobbyDlg) screen->DelWindow(netLobbyDlg);
- if (netServerDlg) screen->DelWindow(netServerDlg);
- if (netUnitDlg) screen->DelWindow(netUnitDlg);
-
- if (cmpSelectDlg) screen->DelWindow(cmpSelectDlg);
- if (awarddlg) screen->DelWindow(awarddlg);
- if (firstdlg) screen->DelWindow(firstdlg);
- if (msnSelectDlg) screen->DelWindow(msnSelectDlg);
- if (msnEditDlg) screen->DelWindow(msnEditDlg);
- if (msnElemDlg) screen->DelWindow(msnElemDlg);
- if (msnEventDlg) screen->DelWindow(msnEventDlg);
- if (msnEditNavDlg) screen->DelWindow(msnEditNavDlg);
- if (tacRefDlg) screen->DelWindow(tacRefDlg);
- if (loadDlg) screen->DelWindow(loadDlg);
-
- if (auddlg) screen->DelWindow(auddlg);
- if (viddlg) screen->DelWindow(viddlg);
- if (optdlg) screen->DelWindow(optdlg);
- if (ctldlg) screen->DelWindow(ctldlg);
- if (modDlg) screen->DelWindow(modDlg);
- if (modInfoDlg) screen->DelWindow(modInfoDlg);
- if (joydlg) screen->DelWindow(joydlg);
- if (keydlg) screen->DelWindow(keydlg);
- if (exitdlg) screen->DelWindow(exitdlg);
- if (playdlg) screen->DelWindow(playdlg);
- if (confirmdlg) screen->DelWindow(confirmdlg);
- if (fadewin) screen->DelWindow(fadewin);
- }
-
- delete menudlg;
- delete fadewin;
- delete exitdlg;
- delete auddlg;
- delete viddlg;
- delete optdlg;
- delete ctldlg;
- delete modDlg;
- delete modInfoDlg;
- delete joydlg;
- delete keydlg;
- delete playdlg;
- delete confirmdlg;
-
- delete netClientDlg;
- delete netAddrDlg;
- delete netPassDlg;
- delete netLobbyDlg;
- delete netServerDlg;
- delete netUnitDlg;
- delete msnSelectDlg;
- delete msnEditDlg;
- delete msnElemDlg;
- delete msnEventDlg;
- delete msnEditNavDlg;
- delete tacRefDlg;
- delete loadDlg;
- delete firstdlg;
- delete awarddlg;
- delete cmpSelectDlg;
-
- screen = 0;
- fadewin = 0;
- fadeview = 0;
- menudlg = 0;
- exitdlg = 0;
- playdlg = 0;
- confirmdlg = 0;
- msnSelectDlg = 0;
- msnEditDlg = 0;
- msnElemDlg = 0;
- msnEventDlg = 0;
- msnEditNavDlg = 0;
- cmpSelectDlg = 0;
- awarddlg = 0;
- firstdlg = 0;
- netClientDlg = 0;
- netAddrDlg = 0;
- netPassDlg = 0;
- netLobbyDlg = 0;
- netServerDlg = 0;
- netUnitDlg = 0;
- loadDlg = 0;
- tacRefDlg = 0;
-
- auddlg = 0;
- viddlg = 0;
- optdlg = 0;
- ctldlg = 0;
- modDlg = 0;
- modInfoDlg = 0;
- joydlg = 0;
- keydlg = 0;
-
- screen = 0;
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ExecFrame()
-{
- GameWinDX9::GetInstance()->SetScreenColor(Color::Black);
-
- if (menudlg && menudlg->IsShown())
- menudlg->ExecFrame();
-
- if (exitdlg && exitdlg->IsShown())
- exitdlg->ExecFrame();
-
- if (joydlg && joydlg->IsShown())
- joydlg->ExecFrame();
-
- if (keydlg && keydlg->IsShown())
- keydlg->ExecFrame();
-
- if (ctldlg && ctldlg->IsShown())
- ctldlg->ExecFrame();
-
- if (optdlg && optdlg->IsShown())
- optdlg->ExecFrame();
-
- if (auddlg && auddlg->IsShown())
- auddlg->ExecFrame();
-
- if (viddlg && viddlg->IsShown())
- viddlg->ExecFrame();
-
- if (confirmdlg && confirmdlg->IsShown())
- confirmdlg->ExecFrame();
-
- if (playdlg && playdlg->IsShown())
- playdlg->ExecFrame();
-
- if (msnSelectDlg && msnSelectDlg->IsShown())
- msnSelectDlg->ExecFrame();
-
- if (msnEditNavDlg && msnEditNavDlg->IsShown())
- msnEditNavDlg->ExecFrame();
-
- if (firstdlg && firstdlg->IsShown())
- firstdlg->ExecFrame();
-
- if (awarddlg && awarddlg->IsShown())
- awarddlg->ExecFrame();
-
- if (cmpSelectDlg && cmpSelectDlg->IsShown())
- cmpSelectDlg->ExecFrame();
-
- if (netClientDlg && netClientDlg->IsShown())
- netClientDlg->ExecFrame();
-
- if (netAddrDlg && netAddrDlg->IsShown())
- netAddrDlg->ExecFrame();
-
- if (netPassDlg && netPassDlg->IsShown())
- netPassDlg->ExecFrame();
-
- if (netLobbyDlg && netLobbyDlg->IsShown())
- netLobbyDlg->ExecFrame();
-
- if (netServerDlg && netServerDlg->IsShown())
- netServerDlg->ExecFrame();
-
- if (netUnitDlg && netUnitDlg->IsShown())
- netUnitDlg->ExecFrame();
-
- if (loadDlg && loadDlg->IsShown())
- loadDlg->ExecFrame();
-
- if (tacRefDlg && tacRefDlg->IsShown())
- tacRefDlg->ExecFrame();
-}
-
-// +--------------------------------------------------------------------+
-
-bool
-MenuScreen::CloseTopmost()
-{
- bool processed = false;
- if (joydlg && joydlg->IsShown()) {
- ShowCtlDlg();
- processed = true;
- }
-
- else if (keydlg && keydlg->IsShown()) {
- ShowCtlDlg();
- processed = true;
- }
-
- else if (msnElemDlg && msnElemDlg->IsShown()) {
- HideMsnElemDlg();
- processed = true;
- }
-
- else if (msnEventDlg && msnEventDlg->IsShown()) {
- HideMsnEventDlg();
- processed = true;
- }
-
- else if (netAddrDlg && netAddrDlg->IsShown()) {
- ShowNetClientDlg();
- processed = true;
- }
-
- else if (netPassDlg && netPassDlg->IsShown()) {
- ShowNetClientDlg();
- processed = true;
- }
-
- else if (netServerDlg && netServerDlg->IsShown()) {
- ShowNetClientDlg();
- processed = true;
- }
-
- else if (netUnitDlg && netUnitDlg->IsShown()) {
- netUnitDlg->OnCancel(0);
- processed = true;
- }
-
- else if (netLobbyDlg && netLobbyDlg->IsShown()) {
- netLobbyDlg->OnCancel(0);
- processed = true;
- }
-
- else if (netClientDlg && netClientDlg->IsShown()) {
- netClientDlg->OnCancel(0);
- processed = true;
- }
-
- else if (exitdlg && exitdlg->IsShown()) {
- // key_exit is handled in the exit dlg...
- }
-
- else if (cmpSelectDlg && cmpSelectDlg->IsShown()) {
- if (cmpSelectDlg->CanClose())
- ShowMenuDlg();
-
- processed = true;
- }
-
- else if (menudlg && !menudlg->IsShown()) {
- ShowMenuDlg();
- processed = true;
- }
-
- return processed;
-}
-
-void
-MenuScreen::Show()
-{
- if (!isShown) {
- Starshatter* stars = Starshatter::GetInstance();
- NetLobby* lobby = NetLobby::GetInstance();
-
- if (lobby) {
- ShowNetLobbyDlg();
- }
- else if (current_dlg == msnSelectDlg) {
- ShowMsnSelectDlg();
- }
- else {
- if (Player::ConfigExists()) {
- ShowMenuDlg();
- }
-
- else {
- ShowFirstTimeDlg();
- }
- }
-
- isShown = true;
- }
-}
-
-void
-MenuScreen::Hide()
-{
- if (isShown) {
- HideAll();
- isShown = false;
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowMenuDlg()
-{
- HideAll();
- if (menudlg) {
- menudlg->Show();
- menudlg->SetTopMost(true);
- }
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowCmpSelectDlg()
-{
- HideAll();
- current_dlg = cmpSelectDlg;
- if (cmpSelectDlg)
- cmpSelectDlg->Show();
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowMsnSelectDlg()
-{
- HideAll();
- current_dlg = msnSelectDlg;
-
- if (msnSelectDlg)
- msnSelectDlg->Show();
-
- if (msnEditNavDlg)
- msnEditNavDlg->SetMission(0);
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowModDlg()
-{
- if (modDlg) {
- HideAll();
- modDlg->Show();
- modDlg->SetTopMost(true);
- Mouse::Show(true);
- }
- else {
- ShowMsnSelectDlg();
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowModInfoDlg()
-{
- if (modDlg && modInfoDlg) {
- HideAll();
- modDlg->Show();
- modDlg->SetTopMost(false);
- modInfoDlg->Show();
- Mouse::Show(true);
- }
- else {
- ShowMsnSelectDlg();
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowMsnEditDlg()
-{
- if (msnEditDlg) {
- bool nav_shown = false;
- if (msnEditNavDlg && msnEditNavDlg->IsShown())
- nav_shown = true;
-
- HideAll();
-
- if (nav_shown) {
- msnEditNavDlg->Show();
- msnEditNavDlg->SetTopMost(true);
- }
- else {
- msnEditDlg->Show();
- msnEditDlg->SetTopMost(true);
- }
-
- Mouse::Show(true);
- }
- else {
- ShowMsnSelectDlg();
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowMsnElemDlg()
-{
- if (msnElemDlg) {
- if (msnEditDlg && msnEditDlg->IsShown())
- msnEditDlg->SetTopMost(false);
-
- if (msnEditNavDlg && msnEditNavDlg->IsShown())
- msnEditNavDlg->SetTopMost(false);
-
- msnElemDlg->Show();
- msnElemDlg->SetTopMost(true);
- Mouse::Show(true);
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowMsnEventDlg()
-{
- if (msnEventDlg) {
- if (msnEditDlg && msnEditDlg->IsShown())
- msnEditDlg->SetTopMost(false);
-
- if (msnEditNavDlg && msnEditNavDlg->IsShown())
- msnEditNavDlg->SetTopMost(false);
-
- msnEventDlg->Show();
- msnEventDlg->SetTopMost(true);
- Mouse::Show(true);
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNavDlg()
-{
- if (msnEditNavDlg && !msnEditNavDlg->IsShown()) {
- HideAll();
- msnEditNavDlg->Show();
- Mouse::Show(true);
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowFirstTimeDlg()
-{
- HideAll();
- if (menudlg && firstdlg) {
- menudlg->Show();
- menudlg->SetTopMost(false);
-
- firstdlg->Show();
- firstdlg->SetTopMost(true);
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowPlayerDlg()
-{
- if (playdlg) {
- HideAll();
- playdlg->Show();
- }
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowAwardDlg()
-{
- if (awarddlg) {
- HideAll();
- awarddlg->Show();
- }
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowTacRefDlg()
-{
- if (tacRefDlg) {
- HideAll();
- tacRefDlg->Show();
- }
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNetClientDlg()
-{
- if (netClientDlg) {
- HideAll();
- netClientDlg->Show();
- netClientDlg->SetTopMost(true);
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNetAddrDlg()
-{
- if (netAddrDlg) {
- if (netClientDlg) {
- netClientDlg->Show();
- netClientDlg->SetTopMost(false);
- }
-
- netAddrDlg->Show();
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNetPassDlg()
-{
- if (netPassDlg) {
- ShowNetClientDlg();
- if (netClientDlg)
- netClientDlg->SetTopMost(false);
-
- netPassDlg->Show();
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNetLobbyDlg()
-{
- if (netLobbyDlg) {
- HideAll();
- netLobbyDlg->Show();
- netLobbyDlg->SetTopMost(true);
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNetServerDlg()
-{
- if (netServerDlg) {
- netServerDlg->Show();
- netServerDlg->SetTopMost(true);
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowNetUnitDlg()
-{
- if (netUnitDlg) {
- HideAll();
- netUnitDlg->Show();
- netUnitDlg->SetTopMost(true);
- }
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowAudDlg()
-{
- HideAll();
- if (auddlg)
- auddlg->Show();
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowVidDlg()
-{
- HideAll();
- if (viddlg)
- viddlg->Show();
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowOptDlg()
-{
- HideAll();
- if (optdlg)
- optdlg->Show();
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowCtlDlg()
-{
- HideAll();
- if (ctldlg) {
- ctldlg->Show();
- ctldlg->SetTopMost(true);
- }
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowJoyDlg()
-{
- HideAll();
- if (ctldlg) {
- ctldlg->Show();
- ctldlg->SetTopMost(false);
- }
-
- if (joydlg)
- joydlg->Show();
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowKeyDlg()
-{
- HideAll();
-
- if (ctldlg) {
- ctldlg->Show();
- ctldlg->SetTopMost(false);
- }
-
- if (keydlg)
- keydlg->Show();
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowConfirmDlg()
-{
- if (confirmdlg) {
- if (msnSelectDlg && msnSelectDlg->IsShown())
- msnSelectDlg->SetTopMost(false);
-
- if (playdlg && playdlg->IsShown())
- playdlg->SetTopMost(false);
-
- confirmdlg->Show();
- confirmdlg->SetTopMost(true);
- Mouse::Show(true);
- }
-}
-
-void
-MenuScreen::HideConfirmDlg()
-{
- if (confirmdlg)
- confirmdlg->Hide();
-
- if (msnSelectDlg && msnSelectDlg->IsShown())
- msnSelectDlg->SetTopMost(true);
-
- if (playdlg && playdlg->IsShown())
- playdlg->SetTopMost(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowLoadDlg()
-{
- if (loadDlg) {
- if (menudlg && menudlg->IsShown())
- menudlg->SetTopMost(false);
-
- loadDlg->Show();
- loadDlg->SetTopMost(true);
- Mouse::Show(true);
- }
-}
-
-void
-MenuScreen::HideLoadDlg()
-{
- if (loadDlg)
- loadDlg->Hide();
-
- if (menudlg && menudlg->IsShown())
- menudlg->SetTopMost(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ShowExitDlg()
-{
- HideAll();
-
- if (menudlg) {
- menudlg->Show();
- menudlg->SetTopMost(false);
- }
-
- if (exitdlg)
- exitdlg->Show();
- else
- Starshatter::GetInstance()->Exit();
-
- Mouse::Show(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::HideNavDlg()
-{
- if (msnEditNavDlg)
- msnEditNavDlg->Hide();
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::HideMsnElemDlg()
-{
- if (msnElemDlg)
- msnElemDlg->Hide();
-
- if (msnEditDlg && msnEditDlg->IsShown())
- msnEditDlg->SetTopMost(true);
-
- if (msnEditNavDlg && msnEditNavDlg->IsShown())
- msnEditNavDlg->SetTopMost(true);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::HideMsnEventDlg()
-{
- if (msnEventDlg)
- msnEventDlg->Hide();
-
- if (msnEditDlg && msnEditDlg->IsShown())
- msnEditDlg->SetTopMost(true);
-
- if (msnEditNavDlg && msnEditNavDlg->IsShown())
- msnEditNavDlg->SetTopMost(true);
-}
-
-// +--------------------------------------------------------------------+
-
-bool
-MenuScreen::IsNavShown()
-{
- return msnEditNavDlg && msnEditNavDlg->IsShown();
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::HideAll()
-{
- Keyboard::FlushKeys();
-
- current_dlg = 0;
-
- if (menudlg) menudlg->Hide();
- if (exitdlg) exitdlg->Hide();
- if (auddlg) auddlg->Hide();
- if (viddlg) viddlg->Hide();
- if (ctldlg) ctldlg->Hide();
- if (optdlg) optdlg->Hide();
- if (joydlg) joydlg->Hide();
- if (keydlg) keydlg->Hide();
- if (playdlg) playdlg->Hide();
- if (confirmdlg) confirmdlg->Hide();
- if (modDlg) modDlg->Hide();
- if (modInfoDlg) modInfoDlg->Hide();
- if (msnSelectDlg) msnSelectDlg->Hide();
- if (msnEditDlg) msnEditDlg->Hide();
- if (msnElemDlg) msnElemDlg->Hide();
- if (msnEventDlg) msnEventDlg->Hide();
- if (msnEditNavDlg) msnEditNavDlg->Hide();
- if (netClientDlg) netClientDlg->Hide();
- if (netAddrDlg) netAddrDlg->Hide();
- if (netPassDlg) netPassDlg->Hide();
- if (netLobbyDlg) netLobbyDlg->Hide();
- if (netServerDlg) netServerDlg->Hide();
- if (netUnitDlg) netUnitDlg->Hide();
- if (firstdlg) firstdlg->Hide();
- if (awarddlg) awarddlg->Hide();
- if (cmpSelectDlg) cmpSelectDlg->Hide();
- if (tacRefDlg) tacRefDlg->Hide();
- if (loadDlg) loadDlg->Hide();
-}
-
-// +--------------------------------------------------------------------+
-
-void
-MenuScreen::ApplyOptions()
-{
- if (ctldlg) ctldlg->Apply();
- if (optdlg) optdlg->Apply();
- if (auddlg) auddlg->Apply();
- if (viddlg) viddlg->Apply();
- if (modDlg) modDlg->Apply();
-
- ShowMenuDlg();
-}
-
-void
-MenuScreen::CancelOptions()
-{
- if (ctldlg) ctldlg->Cancel();
- if (optdlg) optdlg->Cancel();
- if (auddlg) auddlg->Cancel();
- if (viddlg) viddlg->Cancel();
- if (modDlg) modDlg->Cancel();
-
- ShowMenuDlg();
-}