summaryrefslogtreecommitdiffhomepage
path: root/Stars45/MsnNavDlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Stars45/MsnNavDlg.cpp')
-rw-r--r--Stars45/MsnNavDlg.cpp128
1 files changed, 128 insertions, 0 deletions
diff --git a/Stars45/MsnNavDlg.cpp b/Stars45/MsnNavDlg.cpp
new file mode 100644
index 0000000..e236248
--- /dev/null
+++ b/Stars45/MsnNavDlg.cpp
@@ -0,0 +1,128 @@
+/* Starshatter OpenSource Distribution
+ Copyright (c) 1997-2004, Destroyer Studios LLC.
+ All Rights Reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name "Destroyer Studios" nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ SUBSYSTEM: Stars.exe
+ FILE: MsnNavDlg.cpp
+ AUTHOR: John DiCamillo
+
+
+ OVERVIEW
+ ========
+ Mission Briefing Dialog Active Window class
+*/
+
+#include "MemDebug.h"
+#include "MsnNavDlg.h"
+#include "PlanScreen.h"
+#include "Campaign.h"
+#include "Mission.h"
+#include "Instruction.h"
+#include "Ship.h"
+#include "ShipDesign.h"
+#include "StarSystem.h"
+
+#include "Keyboard.h"
+
+// +--------------------------------------------------------------------+
+// DECLARE MAPPING FUNCTIONS:
+DEF_MAP_CLIENT(MsnNavDlg, OnCommit);
+DEF_MAP_CLIENT(MsnNavDlg, OnCancel);
+DEF_MAP_CLIENT(MsnNavDlg, OnTabButton);
+
+// +--------------------------------------------------------------------+
+
+MsnNavDlg::MsnNavDlg(Screen* s, FormDef& def, PlanScreen* mgr)
+: NavDlg(s, def, mgr), MsnDlg(mgr)
+{
+ RegisterControls();
+}
+
+MsnNavDlg::~MsnNavDlg()
+{
+}
+
+// +--------------------------------------------------------------------+
+
+void
+MsnNavDlg::RegisterControls()
+{
+ RegisterMsnControls(this);
+
+ if (commit)
+ REGISTER_CLIENT(EID_CLICK, commit, MsnNavDlg, OnCommit);
+
+ if (cancel)
+ REGISTER_CLIENT(EID_CLICK, cancel, MsnNavDlg, OnCancel);
+
+ if (sit_button)
+ REGISTER_CLIENT(EID_CLICK, sit_button, MsnNavDlg, OnTabButton);
+
+ if (pkg_button)
+ REGISTER_CLIENT(EID_CLICK, pkg_button, MsnNavDlg, OnTabButton);
+
+ if (nav_button)
+ REGISTER_CLIENT(EID_CLICK, nav_button, MsnNavDlg, OnTabButton);
+
+ if (wep_button)
+ REGISTER_CLIENT(EID_CLICK, wep_button, MsnNavDlg, OnTabButton);
+}
+
+// +--------------------------------------------------------------------+
+
+void
+MsnNavDlg::Show()
+{
+ NavDlg::Show();
+ ShowMsnDlg();
+}
+
+void
+MsnNavDlg::ExecFrame()
+{
+ NavDlg::ExecFrame();
+
+ if (Keyboard::KeyDown(VK_RETURN)) {
+ OnCommit(0);
+ }
+}
+
+// +--------------------------------------------------------------------+
+
+void
+MsnNavDlg::OnCommit(AWEvent* event)
+{
+ MsnDlg::OnCommit(event);
+ NavDlg::OnCommit(event);
+}
+
+void
+MsnNavDlg::OnCancel(AWEvent* event)
+{
+ MsnDlg::OnCancel(event);
+ NavDlg::OnCancel(event);
+}