diff options
Diffstat (limited to 'src/osd/modules/debugger/win')
| -rw-r--r-- | src/osd/modules/debugger/win/debugwin.h | 1 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/debugwininfo.cpp | 5 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/debugwininfo.h | 1 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/saveviewinfo.cpp | 29 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/saveviewinfo.h | 27 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/savewininfo.cpp | 58 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/savewininfo.h | 28 |
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 |
