diff options
Diffstat (limited to 'src/osd/modules/debugger/osx/pointsviewer.mm')
-rw-r--r-- | src/osd/modules/debugger/osx/pointsviewer.mm | 94 |
1 files changed, 77 insertions, 17 deletions
diff --git a/src/osd/modules/debugger/osx/pointsviewer.mm b/src/osd/modules/debugger/osx/pointsviewer.mm index 8bd4dad3a1b..0fafe35a799 100644 --- a/src/osd/modules/debugger/osx/pointsviewer.mm +++ b/src/osd/modules/debugger/osx/pointsviewer.mm @@ -10,6 +10,8 @@ #import "pointsviewer.h" #import "breakpointsview.h" +#import "exceptionpointsview.h" +#import "registerpointsview.h" #import "watchpointsview.h" #include "util/xmlfile.h" @@ -18,9 +20,9 @@ @implementation MAMEPointsViewer - (id)initWithMachine:(running_machine &)m console:(MAMEDebugConsole *)c { - MAMEDebugView *breakView, *watchView; - NSScrollView *breakScroll, *watchScroll; - NSTabViewItem *breakTab, *watchTab; + MAMEDebugView *breakView, *watchView, *registerView, *exceptionView; + NSScrollView *breakScroll, *watchScroll, *registerScroll, *exceptionScroll; + NSTabViewItem *breakTab, *watchTab, *registerTab, *exceptionTab; NSPopUpButton *actionButton; NSRect subviewFrame; @@ -32,7 +34,7 @@ // create the subview popup subviewButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 100, 19)]; [subviewButton setAutoresizingMask:(NSViewWidthSizable | NSViewMinYMargin)]; - [subviewButton setBezelStyle:NSShadowlessSquareBezelStyle]; + [subviewButton setBezelStyle:NSBezelStyleShadowlessSquare]; [subviewButton setFocusRingType:NSFocusRingTypeNone]; [subviewButton setFont:defaultFont]; [subviewButton setTarget:self]; @@ -44,6 +46,12 @@ [[[subviewButton menu] addItemWithTitle:@"All Watchpoints" action:NULL keyEquivalent:@""] setTag:1]; + [[[subviewButton menu] addItemWithTitle:@"All Registerpoints" + action:NULL + keyEquivalent:@""] setTag:2]; + [[[subviewButton menu] addItemWithTitle:@"All Exceptionpoints" + action:NULL + keyEquivalent:@""] setTag:3]; [subviewButton sizeToFit]; subviewFrame = [subviewButton frame]; subviewFrame.origin.x = subviewFrame.size.height; @@ -82,7 +90,7 @@ [breakTab setView:breakScroll]; [breakScroll release]; - // create the breakpoints view + // create the watchpoints view watchView = [[MAMEWatchpointsView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) machine:*machine]; watchScroll = [[NSScrollView alloc] initWithFrame:[breakScroll frame]]; @@ -98,7 +106,39 @@ [watchTab setView:watchScroll]; [watchScroll release]; - // create a tabless tabview for the two subviews + // create the registerpoints view + registerView = [[MAMERegisterpointsView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) + machine:*machine]; + registerScroll = [[NSScrollView alloc] initWithFrame:[breakScroll frame]]; + [registerScroll setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [registerScroll setHasHorizontalScroller:YES]; + [registerScroll setHasVerticalScroller:YES]; + [registerScroll setAutohidesScrollers:YES]; + [registerScroll setBorderType:NSNoBorder]; + [registerScroll setDrawsBackground:NO]; + [registerScroll setDocumentView:registerView]; + [registerView release]; + registerTab = [[NSTabViewItem alloc] initWithIdentifier:@""]; + [registerTab setView:registerScroll]; + [registerScroll release]; + + // create the exceptionpoints view + exceptionView = [[MAMEExceptionpointsView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100) + machine:*machine]; + exceptionScroll = [[NSScrollView alloc] initWithFrame:[breakScroll frame]]; + [exceptionScroll setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [exceptionScroll setHasHorizontalScroller:YES]; + [exceptionScroll setHasVerticalScroller:YES]; + [exceptionScroll setAutohidesScrollers:YES]; + [exceptionScroll setBorderType:NSNoBorder]; + [exceptionScroll setDrawsBackground:NO]; + [exceptionScroll setDocumentView:exceptionView]; + [exceptionView release]; + exceptionTab = [[NSTabViewItem alloc] initWithIdentifier:@""]; + [exceptionTab setView:exceptionScroll]; + [exceptionScroll release]; + + // create a tabless tabview for the four subviews tabs = [[NSTabView alloc] initWithFrame:[breakScroll frame]]; [tabs setTabViewType:NSNoTabsNoBorder]; [tabs setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; @@ -106,6 +146,10 @@ [breakTab release]; [tabs addTabViewItem:watchTab]; [watchTab release]; + [tabs addTabViewItem:registerTab]; + [registerTab release]; + [tabs addTabViewItem:exceptionTab]; + [exceptionTab release]; [[window contentView] addSubview:tabs]; [tabs release]; @@ -117,15 +161,31 @@ // calculate the optimal size for everything NSSize const breakDesired = [NSScrollView frameSizeForContentSize:[breakView maximumFrameSize] - hasHorizontalScroller:YES - hasVerticalScroller:YES - borderType:[breakScroll borderType]]; + horizontalScrollerClass:[NSScroller class] + verticalScrollerClass:[NSScroller class] + borderType:[breakScroll borderType] + controlSize:NSControlSizeRegular + scrollerStyle:NSScrollerStyleOverlay]; NSSize const watchDesired = [NSScrollView frameSizeForContentSize:[watchView maximumFrameSize] - hasHorizontalScroller:YES - hasVerticalScroller:YES - borderType:[watchScroll borderType]]; - NSSize const desired = NSMakeSize(std::max(breakDesired.width, watchDesired.width), - std::max(breakDesired.height, watchDesired.height)); + horizontalScrollerClass:[NSScroller class] + verticalScrollerClass:[NSScroller class] + borderType:[watchScroll borderType] + controlSize:NSControlSizeRegular + scrollerStyle:NSScrollerStyleOverlay]; + NSSize const registerDesired = [NSScrollView frameSizeForContentSize:[registerView maximumFrameSize] + horizontalScrollerClass:[NSScroller class] + verticalScrollerClass:[NSScroller class] + borderType:[registerScroll borderType] + controlSize:NSControlSizeRegular + scrollerStyle:NSScrollerStyleOverlay]; + NSSize const exceptionDesired = [NSScrollView frameSizeForContentSize:[exceptionView maximumFrameSize] + horizontalScrollerClass:[NSScroller class] + verticalScrollerClass:[NSScroller class] + borderType:[exceptionScroll borderType] + controlSize:NSControlSizeRegular + scrollerStyle:NSScrollerStyleOverlay]; + NSSize const desired = NSMakeSize(std::max({ breakDesired.width, watchDesired.width, registerDesired.width, exceptionDesired.width }), + std::max({ breakDesired.height, watchDesired.height, registerDesired.height, exceptionDesired.height })); [self cascadeWindowWithDesiredSize:desired forView:tabs]; // don't forget the result @@ -146,14 +206,14 @@ - (void)saveConfigurationToNode:(util::xml::data_node *)node { [super saveConfigurationToNode:node]; - node->set_attribute_int("type", MAME_DEBUGGER_WINDOW_TYPE_POINTS_VIEWER); - node->set_attribute_int("bwtype", [tabs indexOfTabViewItem:[tabs selectedTabViewItem]]); + node->set_attribute_int(osd::debugger::ATTR_WINDOW_TYPE, osd::debugger::WINDOW_TYPE_POINTS_VIEWER); + node->set_attribute_int(osd::debugger::ATTR_WINDOW_POINTS_TYPE, [tabs indexOfTabViewItem:[tabs selectedTabViewItem]]); } - (void)restoreConfigurationFromNode:(util::xml::data_node const *)node { [super restoreConfigurationFromNode:node]; - int const tab = node->get_attribute_int("bwtype", [tabs indexOfTabViewItem:[tabs selectedTabViewItem]]); + int const tab = node->get_attribute_int(osd::debugger::ATTR_WINDOW_POINTS_TYPE, [tabs indexOfTabViewItem:[tabs selectedTabViewItem]]); if ((0 <= tab) && ([tabs numberOfTabViewItems] > tab)) { [subviewButton selectItemAtIndex:tab]; |