summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2025-03-02 02:11:16 +1100
committer Vas Crabb <vas@vastheman.com>2025-03-02 02:11:16 +1100
commite27d69611cf866e1fb8fd650a814d38908e9f006 (patch)
treeff5c18ee9033554a5c461838b109b92d3b4cfec4 /src/osd/modules/debugger
parent7f60f33494c075ee7426925e65906c0828eb7e24 (diff)
debugger/win: Added option to disable window grouping.
Option is in debugger console window Settings menu. Changes apply on hard reset or restarting MAME. Setting is saved to default.cfg.
Diffstat (limited to 'src/osd/modules/debugger')
-rw-r--r--src/osd/modules/debugger/debugwin.cpp11
-rw-r--r--src/osd/modules/debugger/win/consolewininfo.cpp5
-rw-r--r--src/osd/modules/debugger/win/debugwin.h3
-rw-r--r--src/osd/modules/debugger/win/debugwininfo.cpp4
-rw-r--r--src/osd/modules/debugger/win/debugwininfo.h1
-rw-r--r--src/osd/modules/debugger/xmlconfig.cpp1
-rw-r--r--src/osd/modules/debugger/xmlconfig.h1
7 files changed, 24 insertions, 2 deletions
diff --git a/src/osd/modules/debugger/debugwin.cpp b/src/osd/modules/debugger/debugwin.cpp
index 6498a95fcd3..b6d3f1e8664 100644
--- a/src/osd/modules/debugger/debugwin.cpp
+++ b/src/osd/modules/debugger/debugwin.cpp
@@ -56,7 +56,9 @@ public:
m_main_console(nullptr),
m_next_window_pos{ 0, 0 },
m_config(),
- m_save_windows(true)
+ m_save_windows(true),
+ m_group_windows(true),
+ m_group_windows_setting(true)
{
}
@@ -76,6 +78,9 @@ protected:
virtual void set_color_theme(int index) override;
virtual bool get_save_window_arrangement() const override { return m_save_windows; }
virtual void set_save_window_arrangement(bool save) override { m_save_windows = save; }
+ virtual bool get_group_windows() const override { return m_group_windows; }
+ virtual bool get_group_windows_setting() const { return m_group_windows_setting; }
+ virtual void set_group_windows_setting(bool group) { m_group_windows_setting = group; }
virtual bool const &waiting_for_debugger() const override { return m_waiting_for_debugger; }
virtual bool seq_pressed() const override;
@@ -111,6 +116,8 @@ private:
util::xml::file::ptr m_config;
bool m_save_windows;
+ bool m_group_windows;
+ bool m_group_windows_setting;
};
@@ -395,6 +402,7 @@ void debugger_windows::config_load(config_type cfgtype, config_level cfglevel, u
if (config_type::DEFAULT == cfgtype)
{
m_save_windows = 0 != parentnode->get_attribute_int(debugger::ATTR_DEBUGGER_SAVE_WINDOWS, m_save_windows ? 1 : 0);
+ m_group_windows = m_group_windows_setting = 0 != parentnode->get_attribute_int(debugger::ATTR_DEBUGGER_GROUP_WINDOWS, m_group_windows ? 1 : 0);
util::xml::data_node const *const colors = parentnode->get_child(debugger::NODE_COLORS);
if (colors)
m_metrics->set_color_theme(colors->get_attribute_int(debugger::ATTR_COLORS_THEME, m_metrics->get_color_theme()));
@@ -421,6 +429,7 @@ void debugger_windows::config_save(config_type cfgtype, util::xml::data_node *pa
if (config_type::DEFAULT == cfgtype)
{
parentnode->set_attribute_int(debugger::ATTR_DEBUGGER_SAVE_WINDOWS, m_save_windows ? 1 : 0);
+ parentnode->set_attribute_int(debugger::ATTR_DEBUGGER_GROUP_WINDOWS, m_group_windows_setting ? 1 : 0);
util::xml::data_node *const colors = parentnode->add_child(debugger::NODE_COLORS, nullptr);
if (colors)
colors->set_attribute_int(debugger::ATTR_COLORS_THEME, m_metrics->get_color_theme());
diff --git a/src/osd/modules/debugger/win/consolewininfo.cpp b/src/osd/modules/debugger/win/consolewininfo.cpp
index 3a4a52be2e2..a5dfd04cc55 100644
--- a/src/osd/modules/debugger/win/consolewininfo.cpp
+++ b/src/osd/modules/debugger/win/consolewininfo.cpp
@@ -245,6 +245,7 @@ consolewin_info::consolewin_info(debugger_windows_interface &debugger) :
// add the settings menu
HMENU const settingsmenu = CreatePopupMenu();
AppendMenu(settingsmenu, MF_ENABLED, ID_SAVE_WINDOWS, TEXT("Save Window Arrangement"));
+ AppendMenu(settingsmenu, MF_ENABLED, ID_GROUP_WINDOWS, TEXT("Group Debugger Windows (requires restart)"));
AppendMenu(settingsmenu, MF_DISABLED | MF_SEPARATOR, 0, TEXT(""));
AppendMenu(settingsmenu, MF_ENABLED, ID_LIGHT_BACKGROUND, TEXT("Light Background"));
AppendMenu(settingsmenu, MF_ENABLED, ID_DARK_BACKGROUND, TEXT("Dark Background"));
@@ -449,6 +450,7 @@ void consolewin_info::update_menu()
HMENU const menu = GetMenu(window());
CheckMenuItem(menu, ID_SAVE_WINDOWS, MF_BYCOMMAND | (debugger().get_save_window_arrangement() ? MF_CHECKED : MF_UNCHECKED));
+ CheckMenuItem(menu, ID_GROUP_WINDOWS, MF_BYCOMMAND | (debugger().get_group_windows_setting() ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(menu, ID_LIGHT_BACKGROUND, MF_BYCOMMAND | ((ui_metrics::THEME_LIGHT_BACKGROUND == metrics().get_color_theme()) ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(menu, ID_DARK_BACKGROUND, MF_BYCOMMAND | ((ui_metrics::THEME_DARK_BACKGROUND == metrics().get_color_theme()) ? MF_CHECKED : MF_UNCHECKED));
}
@@ -518,6 +520,9 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam)
case ID_SAVE_WINDOWS:
debugger().set_save_window_arrangement(!debugger().get_save_window_arrangement());
return true;
+ case ID_GROUP_WINDOWS:
+ debugger().set_group_windows_setting(!debugger().get_group_windows_setting());
+ return true;
case ID_LIGHT_BACKGROUND:
debugger().set_color_theme(ui_metrics::THEME_LIGHT_BACKGROUND);
return true;
diff --git a/src/osd/modules/debugger/win/debugwin.h b/src/osd/modules/debugger/win/debugwin.h
index 52303eefc2c..d8af29b795e 100644
--- a/src/osd/modules/debugger/win/debugwin.h
+++ b/src/osd/modules/debugger/win/debugwin.h
@@ -40,6 +40,9 @@ public:
virtual void set_color_theme(int index) = 0;
virtual bool get_save_window_arrangement() const = 0;
virtual void set_save_window_arrangement(bool save) = 0;
+ virtual bool get_group_windows() const = 0;
+ virtual bool get_group_windows_setting() const = 0;
+ virtual void set_group_windows_setting(bool group) = 0;
virtual bool const &waiting_for_debugger() const = 0;
virtual bool seq_pressed() const = 0;
diff --git a/src/osd/modules/debugger/win/debugwininfo.cpp b/src/osd/modules/debugger/win/debugwininfo.cpp
index e48c012dba6..f27f7933f08 100644
--- a/src/osd/modules/debugger/win/debugwininfo.cpp
+++ b/src/osd/modules/debugger/win/debugwininfo.cpp
@@ -47,7 +47,9 @@ debugwin_info::debugwin_info(debugger_windows_interface &debugger, bool is_main_
m_wnd = win_create_window_ex_utf8(
DEBUG_WINDOW_STYLE_EX, "MAMEDebugWindow", title, DEBUG_WINDOW_STYLE,
0, 0, 100, 100,
- dynamic_cast<win_window_info &>(*osd_common_t::window_list().front()).platform_window(),
+ debugger.get_group_windows()
+ ? dynamic_cast<win_window_info &>(*osd_common_t::window_list().front()).platform_window()
+ : nullptr,
create_standard_menubar(),
GetModuleHandleUni(),
this);
diff --git a/src/osd/modules/debugger/win/debugwininfo.h b/src/osd/modules/debugger/win/debugwininfo.h
index f6f37c86955..e766ca69c12 100644
--- a/src/osd/modules/debugger/win/debugwininfo.h
+++ b/src/osd/modules/debugger/win/debugwininfo.h
@@ -114,6 +114,7 @@ protected:
ID_CLEAR_LOG,
ID_SAVE_WINDOWS,
+ ID_GROUP_WINDOWS,
ID_LIGHT_BACKGROUND,
ID_DARK_BACKGROUND,
diff --git a/src/osd/modules/debugger/xmlconfig.cpp b/src/osd/modules/debugger/xmlconfig.cpp
index 7e702938bf8..977e7b55e70 100644
--- a/src/osd/modules/debugger/xmlconfig.cpp
+++ b/src/osd/modules/debugger/xmlconfig.cpp
@@ -17,6 +17,7 @@ char const *const NODE_WINDOW_HISTORY = "history";
char const *const NODE_HISTORY_ITEM = "item";
char const *const ATTR_DEBUGGER_SAVE_WINDOWS = "savewindows";
+char const *const ATTR_DEBUGGER_GROUP_WINDOWS = "groupwindows";
char const *const ATTR_WINDOW_TYPE = "type";
char const *const ATTR_WINDOW_POSITION_X = "position_x";
diff --git a/src/osd/modules/debugger/xmlconfig.h b/src/osd/modules/debugger/xmlconfig.h
index ae5cdf8393c..6ae476cdec7 100644
--- a/src/osd/modules/debugger/xmlconfig.h
+++ b/src/osd/modules/debugger/xmlconfig.h
@@ -33,6 +33,7 @@ extern char const *const NODE_WINDOW_HISTORY;
extern char const *const NODE_HISTORY_ITEM;
extern char const *const ATTR_DEBUGGER_SAVE_WINDOWS;
+extern char const *const ATTR_DEBUGGER_GROUP_WINDOWS;
extern char const *const ATTR_WINDOW_TYPE;
extern char const *const ATTR_WINDOW_POSITION_X;