diff options
Diffstat (limited to 'src/osd/modules/debugger/osx/memoryview.m')
-rw-r--r-- | src/osd/modules/debugger/osx/memoryview.m | 50 |
1 files changed, 42 insertions, 8 deletions
diff --git a/src/osd/modules/debugger/osx/memoryview.m b/src/osd/modules/debugger/osx/memoryview.m index b35701df757..8883fc303d7 100644 --- a/src/osd/modules/debugger/osx/memoryview.m +++ b/src/osd/modules/debugger/osx/memoryview.m @@ -13,7 +13,6 @@ #include "debug/debugcpu.h" #include "debug/debugvw.h" -#include "debug/dvmemory.h" @implementation MAMEMemoryView @@ -107,13 +106,43 @@ } -- (void)selectSubviewForCPU:(device_t *)device { - debug_view_source const *selected = view->source(); - debug_view_source const *source = view->source_for_device(device); - if ( selected != source ) { - view->set_source(*source); - if ([[self window] firstResponder] != self) - view->set_cursor_visible(false); +- (BOOL)selectSubviewForDevice:(device_t *)device { + debug_view_source const *const source = view->source_for_device(device); + if (source != NULL) + { + if (view->source() != source) + { + view->set_source(*source); + if ([[self window] firstResponder] != self) + view->set_cursor_visible(false); + } + return YES; + } + else + { + return NO; + } +} + + +- (BOOL)selectSubviewForSpace:(address_space *)space { + if (space == NULL) return NO; + debug_view_memory_source const *source = downcast<debug_view_memory_source const *>(view->first_source()); + while ((source != NULL) && (source->space() != space)) + source = downcast<debug_view_memory_source *>(source->next()); + if (source != NULL) + { + if (view->source() != source) + { + view->set_source(*source); + if ([[self window] firstResponder] != self) + view->set_cursor_visible(false); + } + return YES; + } + else + { + return NO; } } @@ -128,6 +157,11 @@ } +- (debug_view_memory_source const *)source { + return downcast<debug_view_memory_source const *>(view->source()); +} + + - (IBAction)showChunkSize:(id)sender { downcast<debug_view_memory *>(view)->set_bytes_per_chunk([sender tag]); } |