From 76ada671ba3b389dcf1bdf22c140130572e14731 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Fri, 22 May 2015 18:01:07 -0400 Subject: [PATCH] Debugger: Extend MemoryView listener interface. MemoryView::Listener: - Add extra hooks for notifying listener of internal mode changes. Implement accordingly in InspectorWindow. --- .../gui/inspector_window/InspectorWindow.cpp | 42 +++++++++++++++++++ .../gui/inspector_window/InspectorWindow.h | 3 ++ .../gui/inspector_window/MemoryView.h | 4 ++ 3 files changed, 49 insertions(+) diff --git a/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.cpp b/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.cpp index d3d0d68d9ac..51bcae9fad0 100644 --- a/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.cpp +++ b/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.cpp @@ -391,6 +391,48 @@ InspectorWindow::TargetAddressChanged(target_addr_t address) } +void +InspectorWindow::HexModeChanged(int32 newMode) +{ + AutoLocker lock(this); + if (lock.IsLocked()) { + BMenu* menu = fHexMode->Menu(); + if (newMode < 0 || newMode > menu->CountItems()) + return; + BMenuItem* item = menu->ItemAt(newMode); + item->SetMarked(true); + } +} + + +void +InspectorWindow::EndianModeChanged(int32 newMode) +{ + AutoLocker lock(this); + if (lock.IsLocked()) { + BMenu* menu = fEndianMode->Menu(); + if (newMode < 0 || newMode > menu->CountItems()) + return; + BMenuItem* item = menu->ItemAt(newMode); + item->SetMarked(true); + } +} + + +void +InspectorWindow::TextModeChanged(int32 newMode) +{ + AutoLocker lock(this); + if (lock.IsLocked()) { + BMenu* menu = fTextMode->Menu(); + if (newMode < 0 || newMode > menu->CountItems()) + return; + BMenuItem* item = menu->ItemAt(newMode); + item->SetMarked(true); + } +} + + void InspectorWindow::ExpressionEvaluated(ExpressionInfo* info, status_t result, ExpressionResult* value) diff --git a/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.h b/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.h index 0c320131653..79265a1befe 100644 --- a/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.h +++ b/src/apps/debugger/user_interface/gui/inspector_window/InspectorWindow.h @@ -53,6 +53,9 @@ class InspectorWindow : public BWindow, private Team::Listener, // MemoryView::Listener virtual void TargetAddressChanged(target_addr_t address); + virtual void HexModeChanged(int32 newMode); + virtual void EndianModeChanged(int32 newMode); + virtual void TextModeChanged(int32 newMode); // ExpressionInfo::Listener virtual void ExpressionEvaluated(ExpressionInfo* info, diff --git a/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.h b/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.h index 7b9e57633b0..0df94fd89b8 100644 --- a/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.h +++ b/src/apps/debugger/user_interface/gui/inspector_window/MemoryView.h @@ -132,6 +132,10 @@ class MemoryView::Listener { virtual void TargetAddressChanged(target_addr_t address) = 0; + + virtual void HexModeChanged(int32 newMode) = 0; + virtual void TextModeChanged(int32 newMode) = 0; + virtual void EndianModeChanged(int32 newMode) = 0; };