summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger/win
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/debugger/win')
-rw-r--r--src/osd/modules/debugger/win/debugwin.h1
-rw-r--r--src/osd/modules/debugger/win/debugwininfo.cpp5
-rw-r--r--src/osd/modules/debugger/win/debugwininfo.h1
-rw-r--r--src/osd/modules/debugger/win/saveviewinfo.cpp29
-rw-r--r--src/osd/modules/debugger/win/saveviewinfo.h27
-rw-r--r--src/osd/modules/debugger/win/savewininfo.cpp58
-rw-r--r--src/osd/modules/debugger/win/savewininfo.h28
7 files changed, 149 insertions, 0 deletions
diff --git a/src/osd/modules/debugger/win/debugwin.h b/src/osd/modules/debugger/win/debugwin.h
index e999b87334f..833d391e0c0 100644
--- a/src/osd/modules/debugger/win/debugwin.h
+++ b/src/osd/modules/debugger/win/debugwin.h
@@ -41,6 +41,7 @@ public:
virtual void create_disasm_window() = 0;
virtual void create_log_window() = 0;
virtual void create_points_window() = 0;
+ virtual void create_save_window() = 0;
virtual void remove_window(debugwin_info &info) = 0;
virtual void show_all() = 0;
diff --git a/src/osd/modules/debugger/win/debugwininfo.cpp b/src/osd/modules/debugger/win/debugwininfo.cpp
index fdd486f3e80..b22fe3cb9ab 100644
--- a/src/osd/modules/debugger/win/debugwininfo.cpp
+++ b/src/osd/modules/debugger/win/debugwininfo.cpp
@@ -298,6 +298,10 @@ bool debugwin_info::handle_command(WPARAM wparam, LPARAM lparam)
debugger().create_points_window();
return true;
+ case ID_NEW_SAVE_WND:
+ debugger().create_save_window();
+ return true;
+
case ID_RUN_AND_HIDE:
debugger().hide_all();
[[fallthrough]];
@@ -541,6 +545,7 @@ HMENU debugwin_info::create_standard_menubar()
AppendMenu(debugmenu, MF_ENABLED, ID_NEW_MEMORY_WND, TEXT("New Memory Window\tCtrl+M"));
AppendMenu(debugmenu, MF_ENABLED, ID_NEW_DISASM_WND, TEXT("New Disassembly Window\tCtrl+D"));
AppendMenu(debugmenu, MF_ENABLED, ID_NEW_LOG_WND, TEXT("New Error Log Window\tCtrl+L"));
+ AppendMenu(debugmenu, MF_ENABLED, ID_NEW_SAVE_WND, TEXT("New Save State Window\tCtrl+E"));
AppendMenu(debugmenu, MF_ENABLED, ID_NEW_POINTS_WND, TEXT("New (Break|Watch)points Window\tCtrl+B"));
AppendMenu(debugmenu, MF_DISABLED | MF_SEPARATOR, 0, TEXT(""));
AppendMenu(debugmenu, MF_ENABLED, ID_RUN, TEXT("Run\tF5"));
diff --git a/src/osd/modules/debugger/win/debugwininfo.h b/src/osd/modules/debugger/win/debugwininfo.h
index b930189fffa..4a82d4ce735 100644
--- a/src/osd/modules/debugger/win/debugwininfo.h
+++ b/src/osd/modules/debugger/win/debugwininfo.h
@@ -62,6 +62,7 @@ protected:
ID_NEW_DISASM_WND,
ID_NEW_LOG_WND,
ID_NEW_POINTS_WND,
+ ID_NEW_SAVE_WND,
ID_RUN,
ID_RUN_AND_HIDE,
ID_RUN_VBLANK,
diff --git a/src/osd/modules/debugger/win/saveviewinfo.cpp b/src/osd/modules/debugger/win/saveviewinfo.cpp
new file mode 100644
index 00000000000..f71d35aeccf
--- /dev/null
+++ b/src/osd/modules/debugger/win/saveviewinfo.cpp
@@ -0,0 +1,29 @@
+// license:BSD-3-Clause
+// copyright-holders:Samuele Zannoli
+//============================================================
+//
+// saveviewinfo.c - Win32 debug save window handling
+//
+//============================================================
+
+#include "emu.h"
+#include "saveviewinfo.h"
+
+#include "debug/dvsave.h"
+
+
+saveview_info::saveview_info(debugger_windows_interface &debugger, debugwin_info &owner, HWND parent) :
+ debugview_info(debugger, owner, parent, DVT_SAVE)
+{
+}
+
+
+saveview_info::~saveview_info()
+{
+}
+
+
+void saveview_info::clear()
+{
+// view<debug_view_save>()->clear();
+}
diff --git a/src/osd/modules/debugger/win/saveviewinfo.h b/src/osd/modules/debugger/win/saveviewinfo.h
new file mode 100644
index 00000000000..2ea392b7ecb
--- /dev/null
+++ b/src/osd/modules/debugger/win/saveviewinfo.h
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Samuele Zannoli
+//============================================================
+//
+// saveviewinfo.h - Win32 debug save window handling
+//
+//============================================================
+#ifndef MAME_DEBUGGER_WIN_SAVEVIEWINFO_H
+#define MAME_DEBUGGER_WIN_SAVEVIEWINFO_H
+
+#pragma once
+
+#include "debugwin.h"
+
+#include "debugviewinfo.h"
+
+
+class saveview_info : public debugview_info
+{
+public:
+ saveview_info(debugger_windows_interface &debugger, debugwin_info &owner, HWND parent);
+ virtual ~saveview_info();
+
+ void clear();
+};
+
+#endif // MAME_DEBUGGER_WIN_SAVEVIEWINFO_H
diff --git a/src/osd/modules/debugger/win/savewininfo.cpp b/src/osd/modules/debugger/win/savewininfo.cpp
new file mode 100644
index 00000000000..a09607c3b93
--- /dev/null
+++ b/src/osd/modules/debugger/win/savewininfo.cpp
@@ -0,0 +1,58 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles, Vas Crabb
+//============================================================
+//
+// savewininfo.c - Win32 debug window handling
+//
+//============================================================
+
+#include "emu.h"
+#include "savewininfo.h"
+
+#include "debugviewinfo.h"
+#include "saveviewinfo.h"
+
+
+savewin_info::savewin_info(debugger_windows_interface &debugger) :
+ debugwin_info(debugger, false, "Save State Data", nullptr)
+{
+ if (!window())
+ return;
+
+ m_views[0].reset(new saveview_info(debugger, *this, window()));
+ if ((m_views[0] == nullptr) || !m_views[0]->is_valid())
+ {
+ m_views[0].reset();
+ return;
+ }
+
+ // create the save menu
+ HMENU const savemenu = CreatePopupMenu();
+ AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)savemenu, TEXT("Save"));
+
+ // compute a client rect
+ RECT bounds;
+ bounds.top = bounds.left = 0;
+ bounds.right = m_views[0]->maxwidth() + (2 * EDGE_WIDTH);
+ bounds.bottom = 200;
+ AdjustWindowRectEx(&bounds, DEBUG_WINDOW_STYLE, FALSE, DEBUG_WINDOW_STYLE_EX);
+
+ // clamp the min/max size
+ set_maxwidth(bounds.right - bounds.left);
+
+ // position the window at the bottom-right
+ SetWindowPos(window(), HWND_TOP, 100, 100, bounds.right - bounds.left, bounds.bottom - bounds.top, SWP_SHOWWINDOW);
+
+ // recompute the children
+ debugwin_info::recompute_children();
+}
+
+
+savewin_info::~savewin_info()
+{
+}
+
+bool savewin_info::handle_command(WPARAM wparam, LPARAM lparam)
+{
+ return debugwin_info::handle_command(wparam, lparam);
+}
diff --git a/src/osd/modules/debugger/win/savewininfo.h b/src/osd/modules/debugger/win/savewininfo.h
new file mode 100644
index 00000000000..e75e4b43416
--- /dev/null
+++ b/src/osd/modules/debugger/win/savewininfo.h
@@ -0,0 +1,28 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles, Vas Crabb
+//============================================================
+//
+// savewininfo.h - Win32 debug window handling
+//
+//============================================================
+#ifndef MAME_DEBUGGER_WIN_SAVEWININFO_H
+#define MAME_DEBUGGER_WIN_SAVEWININFO_H
+
+#pragma once
+
+#include "debugwin.h"
+
+#include "debugwininfo.h"
+
+
+class savewin_info : public debugwin_info
+{
+public:
+ savewin_info(debugger_windows_interface &debugger);
+ virtual ~savewin_info();
+
+protected:
+ virtual bool handle_command(WPARAM wparam, LPARAM lparam) override;
+};
+
+#endif