diff options
| author | 2017-07-30 18:35:28 +0200 | |
|---|---|---|
| committer | 2017-07-30 19:09:59 +0200 | |
| commit | 5ebe819cce3a651989f7f8c91c6fb42038afd604 (patch) | |
| tree | 5c9f7e7a28ca39ca4046690044ba1c7751fc5647 /src | |
| parent | 4c5b847938edfeada63fc824fa83a999207d10ad (diff) | |
In the windows debugger log window add a Log/Clear menu to remove all logged messages (nw)
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/debug/dvtext.cpp | 14 | ||||
| -rw-r--r-- | src/emu/debug/dvtext.h | 3 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/logviewinfo.cpp | 29 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/logviewinfo.h | 26 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/logwininfo.cpp | 19 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/logwininfo.h | 7 |
6 files changed, 97 insertions, 1 deletions
diff --git a/src/emu/debug/dvtext.cpp b/src/emu/debug/dvtext.cpp index e4672b81974..e55a6b278e8 100644 --- a/src/emu/debug/dvtext.cpp +++ b/src/emu/debug/dvtext.cpp @@ -41,6 +41,20 @@ debug_view_textbuf::~debug_view_textbuf() //------------------------------------------------- +// clear - clear the contents +//------------------------------------------------- + +void debug_view_textbuf::clear() +{ + begin_update(); + text_buffer_clear(&m_textbuf); + m_at_bottom = true; + m_topseq = 0; + end_update(); +} + + +//------------------------------------------------- // view_update - update a text buffer-based view //------------------------------------------------- diff --git a/src/emu/debug/dvtext.h b/src/emu/debug/dvtext.h index d9f28e80298..14a323794db 100644 --- a/src/emu/debug/dvtext.h +++ b/src/emu/debug/dvtext.h @@ -26,6 +26,9 @@ class debug_view_textbuf : public debug_view { friend class debug_view_manager; +public: + void clear(); + protected: // construction/destruction debug_view_textbuf(running_machine &machine, debug_view_type type, debug_view_osd_update_func osdupdate, void *osdprivate, text_buffer &textbuf); diff --git a/src/osd/modules/debugger/win/logviewinfo.cpp b/src/osd/modules/debugger/win/logviewinfo.cpp new file mode 100644 index 00000000000..affd4acd17a --- /dev/null +++ b/src/osd/modules/debugger/win/logviewinfo.cpp @@ -0,0 +1,29 @@ +// license:BSD-3-Clause +// copyright-holders:Samuele Zannoli +//============================================================ +// +// logviewinfo.c - Win32 debug log window handling +// +//============================================================ + +#include "emu.h" +#include "logviewinfo.h" + +#include "debug/dvtext.h" + + +logview_info::logview_info(debugger_windows_interface &debugger, debugwin_info &owner, HWND parent) : + debugview_info(debugger, owner, parent, DVT_LOG) +{ +} + + +logview_info::~logview_info() +{ +} + + +void logview_info::clear() +{ + view<debug_view_log>()->clear(); +} diff --git a/src/osd/modules/debugger/win/logviewinfo.h b/src/osd/modules/debugger/win/logviewinfo.h new file mode 100644 index 00000000000..da598038864 --- /dev/null +++ b/src/osd/modules/debugger/win/logviewinfo.h @@ -0,0 +1,26 @@ +// license:BSD-3-Clause +// copyright-holders:Samuele Zannoli +//============================================================ +// +// logviewinfo.h - Win32 debug log window handling +// +//============================================================ + +#ifndef __DEBUG_WIN_LOG_VIEW_INFO_H__ +#define __DEBUG_WIN_LOG_VIEW_INFO_H__ + +#include "debugwin.h" + +#include "debugviewinfo.h" + + +class logview_info : public debugview_info +{ +public: + logview_info(debugger_windows_interface &debugger, debugwin_info &owner, HWND parent); + virtual ~logview_info(); + + void clear(); +}; + +#endif diff --git a/src/osd/modules/debugger/win/logwininfo.cpp b/src/osd/modules/debugger/win/logwininfo.cpp index 1df89b73256..6d2cd59b554 100644 --- a/src/osd/modules/debugger/win/logwininfo.cpp +++ b/src/osd/modules/debugger/win/logwininfo.cpp @@ -10,6 +10,7 @@ #include "logwininfo.h" #include "debugviewinfo.h" +#include "logviewinfo.h" logwin_info::logwin_info(debugger_windows_interface &debugger) : @@ -18,13 +19,18 @@ logwin_info::logwin_info(debugger_windows_interface &debugger) : if (!window()) return; - m_views[0].reset(global_alloc(debugview_info(debugger, *this, window(), DVT_LOG))); + m_views[0].reset(global_alloc(logview_info(debugger, *this, window()))); if ((m_views[0] == nullptr) || !m_views[0]->is_valid()) { m_views[0].reset(); return; } + // create the log menu + HMENU const logmenu = CreatePopupMenu(); + AppendMenu(logmenu, MF_ENABLED, ID_CLEAR_LOG, TEXT("Clear")); + AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)logmenu, TEXT("Log")); + // compute a client rect RECT bounds; bounds.top = bounds.left = 0; @@ -46,3 +52,14 @@ logwin_info::logwin_info(debugger_windows_interface &debugger) : logwin_info::~logwin_info() { } + +bool logwin_info::handle_command(WPARAM wparam, LPARAM lparam) +{ + if ((HIWORD(wparam) == 0) && (LOWORD(wparam) == ID_CLEAR_LOG)) + { + downcast<logview_info *>(m_views[0].get())->clear(); + machine().debug_view().update_all(DVT_LOG); + return true; + } + return debugwin_info::handle_command(wparam, lparam); +} diff --git a/src/osd/modules/debugger/win/logwininfo.h b/src/osd/modules/debugger/win/logwininfo.h index 45c41447491..b9dfffaef62 100644 --- a/src/osd/modules/debugger/win/logwininfo.h +++ b/src/osd/modules/debugger/win/logwininfo.h @@ -19,6 +19,13 @@ class logwin_info : public debugwin_info public: logwin_info(debugger_windows_interface &debugger); virtual ~logwin_info(); + +protected: + enum + { + ID_CLEAR_LOG = 1 + }; + virtual bool handle_command(WPARAM wparam, LPARAM lparam) override; }; #endif |
