diff options
| author | 2025-03-02 02:11:16 +1100 | |
|---|---|---|
| committer | 2025-03-02 02:11:16 +1100 | |
| commit | e27d69611cf866e1fb8fd650a814d38908e9f006 (patch) | |
| tree | ff5c18ee9033554a5c461838b109b92d3b4cfec4 /src/osd/modules/debugger | |
| parent | 7f60f33494c075ee7426925e65906c0828eb7e24 (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.cpp | 11 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/consolewininfo.cpp | 5 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/debugwin.h | 3 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/debugwininfo.cpp | 4 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/debugwininfo.h | 1 | ||||
| -rw-r--r-- | src/osd/modules/debugger/xmlconfig.cpp | 1 | ||||
| -rw-r--r-- | src/osd/modules/debugger/xmlconfig.h | 1 |
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; |
