From 6eace4258f43cb53eb0410c2ad3cf20c363149f7 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sun, 18 Sep 2011 16:06:23 -0400 Subject: [PATCH 01/22] -initial stab at doc-modal sheets --- AppKit/CPWindow/CPWindow.j | 27 ++++++++++++++++++++++++++- AppKit/CPWindow/_CPWindowView.j | 14 ++++++++++++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 933e03c90..c14103df9 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -791,6 +791,10 @@ CPTexturedBackgroundWindowMask - (void)setFrameOrigin:(CGPoint)anOrigin { [self _setClippedFrame:_CGRectMake(anOrigin.x, anOrigin.y, _CGRectGetWidth(_frame), _CGRectGetHeight(_frame)) display:YES animate:NO]; + + // reposition sheet + if ([self attachedSheet]) + [self _setAttachedSheetFrameOrigin]; } /*! @@ -1469,6 +1473,25 @@ CPTexturedBackgroundWindowMask var type = [anEvent type], point = [anEvent locationInWindow]; + // If a sheet is attached events get filtered here. + // It is not clear what events should be passed to the view, perhaps all? + // CPLeftMouseDown is needed for window moving and resizing to work. + // CPMouseMoved is needed for rollover effects on title bar buttons. + if ([self attachedSheet]) + { + switch (type) + { + case CPLeftMouseDown: + [_windowView mouseDown:anEvent]; + break; + case CPMouseMoved: + [_windowView mouseMoved:anEvent]; + break; + } + + return; + } + switch (type) { case CPFlagsChanged: return [[self firstResponder] flagsChanged:anEvent]; @@ -2245,7 +2268,9 @@ CPTexturedBackgroundWindowMask endFrame = CGRectMake(originx, originy, sheetFrame.size.width, sheetFrame.size.height); [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowWillBeginSheetNotification object:self]; - [CPApp runModalForWindow:aSheet]; + + // old behavior; in Cocoa, sheets are not modal by default + //[CPApp runModalForWindow:aSheet]; [aSheet orderFront:self]; [aSheet setFrame:startFrame display:YES animate:NO]; diff --git a/AppKit/CPWindow/_CPWindowView.j b/AppKit/CPWindow/_CPWindowView.j index 6a9f62894..e7936dd5a 100644 --- a/AppKit/CPWindow/_CPWindowView.j +++ b/AppKit/CPWindow/_CPWindowView.j @@ -140,7 +140,7 @@ var _CPWindowViewResizeIndicatorImage = nil; var newSize = CGSizeMake(CGRectGetWidth(_resizeFrame) + location.x - CGRectGetMinX(_resizeFrame), CGRectGetHeight(_resizeFrame) + location.y - CGRectGetMinY(_resizeFrame)); if (theWindow._isSheet && theWindow._parentView && (theWindow._frame.size.width !== newSize.width)) - [theWindow._parentView _setAttachedSheetFrameOrigin]; + [theWindow._parentView _setAttachedSheetFrameOrigin]; [theWindow setFrameSize:newSize]; } @@ -195,7 +195,6 @@ var _CPWindowViewResizeIndicatorImage = nil; location = [theWindow convertBaseToGlobal:[anEvent locationInWindow]], origin = [self _pointWithinScreenFrame:CGPointMake(_CGRectGetMinX(frame) + (location.x - _mouseDraggedPoint.x), _CGRectGetMinY(frame) + (location.y - _mouseDraggedPoint.y))]; - [theWindow setFrameOrigin:origin]; _mouseDraggedPoint = [self _pointWithinScreenFrame:location]; @@ -204,6 +203,17 @@ var _CPWindowViewResizeIndicatorImage = nil; [CPApp setTarget:self selector:@selector(trackMoveWithEvent:) forNextEventMatchingMask:CPLeftMouseDraggedMask | CPLeftMouseUpMask untilDate:nil inMode:nil dequeue:YES]; } +- (void)setFrameSize:(CGSize)newSize +{ + [super setFrameSize:newSize]; + + // reposition sheet if the parent window resizes or moves + var theWindow = [self window]; + + if ([theWindow attachedSheet]) + [theWindow _setAttachedSheetFrameOrigin]; +} + - (void)setShowsResizeIndicator:(BOOL)shouldShowResizeIndicator { if (shouldShowResizeIndicator) From 2a82703e468d19c49ed9df3db84d2ee25ec13b3f Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Tue, 15 Nov 2011 10:14:07 -0500 Subject: [PATCH 02/22] -fix uninitialized _selectedRange member when loading from cib --- AppKit/CPTokenField.j | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AppKit/CPTokenField.j b/AppKit/CPTokenField.j index 84ee318da..60ddb0273 100755 --- a/AppKit/CPTokenField.j +++ b/AppKit/CPTokenField.j @@ -97,7 +97,6 @@ var CPThemeStateAutoCompleting = @"CPThemeStateAutoCompleting", { if (self = [super initWithFrame:frame]) { - _selectedRange = CPMakeRange(0, 0); _completionDelay = [CPTokenField defaultCompletionDelay]; _tokenizingCharacterSet = [[self class] defaultTokenizingCharacterSet]; [self setBezeled:YES]; @@ -114,6 +113,8 @@ var CPThemeStateAutoCompleting = @"CPThemeStateAutoCompleting", - (void)_init { + _selectedRange = CPMakeRange(0, 0); + var frame = [self frame]; _tokenScrollView = [[CPScrollView alloc] initWithFrame:CGRectMakeZero()]; From 3c7783f97c6d46cf6efab33fb0383125445b8f3b Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Tue, 15 Nov 2011 10:31:44 -0500 Subject: [PATCH 03/22] Revert "-fix uninitialized _selectedRange member when loading from cib", putting in another branch This reverts commit 2a82703e468d19c49ed9df3db84d2ee25ec13b3f. --- AppKit/CPTokenField.j | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AppKit/CPTokenField.j b/AppKit/CPTokenField.j index 60ddb0273..84ee318da 100755 --- a/AppKit/CPTokenField.j +++ b/AppKit/CPTokenField.j @@ -97,6 +97,7 @@ var CPThemeStateAutoCompleting = @"CPThemeStateAutoCompleting", { if (self = [super initWithFrame:frame]) { + _selectedRange = CPMakeRange(0, 0); _completionDelay = [CPTokenField defaultCompletionDelay]; _tokenizingCharacterSet = [[self class] defaultTokenizingCharacterSet]; [self setBezeled:YES]; @@ -113,8 +114,6 @@ var CPThemeStateAutoCompleting = @"CPThemeStateAutoCompleting", - (void)_init { - _selectedRange = CPMakeRange(0, 0); - var frame = [self frame]; _tokenScrollView = [[CPScrollView alloc] initWithFrame:CGRectMakeZero()]; From a2eb9e728c2fbf85449898c3bf9bf65684be1a83 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Thu, 24 Nov 2011 19:28:04 -0500 Subject: [PATCH 04/22] Various fixes for sheet bugs -handle attempt to close sheet while it is animating in -fixes Safari 5.1 animate out bug by using a timer to initiate the in/out process -allow window shadow to become 0 width/height for smoother animation --- AppKit/CPWindow/CPWindow.j | 126 ++++++++++++++++++++++++++++++++----- 1 file changed, 109 insertions(+), 17 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index a4a4c04bc..994196afd 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -753,11 +753,26 @@ CPTexturedBackgroundWindowMask size.width = newSize.width; size.height = newSize.height; + //CPLog.debug("%@ %@ view=%dx%d", [self class], _cmd, size.width, size.height); [_windowView setFrameSize:size]; if (_hasShadow) - [_shadowView setFrameSize:_CGSizeMake(SHADOW_MARGIN_LEFT + size.width + SHADOW_MARGIN_RIGHT, SHADOW_MARGIN_BOTTOM + size.height + SHADOW_MARGIN_TOP + SHADOW_DISTANCE)]; - + { + // if the shadow would be taller/wider than the window height, + // make it the same as the window height. this allows views to + // become 0,0 with no shadow on them and makes the sheet + // animation look nicer + var shadowSize = _CGSizeMake(size.width,size.height); + + if (size.width >= (SHADOW_MARGIN_LEFT + SHADOW_MARGIN_RIGHT)) + shadowSize.width += SHADOW_MARGIN_LEFT + SHADOW_MARGIN_RIGHT; + + if (size.height >= (SHADOW_MARGIN_BOTTOM + SHADOW_MARGIN_TOP + SHADOW_DISTANCE)) + shadowSize.height += SHADOW_MARGIN_BOTTOM + SHADOW_MARGIN_TOP + SHADOW_DISTANCE; + + [_shadowView setFrameSize:shadowSize]; + } + if (!_isAnimating) [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidResizeNotification object:self]; } @@ -2270,8 +2285,64 @@ CPTexturedBackgroundWindowMask } /* @ignore */ -- (void)_attachSheetWindow:(CPWindow)aSheet +- (void)_attachSheetWindow:(CPWindow)sheet { + // fixme: a run loop for the sheet animations should be created, + // that defers all other events until the animation is completed, + // the timer will assure that the animation timer fires on the + // special sheet runloop + + [CPTimer scheduledTimerWithTimeInterval:0.0 + target:self + selector:@selector(sheetShouldAnimateIn:) + userInfo:sheet + repeats:NO]; +} + +/* @ignore */ +- (void)_detachSheetWindow +{ + var sheet = [self attachedSheet]; + + if (!sheet) + return; + + [CPTimer scheduledTimerWithTimeInterval:0.0 + target:self + selector:@selector(sheetShouldAnimateOut:) + userInfo:sheet + repeats:NO]; +} + +/* @ignore */ +- (void)animationDidEnd:(id)anim +{ + var sheet = _sheetContext["sheet"]; + if (anim._window != sheet) + return; + + [CPTimer scheduledTimerWithTimeInterval:0.1 + target:self + selector:@selector(sheetAnimationDidEnd:) + userInfo:sheet + repeats:NO]; +} + +- (void)sheetShouldAnimateIn:(CPTimer)timer +{ + // can't open sheet while its open + if (_sheetContext["isOpening"]) + return; + + // can't open sheet while its closing + if (_sheetContext["isClosing"]) + { + _sheetContext["shouldOpen"] = YES; + return; + } + + var aSheet = [timer userInfo]; + var sheetFrame = [aSheet frame], frame = [self frame], sheetContent = [aSheet contentView]; @@ -2294,47 +2365,68 @@ CPTexturedBackgroundWindowMask [aSheet orderFront:self]; [aSheet setFrame:startFrame display:YES animate:NO]; _sheetContext["opened"] = YES; - + _sheetContext["shouldClose"] = NO; + _sheetContext["isOpening"] = YES; + [aSheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseOut]; // Should run the main loop here until _isAnimating = FALSE + + // NOTE: cocoa doesn't make window key until animation is done, but a + // keypress while animating eventually gets to the window. Therefore, + // there must be a runloop specifically designed for sheets? [aSheet becomeKeyWindow]; } -/* @ignore */ -- (void)_detachSheetWindow +- (void)sheetShouldAnimateOut:(CPTimer)timer { - var sheet = [self attachedSheet], + var sheet = [timer userInfo], startFrame = [sheet frame], endFrame = CGRectMakeCopy(startFrame); + if (_sheetContext["isOpening"]) + { + // handle the case where we wanted to close the sheet while it's opening + _sheetContext["shouldClose"] = YES; + return; + } + + if (_sheetContext["isClosing"]) + return; + endFrame.size.height = 0; - _sheetContext["frame"] = startFrame; - var sheetContent = [sheet contentView]; [self _setUpMasksForView:sheetContent]; - + _sheetContext["opened"] = NO; + _sheetContext["frame"] = startFrame; + _sheetContext["isClosing"] = YES; + [sheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseIn]; } -/* @ignore */ -- (void)animationDidEnd:(id)anim +- (void)sheetAnimationDidEnd:(CPTimer)timer { - var sheet = _sheetContext["sheet"]; - if (anim._window != sheet) - return; + //CPLog("%@ %@", [self class], _cmd); + var sheet = [timer userInfo]; + + _sheetContext["isOpening"] = NO; + _sheetContext["isClosing"] = NO; + var sheetContent = [sheet contentView]; if (_sheetContext["opened"] === YES) { [self _restoreMasksForView:sheetContent]; + + if (_sheetContext["shouldClose"] === YES) + [self _detachSheetWindow]; + return; } - [CPApp stopModal]; [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidEndSheetNotification object:self]; [sheet orderOut:self]; @@ -2348,7 +2440,7 @@ CPTexturedBackgroundWindowMask endSelector = _sheetContext["endSelector"], returnCode = _sheetContext["returnCode"], contextInfo = _sheetContext["contextInfo"]; - + _sheetContext = nil; sheet._parentView = nil; From 06348bbe0b574ed88a1f552e0099c949922fa1b0 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Tue, 24 Apr 2012 20:54:09 -0400 Subject: [PATCH 05/22] -keep parent window behind sheet when orderFront: on sheet or left mouse down on parent window --- AppKit/CPWindow/CPWindow.j | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 994196afd..08ee7ec13 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -830,6 +830,10 @@ CPTexturedBackgroundWindowMask - (void)orderFront:(id)aSender { #if PLATFORM(DOM) + // -dw- if a sheet is clicked, the parent window should come up too + if ([self isSheet]) + [_parentView orderFront:self]; + [_platformWindow orderFront:self]; [_platformWindow order:CPWindowAbove window:self relativeTo:nil]; #endif @@ -1511,12 +1515,18 @@ CPTexturedBackgroundWindowMask // It is not clear what events should be passed to the view, perhaps all? // CPLeftMouseDown is needed for window moving and resizing to work. // CPMouseMoved is needed for rollover effects on title bar buttons. - if ([self attachedSheet]) + var sheet = [self attachedSheet]; + if (sheet) { switch (type) { case CPLeftMouseDown: [_windowView mouseDown:anEvent]; + + // -dw- if the window is clicked, the sheet should come to front, and become key, + // and the window should be immediately behind + [self orderFront:self]; + [sheet makeKeyAndOrderFront:self]; break; case CPMouseMoved: [_windowView mouseMoved:anEvent]; From 0f43cdee00b2aa1c50b56daec0f5daad2307a5dd Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Wed, 25 Apr 2012 21:04:38 -0400 Subject: [PATCH 06/22] -sheet attached to modal window runs in modal context -events in modal run loop get passed to sheet's parent window, so it can move and resize --- AppKit/CPApplication.j | 4 +++- AppKit/CPWindow/CPWindow.j | 13 +++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 1e7a618ae..64c49d71f 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -1181,7 +1181,9 @@ _CPRunModalLoop = function(anEvent) var theWindow = [anEvent window], modalSession = CPApp._currentSession; - if (theWindow == modalSession._window || [theWindow worksWhenModal]) + if (theWindow == modalSession._window || + [theWindow worksWhenModal] || + [theWindow attachedSheet] == modalSession._window) [theWindow sendEvent:anEvent]; } diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 08ee7ec13..d10a203d7 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -2369,8 +2369,14 @@ CPTexturedBackgroundWindowMask [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowWillBeginSheetNotification object:self]; - // old behavior; in Cocoa, sheets are not modal by default - //[CPApp runModalForWindow:aSheet]; + // if sheet is attached to a modal window, the sheet runs + // as if itself and the parent window are modal + aSheet._isModal = NO; + if ([CPApp modalWindow]===self) + { + [CPApp runModalForWindow:aSheet]; + aSheet._isModal = YES; + } [aSheet orderFront:self]; [aSheet setFrame:startFrame display:YES animate:NO]; @@ -2454,6 +2460,9 @@ CPTexturedBackgroundWindowMask _sheetContext = nil; sheet._parentView = nil; + if (sheet._isModal) + [CPApp stopModal]; + if (delegate != nil && endSelector != nil) objj_msgSend(delegate, endSelector, sheet, returnCode, contextInfo); } From ce6444c30ee9dbf0b3988c779bb576134da744ef Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 28 Apr 2012 10:09:38 -0400 Subject: [PATCH 07/22] -implement CPWindow sheet notifications on delegate -raise error when window already has a sheet, or attaching sheet to a sheet --- AppKit/CPApplication.j | 13 +++++++++++++ AppKit/CPWindow/CPWindow.j | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 64c49d71f..a652f6915 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -933,6 +933,19 @@ CPRunContinuesResponse = -1002; return; } + if ([aWindow attachedSheet]) + { + [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: already has a sheet"]; + return; + } + + if ([aWindow isSheet]) + { + [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: cannot be a sheet"]; + return; + } + + [aWindow orderFront:self]; [aSheet setPlatformWindow:[aWindow platformWindow]]; [aWindow _attachSheet:aSheet modalDelegate:aModalDelegate didEndSelector:aDidEndSelector contextInfo:aContextInfo]; diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index d10a203d7..e0c10d082 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -1224,6 +1224,8 @@ CPTexturedBackgroundWindowMask [defaultCenter removeObserver:_delegate name:CPWindowDidResignMainNotification object:self]; [defaultCenter removeObserver:_delegate name:CPWindowDidMoveNotification object:self]; [defaultCenter removeObserver:_delegate name:CPWindowDidResizeNotification object:self]; + [defaultCenter removeObserver:_delegate name:CPWindowWillBeginSheetNotification object:self]; + [defaultCenter removeObserver:_delegate name:CPWindowDidEndSheetNotification object:self]; _delegate = aDelegate; _delegateRespondsToWindowWillReturnUndoManagerSelector = [_delegate respondsToSelector:@selector(windowWillReturnUndoManager:)]; @@ -1269,6 +1271,20 @@ CPTexturedBackgroundWindowMask selector:@selector(windowDidResize:) name:CPWindowDidResizeNotification object:self]; + + if ([_delegate respondsToSelector:@selector(windowWillBeginSheet:)]) + [defaultCenter + addObserver:_delegate + selector:@selector(windowWillBeginSheet:) + name:CPWindowWillBeginSheetNotification + object:self]; + + if ([_delegate respondsToSelector:@selector(windowDidEndSheet:)]) + [defaultCenter + addObserver:_delegate + selector:@selector(windowDidEndSheet:) + name:CPWindowDidEndSheetNotification + object:self]; } /*! @@ -2367,6 +2383,7 @@ CPTexturedBackgroundWindowMask startFrame = CGRectMake(originx, originy, sheetFrame.size.width, 0), endFrame = CGRectMake(originx, originy, sheetFrame.size.width, sheetFrame.size.height); + [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowWillBeginSheetNotification object:self]; // if sheet is attached to a modal window, the sheet runs From 8bc4a287a66b6ec80461eb194a8cd7de7d9caafa Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 28 Apr 2012 11:31:01 -0400 Subject: [PATCH 08/22] -update docs for sheet notifications --- AppKit/CPWindow/CPWindow.j | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index e0c10d082..7143fea1a 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -257,6 +257,20 @@ var CPWindowActionMessageKeys = [ @param window the window to close @return \c YES allows the window to close. \c NO vetoes the close operation and leaves the window open. + + @delegate -(BOOL)windowWillBeginSheet:(CPNotification)notification; + Sent from the notification center before sheet is visible on + the delegate's window. + @param notification contains information about the event + + @delegate -(BOOL)windowDidEndSheet:(CPNotification)notification; + Sent from the notification center when an attached sheet on the + delegate's window has been animated out. Called before the + sheet's didEndSelector. + @param notification contains information about the event + + @return \c YES allows the window to close. \c NO + vetoes the close operation and leaves the window open. */ @implementation CPWindow : CPResponder { From 8fd5f30b870c66d5db72bade315dcc945da449fd Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 28 Apr 2012 20:28:09 -0400 Subject: [PATCH 09/22] -call orderOut: to dismiss the alert sheet --- AppKit/CPAlert.j | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AppKit/CPAlert.j b/AppKit/CPAlert.j index 832c06443..c5ed7e7fe 100644 --- a/AppKit/CPAlert.j +++ b/AppKit/CPAlert.j @@ -631,7 +631,10 @@ CPCriticalAlertStyle = 2; - (@action)_takeReturnCodeFrom:(id)aSender { if ([_window isSheet]) + { [CPApp endSheet:_window returnCode:[aSender tag]]; + [_window orderOut:nil]; + } else { [CPApp abortModal]; From 66f55df44ad67762d93de4893b5f5763834b0c4a Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 28 Apr 2012 20:32:13 -0400 Subject: [PATCH 10/22] -use _endSheet to end sheets -do not call orderFront: if the sheet is already visible --- AppKit/CPApplication.j | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index a652f6915..374e6159e 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -933,21 +933,19 @@ CPRunContinuesResponse = -1002; return; } - if ([aWindow attachedSheet]) - { - [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: already has a sheet"]; - return; - } - if ([aWindow isSheet]) { [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: cannot be a sheet"]; return; } - - - [aWindow orderFront:self]; - [aSheet setPlatformWindow:[aWindow platformWindow]]; + + // -dw- if a sheet is already visible, we skip this since it serves no purpose and causes + // orderOut: to be called on the sheet, which is not what we want. + if (![aWindow isVisible]) + { + [aWindow orderFront:self]; + [aSheet setPlatformWindow:[aWindow platformWindow]]; + } [aWindow _attachSheet:aSheet modalDelegate:aModalDelegate didEndSelector:aDidEndSelector contextInfo:aContextInfo]; } @@ -976,7 +974,7 @@ CPRunContinuesResponse = -1002; if (context != nil && context["sheet"] === sheet) { context["returnCode"] = returnCode; - [aWindow _detachSheetWindow]; + [aWindow _endSheet]; return; } } From c71f5baef263facf8ed62b501283395cc7da8f75 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 28 Apr 2012 20:36:10 -0400 Subject: [PATCH 11/22] -implement orderOut: to control sheet dismissal -lots of comments and a few debug prints --- AppKit/CPWindow/CPWindow.j | 278 ++++++++++++++++++++++++------------- 1 file changed, 181 insertions(+), 97 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 7143fea1a..fff020616 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -265,7 +265,7 @@ var CPWindowActionMessageKeys = [ @delegate -(BOOL)windowDidEndSheet:(CPNotification)notification; Sent from the notification center when an attached sheet on the - delegate's window has been animated out. Called before the + delegate's window has been animated out. Called after the sheet's didEndSelector. @param notification contains information about the event @@ -347,6 +347,7 @@ var CPWindowActionMessageKeys = [ CPDictionary _sheetContext; CPWindow _parentView; BOOL _isSheet; + CPDictionary _nextSheetContext; _CPWindowFrameAnimation _frameAnimation; } @@ -417,10 +418,14 @@ CPTexturedBackgroundWindowMask _isFullPlatformWindow = NO; _registeredDraggedTypes = [CPSet set]; _registeredDraggedTypesArray = []; - _isSheet = NO; _acceptsMouseMovedEvents = YES; _isMovable = YES; + _isSheet = NO; + _sheetContext = nil; + _nextSheetContext = nil; + _parentView = nil; + // Set up our window number. _windowNumber = [CPApp._windows count]; CPApp._windows[_windowNumber] = self; @@ -844,10 +849,10 @@ CPTexturedBackgroundWindowMask - (void)orderFront:(id)aSender { #if PLATFORM(DOM) - // -dw- if a sheet is clicked, the parent window should come up too - if ([self isSheet]) - [_parentView orderFront:self]; - + // -dw- if a sheet is clicked, the parent window should come up too + if ([self isSheet]) + [_parentView orderFront:self]; + [_platformWindow orderFront:self]; [_platformWindow order:CPWindowAbove window:self relativeTo:nil]; #endif @@ -878,6 +883,15 @@ CPTexturedBackgroundWindowMask */ - (void)orderOut:(id)aSender { + if ([self isSheet]) + { + CPLog("%@ %@", [self class], _cmd); + + // -dw- as in Cocoa, orderOut: detaches the sheet and animates out + [self._parentView _detachSheetWindow]; + return; + } + #if PLATFORM(DOM) if ([self _sharesChromeWithPlatformWindow]) [_platformWindow orderOut:self]; @@ -2314,126 +2328,211 @@ CPTexturedBackgroundWindowMask [attachedSheet setFrame:sheetFrame display:YES animate:NO]; } -/* @ignore */ -- (void)_attachSheet:(CPWindow)aSheet modalDelegate:(id)aModalDelegate didEndSelector:(SEL)aDidEndSelector contextInfo:(id)aContextInfo +/* @ignore + Starting point for sheet session, called from CPApplication beginSheet: +*/ +- (void)_attachSheet:(CPWindow)aSheet modalDelegate:(id)aModalDelegate + didEndSelector:(SEL)aDidEndSelector contextInfo:(id)aContextInfo { + CPLog("%@ %@", [self class], _cmd); + + // the willAnimateOut flag is used to handle a sheet that is orderedOut, but + // has not finished animating yet. In this case, we allow the sheet + // attachment, and run the sheet as soon as the animation completes. + if (_sheetContext && !_sheetContext["willAnimateOut"]) + { + [CPException raise:CPInternalInconsistencyException + reason:@"The target window of beginSheet: already has a sheet, did you forget orderOut: ?"]; + return; + } + + // it is possible to call beginSheet: multiple times while animating a sheet out, because + // we do not block in _detachSheetWindow + if (_sheetContext && _nextSheetContext) + { + [CPException raise:CPInternalInconsistencyException + reason:@"The target window of beginSheet: already has another sheet queued for attachment"]; + return; + } + var sheetFrame = [aSheet frame]; + var sheetContext = {"sheet":aSheet, "modalDelegate":aModalDelegate, "endSelector":aDidEndSelector, + "contextInfo":aContextInfo, "frame":CGRectMakeCopy(sheetFrame), "returnCode":-1, + "opened": NO }; - _sheetContext = {"sheet":aSheet, "modalDelegate":aModalDelegate, "endSelector":aDidEndSelector, "contextInfo":aContextInfo, "frame":CGRectMakeCopy(sheetFrame), "returnCode":-1, "opened": NO}; - - [self _attachSheetWindow:aSheet]; + if (_sheetContext) + { + // _nextSheetContext will animate in when the current context animates out + _nextSheetContext = sheetContext; + } + else + { + _sheetContext = sheetContext; + [self _attachSheetWindow]; + } } -/* @ignore */ -- (void)_attachSheetWindow:(CPWindow)sheet +/* @ignore + Called to animate the sheet in. The timer seems to solve a bug where sheets would + be partially animated under certain conditions. +*/ +- (void)_attachSheetWindow { - // fixme: a run loop for the sheet animations should be created, - // that defers all other events until the animation is completed, - // the timer will assure that the animation timer fires on the - // special sheet runloop + CPLog("%@ %@", [self class], _cmd); + // it would be ideal to block here and spin an event loop, until attach is complete [CPTimer scheduledTimerWithTimeInterval:0.0 target:self - selector:@selector(sheetShouldAnimateIn:) - userInfo:sheet + selector:@selector(_sheetShouldAnimateIn:) + userInfo:nil repeats:NO]; } -/* @ignore */ +/* @ignore + Called to end the sheet. Note that orderOut: is needed to animate the sheet out, as in Cocoa. + The sheet isn't completely gone until _cleanupSheetWindow gets called. +*/ +- (void)_endSheet +{ + CPLog("%@ %@", [self class], _cmd); + + var sheet = _sheetContext["sheet"], + delegate = _sheetContext["modalDelegate"], + endSelector = _sheetContext["endSelector"]; + + if (delegate != nil && endSelector != nil) + objj_msgSend(delegate, endSelector, sheet, _sheetContext["returnCode"], _sheetContext["contextInfo"]); +} + +/* @ignore + Called to animate the sheet out. If called while animating in, schedules an animate + out at completion +*/ - (void)_detachSheetWindow { - var sheet = [self attachedSheet]; - - if (!sheet) - return; + CPLog("%@ %@", [self class], _cmd); + _sheetContext["willAnimateOut"] = YES; + + // it would be ideal to block here and spin the event loop, until attach is complete [CPTimer scheduledTimerWithTimeInterval:0.0 target:self - selector:@selector(sheetShouldAnimateOut:) - userInfo:sheet + selector:@selector(_sheetShouldAnimateOut:) + userInfo:nil repeats:NO]; } +/* @ignore + Called to cleanup sheet, when we are definitely done with it +*/ +- (void)_cleanupSheetWindow +{ + CPLog("%@ %@", [self class], _cmd); + + var sheet = _sheetContext["sheet"], + lastFrame = _sheetContext["frame"]; + + [sheet setFrame:lastFrame]; + [self _restoreMasksForView:[sheet contentView]]; + + // if the parent window is modal, the sheet started its own modal session + if (sheet._isModal) + [CPApp stopModal]; + + _sheetContext = nil; + sheet._parentView = nil; + sheet._isSheet = NO; + + [sheet orderOut:self]; + + [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidEndSheetNotification object:self]; + + if (_nextSheetContext) + { + _sheetContext = _nextSheetContext; + _nextSheetContext = nil; + [self _attachSheetWindow]; + } +} + /* @ignore */ - (void)animationDidEnd:(id)anim { + CPLog("%@ %@", [self class], _cmd); + var sheet = _sheetContext["sheet"]; if (anim._window != sheet) return; - [CPTimer scheduledTimerWithTimeInterval:0.1 + [CPTimer scheduledTimerWithTimeInterval:0.0 target:self - selector:@selector(sheetAnimationDidEnd:) - userInfo:sheet + selector:@selector(_sheetAnimationDidEnd:) + userInfo:nil repeats:NO]; } -- (void)sheetShouldAnimateIn:(CPTimer)timer +/* @ignore */ +- (void)_sheetShouldAnimateIn:(CPTimer)timer { - // can't open sheet while its open - if (_sheetContext["isOpening"]) + CPLog("%@ %@", [self class], _cmd); + + // can't open sheet while opening or closing animation is going on + if (_sheetContext["isOpening"] || + _sheetContext["isClosing"]) return; - - // can't open sheet while its closing - if (_sheetContext["isClosing"]) - { - _sheetContext["shouldOpen"] = YES; - return; - } - var aSheet = [timer userInfo]; + var sheet = _sheetContext["sheet"] + sheetFrame = [sheet frame], + frame = [self frame]; + + [self _setUpMasksForView:[sheet contentView]]; - var sheetFrame = [aSheet frame], - frame = [self frame], - sheetContent = [aSheet contentView]; - - [self _setUpMasksForView:sheetContent]; - - aSheet._isSheet = YES; - aSheet._parentView = self; + sheet._isSheet = YES; + sheet._parentView = self; var originx = frame.origin.x + FLOOR((frame.size.width - sheetFrame.size.width) / 2), originy = frame.origin.y + [[self contentView] frame].origin.y, startFrame = CGRectMake(originx, originy, sheetFrame.size.width, 0), endFrame = CGRectMake(originx, originy, sheetFrame.size.width, sheetFrame.size.height); - [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowWillBeginSheetNotification object:self]; // if sheet is attached to a modal window, the sheet runs // as if itself and the parent window are modal - aSheet._isModal = NO; + sheet._isModal = NO; if ([CPApp modalWindow]===self) { - [CPApp runModalForWindow:aSheet]; - aSheet._isModal = YES; + [CPApp runModalForWindow:sheet]; + sheet._isModal = YES; } - [aSheet orderFront:self]; - [aSheet setFrame:startFrame display:YES animate:NO]; + [sheet orderFront:self]; + [sheet setFrame:startFrame display:YES animate:NO]; + _sheetContext["opened"] = YES; _sheetContext["shouldClose"] = NO; _sheetContext["isOpening"] = YES; - [aSheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseOut]; + [sheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseOut]; - // Should run the main loop here until _isAnimating = FALSE // NOTE: cocoa doesn't make window key until animation is done, but a // keypress while animating eventually gets to the window. Therefore, // there must be a runloop specifically designed for sheets? - [aSheet becomeKeyWindow]; + [sheet becomeKeyWindow]; } -- (void)sheetShouldAnimateOut:(CPTimer)timer +- (void)_sheetShouldAnimateOut:(CPTimer)timer { - var sheet = [timer userInfo], + CPLog("%@ %@", [self class], _cmd); + + var sheet = _sheetContext["sheet"], startFrame = [sheet frame], endFrame = CGRectMakeCopy(startFrame); if (_sheetContext["isOpening"]) { - // handle the case where we wanted to close the sheet while it's opening + // allow sheet to be closed while opening, it will close when animate in completes _sheetContext["shouldClose"] = YES; return; } @@ -2441,61 +2540,46 @@ CPTexturedBackgroundWindowMask if (_sheetContext["isClosing"]) return; - endFrame.size.height = 0; - - var sheetContent = [sheet contentView]; - [self _setUpMasksForView:sheetContent]; - _sheetContext["opened"] = NO; _sheetContext["frame"] = startFrame; _sheetContext["isClosing"] = YES; - [sheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseIn]; + // the parent window can be orderedOut to disable the sheet animate out, as in Cocoa + if ([self isVisible]) + { + endFrame.size.height = 0; + [self _setUpMasksForView:[sheet contentView]]; + [sheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseIn]; + } + else + { + [self _sheetAnimationDidEnd:nil]; + } } -- (void)sheetAnimationDidEnd:(CPTimer)timer +- (void)_sheetAnimationDidEnd:(CPTimer)timer { - //CPLog("%@ %@", [self class], _cmd); + CPLog("%@ %@", [self class], _cmd); - var sheet = [timer userInfo]; + var sheet = _sheetContext["sheet"]; _sheetContext["isOpening"] = NO; _sheetContext["isClosing"] = NO; - var sheetContent = [sheet contentView]; - if (_sheetContext["opened"] === YES) { - [self _restoreMasksForView:sheetContent]; + // sheet is open and completely visible + [self _restoreMasksForView:[sheet contentView]]; + // we wanted to close the sheet while it animated in, do that now if (_sheetContext["shouldClose"] === YES) [self _detachSheetWindow]; - - return; } - - [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidEndSheetNotification object:self]; - - [sheet orderOut:self]; - - var lastFrame = _sheetContext["frame"]; - [sheet setFrame:lastFrame]; - - [self _restoreMasksForView:sheetContent]; - - var delegate = _sheetContext["modalDelegate"], - endSelector = _sheetContext["endSelector"], - returnCode = _sheetContext["returnCode"], - contextInfo = _sheetContext["contextInfo"]; - - _sheetContext = nil; - sheet._parentView = nil; - - if (sheet._isModal) - [CPApp stopModal]; - - if (delegate != nil && endSelector != nil) - objj_msgSend(delegate, endSelector, sheet, returnCode, contextInfo); + else + { + // sheet is closed and not visible + [self _cleanupSheetWindow]; + } } - (void)_setUpMasksForView:(CPView)aView From 1e6f0090dade9d18c01ff4065a39d77967fcd027 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sun, 6 May 2012 12:06:23 -0400 Subject: [PATCH 12/22] -allow any window to become a sheet --- AppKit/CPWindow/CPWindow.j | 4 +- AppKit/CPWindow/_CPDocModalWindowView.j | 5 +++ AppKit/CPWindow/_CPHUDWindowView.j | 34 +++++++++++++++- AppKit/CPWindow/_CPStandardWindowView.j | 54 +++++++++++++++++++++---- AppKit/CPWindow/_CPWindowView.j | 19 +++++++++ 5 files changed, 106 insertions(+), 10 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index fff020616..fb2b182e8 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -2395,7 +2395,7 @@ CPTexturedBackgroundWindowMask - (void)_endSheet { CPLog("%@ %@", [self class], _cmd); - + var sheet = _sheetContext["sheet"], delegate = _sheetContext["modalDelegate"], endSelector = _sheetContext["endSelector"]; @@ -2445,6 +2445,8 @@ CPTexturedBackgroundWindowMask [sheet orderOut:self]; + [sheet._windowView _enableSheet:NO]; + [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidEndSheetNotification object:self]; if (_nextSheetContext) diff --git a/AppKit/CPWindow/_CPDocModalWindowView.j b/AppKit/CPWindow/_CPDocModalWindowView.j index ae691300d..3758527e3 100644 --- a/AppKit/CPWindow/_CPDocModalWindowView.j +++ b/AppKit/CPWindow/_CPDocModalWindowView.j @@ -54,4 +54,9 @@ var _CPStandardWindowViewBodyBackgroundColor = nil; return aContentRect; } +- (void)_enableSheet:(BOOL)enable +{ + // do nothing, already a sheet +} + @end \ No newline at end of file diff --git a/AppKit/CPWindow/_CPHUDWindowView.j b/AppKit/CPWindow/_CPHUDWindowView.j index d84ad6e60..abb1385e5 100644 --- a/AppKit/CPWindow/_CPHUDWindowView.j +++ b/AppKit/CPWindow/_CPHUDWindowView.j @@ -208,8 +208,40 @@ var HUD_TITLEBAR_HEIGHT = 26.0; [_titleField setFrame:CGRectMake(20.0, 3.0, width - 40.0, CGRectGetHeight([_titleField frame]))]; var maxY = [self toolbarMaxY]; + if ([_titleField isHidden]) + maxY -= ([self toolbarOffset]).height; - [[theWindow contentView] setFrameOrigin:CGPointMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY)]; + //[[theWindow contentView] setFrameOrigin:CGPointMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY)]; + + var contentRect = CGRectMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY); + + [[theWindow contentView] setFrame:contentRect]; +} + +- (void)_enableSheet:(BOOL)enable +{ + [super _enableSheet:enable]; + + // convert window to "sheet mode" and back again + [_closeButton setHidden:enable]; + [_titleField setHidden:enable]; + + // resize the window + var window = [self window], + frame = [window frame]; + + var dy = ([self toolbarOffset]).height; + if (enable) + dy = -dy; + + var newHeight = CGRectGetMaxY(frame) + dy; + var newWidth = CGRectGetMaxX(frame); + frame.size.height += dy; + + [self setFrameSize:CGSizeMake(newWidth, newHeight)]; + [self tile]; + [window setFrame:frame display:NO animate:NO]; + [window setMovableByWindowBackground:!enable]; } @end diff --git a/AppKit/CPWindow/_CPStandardWindowView.j b/AppKit/CPWindow/_CPStandardWindowView.j index abd7e389d..91e81abd7 100644 --- a/AppKit/CPWindow/_CPStandardWindowView.j +++ b/AppKit/CPWindow/_CPStandardWindowView.j @@ -147,8 +147,11 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, return _CPStandardWindowViewTitleBackgroundColor; } + + (CGRect)contentRectForFrameRect:(CGRect)aFrameRect { + CPLog("%@ %@: static", [self class], _cmd); + var contentRect = CGRectMakeCopy(aFrameRect), titleBarHeight = [self titleBarHeight] + 1.0; @@ -160,6 +163,8 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, + (CGRect)frameRectForContentRect:(CGRect)aContentRect { + CPLog("%@ %@: static", [self class], _cmd); + var frameRect = CGRectMakeCopy(aContentRect), titleBarHeight = [self titleBarHeight] + 1.0; @@ -181,7 +186,7 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, if ([theToolbar isVisible]) { - toolbarHeight = CGRectGetHeight([[theToolbar _toolbarView] frame]); + var toolbarHeight = CGRectGetHeight([[theToolbar _toolbarView] frame]); contentRect.origin.y += toolbarHeight; contentRect.size.height -= toolbarHeight; @@ -330,11 +335,13 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, [_headView setFrameSize:CGSizeMake(width, [self toolbarMaxY])]; [_dividerView setFrame:CGRectMake(0.0, CGRectGetMaxY([_headView frame]), width, 1.0)]; - - var dividerMaxY = CGRectGetMaxY([_dividerView frame]); - + + var dividerMaxY = 0; + if (![_dividerView isHidden]) + dividerMaxY = CGRectGetMaxY([_dividerView frame]); + [_bodyView setFrame:CGRectMake(0.0, dividerMaxY, width, CGRectGetHeight(bounds) - dividerMaxY)]; - + var leftOffset = 8; if (_closeButton) @@ -344,7 +351,9 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, [_titleField setFrame:CGRectMake(leftOffset, 5.0, width - leftOffset * 2.0, CGRectGetHeight([_titleField frame]))]; - [[theWindow contentView] setFrameOrigin:CGPointMake(0.0, CGRectGetMaxY([_dividerView frame]))]; + var contentRect = CGRectMake(0.0, dividerMaxY, width, CGRectGetHeight([_bodyView frame])); + + [[theWindow contentView] setFrame:contentRect]; } /* - (void)setAnimatingToolbar:(BOOL)isAnimatingToolbar @@ -401,10 +410,39 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, - (void)mouseDown:(CPEvent)anEvent { - if (CGRectContainsPoint([_headView frame], [self convertPoint:[anEvent locationInWindow] fromView:nil])) - return [self trackMoveWithEvent:anEvent]; + if (![_headView isHidden]) + if (CGRectContainsPoint([_headView frame], [self convertPoint:[anEvent locationInWindow] fromView:nil])) + return [self trackMoveWithEvent:anEvent]; [super mouseDown:anEvent]; } +- (void)_enableSheet:(BOOL)enable +{ + [super _enableSheet:enable]; + + // convert window to "sheet mode" and back again + [_headView setHidden:enable]; + [_dividerView setHidden:enable]; + [_closeButton setHidden:enable]; + [_minimizeButton setHidden:enable]; + [_titleField setHidden:enable]; + + // resize the window + var window = [self window], + frame = [window frame]; + + var dy = CGRectGetHeight([_headView frame]) + CGRectGetHeight([_dividerView frame]); + if (enable) + dy = -dy; + + var newHeight = CGRectGetMaxY(frame) + dy; + var newWidth = CGRectGetMaxX(frame); + frame.size.height += dy; + + [self setFrameSize:CGSizeMake(newWidth, newHeight)]; + [self tile]; + [window setFrame:frame display:NO animate:NO]; +} + @end diff --git a/AppKit/CPWindow/_CPWindowView.j b/AppKit/CPWindow/_CPWindowView.j index fcf290d78..eaf52f12e 100644 --- a/AppKit/CPWindow/_CPWindowView.j +++ b/AppKit/CPWindow/_CPWindowView.j @@ -41,6 +41,8 @@ var _CPWindowViewResizeIndicatorImage = nil; CGPoint _mouseDraggedPoint; CGRect _cachedScreenFrame; + + CPView _sheetShadowView; } + (void)initialize @@ -380,4 +382,21 @@ var _CPWindowViewResizeIndicatorImage = nil; [self addSubview:_resizeIndicator]; } +- (void)_enableSheet:(BOOL)enable +{ + if (enable) + { + var bundle = [CPBundle bundleForClass:[CPWindow class]]; + _sheetShadowView = [[CPView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth([self bounds]), 8)]; + [_sheetShadowView setAutoresizingMask:CPViewWidthSizable]; + [_sheetShadowView setBackgroundColor:[CPColor colorWithPatternImage:[[CPImage alloc] + initWithContentsOfFile:[bundle pathForResource:@"CPWindow/CPWindowAttachedSheetShadow.png"] size:CGSizeMake(9,8)]]]; + [self addSubview:_sheetShadowView]; + } + else + { + [_sheetShadowView removeFromSuperview]; + } +} + @end From 53798c1545e439b0826b9ec67ed3cdce420427d9 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sun, 6 May 2012 12:07:02 -0400 Subject: [PATCH 13/22] -allow any window to become a sheet --- AppKit/CPApplication.j | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 374e6159e..1237f65e3 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -926,19 +926,21 @@ CPRunContinuesResponse = -1002; */ - (void)beginSheet:(CPWindow)aSheet modalForWindow:(CPWindow)aWindow modalDelegate:(id)aModalDelegate didEndSelector:(SEL)aDidEndSelector contextInfo:(id)aContextInfo { - var styleMask = [aSheet styleMask]; + /*var styleMask = [aSheet styleMask]; if (!(styleMask & CPDocModalWindowMask)) { [CPException raise:CPInternalInconsistencyException reason:@"Currently only CPDocModalWindowMask style mask is supported for attached sheets"]; return; - } + }*/ if ([aWindow isSheet]) { [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: cannot be a sheet"]; return; } - + + [aSheet._windowView _enableSheet:YES]; + // -dw- if a sheet is already visible, we skip this since it serves no purpose and causes // orderOut: to be called on the sheet, which is not what we want. if (![aWindow isVisible]) From 8c1d147319725fd7cb5a6e7d947915d5643ee7b2 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 12 May 2012 14:22:54 -0400 Subject: [PATCH 14/22] -remove next sheet context hack -order of notifications/didEndSelect are correct now --- AppKit/CPApplication.j | 7 -- AppKit/CPWindow/CPWindow.j | 109 ++++++++++-------------- AppKit/CPWindow/_CPHUDWindowView.j | 1 - AppKit/CPWindow/_CPStandardWindowView.j | 11 ++- 4 files changed, 49 insertions(+), 79 deletions(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 1237f65e3..55d7fa5dd 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -926,13 +926,6 @@ CPRunContinuesResponse = -1002; */ - (void)beginSheet:(CPWindow)aSheet modalForWindow:(CPWindow)aWindow modalDelegate:(id)aModalDelegate didEndSelector:(SEL)aDidEndSelector contextInfo:(id)aContextInfo { - /*var styleMask = [aSheet styleMask]; - if (!(styleMask & CPDocModalWindowMask)) - { - [CPException raise:CPInternalInconsistencyException reason:@"Currently only CPDocModalWindowMask style mask is supported for attached sheets"]; - return; - }*/ - if ([aWindow isSheet]) { [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: cannot be a sheet"]; diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index fb2b182e8..b2180fde8 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -347,8 +347,6 @@ var CPWindowActionMessageKeys = [ CPDictionary _sheetContext; CPWindow _parentView; BOOL _isSheet; - CPDictionary _nextSheetContext; - _CPWindowFrameAnimation _frameAnimation; } @@ -423,7 +421,6 @@ CPTexturedBackgroundWindowMask _isSheet = NO; _sheetContext = nil; - _nextSheetContext = nil; _parentView = nil; // Set up our window number. @@ -772,7 +769,6 @@ CPTexturedBackgroundWindowMask size.width = newSize.width; size.height = newSize.height; - //CPLog.debug("%@ %@ view=%dx%d", [self class], _cmd, size.width, size.height); [_windowView setFrameSize:size]; if (_hasShadow) @@ -885,8 +881,6 @@ CPTexturedBackgroundWindowMask { if ([self isSheet]) { - CPLog("%@ %@", [self class], _cmd); - // -dw- as in Cocoa, orderOut: detaches the sheet and animates out [self._parentView _detachSheetWindow]; return; @@ -2334,42 +2328,20 @@ CPTexturedBackgroundWindowMask - (void)_attachSheet:(CPWindow)aSheet modalDelegate:(id)aModalDelegate didEndSelector:(SEL)aDidEndSelector contextInfo:(id)aContextInfo { - CPLog("%@ %@", [self class], _cmd); - - // the willAnimateOut flag is used to handle a sheet that is orderedOut, but - // has not finished animating yet. In this case, we allow the sheet - // attachment, and run the sheet as soon as the animation completes. - if (_sheetContext && !_sheetContext["willAnimateOut"]) + if (_sheetContext) { [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: already has a sheet, did you forget orderOut: ?"]; return; } - // it is possible to call beginSheet: multiple times while animating a sheet out, because - // we do not block in _detachSheetWindow - if (_sheetContext && _nextSheetContext) - { - [CPException raise:CPInternalInconsistencyException - reason:@"The target window of beginSheet: already has another sheet queued for attachment"]; - return; - } - var sheetFrame = [aSheet frame]; - var sheetContext = {"sheet":aSheet, "modalDelegate":aModalDelegate, "endSelector":aDidEndSelector, + + _sheetContext = {"sheet":aSheet, "modalDelegate":aModalDelegate, "endSelector":aDidEndSelector, "contextInfo":aContextInfo, "frame":CGRectMakeCopy(sheetFrame), "returnCode":-1, "opened": NO }; - if (_sheetContext) - { - // _nextSheetContext will animate in when the current context animates out - _nextSheetContext = sheetContext; - } - else - { - _sheetContext = sheetContext; - [self _attachSheetWindow]; - } + [self _attachSheetWindow]; } /* @ignore @@ -2378,7 +2350,7 @@ CPTexturedBackgroundWindowMask */ - (void)_attachSheetWindow { - CPLog("%@ %@", [self class], _cmd); + _sheetContext["isAttached"] = YES; // it would be ideal to block here and spin an event loop, until attach is complete [CPTimer scheduledTimerWithTimeInterval:0.0 @@ -2394,14 +2366,19 @@ CPTexturedBackgroundWindowMask */ - (void)_endSheet { - CPLog("%@ %@", [self class], _cmd); - - var sheet = _sheetContext["sheet"], - delegate = _sheetContext["modalDelegate"], + var delegate = _sheetContext["modalDelegate"], endSelector = _sheetContext["endSelector"]; + // if the sheet has been ordered out, defer didEndSelector until after sheet animates out, + // this must be done since we cannot block an wait for the animation to complete if (delegate != nil && endSelector != nil) - objj_msgSend(delegate, endSelector, sheet, _sheetContext["returnCode"], _sheetContext["contextInfo"]); + { + if (_sheetContext["isAttached"]) + objj_msgSend(delegate, endSelector, _sheetContext["sheet"], _sheetContext["returnCode"], + _sheetContext["contextInfo"]); + else + _sheetContext["deferDidEndSelector"] = YES; + } } /* @ignore @@ -2410,9 +2387,7 @@ CPTexturedBackgroundWindowMask */ - (void)_detachSheetWindow { - CPLog("%@ %@", [self class], _cmd); - - _sheetContext["willAnimateOut"] = YES; + _sheetContext["isAttached"] = NO; // it would be ideal to block here and spin the event loop, until attach is complete [CPTimer scheduledTimerWithTimeInterval:0.0 @@ -2427,10 +2402,9 @@ CPTexturedBackgroundWindowMask */ - (void)_cleanupSheetWindow { - CPLog("%@ %@", [self class], _cmd); - var sheet = _sheetContext["sheet"], - lastFrame = _sheetContext["frame"]; + lastFrame = _sheetContext["frame"], + deferDidEnd = _sheetContext["deferDidEndSelector"]; [sheet setFrame:lastFrame]; [self _restoreMasksForView:[sheet contentView]]; @@ -2439,29 +2413,38 @@ CPTexturedBackgroundWindowMask if (sheet._isModal) [CPApp stopModal]; - _sheetContext = nil; - sheet._parentView = nil; - sheet._isSheet = NO; - - [sheet orderOut:self]; - + // restore the state of window before it was sheetified [sheet._windowView _enableSheet:NO]; + // close it + sheet._isSheet = NO; + [sheet orderOut:self]; + [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidEndSheetNotification object:self]; - if (_nextSheetContext) + if (deferDidEnd) { - _sheetContext = _nextSheetContext; - _nextSheetContext = nil; - [self _attachSheetWindow]; + var delegate = _sheetContext["modalDelegate"]; + selector = _sheetContext["endSelector"], + returnCode = _sheetContext["returnCode"], + contextInfo = _sheetContext["contextInfo"], + + // context must be destroyed, since didEnd might want to attach another sheet + _sheetContext = nil; + sheet._parentView = nil; + + objj_msgSend(delegate, selector, sheet, returnCode, contextInfo); + } + else + { + _sheetContext = nil; + sheet._parentView = nil; } } /* @ignore */ - (void)animationDidEnd:(id)anim { - CPLog("%@ %@", [self class], _cmd); - var sheet = _sheetContext["sheet"]; if (anim._window != sheet) return; @@ -2476,8 +2459,6 @@ CPTexturedBackgroundWindowMask /* @ignore */ - (void)_sheetShouldAnimateIn:(CPTimer)timer { - CPLog("%@ %@", [self class], _cmd); - // can't open sheet while opening or closing animation is going on if (_sheetContext["isOpening"] || _sheetContext["isClosing"]) @@ -2524,10 +2505,9 @@ CPTexturedBackgroundWindowMask [sheet becomeKeyWindow]; } +/* @ignore */ - (void)_sheetShouldAnimateOut:(CPTimer)timer { - CPLog("%@ %@", [self class], _cmd); - var sheet = _sheetContext["sheet"], startFrame = [sheet frame], endFrame = CGRectMakeCopy(startFrame); @@ -2559,20 +2539,19 @@ CPTexturedBackgroundWindowMask } } +/* @ignore */ - (void)_sheetAnimationDidEnd:(CPTimer)timer { - CPLog("%@ %@", [self class], _cmd); - var sheet = _sheetContext["sheet"]; - + _sheetContext["isOpening"] = NO; _sheetContext["isClosing"] = NO; - + if (_sheetContext["opened"] === YES) { // sheet is open and completely visible [self _restoreMasksForView:[sheet contentView]]; - + // we wanted to close the sheet while it animated in, do that now if (_sheetContext["shouldClose"] === YES) [self _detachSheetWindow]; diff --git a/AppKit/CPWindow/_CPHUDWindowView.j b/AppKit/CPWindow/_CPHUDWindowView.j index abb1385e5..f2cc01ff7 100644 --- a/AppKit/CPWindow/_CPHUDWindowView.j +++ b/AppKit/CPWindow/_CPHUDWindowView.j @@ -222,7 +222,6 @@ var HUD_TITLEBAR_HEIGHT = 26.0; { [super _enableSheet:enable]; - // convert window to "sheet mode" and back again [_closeButton setHidden:enable]; [_titleField setHidden:enable]; diff --git a/AppKit/CPWindow/_CPStandardWindowView.j b/AppKit/CPWindow/_CPStandardWindowView.j index 91e81abd7..474c57269 100644 --- a/AppKit/CPWindow/_CPStandardWindowView.j +++ b/AppKit/CPWindow/_CPStandardWindowView.j @@ -147,11 +147,8 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, return _CPStandardWindowViewTitleBackgroundColor; } - + (CGRect)contentRectForFrameRect:(CGRect)aFrameRect { - CPLog("%@ %@: static", [self class], _cmd); - var contentRect = CGRectMakeCopy(aFrameRect), titleBarHeight = [self titleBarHeight] + 1.0; @@ -163,8 +160,6 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, + (CGRect)frameRectForContentRect:(CGRect)aContentRect { - CPLog("%@ %@: static", [self class], _cmd); - var frameRect = CGRectMakeCopy(aContentRect), titleBarHeight = [self titleBarHeight] + 1.0; @@ -421,13 +416,17 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, { [super _enableSheet:enable]; - // convert window to "sheet mode" and back again [_headView setHidden:enable]; [_dividerView setHidden:enable]; [_closeButton setHidden:enable]; [_minimizeButton setHidden:enable]; [_titleField setHidden:enable]; + if (enable) + [_bodyView setBackgroundColor:[_CPDocModalWindowView bodyBackgroundColor]]; + else + [_bodyView setBackgroundColor:[[self class] bodyBackgroundColor]]; + // resize the window var window = [self window], frame = [window frame]; From 098f72651ce5682cf50c3bcf69a94ee12ac2f44f Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 12 May 2012 15:05:48 -0400 Subject: [PATCH 15/22] -correct documentation --- AppKit/CPWindow/CPWindow.j | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index b2180fde8..26d58da51 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -265,8 +265,7 @@ var CPWindowActionMessageKeys = [ @delegate -(BOOL)windowDidEndSheet:(CPNotification)notification; Sent from the notification center when an attached sheet on the - delegate's window has been animated out. Called after the - sheet's didEndSelector. + delegate's window has been animated out and is no longer visible. @param notification contains information about the event @return \c YES allows the window to close. \c NO From 1c18862e0f2b18801253c37448d06fe4291dd05f Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sun, 29 Jul 2012 12:54:34 -0400 Subject: [PATCH 16/22] -added manual test --- Tests/Manual/AttachedSheet2/AppController.j | 41 + Tests/Manual/AttachedSheet2/Info.plist | 10 + Tests/Manual/AttachedSheet2/Jakefile | 93 + .../AttachedSheet2/Resources/MainMenu.cib | 1 + .../AttachedSheet2/Resources/MainMenu.xib | 2810 +++++++++++++++++ .../AttachedSheet2/Resources/Window.cib | 1 + .../AttachedSheet2/Resources/Window.xib | 1646 ++++++++++ .../AttachedSheet2/Resources/spinner.gif | Bin 0 -> 1849 bytes .../AttachedSheet2/SheetWindowController.j | 468 +++ Tests/Manual/AttachedSheet2/index.html | 77 + Tests/Manual/AttachedSheet2/main.j | 19 + .../xcode/TestSheet.xcodeproj/project.pbxproj | 304 ++ .../contents.xcworkspacedata | 7 + .../xcode/TestSheet/AppDelegate.h | 16 + .../xcode/TestSheet/AppDelegate.m | 29 + .../xcode/TestSheet/SheetWindow.h | 13 + .../xcode/TestSheet/SheetWindow.m | 13 + .../xcode/TestSheet/SheetWindowController.h | 43 + .../xcode/TestSheet/SheetWindowController.m | 343 ++ .../xcode/TestSheet/TestSheet-Info.plist | 34 + .../xcode/TestSheet/TestSheet-Prefix.pch | 7 + .../xcode/TestSheet/en.lproj/Credits.rtf | 29 + .../TestSheet/en.lproj/InfoPlist.strings | 2 + .../AttachedSheet2/xcode/TestSheet/main.m | 14 + 24 files changed, 6020 insertions(+) create mode 100644 Tests/Manual/AttachedSheet2/AppController.j create mode 100644 Tests/Manual/AttachedSheet2/Info.plist create mode 100644 Tests/Manual/AttachedSheet2/Jakefile create mode 100644 Tests/Manual/AttachedSheet2/Resources/MainMenu.cib create mode 100644 Tests/Manual/AttachedSheet2/Resources/MainMenu.xib create mode 100644 Tests/Manual/AttachedSheet2/Resources/Window.cib create mode 100644 Tests/Manual/AttachedSheet2/Resources/Window.xib create mode 100644 Tests/Manual/AttachedSheet2/Resources/spinner.gif create mode 100644 Tests/Manual/AttachedSheet2/SheetWindowController.j create mode 100644 Tests/Manual/AttachedSheet2/index.html create mode 100644 Tests/Manual/AttachedSheet2/main.j create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.pbxproj create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.h create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.m create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.h create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.m create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.h create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.m create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Info.plist create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Prefix.pch create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/Credits.rtf create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/InfoPlist.strings create mode 100644 Tests/Manual/AttachedSheet2/xcode/TestSheet/main.m diff --git a/Tests/Manual/AttachedSheet2/AppController.j b/Tests/Manual/AttachedSheet2/AppController.j new file mode 100644 index 000000000..0c330312e --- /dev/null +++ b/Tests/Manual/AttachedSheet2/AppController.j @@ -0,0 +1,41 @@ +/* + * AppController.j + * TestSheet + * + * Created by You on April 14, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import + +@import "SheetWindowController.j" + +@implementation AppController : CPObject +{ + SheetController _sheetController; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + //[theWindow setFullPlatformWindow:YES]; + + _sheetController = [ [SheetWindowController alloc] initWithWindowCibName:@"Window"]; + [self newDocument:self]; +} + +- (void)newDocument:(id)sender +{ + [_sheetController newWindow:self]; +} + +@end diff --git a/Tests/Manual/AttachedSheet2/Info.plist b/Tests/Manual/AttachedSheet2/Info.plist new file mode 100644 index 000000000..a5876ce11 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + TestSheet + + diff --git a/Tests/Manual/AttachedSheet2/Jakefile b/Tests/Manual/AttachedSheet2/Jakefile new file mode 100644 index 000000000..d59137d5b --- /dev/null +++ b/Tests/Manual/AttachedSheet2/Jakefile @@ -0,0 +1,93 @@ +/* + * Jakefile + * AttachedSheet2 + * + * Created by Saikat Chakrabarti on March 16, 2010. + * Copyright 2010, gomockingbird.com All rights reserved. + */ + +var ENV = require("system").env, + FILE = require("file"), + JAKE = require("jake"), + task = JAKE.task, + FileList = JAKE.FileList, + app = require("cappuccino/jake").app, + configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", + OS = require("os"); + +app ("AttachedSheet2", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "AttachedSheet2.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("AttachedSheet2"); + task.setIdentifier("com.gomockingbird.AttachedSheet2"); + task.setVersion("1.0"); + task.setAuthor("Saikat Chakrabarti and Sheena Pakanati"); + task.setEmail("contact @nospam@ gomockingbird.com"); + task.setSummary("AttachedSheet2"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/*")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +function printResults(configuration) +{ + print("----------------------------") + print(configuration+" app built at path: "+FILE.join("Build", configuration, "AttachedSheet2")); + print("----------------------------") +} + +task ("default", ["AttachedSheet2"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "AttachedSheet2", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "AttachedSheet2", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "AttachedSheet2")); + OS.system(["press", "-f", FILE.join("Build", "Release", "AttachedSheet2"), FILE.join("Build", "Deployment", "AttachedSheet2")]); + printResults("Deployment") +}); + +task ("press", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Press", "AttachedSheet2")); + OS.system(["press", "-f", FILE.join("Build", "Release", "AttachedSheet2"), FILE.join("Build", "Press", "AttachedSheet2")]); +}); + +task ("flatten", ["press"], function() +{ + FILE.mkdirs(FILE.join("Build", "Flatten", "AttachedSheet2")); + OS.system(["flatten", "-f", "--verbose", "--split", "3", "-c", "closure-compiler", FILE.join("Build", "Press", "AttachedSheet2"), FILE.join("Build", "Flatten", "AttachedSheet2")]); +}); diff --git a/Tests/Manual/AttachedSheet2/Resources/MainMenu.cib b/Tests/Manual/AttachedSheet2/Resources/MainMenu.cib new file mode 100644 index 000000000..6e058a471 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/Resources/MainMenu.cib @@ -0,0 +1 @@ +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;2;11E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;197E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;198E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;196E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;199E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;83E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;85E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;107E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;205E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;206E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;207E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;89E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;91E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;76E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;209E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;90E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;211E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;212E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;145E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;213E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;126E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;214E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;121E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;215E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;124E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;216E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;139E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;120E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;218E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;125E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;219E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;140E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;220E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;135E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;222E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;223E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;128E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;224E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;138E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;225E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;226E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;116E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;227E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;117E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;228E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;229E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;148E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;230E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;149E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;231E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;232E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;188E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;233E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;189E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;234E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;190E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;235E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;191E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;236E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;193E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;237E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;194E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;195E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;239E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;158E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;240E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;182E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;241E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;185E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;243E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;176E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;177E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;245E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;178E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;246E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;179E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;247E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;180E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;248E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;171E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;172E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;173E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;166E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;253E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;167E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;254E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;168E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;255E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;111E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;256E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;112E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;257E;E;D;K;6;$classD;K;6;CP$UIDd;2;16E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;113E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;197E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;259E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;260E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;261E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;262E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;81E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;262E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;265E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;266E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;270E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;271E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;272E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;273E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;274E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;87E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;274E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;275E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;277E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;278E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;279E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;280E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;281E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;282E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;283E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;284E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;285E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;97E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;285E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;286E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;287E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;288E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;279E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;290E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;101E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;290E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;291E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;292E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;293E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;294E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;104E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;294E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;295E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;296E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;297E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;298E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;299E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;300E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;301E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;303E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;304E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;305E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;306E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;308E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;309E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;310E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;311E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;115E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;311E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;312E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;313E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;314E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;315E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;316E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;119E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;316E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;317E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;318E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;319E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;320E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;321E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;322E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;323E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;324E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;326E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;327E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;328E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;329E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;330E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;331E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;130E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;331E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;333E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;334E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;130E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;335E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;336E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;130E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;337E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;338E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;339E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;130E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;340E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;341E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;342E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;130E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;343E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;344E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;345E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;130E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;346E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;347E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;137E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;347E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;349E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;350E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;351E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;352E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;353E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;354E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;355E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;143E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;355E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;356E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;357E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;143E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;358E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;143E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;359E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;147E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;119E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;359E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;360E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;361E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;345E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;147E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;346E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;342E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;147E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;343E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;363E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;334E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;147E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;335E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;364E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;152E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;364E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;365E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;366E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;154E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;366E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;367E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;368E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;314E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;370E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;342E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;371E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;372E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;345E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;373E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;375E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;376E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;334E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;377E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;378E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;379E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;380E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;381E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;164E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;381E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;382E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;383E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;385E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;386E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;387E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;170E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;387E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;388E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;383E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;389E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;390E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;175E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;390E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;391E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;383E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;392E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;393E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;395E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;396E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;397E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;398E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;328E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;399E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;154E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;326E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;400E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;263E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;77E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;400E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;401E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;402E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;403E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;404E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;405E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;406E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;407E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;408E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;267E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;268E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;269E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;409E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;410E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;328E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;411E;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;412E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;187E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;326E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;411E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;413E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;8;delegateS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;performClose:S;14;runPageLayout:S;6;print:S;12;newDocument:S;9;showHelp:S;5;hide:S;10;terminate:S;22;hideOtherApplications:S;22;unhideAllApplications:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;10;alignLeft:S;12;alignCenter:S;15;alignJustified:S;11;alignRight:S;12;toggleRuler:S;10;copyRuler:S;11;pasteRuler:S;10;underline:S;21;orderFrontColorPanel:S;9;copyFont:S;10;pasteFont:S;9;unscript:S;12;superscript:S;10;subscript:S;14;raiseBaseline:S;14;lowerBaseline:S;21;useStandardLigatures:S;17;turnOffLigatures:S;16;useAllLigatures:S;19;useStandardKerning:S;15;turnOffKerning:S;15;tightenKerning:S;14;loosenKerning:S;15;newModalWindow:S;9;newSheet:S;14;newModalSheet:S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;3;100E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;91E;E;E;S;20;About NewApplicationS;19;Hide NewApplicationS;1;hS;8;Show AllS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;8;ServicesS;15;_CPServicesMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Hide Othersd;7;1572864S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;102E;E;E;S;19;NewApplication HelpS;1;?S;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;105E;E;E;S;6;Print…S;1;pS;10;New WindowS;1;nS;13;Page Setup...S;1;Pd;7;1179648S;5;CloseS;1;wS;16;New Modal WindowS;1;NS;9;New SheetS;1;sS;15;New Modal SheetS;1;SS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;E;E;S;12;Show ToolbarS;1;tS;18;Customize Toolbar…S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;142E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;ZS;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;132E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;141E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;144E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;6;FormatD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;186E;E;E;S;4;FontS;11;_CPFontMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;E;E;S;10;Show FontsS;4;BoldS;1;bS;6;ItalicS;1;iS;9;UnderlineS;1;uS;6;BiggerS;1;+S;7;Smallerd;1;4S;1;-S;4;KernD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;E;E;S;11;Use DefaultS;8;Use NoneS;7;TightenS;6;LoosenS;8;LigatureD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;E;E;S;7;Use AllS;8;BaselineD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;E;E;S;11;SuperscriptS;9;SubscriptS;5;RaiseS;5;LowerS;11;Show ColorsS;1;CS;10;Copy StyleS;11;Paste StyleS;4;TextD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;E;E;S;10;Align LeftS;1;{S;6;CenterS;1;|S;7;JustifyS;11;Align RightS;1;}S;10;Show RulerS;10;Copy Rulerd;7;1310720S;11;Paste RulerS;13;AppControllerE;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/AttachedSheet2/Resources/MainMenu.xib b/Tests/Manual/AttachedSheet2/Resources/MainMenu.xib new file mode 100644 index 000000000..9781a1d5b --- /dev/null +++ b/Tests/Manual/AttachedSheet2/Resources/MainMenu.xib @@ -0,0 +1,2810 @@ + + + + 1050 + 11D50d + 2182 + 1138.32 + 568.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2182 + + + YES + NSMenu + NSMenuItem + NSCustomObject + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + NewApplication + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New Window + n + 1048576 + 2147483647 + + + + + + New Modal Window + N + 1048576 + 2147483647 + + + + + + New Sheet + s + 1048576 + 2147483647 + + + + + + New Modal Sheet + S + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + Print… + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + Show Spelling… + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + Help + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + AppController + + + + + YES + + + terminate: + + + + 449 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + delegate + + + + 451 + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + showHelp: + + + + 360 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + alignLeft: + + + + 442 + + + + alignJustified: + + + + 443 + + + + copyRuler: + + + + 444 + + + + alignCenter: + + + + 445 + + + + toggleRuler: + + + + 446 + + + + alignRight: + + + + 447 + + + + pasteRuler: + + + + 448 + + + + newModalWindow: + + + + 494 + + + + newSheet: + + + + 495 + + + + newModalSheet: + + + + 497 + + + + newDocument: + + + + 498 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 103 + + + YES + + + + 1 + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + 78 + + + 6 + + + 82 + + + 9 + + + 77 + + + 5 + + + 73 + + + 1 + + + 74 + + + 2 + + + 205 + + + YES + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 106 + + + YES + + + + 2 + + + 111 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + 1111 + + + 144 + + + + + 129 + + + 121 + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 375 + + + YES + + + + + + 376 + + + YES + + + + + + + 377 + + + YES + + + + + + 378 + + + YES + + + + + + 379 + + + YES + + + + + + + + + + + + + 380 + + + + + 381 + + + + + 382 + + + + + 383 + + + + + 384 + + + + + 385 + + + + + 386 + + + + + 387 + + + + + 388 + + + YES + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + YES + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + YES + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 450 + + + + + 488 + + + 9 + + + 490 + + + 9 + + + 492 + + + 9 + + + 79 + + + 7 + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 103.IBPluginDependency + 106.IBPluginDependency + 111.IBPluginDependency + 129.IBPluginDependency + 130.IBPluginDependency + 131.IBPluginDependency + 134.IBPluginDependency + 136.IBPluginDependency + 143.IBPluginDependency + 144.IBPluginDependency + 145.IBPluginDependency + 149.IBPluginDependency + 150.IBPluginDependency + 19.IBPluginDependency + 195.IBPluginDependency + 196.IBPluginDependency + 197.IBPluginDependency + 198.IBPluginDependency + 199.IBPluginDependency + 200.IBPluginDependency + 201.IBPluginDependency + 202.IBPluginDependency + 203.IBPluginDependency + 204.IBPluginDependency + 205.IBPluginDependency + 206.IBPluginDependency + 207.IBPluginDependency + 208.IBPluginDependency + 209.IBPluginDependency + 210.IBPluginDependency + 211.IBPluginDependency + 212.IBPluginDependency + 213.IBPluginDependency + 214.IBPluginDependency + 215.IBPluginDependency + 216.IBPluginDependency + 217.IBPluginDependency + 218.IBPluginDependency + 219.IBPluginDependency + 220.IBPluginDependency + 221.IBPluginDependency + 23.IBPluginDependency + 236.IBPluginDependency + 239.IBPluginDependency + 24.IBPluginDependency + 29.IBPluginDependency + 295.IBPluginDependency + 296.IBPluginDependency + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 348.IBPluginDependency + 349.IBPluginDependency + 350.IBPluginDependency + 351.IBPluginDependency + 354.IBPluginDependency + 375.IBPluginDependency + 376.IBPluginDependency + 377.IBPluginDependency + 378.IBPluginDependency + 379.IBPluginDependency + 380.IBPluginDependency + 381.IBPluginDependency + 382.IBPluginDependency + 383.IBPluginDependency + 384.IBPluginDependency + 385.IBPluginDependency + 386.IBPluginDependency + 387.IBPluginDependency + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 393.IBPluginDependency + 394.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 412.IBPluginDependency + 413.IBPluginDependency + 414.IBPluginDependency + 415.IBPluginDependency + 416.IBPluginDependency + 417.IBPluginDependency + 418.IBPluginDependency + 419.IBPluginDependency + 450.IBPluginDependency + 488.IBPluginDependency + 490.IBPluginDependency + 492.IBPluginDependency + 5.IBPluginDependency + 56.IBPluginDependency + 57.IBPluginDependency + 58.IBPluginDependency + 73.IBPluginDependency + 74.IBPluginDependency + 77.IBPluginDependency + 78.IBPluginDependency + 79.IBPluginDependency + 81.IBPluginDependency + 82.IBPluginDependency + 83.IBPluginDependency + 92.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + + + + YES + + + + + 498 + + + + YES + + AppController + NSObject + + IBProjectSource + ./Classes/AppController.h + + + + SheetWindowController + NSWindowController + + YES + + YES + newModalSheet: + newModalWindow: + newSheet: + newWindow: + + + YES + id + id + id + id + + + + YES + + YES + newModalSheet: + newModalWindow: + newSheet: + newWindow: + + + YES + + newModalSheet: + id + + + newModalWindow: + id + + + newSheet: + id + + + newWindow: + id + + + + + YES + + YES + _okButton + _sheetWindowHackCheckbox + + + YES + NSButton + NSButton + + + + YES + + YES + _okButton + _sheetWindowHackCheckbox + + + YES + + _okButton + NSButton + + + _sheetWindowHackCheckbox + NSButton + + + + + IBProjectSource + ./Classes/SheetWindowController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {11, 11} + {10, 3} + + + + diff --git a/Tests/Manual/AttachedSheet2/Resources/Window.cib b/Tests/Manual/AttachedSheet2/Resources/Window.cib new file mode 100644 index 000000000..8470daf98 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/Resources/Window.cib @@ -0,0 +1 @@ +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;71E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;72E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;73E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;61E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;75E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;76E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;63E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;64E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;80E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;81E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;67E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;55E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;60E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;62E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;41E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;87E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;69E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;92E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;49E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;93E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;59E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;58E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;65E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;97E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;98E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;99E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;100E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;101E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;102E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;43E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;104E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;104E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;105E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;E;D;K;10;$classnameS;8;CPButtonK;8;$classesA;S;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;102E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;118E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;119E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;120E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;121E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;122E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;123E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;124E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;125E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;126E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;128E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;129E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;130E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;132E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;133E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;134E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;135E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;136E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;140E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;141E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;142E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;143E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;145E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;6;$afontD;K;6;CP$UIDd;3;146E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;115E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;147E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;148E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;149E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;116E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;116E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;116E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;115E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;150E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;152E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;153E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;158E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;159E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;160E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;161E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;162E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;163E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;164E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;165E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;166E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;167E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;168E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;169E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;170E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;171E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;172E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;173E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;174E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;175E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;176E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;177E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;178E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;179E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;181E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;3;103E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;183E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;184E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;185E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;178E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;145E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;186E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;115E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;147E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;187E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;149E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;147E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;147E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;147E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;189E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;114E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;115E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;155E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;158E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;S;21;SheetWindowControllerD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;15;_altCloseButtonS;19;_closableMaskButtonS;12;_closeButtonS;25;_miniaturizableMaskButtonS;22;_orderOutAfterCheckboxS;17;_otherCloseButtonS;20;_resizableMaskButtonS;17;_shadeContentViewS;18;_shadeParentWindowS;16;_shadeWindowViewS;17;_titledMaskButtonS;17;_windowTypeMatrixS;6;windowS;21;initialFirstResponderS;20;takeDoubleValueFrom:S;14;newModalSheet:S;10;newWindow:S;9;newSheet:S;15;newModalWindow:S;14;newAlertSheet:S;19;newColorPanelSheet:S;18;newOpenPanelSheet:S;18;newSavePanelSheet:S;13;CPApplicationS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{71, -112}, {455, 523}}d;2;15S;6;Windowd;1;0S;20;{{0, 0}, {455, 523}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;57E;E;E;S;6;normalS;21;{{18, 18}, {138, 24}}S;19;{{0, 0}, {138, 24}}d;2;36S;6;buttonS;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;191E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;190E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;147E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;d;1;2d;1;4F;S;21;{{18, 50}, {138, 24}}S;12;Modal WindowS;21;{{18, 82}, {138, 24}}S;5;SheetS;22;{{18, 114}, {138, 24}}S;11;Modal SheetS;22;{{18, 146}, {138, 24}}S;11;Alert SheetS;22;{{365, 481}, {68, 24}}S;18;{{0, 0}, {68, 24}}d;1;9S;5;CloseS;4;CgA=S;23;{{218, 481}, {135, 24}}S;19;{{0, 0}, {135, 24}}S;16;Close Parent TooS;22;{{18, 481}, {110, 24}}S;19;{{0, 0}, {110, 24}}S;12;Chain SheetsS;22;{{12, 299}, {329, 18}}S;19;{{0, 0}, {329, 18}}S;9;check-boxD;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;191E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;190E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;116E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;S;25;orderOut: after endSheet:S;22;{{12, 368}, {329, 18}}S;36;Shade Window View of Non-CIB WindowsS;22;{{24, 323}, {368, 26}}S;19;{{0, 0}, {368, 26}}S;9;textfieldD;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;191E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;192E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;116E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;T;S;140;It is not specified if endSheet: or orderOut: on sheet should be called first. However, cannot call orderOut: after endSheet: when chaining.d;4;3072S;22;{{18, 208}, {138, 24}}S;16;Open Panel SheetS;22;{{18, 176}, {138, 24}}S;17;Color Panel SheetS;23;{{193, 139}, {174, 18}}S;19;{{0, 0}, {174, 18}}S;8;selectedd;1;1S;18;CPTitledWindowMaskS;23;{{193, 159}, {174, 18}}S;20;CPClosableWindowMaskS;23;{{194, 20}, {261, 113}}S;20;{{0, 0}, {261, 113}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;E;E;S;23;{{192, 179}, {210, 18}}S;19;{{0, 0}, {210, 18}}S;26;CPMiniaturizableWindowMaskS;23;{{192, 199}, {180, 18}}S;19;{{0, 0}, {180, 18}}S;21;CPResizableWindowMaskS;22;{{18, 240}, {138, 24}}S;16;Save Panel SheetS;22;{{12, 388}, {329, 18}}S;36;Shade Content View of Non-CIB WindowS;22;{{12, 408}, {329, 18}}S;44;Shade Parent Window on windowWillBeginSheet:S;22;{{119, 446}, {96, 21}}S;18;{{0, 0}, {96, 21}}d;2;45S;6;sliderD;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;199E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;190E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;116E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;d;2;50d;2;68d;3;100S;23;{{215, 436}, {104, 29}}S;19;{{0, 0}, {104, 29}}S;19;bezeled+placeholderS;0;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;188E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;200E;E;d;2;12S;17;Arial, sans-serifd;2;10D;K;10;$classnameS;7;CPRadioK;8;$classesA;S;7;CPRadioS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;157E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;201E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;205E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;206E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;114E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;212E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;213E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;214E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;215E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;115E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;216E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;217E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;218E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;219E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;220E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;S;9;HelveticaD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;E;E;S;19;{{0, 0}, {261, 21}}d;2;18D;K;6;$classD;K;6;CP$UIDd;3;188E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;221E;E;S;5;radioS;17;selected+borderedS;10;CIB Windowf;3;0.5f;4;0.05D;K;10;$classnameS;12;CPRadioGroupK;8;$classesA;S;12;CPRadioGroupS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;222E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;194E;E;S;20;{{0, 23}, {261, 21}}S;25;CPHUDBackgroundWindowMaskd;1;3S;20;{{0, 46}, {261, 21}}S;22;CPBorderlessWindowMaskS;20;{{0, 69}, {261, 21}}S;30;CPTexturedBackgroundWindowMaskd;1;5S;20;{{0, 92}, {261, 21}}S;20;CPDocModalWindowMaskD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;223E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/AttachedSheet2/Resources/Window.xib b/Tests/Manual/AttachedSheet2/Resources/Window.xib new file mode 100644 index 000000000..51bd9e416 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/Resources/Window.xib @@ -0,0 +1,1646 @@ + + + + 1070 + 11D50d + 2182 + 1138.32 + 568.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2182 + + + NSTextField + NSView + NSWindowTemplate + NSTextFieldCell + NSSliderCell + NSMatrix + NSSlider + NSButtonCell + NSButton + NSCustomObject + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + SheetWindowController + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{71, 767}, {455, 523}} + 1946157056 + Window + NSWindow + + + + + 256 + + + + 301 + {{119, 56}, {96, 21}} + + + + YES + + -2079981824 + 0 + + + Helvetica + 12 + 16 + + + 100 + 0.0 + 50 + 0.0 + 0 + 1 + NO + NO + + + + + 301 + {{221, 61}, {96, 22}} + + + + YES + + -1804468671 + 272630784 + + + LucidaGrande + 13 + 1044 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 289 + {{361, 12}, {80, 32}} + + + _NS:9 + YES + + 67239424 + 134217728 + Close + + _NS:9 + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 268 + {{14, 443}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Modal Window + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 411}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Sheet + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 475}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Window + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 379}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Modal Sheet + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 347}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Alert Sheet + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 317}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Color Panel Sheet + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 285}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Open Panel Sheet + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{14, 253}, {150, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Save Panel Sheet + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 289 + {{214, 12}, {147, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Close Parent Too + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 289 + {{14, 12}, {122, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Chain Sheets + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{12, 206}, {329, 18}} + + + + _NS:9 + YES + + 67239424 + 0 + orderOut: after endSheet: + + _NS:9 + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{12, 137}, {329, 18}} + + + + _NS:9 + YES + + 67239424 + 0 + Shade Window View of Non-CIB Windows + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{12, 117}, {329, 18}} + + + + _NS:9 + YES + + 67239424 + 0 + Shade Content View of Non-CIB Window + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{12, 97}, {329, 18}} + + + _NS:9 + YES + + 67239424 + 0 + Shade Parent Window on windowWillBeginSheet: + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{193, 366}, {174, 18}} + + + + _NS:9 + YES + + -2080244224 + 0 + CPTitledWindowMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{193, 346}, {174, 18}} + + + + _NS:9 + YES + + -2080244224 + 0 + CPClosableWindowMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{194, 390}, {261, 113}} + + + + _NS:9 + YES + 5 + 1 + + + -2080244224 + 0 + CIB Window + + + 1 + 1211912703 + 0 + + NSRadioButton + + + + 200 + 25 + + + 67239424 + 0 + CPHUDBackgroundWindowMask + + + 2 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw +IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ +29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 +dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA +AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG +AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ +0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ +7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ +5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ +3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD +AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns +AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ +6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ +/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ +///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl +YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA +AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD +AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu +AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + 3 + MCAwAA + + + + 400 + 75 + + + 67239424 + 0 + CPBorderlessWindowMask + + + 3 + 1211912703 + 0 + + 400 + 75 + + + 67239424 + 0 + CPTexturedBackgroundWindowMask + + + 4 + 1211912703 + 0 + + 400 + 75 + + + 67239424 + 0 + CPDocModalWindowMask + + + 5 + 1211912703 + 0 + + 400 + 75 + + + {261, 21} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw +IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ +29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 +dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA +AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG +AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ +0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ +7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ +5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ +3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD +AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns +AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ +6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ +/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ +///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl +YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA +AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD +AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu +AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + + + + + 268 + {{192, 326}, {210, 18}} + + + + _NS:9 + YES + + -2080244224 + 0 + CPMiniaturizableWindowMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{192, 306}, {180, 18}} + + + + _NS:9 + YES + + -2080244224 + 0 + CPResizableWindowMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{24, 174}, {368, 26}} + + + + _NS:9 + {250, 750} + YES + + 67239424 + 272629760 + It is not specified if endSheet: or orderOut: on sheet should be called first. However, cannot call orderOut: after endSheet: when chaining. + + LucidaGrande + 10 + 16 + + _NS:9 + + + + 6 + System + controlTextColor + + + + + + {455, 523} + + + + + {{0, 0}, {1920, 1178}} + {10000000000000, 10000000000000} + YES + + + + 268 + {174, 18} + _NS:9 + YES + + -2080244224 + 0 + CPTitledWindowMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + + + + window + + + + 132 + + + + newModalWindow: + + + + 137 + + + + newSheet: + + + + 138 + + + + newWindow: + + + + 139 + + + + newModalSheet: + + + + 136 + + + + _closeButton + + + + 163 + + + + _altCloseButton + + + + 164 + + + + _otherCloseButton + + + + 165 + + + + _orderOutAfterCheckbox + + + + 168 + + + + _windowTypeMatrix + + + + 180 + + + + _titledMaskButton + + + + 194 + + + + _closableMaskButton + + + + 195 + + + + _miniaturizableMaskButton + + + + 196 + + + + _resizableMaskButton + + + + 197 + + + + newAlertSheet: + + + + 198 + + + + _shadeWindowView + + + + 205 + + + + _shadeContentView + + + + 206 + + + + newColorPanelSheet: + + + + 216 + + + + newOpenPanelSheet: + + + + 217 + + + + newSavePanelSheet: + + + + 218 + + + + _shadeParentWindow + + + + 223 + + + + initialFirstResponder + + + + 219 + + + + takeDoubleValueFrom: + + + + 33 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 3 + + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + + + + + + + 9 + + + + + + + + 19 + + + + + + + + 20 + + + + + 30 + + + + + 31 + + + + + 17 + + + + + + + + 22 + + + + + 16 + + + + + + + + 23 + + + + + 14 + + + + + + + + 25 + + + + + 11 + + + + + + + + 28 + + + + + 145 + + + + + + + + 146 + + + + + 159 + + + + + + + + 160 + + + + + 161 + + + + + + + + 162 + + + + + 166 + + + + + + + + 167 + + + + + 169 + + + + + + + + + + + + + 170 + + + + + 171 + + + + + 172 + + + + + 173 + + + + + 179 + + + + + 181 + + + + + 184 + + + + + + + + 185 + + + + + 186 + + + + + + + + 187 + + + + + 188 + + + + + + + + 189 + + + + + 190 + + + + + + + + 191 + + + + + 192 + + + + + + + + 193 + + + + + 199 + + + + + + + + 200 + + + + + 201 + + + + + + + + 202 + + + + + 203 + + + + + + + + 204 + + + + + 207 + + + + + + + + 208 + + + + + 210 + + + + + + + + 211 + + + + + 213 + + + + + + + + 214 + + + + + 220 + + + + + + + + 221 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{303, 221}, {480, 360}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 223 + + + + + SheetWindowController + NSWindowController + + id + id + id + id + id + id + id + id + + + + newAlertSheet: + id + + + newColorPanelSheet: + id + + + newModalSheet: + id + + + newModalWindow: + id + + + newOpenPanelSheet: + id + + + newSavePanelSheet: + id + + + newSheet: + id + + + newWindow: + id + + + + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSMatrix + + + + _altCloseButton + NSButton + + + _closableMaskButton + NSButton + + + _closeButton + NSButton + + + _miniaturizableMaskButton + NSButton + + + _orderOutAfterCheckbox + NSButton + + + _otherCloseButton + NSButton + + + _resizableMaskButton + NSButton + + + _shadeContentView + NSButton + + + _shadeParentWindow + NSButton + + + _shadeWindowView + NSButton + + + _titledMaskButton + NSButton + + + _windowTypeMatrix + NSMatrix + + + + IBProjectSource + ./Classes/SheetWindowController.h + + + + + 0 + IBCocoaFramework + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/Tests/Manual/AttachedSheet2/Resources/spinner.gif b/Tests/Manual/AttachedSheet2/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/Tests/Manual/AttachedSheet2/SheetWindowController.j b/Tests/Manual/AttachedSheet2/SheetWindowController.j new file mode 100644 index 000000000..4fb61bc8d --- /dev/null +++ b/Tests/Manual/AttachedSheet2/SheetWindowController.j @@ -0,0 +1,468 @@ + +@import "SheetWindow.j" + +@implementation SheetWindowController : CPWindowController +{ + @outlet CPButton _closeButton; + @outlet CPButton _sheetWindowHackCheckbox; + @outlet CPButton _altCloseButton; + @outlet CPButton _otherCloseButton; + @outlet CPButton _orderOutAfterCheckbox; + @outlet CPRadioGroup _windowTypeMatrix; + @outlet CPButton _titledMaskButton; + @outlet CPButton _closableMaskButton; + @outlet CPButton _miniaturizableMaskButton; + @outlet CPButton _resizableMaskButton; + @outlet CPButton _shadeWindowView; + @outlet CPButton _shadeContentView; + @outlet CPButton _shadeParentWindow; + + CPModalSession _modalSession; + CPWindow _parentWindow; + CPWindow _sheet; + int _returnCode; + CPColor _savedColor; +} + +-(void)initWithWindowCibName:(CPString)cibName +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + self = [super initWithWindowCibName:cibName]; + + _closeButton = nil; + + return self; +} + +-(void)positionWindow +{ + var keyWindow = [CPApp keyWindow]; + + var origin=CPPointMake(40,40); + if (keyWindow) + { + origin = ([keyWindow frame]).origin; + origin = CPPointMake(origin.x + 20, origin.y + 20); + } + + [[self window] setFrameOrigin:origin]; +} + +-(void)awakeFromCib +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + if (!_closeButton) + CPLog.fatal("_closeButton is not connected!"); + + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(unsetAction:)]; + [_altCloseButton setTarget:self]; + [_altCloseButton setAction:@selector(unsetAction:)]; + [_otherCloseButton setTarget:self]; + [_otherCloseButton setAction:@selector(unsetAction:)]; +} + +-(void)unsetAction:(id)sender +{ + CPLog.warn("No action set on this %@", [sender class]); +} + +-(void)createCloseButton:(CPWindow)window +{ + _closeButton = [ [CPButton alloc] initWithFrame:CGRectMake(0,0,32,100)]; + [_closeButton setTitle:@"Close"]; + [_closeButton setButtonType:CPMomentaryPushInButton]; + [_closeButton setBezelStyle:CPBezelBorder]; + [_closeButton sizeToFit]; + [[window contentView] addSubview:_closeButton positioned:CPWindowAbove relativeTo:nil]; +} + +-(SheetWindowController)initWithStyleMask:(int)styleMask debug:(int)debug +{ + CPLog.debug("[%@ %@] mask=%d radioGroup=%@", [self class], _cmd, styleMask, _windowTypeMatrix); + + if (styleMask < 0) + return [self initWithWindowCibName:@"Window"]; + + var window = [ [CPWindow alloc] + initWithContentRect:CGRectMake(0,0,400,300) + styleMask:styleMask]; + + if (debug & 1) + [window setBackgroundColor:[CPColor colorWithCalibratedRed:1.0 green:0.0 blue:0.0 alpha:0.5]]; + if (debug & 2) + [[window contentView] setBackgroundColor:[CPColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.5]]; + + if (self = [super initWithWindow:window]) + { + [self createCloseButton:window]; + } + + return self; +} + +-(SheetWindowController)allocController +{ + CPLog.debug("[%@ %@] groupClass=%@", [self class], _cmd, + [ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]); + + var type = 1; + if (_windowTypeMatrix) + type = [ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]; + + var styleMask = 0; + if ([_titledMaskButton state]) + styleMask |= CPTitledWindowMask; + + if ([_closableMaskButton state]) + styleMask |= CPClosableWindowMask; + + if ([_miniaturizableMaskButton state]) + styleMask |= CPMiniaturizableWindowMask; + + switch (type) + { + case 2: + styleMask |= CPHUDBackgroundWindowMask; + break; + case 3: + styleMask = CPBorderlessWindowMask; + break; + case 4: + styleMask |= CPTexturedBackgroundWindowMask; + break; + case 5: + styleMask = CPDocModalWindowMask; + break; + default: + } + + if ([_resizableMaskButton state]) + styleMask |= CPResizableWindowMask; + + if (type==1) + styleMask = -1; + + var debug = 0; + if ([_shadeWindowView state]) + debug |= 1; + if ([_shadeContentView state]) + debug |= 2; + + return [[SheetWindowController alloc] initWithStyleMask:styleMask debug:debug]; +} + +-(SheetWindowController)allocWithPanel:(CPPanel)panel +{ + return [[SheetWindowController alloc] initWithWindow:panel]; +} + +// +// Normal window +// +-(void)newDocument:(id)sender +{ + [self newWindow:sender]; +} + +-(void)newWindow:(id)sender +{ + [[self allocController] runNormalWindow]; +} + +-(void)runNormalWindow +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + [self positionWindow]; + [[self window] setTitle:@"Normal Window"]; + [_closeButton setTarget:[self window]]; + [_closeButton setAction:@selector(orderOut:)]; + [self showWindow:self]; +} + +// +// Modal window +// +-(void)newModalWindow:(id)sender +{ + [[self allocController] runModalWindow]; +} + +-(void)runModalWindow +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + [[self window] setTitle:@"Modal Window"]; + [[self window] setDelegate:self]; + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(endModalWindow:)]; + //[self showWindow:self]; + [CPApp runModalForWindow:[self window]]; +} + +-(void)endModalWindow:(id)sender +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + // performClose shouldn't work, if the window has no close button + if ([[self window] styleMask] & CPClosableWindowMask) + [[self window] performClose:self]; + else + [[self window] close]; +} + +-(void)windowWillClose:(NSNotification*)notification +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + // this is one way to handle close button on modal window + if ([CPApp modalWindow]) + [CPApp stopModal]; +} + +// +// Sheet +// +-(void)newSheet:(id)sender +{ + [[self allocController] runSheetForWindow:[self window]]; +} + +-(void)runSheetForWindow:(CPWindow)parentWindow +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + var sheet = [self window]; + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + _sheet = sheet; + + // NOTE: _closeButton doesn't exist until we call [self window] to load window from cib! + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(closeSheet:)]; + [_altCloseButton setAction:@selector(closeSheetAndParent:)]; + [_otherCloseButton setAction:@selector(closeSheetAndRepeat:)]; + + [CPApp beginSheet:sheet + modalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:parentWindow]; +} + +-(void)closeSheet:(id)sender +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + _returnCode = 1; + + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + [CPApp endSheet:[self window] returnCode:_returnCode]; + + if (orderOutAfter) + [[self window] orderOut:nil]; +} + +-(void)closeSheetAndParent:(id)sender +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + // common use case is saving document in response to a close, + // in this case we don't want to show the animation at all, + // and also get rid of the parent window + [_parentWindow close]; + + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + _returnCode = 99; + [CPApp endSheet:[self window] returnCode:_returnCode]; + + if (orderOutAfter) + [[self window] orderOut:nil]; +} + +-(void)closeSheetAndRepeat:(id)sender +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + // common use case is showing a progress bar after a save command, + // the orderout gets rid of the current sheet, + // the return code indicates to open another sheet up + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + _returnCode = 77; + [CPApp endSheet:[self window] returnCode:_returnCode]; + + if (orderOutAfter) + [[self window] orderOut:nil]; +} + +// +// "Modal" Sheet implemented by using modal session +// +-(void)newModalSheet:(id)sender +{ + [[self allocController] runModalSheetForWindow:[self window]]; +} + +-(void)runModalSheetForWindow:(CPWindow)parentWindow +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + var sheet = [self window]; + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + _sheet = sheet; + + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(closeModalSheet:)]; + + [CPApp beginSheet:sheet + modalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:parentWindow]; + + // what is the difference between these two approaches? + [CPApp runModalForWindow:sheet]; + + //var session = [CPApp beginModalSessionForWindow:sheet]; + //[CPApp runModalSession:session]; +} + +-(void)closeModalSheet:(id)sender +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + _returnCode = 2; + [CPApp endSheet:[self window] returnCode:_returnCode]; + + // what return should we get, the sheet or modal? + [CPApp stopModalWithCode:999]; + + if (orderOutAfter) + [[self window] orderOut:nil]; +} + +// +// Test alert panels +// +-(void)newAlertSheet:(id)sender +{ + [self runAlertSheet:[self window]]; +} + +-(void)runAlertSheet:(CPWindow)parentWindow +{ + // BUG: capp 0.9.5 on WebKit will chop off "bug." in the info text + var alert = [CPAlert alertWithMessageText:@"Alert message text goes here" + defaultButton:@"DefaultButton" + alternateButton:@"AltButton" + otherButton:@"OtherButton" + informativeTextWithFormat:@"This informative text sentence shows text wrapping bug."]; + + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + _sheet = alert; + _returnCode = -1; + + [alert beginSheetModalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:parentWindow]; +} + +-(void)newColorPanelSheet:(id)sender +{ + var panel = [CPColorPanel sharedColorPanel]; + var controller = [self allocWithPanel:panel]; + [controller createCloseButton:panel]; + [controller runSheetForWindow:[self window]]; +} + +-(void)newOpenPanelSheet:(id)sender +{ + var panel = [CPOpenPanel openPanel]; + var controller = [self allocWithPanel:panel]; + [controller createCloseButton:panel]; + [controller runSheetForWindow:[self window]]; +} + +-(void)newSavePanelSheet:(id)sender +{ + var panel = [CPSavePanel savePanel]; + var controller = [self allocWithPanel:panel]; + [controller createCloseButton:panel]; + [controller runSheetForWindow:[self window]]; +} + +// Test open and save panels + +// +// Test notifications/delegate methods +// +-(void)didEndSheet:(CPWindow)sheet returnCode:(int)returnCode contextInfo:(id)parentWindow +{ + CPLog.debug("[%@ %@] returnCode=%d", [self class], _cmd, returnCode); + + if (sheet !== _sheet) + CPLog.fatal("sheet invalid"); + + if (_returnCode >= 0 && returnCode != _returnCode) + CPLog.fatal("returnCode invalid"); + + if (_parentWindow !== parentWindow) + CPLog.fatal("contextInfo invalid"); + + // test sheet chaining. it should be possible to start another sheet from didEndSheet, + // but only if we orderOut: the sheet before we called endSheet: This is how cocoa works too. + if (returnCode == 77) + [self runSheetForWindow:parentWindow]; + //[self runAlertSheet:parentWindow]; +} + +- (BOOL)shadeWindow +{ + return [_shadeParentWindow state]; +} + +- (void)windowWillBeginSheet:(NSNotification*)notification +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + if ([notification object] !== _parentWindow) + CPLog.fatal("notification object should be delegate's window"); + + if ([[_parentWindow windowController] shadeWindow]) + { + _savedColor = [[_parentWindow contentView] backgroundColor]; + [[_parentWindow contentView] setBackgroundColor: + [CPColor colorWithCalibratedRed:0.0 green:0.7 blue:0.0 alpha:1.0]]; + } +} + +- (void)windowDidEndSheet:(NSNotification *)notification +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + if ([notification object] !== _parentWindow) + CPLog.fatal("notification object should be delegate's window"); + + if ([[_parentWindow windowController] shadeWindow]) + [[_parentWindow contentView] setBackgroundColor:_savedColor]; +} + +@end diff --git a/Tests/Manual/AttachedSheet2/index.html b/Tests/Manual/AttachedSheet2/index.html new file mode 100644 index 000000000..20935b1b0 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/index.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + TestSheet + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/AttachedSheet2/main.j b/Tests/Manual/AttachedSheet2/main.j new file mode 100644 index 000000000..b722e04dc --- /dev/null +++ b/Tests/Manual/AttachedSheet2/main.j @@ -0,0 +1,19 @@ +/* + * AppController.j + * TestSheet + * + * Created by You on April 14, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPLogRegister(CPLogDefault); + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.pbxproj b/Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.pbxproj new file mode 100644 index 000000000..eaa9a88d6 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.pbxproj @@ -0,0 +1,304 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + B210EF7E153B0A8D005D15EE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B210EF7D153B0A8D005D15EE /* Cocoa.framework */; }; + B210EF88153B0A8D005D15EE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B210EF86153B0A8D005D15EE /* InfoPlist.strings */; }; + B210EF8A153B0A8D005D15EE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B210EF89153B0A8D005D15EE /* main.m */; }; + B210EF8E153B0A8D005D15EE /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = B210EF8C153B0A8D005D15EE /* Credits.rtf */; }; + B210EF91153B0A8D005D15EE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B210EF90153B0A8D005D15EE /* AppDelegate.m */; }; + B2129637153B0B3000E15669 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = B2129636153B0B3000E15669 /* MainMenu.xib */; }; + B212963B153B0B4900E15669 /* Window.xib in Resources */ = {isa = PBXBuildFile; fileRef = B2129639153B0B4900E15669 /* Window.xib */; }; + B212963C153B0E6A00E15669 /* SheetWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = B2129630153B0ADF00E15669 /* SheetWindow.m */; }; + B212963D153B0E6C00E15669 /* SheetWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B2129632153B0ADF00E15669 /* SheetWindowController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + B210EF79153B0A8D005D15EE /* TestSheet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestSheet.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B210EF7D153B0A8D005D15EE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + B210EF80153B0A8D005D15EE /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + B210EF81153B0A8D005D15EE /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; + B210EF82153B0A8D005D15EE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + B210EF85153B0A8D005D15EE /* TestSheet-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TestSheet-Info.plist"; sourceTree = ""; }; + B210EF87153B0A8D005D15EE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + B210EF89153B0A8D005D15EE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + B210EF8B153B0A8D005D15EE /* TestSheet-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TestSheet-Prefix.pch"; sourceTree = ""; }; + B210EF8D153B0A8D005D15EE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; + B210EF8F153B0A8D005D15EE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + B210EF90153B0A8D005D15EE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + B212962F153B0ADF00E15669 /* SheetWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SheetWindow.h; sourceTree = ""; }; + B2129630153B0ADF00E15669 /* SheetWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SheetWindow.m; sourceTree = ""; }; + B2129631153B0ADF00E15669 /* SheetWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SheetWindowController.h; sourceTree = ""; }; + B2129632153B0ADF00E15669 /* SheetWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SheetWindowController.m; sourceTree = ""; }; + B2129636153B0B3000E15669 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = ../Resources/MainMenu.xib; sourceTree = ""; }; + B2129639153B0B4900E15669 /* Window.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Window.xib; path = ../Resources/Window.xib; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B210EF76153B0A8D005D15EE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B210EF7E153B0A8D005D15EE /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + B210EF6E153B0A8D005D15EE = { + isa = PBXGroup; + children = ( + B2129639153B0B4900E15669 /* Window.xib */, + B2129636153B0B3000E15669 /* MainMenu.xib */, + B210EF83153B0A8D005D15EE /* TestSheet */, + B210EF7C153B0A8D005D15EE /* Frameworks */, + B210EF7A153B0A8D005D15EE /* Products */, + ); + sourceTree = ""; + }; + B210EF7A153B0A8D005D15EE /* Products */ = { + isa = PBXGroup; + children = ( + B210EF79153B0A8D005D15EE /* TestSheet.app */, + ); + name = Products; + sourceTree = ""; + }; + B210EF7C153B0A8D005D15EE /* Frameworks */ = { + isa = PBXGroup; + children = ( + B210EF7D153B0A8D005D15EE /* Cocoa.framework */, + B210EF7F153B0A8D005D15EE /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + B210EF7F153B0A8D005D15EE /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + B210EF80153B0A8D005D15EE /* AppKit.framework */, + B210EF81153B0A8D005D15EE /* CoreData.framework */, + B210EF82153B0A8D005D15EE /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + B210EF83153B0A8D005D15EE /* TestSheet */ = { + isa = PBXGroup; + children = ( + B210EF8F153B0A8D005D15EE /* AppDelegate.h */, + B210EF90153B0A8D005D15EE /* AppDelegate.m */, + B212962F153B0ADF00E15669 /* SheetWindow.h */, + B2129630153B0ADF00E15669 /* SheetWindow.m */, + B2129631153B0ADF00E15669 /* SheetWindowController.h */, + B2129632153B0ADF00E15669 /* SheetWindowController.m */, + B210EF84153B0A8D005D15EE /* Supporting Files */, + ); + path = TestSheet; + sourceTree = ""; + }; + B210EF84153B0A8D005D15EE /* Supporting Files */ = { + isa = PBXGroup; + children = ( + B210EF85153B0A8D005D15EE /* TestSheet-Info.plist */, + B210EF86153B0A8D005D15EE /* InfoPlist.strings */, + B210EF89153B0A8D005D15EE /* main.m */, + B210EF8B153B0A8D005D15EE /* TestSheet-Prefix.pch */, + B210EF8C153B0A8D005D15EE /* Credits.rtf */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + B210EF78153B0A8D005D15EE /* TestSheet */ = { + isa = PBXNativeTarget; + buildConfigurationList = B210EF97153B0A8D005D15EE /* Build configuration list for PBXNativeTarget "TestSheet" */; + buildPhases = ( + B210EF75153B0A8D005D15EE /* Sources */, + B210EF76153B0A8D005D15EE /* Frameworks */, + B210EF77153B0A8D005D15EE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TestSheet; + productName = TestSheet; + productReference = B210EF79153B0A8D005D15EE /* TestSheet.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + B210EF70153B0A8D005D15EE /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; + buildConfigurationList = B210EF73153B0A8D005D15EE /* Build configuration list for PBXProject "TestSheet" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = B210EF6E153B0A8D005D15EE; + productRefGroup = B210EF7A153B0A8D005D15EE /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + B210EF78153B0A8D005D15EE /* TestSheet */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + B210EF77153B0A8D005D15EE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B210EF88153B0A8D005D15EE /* InfoPlist.strings in Resources */, + B2129637153B0B3000E15669 /* MainMenu.xib in Resources */, + B212963B153B0B4900E15669 /* Window.xib in Resources */, + B210EF8E153B0A8D005D15EE /* Credits.rtf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + B210EF75153B0A8D005D15EE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B210EF8A153B0A8D005D15EE /* main.m in Sources */, + B210EF91153B0A8D005D15EE /* AppDelegate.m in Sources */, + B212963D153B0E6C00E15669 /* SheetWindowController.m in Sources */, + B212963C153B0E6A00E15669 /* SheetWindow.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + B210EF86153B0A8D005D15EE /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + B210EF87153B0A8D005D15EE /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + B210EF8C153B0A8D005D15EE /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + B210EF8D153B0A8D005D15EE /* en */, + ); + name = Credits.rtf; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + B210EF95153B0A8D005D15EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + B210EF96153B0A8D005D15EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; + B210EF98153B0A8D005D15EE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TestSheet/TestSheet-Prefix.pch"; + INFOPLIST_FILE = "TestSheet/TestSheet-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + B210EF99153B0A8D005D15EE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TestSheet/TestSheet-Prefix.pch"; + INFOPLIST_FILE = "TestSheet/TestSheet-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + B210EF73153B0A8D005D15EE /* Build configuration list for PBXProject "TestSheet" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B210EF95153B0A8D005D15EE /* Debug */, + B210EF96153B0A8D005D15EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B210EF97153B0A8D005D15EE /* Build configuration list for PBXNativeTarget "TestSheet" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B210EF98153B0A8D005D15EE /* Debug */, + B210EF99153B0A8D005D15EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = B210EF70153B0A8D005D15EE /* Project object */; +} diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..2a88e2374 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.h b/Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.h new file mode 100644 index 000000000..4e7ea0fff --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.h @@ -0,0 +1,16 @@ +// +// AppDelegate.h +// TestSheet +// +// Created by Joe Semolian on 4/15/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import +#import "SheetWindowController.h" + +@interface AppController : NSObject +{ + SheetWindowController* _sheetController; +} +@end diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.m b/Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.m new file mode 100644 index 000000000..ed833baaa --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/AppDelegate.m @@ -0,0 +1,29 @@ +// +// AppDelegate.m +// TestSheet +// +// Created by Joe Semolian on 4/15/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import "AppDelegate.h" +#import "SheetWindowController.h" + +@implementation AppController + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + // Insert code here to initialize your application + _sheetController = [[SheetWindowController alloc] initWithWindowNibName:@"Window"]; + + [_sheetController newWindow:self]; +} + +- (void)newDocument:(id)sender +{ + [_sheetController newWindow:sender]; +} + +@end diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.h b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.h new file mode 100644 index 000000000..2b2c7b263 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.h @@ -0,0 +1,13 @@ +// +// SheetWindow.h +// +// +// Created by Joe Semolian on 4/14/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +@interface SheetWindow : NSWindow + +@end diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.m b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.m new file mode 100644 index 000000000..b9f9e4422 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindow.m @@ -0,0 +1,13 @@ +// +// SheetWindow.m +// +// +// Created by Joe Semolian on 4/14/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import "SheetWindow.h" + +@implementation SheetWindow + +@end diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.h b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.h new file mode 100644 index 000000000..32fd666da --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.h @@ -0,0 +1,43 @@ +// +// SheetWindowController.h +// +// +// Created by Joe Semolian on 4/14/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +@interface SheetWindowController : NSWindowController +{ + IBOutlet NSButton* _closeButton; + IBOutlet NSButton* _altCloseButton; + IBOutlet NSButton* _otherCloseButton; + IBOutlet NSButton* _orderOutAfterCheckbox; + IBOutlet NSMatrix* _windowTypeMatrix; + + IBOutlet NSButton* _titledMaskButton; + IBOutlet NSButton* _closableMaskButton; + IBOutlet NSButton* _miniaturizableMaskButton; + IBOutlet NSButton* _resizableMaskButton; + + IBOutlet NSButton* _shadeWindowView; + IBOutlet NSButton* _shadeContentView; + IBOutlet NSButton* _shadeParentWindow; + + NSArray* _childControllers; + NSWindow* _parentWindow; +} + +-(IBAction)newWindow:(id)sender; +-(IBAction)newModalWindow:(id)sender; +-(IBAction)newSheet:(id)sender; +-(IBAction)newModalSheet:(id)sender; +-(IBAction)newAlertSheet:(id)sender; +-(IBAction)newColorPanelSheet:(id)sender; +-(IBAction)newOpenPanelSheet:(id)sender; +-(IBAction)newSavePanelSheet:(id)sender; + +- (void)windowWillBeginSheet:(NSNotification *)notification; +- (void)windowDidEndSheet:(NSNotification *)notification; +@end diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.m b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.m new file mode 100644 index 000000000..b97b8f53b --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/SheetWindowController.m @@ -0,0 +1,343 @@ +// +// SheetWindowController.m +// +// +// Created by Joe Semolian on 4/14/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import "SheetWindowController.h" + +@interface SheetWindowController () + +@end + +@implementation SheetWindowController + +- (id)initWithWindow:(NSWindow *)window +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + self = [super initWithWindow:window]; + if (self) + { + _closeButton = nil; + _childControllers = [NSArray array]; + } + + return self; +} + +- (void)windowDidLoad +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + [super windowDidLoad]; + + if (!_closeButton) + NSLog(@"[%@ %s]: _closeButton is not connected!", [self className], sel_getName(_cmd)); +} + +-(void)positionWindow +{ + NSWindow* keyWindow = [NSApp keyWindow]; + CGPoint origin = ([keyWindow frame]).origin; + origin = CGPointMake(origin.x + 20, origin.y + 20); + [[self window] setFrameOrigin:origin]; +} + +// +// Normal window +// +-(void)newDocument:(id)sender +{ + [self newWindow:sender]; +} + +-(SheetWindowController*)initWithStyleMask:(int)styleMask +{ + + if (styleMask==0) + return [self initWithWindowNibName:@"Window"]; + + NSWindow* window = [ [NSWindow alloc] + initWithContentRect:CGRectMake(0,0,400,300) + styleMask:styleMask + backing:NSBackingStoreBuffered + defer:YES]; + + if (self = [super initWithWindow:window]) + { + _closeButton = [ [NSButton alloc] initWithFrame:CGRectMake(0,0,32,100)]; + [_closeButton setTitle:@"Close"]; + [_closeButton setButtonType:NSMomentaryPushInButton]; + [_closeButton setBezelStyle:NSBezelBorder]; + [_closeButton sizeToFit]; + [[window contentView] addSubview:_closeButton]; + } + + return self; +} + +-(SheetWindowController*)allocController +{ + long type = 1; + if (_windowTypeMatrix) + type = [ [_windowTypeMatrix selectedCell] tag]; + + int styleMask = 0; + if ([_titledMaskButton state]) + styleMask |= NSTitledWindowMask; + + if ([_closableMaskButton state]) + styleMask |= NSClosableWindowMask; + + if ([_miniaturizableMaskButton state]) + styleMask |= NSMiniaturizableWindowMask; + + switch (type) + { + case 2: + styleMask |= NSTexturedBackgroundWindowMask; + break; + case 3: + styleMask = NSBorderlessWindowMask; + break; + case 4: + break; + case 5: + styleMask = NSDocModalWindowMask; + break; + } + + if ([_resizableMaskButton state]) + styleMask |= NSResizableWindowMask; + + if (type == 1) + styleMask = 0; + + return [[SheetWindowController alloc] initWithStyleMask:styleMask]; +} + +-(void)newWindow:(id)sender +{ + SheetWindowController* controller = [self allocController]; + _childControllers = [_childControllers arrayByAddingObject:controller]; + [controller runNormalWindow]; +} + +-(void)runNormalWindow +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + [self positionWindow]; + [[self window] setTitle:@"Normal Window"]; + [_closeButton setTarget:[self window]]; + [_closeButton setAction:@selector(orderOut:)]; + [self showWindow:self]; +} + +-(void)newModalWindow:(id)sender +{ + SheetWindowController* controller = [self allocController]; + _childControllers = [_childControllers arrayByAddingObject:controller]; + [controller runModalWindow]; +} + +-(void)runModalWindow +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + [[self window] setTitle:@"Modal Window"]; + [[self window] setDelegate:self]; + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(endModalWindow:)]; + //[self showWindow:self]; + [NSApp runModalForWindow:[self window]]; +} + +-(void)endModalWindow:(id)sender +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + [[self window] performClose:self]; +} + +-(void)windowWillClose:(NSNotification*)notification +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + if ([NSApp modalWindow]) + [NSApp stopModal]; +} + +-(void)newSheet:(id)sender +{ + SheetWindowController* controller = [self allocController]; + _childControllers = [_childControllers arrayByAddingObject:controller]; + [controller runSheetForWindow:[self window]]; +} + +-(void)runSheetForWindow:(NSWindow*)parentWindow +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + NSWindow* sheet = [self window]; + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(closeSheet:)]; + [_altCloseButton setAction:@selector(closeSheetAndParent:)]; + [_otherCloseButton setAction:@selector(closeSheetAndRepeat:)]; + + [NSApp beginSheet:sheet + modalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:(void*)self]; +} + +-(void)closeSheet:(id)sender +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + // NOTE: orderOut is not required for Capp, but is for Cocoa. It does + // not seem to matter when it is called in relation to endSheet: + BOOL orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] close]; + //[[self window] orderOut:nil]; + + [NSApp endSheet:[self window] returnCode:99]; + + if (orderOutAfter) + //[[self window] orderOut:nil]; + [[self window] close]; +} + +-(void)closeSheetAndParent:(id)sender +{ + // common use case is saving document in response to a close, + // in this case we don't want to show the animation at all + [_parentWindow close]; + + BOOL orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + [NSApp endSheet:[self window] returnCode:99]; + + if (orderOutAfter) + [[self window] orderOut:nil]; +} + +-(void)closeSheetAndRepeat:(id)sender +{ + // common use case is showing a progress bar after a save command, + // the orderout gets rid of the current sheet, + // the return code indicates to open another sheet up + BOOL orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + [NSApp endSheet:[self window] returnCode:77]; + if (orderOutAfter) + [[self window] orderOut:nil]; +} + + +-(void)newModalSheet:(id)sender +{ + SheetWindowController* controller = [self allocController]; + _childControllers = [_childControllers arrayByAddingObject:controller]; + [controller runModalSheetForWindow:[self window]]; +} + + + +-(void)runModalSheetForWindow:(NSWindow*)parentWindow +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + NSWindow* sheet = [self window]; + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(closeModalSheet:)]; + + [NSApp beginSheet:sheet + modalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:(void*)self]; + + // what is the difference between these two approaches? + [NSApp runModalForWindow:sheet]; + + //var session = [CPApp beginModalSessionForWindow:sheet]; + //[CPApp runModalSession:session]; +} + +-(void)closeModalSheet:(id)sender +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + [[self window] orderOut:self]; + + [NSApp endSheet:[self window]]; + + // FIXME: there is no endModalSession: per Cocoa + [NSApp stopModalWithCode:999]; +} + +-(void)newAlertSheet:(id)sender +{ + [[self window] setDelegate:self]; + _parentWindow = [self window]; + [self runAlertSheet:_parentWindow]; +} + +-(void)runAlertSheet:(NSWindow*)parentWindow +{ + NSAlert* alert = [NSAlert alertWithMessageText:@"Oops, something went wrong!" + defaultButton:@"DefaultButton" + alternateButton:@"AltButton" + otherButton:@"OtherButton" + informativeTextWithFormat:@"If we knew why it went wrong, we would describe it here."]; + + [alert beginSheetModalForWindow:[self window] + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:nil]; +} + + +- (void)didEndSheet:(NSWindow*)sheet returnCode:(NSInteger)returnCode contextInfo:(void*)contextInfo +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + //NSAssert(sheet == [self window], @"sheet object is incorrect"); + + // repeat with another sheet + if (returnCode == 77) + //[self runSheetForWindow:_parentWindow]; + [self runAlertSheet:_parentWindow]; +} + +- (void)windowWillBeginSheet:(NSNotification *)notification +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + NSAssert([notification object]==_parentWindow, @"notification object is not parent window"); +} + +- (void)windowDidEndSheet:(NSNotification *)notification +{ + NSLog(@"[%@ %s]", [self className], sel_getName(_cmd)); + + NSAssert([notification object]==_parentWindow, @"notification object is not parent window"); +} + +@end diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Info.plist b/Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Info.plist new file mode 100644 index 000000000..f9231b08a --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + org.github.walisser.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2012 __MyCompanyName__. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Prefix.pch b/Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Prefix.pch new file mode 100644 index 000000000..be4e5327e --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/TestSheet-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'TestSheet' target in the 'TestSheet' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/Credits.rtf b/Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/Credits.rtf new file mode 100644 index 000000000..46576ef21 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/Credits.rtf @@ -0,0 +1,29 @@ +{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw9840\paperh8400 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs24 \cf0 Engineering: +\b0 \ + Some people\ +\ + +\b Human Interface Design: +\b0 \ + Some other people\ +\ + +\b Testing: +\b0 \ + Hopefully not nobody\ +\ + +\b Documentation: +\b0 \ + Whoever\ +\ + +\b With special thanks to: +\b0 \ + Mom\ +} diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/InfoPlist.strings b/Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..477b28ff8 --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Tests/Manual/AttachedSheet2/xcode/TestSheet/main.m b/Tests/Manual/AttachedSheet2/xcode/TestSheet/main.m new file mode 100644 index 000000000..1e799258c --- /dev/null +++ b/Tests/Manual/AttachedSheet2/xcode/TestSheet/main.m @@ -0,0 +1,14 @@ +// +// main.m +// TestSheet +// +// Created by Joe Semolian on 4/15/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **)argv); +} From 32c5c82cb971cc9f715a6b52a0273dedbd90b2f4 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sun, 29 Jul 2012 14:04:06 -0400 Subject: [PATCH 17/22] -removed unused import --- Tests/Manual/AttachedSheet2/SheetWindowController.j | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tests/Manual/AttachedSheet2/SheetWindowController.j b/Tests/Manual/AttachedSheet2/SheetWindowController.j index 4fb61bc8d..203177eec 100644 --- a/Tests/Manual/AttachedSheet2/SheetWindowController.j +++ b/Tests/Manual/AttachedSheet2/SheetWindowController.j @@ -1,6 +1,4 @@ -@import "SheetWindow.j" - @implementation SheetWindowController : CPWindowController { @outlet CPButton _closeButton; From 24ef4d41d2f68ccddd7cd5f28a6907424e038c5c Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 4 Aug 2012 13:20:35 -0400 Subject: [PATCH 18/22] -capp_lint -enable close buttons based on context -remove stuff that doesn't work --- Tests/Manual/AttachedSheet2/AppController.j | 20 +- .../AttachedSheet2/Resources/Window.cib | 2 +- .../AttachedSheet2/Resources/Window.xib | 208 +----- .../AttachedSheet2/SheetWindowController.j | 630 +++++++++--------- 4 files changed, 360 insertions(+), 500 deletions(-) diff --git a/Tests/Manual/AttachedSheet2/AppController.j b/Tests/Manual/AttachedSheet2/AppController.j index 0c330312e..580cc5eac 100644 --- a/Tests/Manual/AttachedSheet2/AppController.j +++ b/Tests/Manual/AttachedSheet2/AppController.j @@ -1,41 +1,25 @@ -/* - * AppController.j - * TestSheet - * - * Created by You on April 14, 2012. - * Copyright 2012, Your Company All rights reserved. - */ - @import @import "SheetWindowController.j" @implementation AppController : CPObject { - SheetController _sheetController; + SheetController _sheetController; } - (void)applicationDidFinishLaunching:(CPNotification)aNotification { - // This is called when the application is done loading. } - (void)awakeFromCib { - // This is called when the cib is done loading. - // You can implement this method on any object instantiated from a Cib. - // It's a useful hook for setting up current UI values, and other things. - - // In this case, we want the window from Cib to become our full browser window - //[theWindow setFullPlatformWindow:YES]; - _sheetController = [ [SheetWindowController alloc] initWithWindowCibName:@"Window"]; [self newDocument:self]; } - (void)newDocument:(id)sender { - [_sheetController newWindow:self]; + [_sheetController newWindow:self]; } @end diff --git a/Tests/Manual/AttachedSheet2/Resources/Window.cib b/Tests/Manual/AttachedSheet2/Resources/Window.cib index 8470daf98..2dd594779 100644 --- a/Tests/Manual/AttachedSheet2/Resources/Window.cib +++ b/Tests/Manual/AttachedSheet2/Resources/Window.cib @@ -1 +1 @@ -280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;71E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;72E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;73E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;61E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;75E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;76E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;63E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;64E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;80E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;81E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;67E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;55E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;60E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;62E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;41E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;87E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;69E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;92E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;49E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;93E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;59E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;58E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;65E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;97E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;98E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;99E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;100E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;101E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;102E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;43E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;104E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;104E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;105E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;E;D;K;10;$classnameS;8;CPButtonK;8;$classesA;S;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;102E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;118E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;119E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;120E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;121E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;122E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;123E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;124E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;125E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;126E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;128E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;129E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;130E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;132E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;133E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;134E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;135E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;136E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;140E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;141E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;142E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;143E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;145E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;6;$afontD;K;6;CP$UIDd;3;146E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;115E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;147E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;148E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;149E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;116E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;116E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;116E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;115E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;150E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;152E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;153E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;158E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;159E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;160E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;161E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;162E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;163E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;164E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;165E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;166E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;167E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;168E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;169E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;170E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;6;$afontD;K;6;CP$UIDd;3;113E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;114E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;171E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;172E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;173E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;174E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;175E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;176E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;177E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;178E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;179E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;106E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;181E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;3;103E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;183E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;184E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;185E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;178E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;145E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;186E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;115E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;147E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;187E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;149E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;147E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;147E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;147E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;189E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;114E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;115E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;103E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;155E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;138E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;156E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;158E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;S;21;SheetWindowControllerD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;15;_altCloseButtonS;19;_closableMaskButtonS;12;_closeButtonS;25;_miniaturizableMaskButtonS;22;_orderOutAfterCheckboxS;17;_otherCloseButtonS;20;_resizableMaskButtonS;17;_shadeContentViewS;18;_shadeParentWindowS;16;_shadeWindowViewS;17;_titledMaskButtonS;17;_windowTypeMatrixS;6;windowS;21;initialFirstResponderS;20;takeDoubleValueFrom:S;14;newModalSheet:S;10;newWindow:S;9;newSheet:S;15;newModalWindow:S;14;newAlertSheet:S;19;newColorPanelSheet:S;18;newOpenPanelSheet:S;18;newSavePanelSheet:S;13;CPApplicationS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{71, -112}, {455, 523}}d;2;15S;6;Windowd;1;0S;20;{{0, 0}, {455, 523}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;57E;E;E;S;6;normalS;21;{{18, 18}, {138, 24}}S;19;{{0, 0}, {138, 24}}d;2;36S;6;buttonS;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;191E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;190E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;147E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;d;1;2d;1;4F;S;21;{{18, 50}, {138, 24}}S;12;Modal WindowS;21;{{18, 82}, {138, 24}}S;5;SheetS;22;{{18, 114}, {138, 24}}S;11;Modal SheetS;22;{{18, 146}, {138, 24}}S;11;Alert SheetS;22;{{365, 481}, {68, 24}}S;18;{{0, 0}, {68, 24}}d;1;9S;5;CloseS;4;CgA=S;23;{{218, 481}, {135, 24}}S;19;{{0, 0}, {135, 24}}S;16;Close Parent TooS;22;{{18, 481}, {110, 24}}S;19;{{0, 0}, {110, 24}}S;12;Chain SheetsS;22;{{12, 299}, {329, 18}}S;19;{{0, 0}, {329, 18}}S;9;check-boxD;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;191E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;190E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;116E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;S;25;orderOut: after endSheet:S;22;{{12, 368}, {329, 18}}S;36;Shade Window View of Non-CIB WindowsS;22;{{24, 323}, {368, 26}}S;19;{{0, 0}, {368, 26}}S;9;textfieldD;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;191E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;192E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;116E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;T;S;140;It is not specified if endSheet: or orderOut: on sheet should be called first. However, cannot call orderOut: after endSheet: when chaining.d;4;3072S;22;{{18, 208}, {138, 24}}S;16;Open Panel SheetS;22;{{18, 176}, {138, 24}}S;17;Color Panel SheetS;23;{{193, 139}, {174, 18}}S;19;{{0, 0}, {174, 18}}S;8;selectedd;1;1S;18;CPTitledWindowMaskS;23;{{193, 159}, {174, 18}}S;20;CPClosableWindowMaskS;23;{{194, 20}, {261, 113}}S;20;{{0, 0}, {261, 113}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;E;E;S;23;{{192, 179}, {210, 18}}S;19;{{0, 0}, {210, 18}}S;26;CPMiniaturizableWindowMaskS;23;{{192, 199}, {180, 18}}S;19;{{0, 0}, {180, 18}}S;21;CPResizableWindowMaskS;22;{{18, 240}, {138, 24}}S;16;Save Panel SheetS;22;{{12, 388}, {329, 18}}S;36;Shade Content View of Non-CIB WindowS;22;{{12, 408}, {329, 18}}S;44;Shade Parent Window on windowWillBeginSheet:S;22;{{119, 446}, {96, 21}}S;18;{{0, 0}, {96, 21}}d;2;45S;6;sliderD;K;6;$classD;K;6;CP$UIDd;3;112E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;199E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;190E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;116E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;116E;E;d;2;50d;2;68d;3;100S;23;{{215, 436}, {104, 29}}S;19;{{0, 0}, {104, 29}}S;19;bezeled+placeholderS;0;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;188E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;200E;E;d;2;12S;17;Arial, sans-serifd;2;10D;K;10;$classnameS;7;CPRadioK;8;$classesA;S;7;CPRadioS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;157E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;201E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;205E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;157E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;206E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;114E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;212E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;213E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;214E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;215E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;115E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;216E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;217E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;218E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;219E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;202E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;203E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;204E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;111E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;114E;K;16;$aimage-positionD;K;6;CP$UIDd;3;114E;K;6;$afontD;K;6;CP$UIDd;3;139E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;114E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;103E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;115E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;220E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;116E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;114E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;103E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;207E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;208E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;210E;E;S;9;HelveticaD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;E;E;S;19;{{0, 0}, {261, 21}}d;2;18D;K;6;$classD;K;6;CP$UIDd;3;188E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;221E;E;S;5;radioS;17;selected+borderedS;10;CIB Windowf;3;0.5f;4;0.05D;K;10;$classnameS;12;CPRadioGroupK;8;$classesA;S;12;CPRadioGroupS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;222E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;194E;E;S;20;{{0, 23}, {261, 21}}S;25;CPHUDBackgroundWindowMaskd;1;3S;20;{{0, 46}, {261, 21}}S;22;CPBorderlessWindowMaskS;20;{{0, 69}, {261, 21}}S;30;CPTexturedBackgroundWindowMaskd;1;5S;20;{{0, 92}, {261, 21}}S;20;CPDocModalWindowMaskD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;103E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;223E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;65E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;66E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;67E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;61E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;68E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;49E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;60E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;70E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;53E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;72E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;59E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;75E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;58E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;76E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;56E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;38E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;80E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;38E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;64E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;81E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;63E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;64E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;87E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;88E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;89E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;90E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;91E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;92E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;93E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;40E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;95E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;95E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;96E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;E;D;K;10;$classnameS;8;CPButtonK;8;$classesA;S;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;2;93E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;112E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;113E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;114E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;116E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;118E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;119E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;120E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;125E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;126E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;120E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;127E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;128E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;129E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;130E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;132E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;133E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;134E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;136E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;139E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;142E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;K;6;$afontD;K;6;CP$UIDd;3;143E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;110E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;145E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;108E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;108E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;108E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;147E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;94E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;106E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;148E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;149E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;150E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;152E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;100E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;153E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;157E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;158E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;159E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;160E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;161E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;162E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;163E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;3;104E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;164E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;109E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;94E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;165E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;166E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;97E;K;6;$afontD;K;6;CP$UIDd;3;169E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;170E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;171E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;2;94E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;172E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;173E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;174E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;142E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;175E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;110E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;107E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;145E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;176E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;105E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;106E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;94E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;120E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;120E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;125E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;107E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;S;21;SheetWindowControllerD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;15;_altCloseButtonS;19;_closableMaskButtonS;12;_closeButtonS;25;_miniaturizableMaskButtonS;22;_orderOutAfterCheckboxS;17;_otherCloseButtonS;20;_resizableMaskButtonS;17;_shadeContentViewS;18;_shadeParentWindowS;16;_shadeWindowViewS;17;_titledMaskButtonS;17;_windowTypeMatrixS;6;windowS;21;initialFirstResponderS;20;takeDoubleValueFrom:S;14;newModalSheet:S;10;newWindow:S;9;newSheet:S;15;newModalWindow:S;14;newAlertSheet:S;13;CPApplicationS;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{71, -14}, {468, 425}}d;2;15S;6;Windowd;1;0S;20;{{0, 0}, {468, 425}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;55E;E;E;S;6;normalS;21;{{18, 18}, {138, 24}}S;19;{{0, 0}, {138, 24}}d;2;36S;6;buttonS;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;103E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;178E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;179E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;110E;E;d;1;2d;1;4S;0;F;d;2;14T;S;21;{{18, 50}, {138, 24}}S;12;Modal WindowS;21;{{18, 82}, {138, 24}}S;5;SheetS;22;{{18, 114}, {138, 24}}S;11;Modal SheetS;22;{{18, 146}, {138, 24}}S;11;Alert SheetS;23;{{193, 139}, {174, 18}}S;19;{{0, 0}, {174, 18}}S;9;check-boxS;8;selectedD;K;6;$classD;K;6;CP$UIDd;3;103E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;178E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;179E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;110E;E;d;1;1S;18;CPTitledWindowMaskS;23;{{193, 159}, {174, 18}}S;20;CPClosableWindowMaskS;23;{{194, 20}, {261, 113}}S;20;{{0, 0}, {261, 113}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;E;E;S;23;{{192, 179}, {210, 18}}S;19;{{0, 0}, {210, 18}}S;26;CPMiniaturizableWindowMaskS;23;{{192, 199}, {180, 18}}S;19;{{0, 0}, {180, 18}}S;21;CPResizableWindowMaskS;22;{{18, 221}, {329, 18}}S;19;{{0, 0}, {329, 18}}S;25;orderOut: after endSheet:S;22;{{30, 246}, {362, 26}}S;19;{{0, 0}, {362, 26}}S;9;textfieldD;K;6;$classD;K;6;CP$UIDd;3;103E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;178E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;186E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;110E;E;S;140;It is not specified if endSheet: or orderOut: on sheet should be called first. However, cannot call orderOut: after endSheet: when chaining.d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;146E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;187E;E;S;22;{{18, 277}, {329, 18}}S;36;Shade Window View of Non-CIB WindowsS;22;{{18, 297}, {329, 18}}S;36;Shade Content View of Non-CIB WindowS;22;{{18, 317}, {329, 18}}S;44;Shade Parent Window on windowWillBeginSheet:S;22;{{18, 383}, {110, 24}}S;19;{{0, 0}, {110, 24}}d;1;9S;12;Chain SheetsS;22;{{385, 383}, {68, 24}}S;18;{{0, 0}, {68, 24}}S;5;CloseS;4;CgA=S;23;{{238, 383}, {135, 24}}S;19;{{0, 0}, {135, 24}}S;16;Close Parent TooS;22;{{116, 350}, {96, 21}}S;18;{{0, 0}, {96, 21}}d;2;45S;6;sliderD;K;6;$classD;K;6;CP$UIDd;3;103E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;188E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;177E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;108E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;108E;E;d;2;50d;2;68d;3;100S;23;{{228, 348}, {104, 29}}S;19;{{0, 0}, {104, 29}}S;19;bezeled+placeholderD;K;6;$classD;K;6;CP$UIDd;3;146E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;189E;E;d;2;12S;28;_CPFontSystemFacePlaceholderd;2;-1D;K;10;$classnameS;7;CPRadioK;8;$classesA;S;7;CPRadioS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;124E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;190E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;190E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;50E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;191E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;192E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;194E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;105E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;105E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;195E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;197E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;199E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;200E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;190E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;50E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;191E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;192E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;105E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;105E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;201E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;197E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;199E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;202E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;203E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;190E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;50E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;191E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;192E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;105E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;105E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;204E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;197E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;199E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;205E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;190E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;50E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;191E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;192E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;105E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;105E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;206E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;197E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;199E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;207E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;208E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;190E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;50E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;191E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;192E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;105E;K;16;$aimage-positionD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;123E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;105E;K;11;$aalignmentD;K;6;CP$UIDd;2;94E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;106E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;209E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;108E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;124E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;124E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;110E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;105E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;94E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;197E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;199E;E;d;2;10D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;124E;E;E;S;9;HelveticaD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;124E;E;E;S;19;{{0, 0}, {261, 21}}d;2;18D;K;6;$classD;K;6;CP$UIDd;3;146E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;211E;E;S;5;radioS;17;selected+borderedS;10;CIB Windowf;3;0.5f;4;0.05D;K;10;$classnameS;12;CPRadioGroupK;8;$classesA;S;12;CPRadioGroupS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;198E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;212E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;181E;E;S;20;{{0, 23}, {261, 21}}S;25;CPHUDBackgroundWindowMaskd;1;3S;20;{{0, 46}, {261, 21}}S;22;CPBorderlessWindowMaskS;20;{{0, 69}, {261, 21}}S;30;CPTexturedBackgroundWindowMaskd;1;5S;20;{{0, 92}, {261, 21}}S;20;CPDocModalWindowMaskf;18;0.6862745098039216D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;213E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/AttachedSheet2/Resources/Window.xib b/Tests/Manual/AttachedSheet2/Resources/Window.xib index 51bd9e416..e6af978f5 100644 --- a/Tests/Manual/AttachedSheet2/Resources/Window.xib +++ b/Tests/Manual/AttachedSheet2/Resources/Window.xib @@ -42,7 +42,7 @@ 15 2 - {{71, 767}, {455, 523}} + {{71, 767}, {468, 425}} 1946157056 Window NSWindow @@ -55,7 +55,7 @@ 301 - {{119, 56}, {96, 21}} + {{116, 54}, {96, 21}} @@ -83,7 +83,7 @@ 301 - {{221, 61}, {96, 22}} + {{234, 51}, {96, 22}} @@ -122,9 +122,10 @@ 289 - {{361, 12}, {80, 32}} + {{381, 12}, {80, 32}} + _NS:9 YES @@ -145,7 +146,7 @@ 268 - {{14, 443}, {150, 32}} + {{14, 345}, {150, 32}} @@ -169,7 +170,7 @@ 268 - {{14, 411}, {150, 32}} + {{14, 313}, {150, 32}} @@ -193,7 +194,7 @@ 268 - {{14, 475}, {150, 32}} + {{14, 377}, {150, 32}} @@ -217,7 +218,7 @@ 268 - {{14, 379}, {150, 32}} + {{14, 281}, {150, 32}} @@ -241,7 +242,7 @@ 268 - {{14, 347}, {150, 32}} + {{14, 249}, {150, 32}} @@ -262,82 +263,10 @@ 25 - - - 268 - {{14, 317}, {150, 32}} - - - - _NS:9 - YES - - 67239424 - 134217728 - Color Panel Sheet - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{14, 285}, {150, 32}} - - - - _NS:9 - YES - - 67239424 - 134217728 - Open Panel Sheet - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{14, 253}, {150, 32}} - - - - _NS:9 - YES - - 67239424 - 134217728 - Save Panel Sheet - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - 289 - {{214, 12}, {147, 32}} + {{234, 12}, {147, 32}} @@ -385,7 +314,7 @@ 268 - {{12, 206}, {329, 18}} + {{18, 186}, {329, 18}} @@ -416,7 +345,7 @@ 268 - {{12, 137}, {329, 18}} + {{18, 130}, {329, 18}} @@ -442,10 +371,10 @@ 268 - {{12, 117}, {329, 18}} + {{18, 110}, {329, 18}} - + _NS:9 YES @@ -468,9 +397,10 @@ 268 - {{12, 97}, {329, 18}} + {{18, 90}, {329, 18}} + _NS:9 YES @@ -493,10 +423,10 @@ 268 - {{193, 366}, {174, 18}} + {{193, 268}, {174, 18}} - + _NS:9 YES @@ -519,7 +449,7 @@ 268 - {{193, 346}, {174, 18}} + {{193, 248}, {174, 18}} @@ -545,7 +475,7 @@ 268 - {{194, 390}, {261, 113}} + {{194, 292}, {261, 113}} @@ -736,10 +666,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{192, 326}, {210, 18}} + {{192, 228}, {210, 18}} - + _NS:9 YES @@ -762,10 +692,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{192, 306}, {180, 18}} + {{192, 208}, {180, 18}} - + _NS:9 YES @@ -788,7 +718,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{24, 174}, {368, 26}} + {{30, 154}, {368, 26}} @@ -816,7 +746,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - {455, 523} + {468, 425} @@ -987,30 +917,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 206 - - - newColorPanelSheet: - - - - 216 - - - - newOpenPanelSheet: - - - - 217 - - - - newSavePanelSheet: - - - - 218 - _shadeParentWindow @@ -1079,22 +985,19 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - - + + + + + + @@ -1390,45 +1293,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - 207 - - - - - - - - 208 - - - - - 210 - - - - - - - - 211 - - - - - 213 - - - - - - - - 214 - - - 220 @@ -1487,12 +1351,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin diff --git a/Tests/Manual/AttachedSheet2/SheetWindowController.j b/Tests/Manual/AttachedSheet2/SheetWindowController.j index 203177eec..2c3cdb51e 100644 --- a/Tests/Manual/AttachedSheet2/SheetWindowController.j +++ b/Tests/Manual/AttachedSheet2/SheetWindowController.j @@ -1,125 +1,147 @@ @implementation SheetWindowController : CPWindowController { - @outlet CPButton _closeButton; - @outlet CPButton _sheetWindowHackCheckbox; - @outlet CPButton _altCloseButton; - @outlet CPButton _otherCloseButton; - @outlet CPButton _orderOutAfterCheckbox; - @outlet CPRadioGroup _windowTypeMatrix; - @outlet CPButton _titledMaskButton; - @outlet CPButton _closableMaskButton; - @outlet CPButton _miniaturizableMaskButton; - @outlet CPButton _resizableMaskButton; - @outlet CPButton _shadeWindowView; - @outlet CPButton _shadeContentView; - @outlet CPButton _shadeParentWindow; - - CPModalSession _modalSession; - CPWindow _parentWindow; - CPWindow _sheet; - int _returnCode; - CPColor _savedColor; + @outlet CPButton _closeButton; + @outlet CPButton _sheetWindowHackCheckbox; + @outlet CPButton _altCloseButton; + @outlet CPButton _otherCloseButton; + @outlet CPButton _orderOutAfterCheckbox; + @outlet CPRadioGroup _windowTypeMatrix; + @outlet CPButton _titledMaskButton; + @outlet CPButton _closableMaskButton; + @outlet CPButton _miniaturizableMaskButton; + @outlet CPButton _resizableMaskButton; + @outlet CPButton _shadeWindowView; + @outlet CPButton _shadeContentView; + @outlet CPButton _shadeParentWindow; + + CPModalSession _modalSession; + CPWindow _parentWindow; + CPWindow _sheet; + int _returnCode; + CPColor _savedColor; } --(void)initWithWindowCibName:(CPString)cibName +- (void)initWithWindowCibName:(CPString)cibName { - CPLog.debug("[%@ %@]", [self class], _cmd); - - self = [super initWithWindowCibName:cibName]; + CPLog.debug("[%@ %@]", [self class], _cmd); - _closeButton = nil; - - return self; -} + self = [super initWithWindowCibName:cibName]; --(void)positionWindow -{ - var keyWindow = [CPApp keyWindow]; - - var origin=CPPointMake(40,40); - if (keyWindow) - { - origin = ([keyWindow frame]).origin; - origin = CPPointMake(origin.x + 20, origin.y + 20); - } - - [[self window] setFrameOrigin:origin]; -} + _closeButton = nil; --(void)awakeFromCib -{ - CPLog.debug("[%@ %@]", [self class], _cmd); - - if (!_closeButton) - CPLog.fatal("_closeButton is not connected!"); - - [_closeButton setTarget:self]; - [_closeButton setAction:@selector(unsetAction:)]; - [_altCloseButton setTarget:self]; - [_altCloseButton setAction:@selector(unsetAction:)]; - [_otherCloseButton setTarget:self]; - [_otherCloseButton setAction:@selector(unsetAction:)]; -} - --(void)unsetAction:(id)sender -{ - CPLog.warn("No action set on this %@", [sender class]); -} - --(void)createCloseButton:(CPWindow)window -{ - _closeButton = [ [CPButton alloc] initWithFrame:CGRectMake(0,0,32,100)]; - [_closeButton setTitle:@"Close"]; - [_closeButton setButtonType:CPMomentaryPushInButton]; - [_closeButton setBezelStyle:CPBezelBorder]; - [_closeButton sizeToFit]; - [[window contentView] addSubview:_closeButton positioned:CPWindowAbove relativeTo:nil]; -} - --(SheetWindowController)initWithStyleMask:(int)styleMask debug:(int)debug -{ - CPLog.debug("[%@ %@] mask=%d radioGroup=%@", [self class], _cmd, styleMask, _windowTypeMatrix); - - if (styleMask < 0) - return [self initWithWindowCibName:@"Window"]; - - var window = [ [CPWindow alloc] - initWithContentRect:CGRectMake(0,0,400,300) - styleMask:styleMask]; - - if (debug & 1) - [window setBackgroundColor:[CPColor colorWithCalibratedRed:1.0 green:0.0 blue:0.0 alpha:0.5]]; - if (debug & 2) - [[window contentView] setBackgroundColor:[CPColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.5]]; - - if (self = [super initWithWindow:window]) - { - [self createCloseButton:window]; - } - return self; } --(SheetWindowController)allocController +- (void)positionWindow { - CPLog.debug("[%@ %@] groupClass=%@", [self class], _cmd, - [ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]); + var keyWindow = [CPApp keyWindow], + origin = CPPointMake(40,40); - var type = 1; + if (keyWindow) + { + origin = ([keyWindow frame]).origin; + origin = CPPointMake(origin.x + 20, origin.y + 20); + } + + [[self window] setFrameOrigin:origin]; +} + +- (void)awakeFromCib +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + if (!_closeButton) + CPLog.fatal("_closeButton is not connected!"); + + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(unsetAction:)]; + [_altCloseButton setTarget:self]; + [_altCloseButton setAction:@selector(unsetAction:)]; + [_otherCloseButton setTarget:self]; + [_otherCloseButton setAction:@selector(unsetAction:)]; +} + +- (void)unsetAction:(id)sender +{ + CPLog.warn("No action set on this %@", [sender class]); +} + +- (void)addButtons:(CPWindow)window +{ + var x = 10, + unsetAction = @selector(unsetAction:); + + _closeButton = [ [CPButton alloc] initWithFrame:CGRectMake(x,10,32,100)]; + [_closeButton setTitle:@"Close"]; + [_closeButton setButtonType:CPMomentaryPushInButton]; + [_closeButton setBezelStyle:CPBezelBorder]; + [_closeButton sizeToFit]; + [_closeButton setTarget:self]; + [_closeButton setAction:unsetAction]; + [[window contentView] addSubview:_closeButton positioned:CPWindowAbove relativeTo:nil]; + x += 10 + CGRectGetWidth([_closeButton frame]); + + _altCloseButton = [ [CPButton alloc] initWithFrame:CGRectMake(x, 10,32,100)]; + [_altCloseButton setTitle:@"Close Parent Too"]; + [_altCloseButton setButtonType:CPMomentaryPushInButton]; + [_altCloseButton setBezelStyle:CPBezelBorder]; + [_altCloseButton sizeToFit]; + [_altCloseButton setTarget:self]; + [_altCloseButton setAction:unsetAction]; + [[window contentView] addSubview:_altCloseButton positioned:CPWindowAbove relativeTo:nil]; + x += 10 + CGRectGetWidth([_altCloseButton frame]); + + _otherCloseButton = [ [CPButton alloc] initWithFrame:CGRectMake(x, 10,32,100)]; + [_otherCloseButton setTitle:@"Chain Sheets"]; + [_otherCloseButton setButtonType:CPMomentaryPushInButton]; + [_otherCloseButton setBezelStyle:CPBezelBorder]; + [_otherCloseButton sizeToFit]; + [_otherCloseButton setTarget:self]; + [_otherCloseButton setAction:unsetAction]; + [[window contentView] addSubview:_otherCloseButton positioned:CPWindowAbove relativeTo:nil]; +} + +- (SheetWindowController)initWithStyleMask:(int)styleMask debug:(int)debug +{ + CPLog.debug("[%@ %@] mask=%d radioGroup=%@", [self class], _cmd, styleMask, _windowTypeMatrix); + + if (styleMask < 0) + return [self initWithWindowCibName:@"Window"]; + + var window = [ [CPWindow alloc] initWithContentRect:CGRectMake(0,0,400,300) styleMask:styleMask]; + + if (debug & 1) + [window setBackgroundColor:[CPColor colorWithCalibratedRed:1.0 green:0.0 blue:0.0 alpha:0.5]]; + + if (debug & 2) + [[window contentView] setBackgroundColor:[CPColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.5]]; + + if (self = [super initWithWindow:window]) + [self addButtons:window]; + + return self; +} + +- (SheetWindowController)allocController +{ + CPLog.debug("[%@ %@] groupClass=%@", [self class], _cmd, + [ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]); + + var type = 1; if (_windowTypeMatrix) type = [ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]; - + var styleMask = 0; if ([_titledMaskButton state]) - styleMask |= CPTitledWindowMask; - - if ([_closableMaskButton state]) - styleMask |= CPClosableWindowMask; - - if ([_miniaturizableMaskButton state]) - styleMask |= CPMiniaturizableWindowMask; - + styleMask |= CPTitledWindowMask; + + if ([_closableMaskButton state]) + styleMask |= CPClosableWindowMask; + + if ([_miniaturizableMaskButton state]) + styleMask |= CPMiniaturizableWindowMask; + switch (type) { case 2: @@ -129,94 +151,114 @@ styleMask = CPBorderlessWindowMask; break; case 4: - styleMask |= CPTexturedBackgroundWindowMask; + styleMask |= CPTexturedBackgroundWindowMask; break; case 5: - styleMask = CPDocModalWindowMask; - break; + styleMask = CPDocModalWindowMask; + break; default: } - + if ([_resizableMaskButton state]) - styleMask |= CPResizableWindowMask; - - if (type==1) - styleMask = -1; - + styleMask |= CPResizableWindowMask; + + if (type == 1) + styleMask = -1; + var debug = 0; if ([_shadeWindowView state]) - debug |= 1; + debug |= 1; + if ([_shadeContentView state]) - debug |= 2; - + debug |= 2; + return [[SheetWindowController alloc] initWithStyleMask:styleMask debug:debug]; } --(SheetWindowController)allocWithPanel:(CPPanel)panel +- (SheetWindowController)allocWithPanel:(CPPanel)panel { - return [[SheetWindowController alloc] initWithWindow:panel]; + return [[SheetWindowController alloc] initWithWindow:panel]; +} + +- (void)disableUnlinkedButtons +{ + CPLog.debug("[%@ %@]", [self class], _cmd); + + var unsetSelector = @selector(unsetAction:); + if (_closeButton) + [_closeButton setEnabled:[_closeButton action] != unsetSelector]; + + if (_altCloseButton) + [_altCloseButton setEnabled:[_altCloseButton action] != unsetSelector]; + + if (_otherCloseButton) + [_otherCloseButton setEnabled:[_otherCloseButton action] != unsetSelector]; } // // Normal window // --(void)newDocument:(id)sender +- (void)newDocument:(id)sender { - [self newWindow:sender]; + [self newWindow:sender]; } --(void)newWindow:(id)sender +- (void)newWindow:(id)sender { - [[self allocController] runNormalWindow]; + [[self allocController] runNormalWindow]; } --(void)runNormalWindow +- (void)runNormalWindow { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); - [self positionWindow]; - [[self window] setTitle:@"Normal Window"]; - [_closeButton setTarget:[self window]]; - [_closeButton setAction:@selector(orderOut:)]; - [self showWindow:self]; + [self positionWindow]; + [[self window] setTitle:@"Normal Window"]; + [_closeButton setTarget:[self window]]; + [_closeButton setAction:@selector(orderOut:)]; + [self disableUnlinkedButtons]; + + [self showWindow:self]; } // // Modal window // --(void)newModalWindow:(id)sender +- (void)newModalWindow:(id)sender { - [[self allocController] runModalWindow]; + [[self allocController] runModalWindow]; } --(void)runModalWindow +- (void)runModalWindow { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); - [[self window] setTitle:@"Modal Window"]; + [[self window] setTitle:@"Modal Window"]; [[self window] setDelegate:self]; - [_closeButton setTarget:self]; - [_closeButton setAction:@selector(endModalWindow:)]; - //[self showWindow:self]; - [CPApp runModalForWindow:[self window]]; + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(endModalWindow:)]; + [self disableUnlinkedButtons]; + + //[self showWindow:self]; + [CPApp runModalForWindow:[self window]]; } --(void)endModalWindow:(id)sender +- (void)endModalWindow:(id)sender { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); - // performClose shouldn't work, if the window has no close button - if ([[self window] styleMask] & CPClosableWindowMask) - [[self window] performClose:self]; - else - [[self window] close]; + // performClose shouldn't work, if the window has no close button + if ([[self window] styleMask] & CPClosableWindowMask) + [[self window] performClose:self]; + else + [[self window] close]; } --(void)windowWillClose:(NSNotification*)notification +- (void)windowWillClose:(NSNotification*)notification { - CPLog.debug("[%@ %@]", [self class], _cmd); - - // this is one way to handle close button on modal window + CPLog.debug("[%@ %@]", [self class], _cmd); + + // this is one way to handle close button on modal window if ([CPApp modalWindow]) [CPApp stopModal]; } @@ -224,243 +266,219 @@ // // Sheet // --(void)newSheet:(id)sender +- (void)newSheet:(id)sender { - [[self allocController] runSheetForWindow:[self window]]; + [[self allocController] runSheetForWindow:[self window]]; } --(void)runSheetForWindow:(CPWindow)parentWindow +- (void)runSheetForWindow:(CPWindow)parentWindow { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); - var sheet = [self window]; - [parentWindow setDelegate:self]; - _parentWindow = parentWindow; - _sheet = sheet; + var sheet = [self window]; + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + _sheet = sheet; - // NOTE: _closeButton doesn't exist until we call [self window] to load window from cib! - [_closeButton setTarget:self]; - [_closeButton setAction:@selector(closeSheet:)]; - [_altCloseButton setAction:@selector(closeSheetAndParent:)]; - [_otherCloseButton setAction:@selector(closeSheetAndRepeat:)]; - - [CPApp beginSheet:sheet - modalForWindow:parentWindow - modalDelegate:self - didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) - contextInfo:parentWindow]; + // NOTE: _closeButton doesn't exist until we call [self window] to load window from cib! + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(closeSheet:)]; + [_altCloseButton setAction:@selector(closeSheetAndParent:)]; + [_otherCloseButton setAction:@selector(closeSheetAndRepeat:)]; + [self disableUnlinkedButtons]; + + [CPApp beginSheet:sheet + modalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:parentWindow]; } --(void)closeSheet:(id)sender +- (void)closeSheet:(id)sender { - CPLog.debug("[%@ %@]", [self class], _cmd); - _returnCode = 1; + CPLog.debug("[%@ %@]", [self class], _cmd); + _returnCode = 1; - var orderOutAfter = [_orderOutAfterCheckbox state]; - if (!orderOutAfter) - [[self window] orderOut:nil]; - - [CPApp endSheet:[self window] returnCode:_returnCode]; - - if (orderOutAfter) - [[self window] orderOut:nil]; + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + [CPApp endSheet:[self window] returnCode:_returnCode]; + + if (orderOutAfter) + [[self window] orderOut:nil]; } --(void)closeSheetAndParent:(id)sender +- (void)closeSheetAndParent:(id)sender { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); // common use case is saving document in response to a close, // in this case we don't want to show the animation at all, // and also get rid of the parent window [_parentWindow close]; - + var orderOutAfter = [_orderOutAfterCheckbox state]; - if (!orderOutAfter) - [[self window] orderOut:nil]; - + if (!orderOutAfter) + [[self window] orderOut:nil]; + _returnCode = 99; [CPApp endSheet:[self window] returnCode:_returnCode]; - + if (orderOutAfter) - [[self window] orderOut:nil]; + [[self window] orderOut:nil]; } --(void)closeSheetAndRepeat:(id)sender +- (void)closeSheetAndRepeat:(id)sender { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); // common use case is showing a progress bar after a save command, - // the orderout gets rid of the current sheet, + // the orderout gets rid of the current sheet, // the return code indicates to open another sheet up - var orderOutAfter = [_orderOutAfterCheckbox state]; - if (!orderOutAfter) - [[self window] orderOut:nil]; - - _returnCode = 77; + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + _returnCode = 77; [CPApp endSheet:[self window] returnCode:_returnCode]; - + if (orderOutAfter) - [[self window] orderOut:nil]; + [[self window] orderOut:nil]; } // // "Modal" Sheet implemented by using modal session // --(void)newModalSheet:(id)sender +- (void)newModalSheet:(id)sender { - [[self allocController] runModalSheetForWindow:[self window]]; + [[self allocController] runModalSheetForWindow:[self window]]; } --(void)runModalSheetForWindow:(CPWindow)parentWindow +- (void)runModalSheetForWindow:(CPWindow)parentWindow { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); - var sheet = [self window]; - [parentWindow setDelegate:self]; - _parentWindow = parentWindow; - _sheet = sheet; + var sheet = [self window]; + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + _sheet = sheet; - [_closeButton setTarget:self]; - [_closeButton setAction:@selector(closeModalSheet:)]; + [_closeButton setTarget:self]; + [_closeButton setAction:@selector(closeModalSheet:)]; + [self disableUnlinkedButtons]; - [CPApp beginSheet:sheet - modalForWindow:parentWindow - modalDelegate:self - didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) - contextInfo:parentWindow]; + [CPApp beginSheet:sheet + modalForWindow:parentWindow + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:parentWindow]; - // what is the difference between these two approaches? - [CPApp runModalForWindow:sheet]; - - //var session = [CPApp beginModalSessionForWindow:sheet]; - //[CPApp runModalSession:session]; + // what is the difference between these two approaches? + [CPApp runModalForWindow:sheet]; + + //var session = [CPApp beginModalSessionForWindow:sheet]; + //[CPApp runModalSession:session]; } --(void)closeModalSheet:(id)sender +- (void)closeModalSheet:(id)sender { - CPLog.debug("[%@ %@]", [self class], _cmd); - - var orderOutAfter = [_orderOutAfterCheckbox state]; - if (!orderOutAfter) - [[self window] orderOut:nil]; - - _returnCode = 2; - [CPApp endSheet:[self window] returnCode:_returnCode]; - - // what return should we get, the sheet or modal? - [CPApp stopModalWithCode:999]; + CPLog.debug("[%@ %@]", [self class], _cmd); - if (orderOutAfter) - [[self window] orderOut:nil]; + var orderOutAfter = [_orderOutAfterCheckbox state]; + if (!orderOutAfter) + [[self window] orderOut:nil]; + + _returnCode = 2; + [CPApp endSheet:[self window] returnCode:_returnCode]; + + // what return should we get, the sheet or modal? + [CPApp stopModalWithCode:999]; + + if (orderOutAfter) + [[self window] orderOut:nil]; } // // Test alert panels // --(void)newAlertSheet:(id)sender +- (void)newAlertSheet:(id)sender { - [self runAlertSheet:[self window]]; + [self runAlertSheet:[self window]]; } --(void)runAlertSheet:(CPWindow)parentWindow +- (void)runAlertSheet:(CPWindow)parentWindow { - // BUG: capp 0.9.5 on WebKit will chop off "bug." in the info text - var alert = [CPAlert alertWithMessageText:@"Alert message text goes here" - defaultButton:@"DefaultButton" - alternateButton:@"AltButton" - otherButton:@"OtherButton" + // BUG: capp 0.9.5 on WebKit will chop off "bug." in the info text + var alert = [CPAlert alertWithMessageText:@"Alert message text goes here" + defaultButton:@"DefaultButton" + alternateButton:@"AltButton" + otherButton:@"OtherButton" informativeTextWithFormat:@"This informative text sentence shows text wrapping bug."]; - [parentWindow setDelegate:self]; - _parentWindow = parentWindow; - _sheet = alert; - _returnCode = -1; - + [parentWindow setDelegate:self]; + _parentWindow = parentWindow; + _sheet = alert; + _returnCode = -1; + [alert beginSheetModalForWindow:parentWindow - modalDelegate:self - didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) - contextInfo:parentWindow]; + modalDelegate:self + didEndSelector:@selector(didEndSheet:returnCode:contextInfo:) + contextInfo:parentWindow]; } --(void)newColorPanelSheet:(id)sender -{ - var panel = [CPColorPanel sharedColorPanel]; - var controller = [self allocWithPanel:panel]; - [controller createCloseButton:panel]; - [controller runSheetForWindow:[self window]]; -} - --(void)newOpenPanelSheet:(id)sender -{ - var panel = [CPOpenPanel openPanel]; - var controller = [self allocWithPanel:panel]; - [controller createCloseButton:panel]; - [controller runSheetForWindow:[self window]]; -} - --(void)newSavePanelSheet:(id)sender -{ - var panel = [CPSavePanel savePanel]; - var controller = [self allocWithPanel:panel]; - [controller createCloseButton:panel]; - [controller runSheetForWindow:[self window]]; -} - -// Test open and save panels - // // Test notifications/delegate methods // --(void)didEndSheet:(CPWindow)sheet returnCode:(int)returnCode contextInfo:(id)parentWindow +- (void)didEndSheet:(CPWindow)sheet returnCode:(int)returnCode contextInfo:(id)parentWindow { - CPLog.debug("[%@ %@] returnCode=%d", [self class], _cmd, returnCode); + CPLog.debug("[%@ %@] returnCode=%d", [self class], _cmd, returnCode); - if (sheet !== _sheet) - CPLog.fatal("sheet invalid"); + if (sheet !== _sheet) + CPLog.fatal("sheet invalid"); - if (_returnCode >= 0 && returnCode != _returnCode) - CPLog.fatal("returnCode invalid"); - - if (_parentWindow !== parentWindow) - CPLog.fatal("contextInfo invalid"); - - // test sheet chaining. it should be possible to start another sheet from didEndSheet, - // but only if we orderOut: the sheet before we called endSheet: This is how cocoa works too. - if (returnCode == 77) - [self runSheetForWindow:parentWindow]; - //[self runAlertSheet:parentWindow]; + if (_returnCode >= 0 && returnCode != _returnCode) + CPLog.fatal("returnCode invalid"); + + if (_parentWindow !== parentWindow) + CPLog.fatal("contextInfo invalid"); + + // test sheet chaining. it should be possible to start another sheet from didEndSheet, + // but only if we orderOut: the sheet before we called endSheet: This is how cocoa works too. + if (returnCode == 77) + [self runSheetForWindow:parentWindow]; + //[self runAlertSheet:parentWindow]; } - (BOOL)shadeWindow -{ - return [_shadeParentWindow state]; +{ + return [_shadeParentWindow state]; } - (void)windowWillBeginSheet:(NSNotification*)notification { - CPLog.debug("[%@ %@]", [self class], _cmd); - - if ([notification object] !== _parentWindow) - CPLog.fatal("notification object should be delegate's window"); - - if ([[_parentWindow windowController] shadeWindow]) - { - _savedColor = [[_parentWindow contentView] backgroundColor]; - [[_parentWindow contentView] setBackgroundColor: - [CPColor colorWithCalibratedRed:0.0 green:0.7 blue:0.0 alpha:1.0]]; - } + CPLog.debug("[%@ %@]", [self class], _cmd); + + if ([notification object] !== _parentWindow) + CPLog.fatal("notification object should be delegate's window"); + + if ([[_parentWindow windowController] shadeWindow]) + { + _savedColor = [[_parentWindow contentView] backgroundColor]; + [[_parentWindow contentView] setBackgroundColor: + [CPColor colorWithCalibratedRed:0.0 green:0.7 blue:0.0 alpha:1.0]]; + } } - (void)windowDidEndSheet:(NSNotification *)notification { - CPLog.debug("[%@ %@]", [self class], _cmd); + CPLog.debug("[%@ %@]", [self class], _cmd); - if ([notification object] !== _parentWindow) - CPLog.fatal("notification object should be delegate's window"); + if ([notification object] !== _parentWindow) + CPLog.fatal("notification object should be delegate's window"); - if ([[_parentWindow windowController] shadeWindow]) - [[_parentWindow contentView] setBackgroundColor:_savedColor]; + if ([[_parentWindow windowController] shadeWindow]) + [[_parentWindow contentView] setBackgroundColor:_savedColor]; } @end From bff22779ae4591199ba2426f1a7c98ab856249fc Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 4 Aug 2012 13:53:05 -0400 Subject: [PATCH 19/22] -capp_lint --- AppKit/CPApplication.j | 8 +-- AppKit/CPWindow/CPWindow.j | 85 ++++++++++++------------- AppKit/CPWindow/_CPStandardWindowView.j | 17 ++--- AppKit/CPWindow/_CPWindowView.j | 10 +-- 4 files changed, 60 insertions(+), 60 deletions(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index a97bca0d9..50003e583 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -936,9 +936,9 @@ CPRunContinuesResponse = -1002; [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: cannot be a sheet"]; return; } - + [aSheet._windowView _enableSheet:YES]; - + // -dw- if a sheet is already visible, we skip this since it serves no purpose and causes // orderOut: to be called on the sheet, which is not what we want. if (![aWindow isVisible]) @@ -1196,8 +1196,8 @@ _CPRunModalLoop = function(anEvent) // yet it works when there is a modal window. Maybe it starts its own modal session, but interaction with the original // modal window seems to continue working as well. Regardless of correctness, this solution beats popovers not working // at all from sheets. - if (theWindow == modalSession._window || - [theWindow worksWhenModal] || + if (theWindow == modalSession._window || + [theWindow worksWhenModal] || [theWindow attachedSheet] == modalSession._window || // -dw- allow modal parent of sheet to be repositioned ([theWindow isKindOfClass:_CPAttachedWindow] && [[theWindow targetView] window] === modalSession._window)) [theWindow sendEvent:anEvent]; diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 6b4ac9461..04c64f436 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -423,7 +423,7 @@ CPTexturedBackgroundWindowMask _isSheet = NO; _sheetContext = nil; _parentView = nil; - + // Set up our window number. _windowNumber = [CPApp._windows count]; CPApp._windows[_windowNumber] = self; @@ -780,21 +780,21 @@ CPTexturedBackgroundWindowMask if (_hasShadow) { - // if the shadow would be taller/wider than the window height, + // if the shadow would be taller/wider than the window height, // make it the same as the window height. this allows views to // become 0,0 with no shadow on them and makes the sheet // animation look nicer var shadowSize = _CGSizeMake(size.width,size.height); - + if (size.width >= (SHADOW_MARGIN_LEFT + SHADOW_MARGIN_RIGHT)) shadowSize.width += SHADOW_MARGIN_LEFT + SHADOW_MARGIN_RIGHT; - + if (size.height >= (SHADOW_MARGIN_BOTTOM + SHADOW_MARGIN_TOP + SHADOW_DISTANCE)) shadowSize.height += SHADOW_MARGIN_BOTTOM + SHADOW_MARGIN_TOP + SHADOW_DISTANCE; - + [_shadowView setFrameSize:shadowSize]; } - + if (!_isAnimating) [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowDidResizeNotification object:self]; } @@ -831,7 +831,7 @@ CPTexturedBackgroundWindowMask { [self _setClippedFrame:_CGRectMake(anOrigin.x, anOrigin.y, _CGRectGetWidth(_frame), _CGRectGetHeight(_frame)) display:YES animate:NO]; - // reposition sheet + // reposition sheet if ([self attachedSheet]) [self _setAttachedSheetFrameOrigin]; } @@ -892,7 +892,7 @@ CPTexturedBackgroundWindowMask [self._parentView _detachSheetWindow]; return; } - + #if PLATFORM(DOM) if ([self _sharesChromeWithPlatformWindow]) [_platformWindow orderOut:self]; @@ -1605,7 +1605,7 @@ CPTexturedBackgroundWindowMask { case CPLeftMouseDown: [_windowView mouseDown:anEvent]; - + // -dw- if the window is clicked, the sheet should come to front, and become key, // and the window should be immediately behind [self orderFront:self]; @@ -1615,7 +1615,7 @@ CPTexturedBackgroundWindowMask [_windowView mouseMoved:anEvent]; break; } - + return; } @@ -2369,29 +2369,29 @@ CPTexturedBackgroundWindowMask [attachedSheet setFrame:sheetFrame display:YES animate:NO]; } -/* @ignore +/* @ignore Starting point for sheet session, called from CPApplication beginSheet: */ -- (void)_attachSheet:(CPWindow)aSheet modalDelegate:(id)aModalDelegate +- (void)_attachSheet:(CPWindow)aSheet modalDelegate:(id)aModalDelegate didEndSelector:(SEL)aDidEndSelector contextInfo:(id)aContextInfo { if (_sheetContext) { - [CPException raise:CPInternalInconsistencyException + [CPException raise:CPInternalInconsistencyException reason:@"The target window of beginSheet: already has a sheet, did you forget orderOut: ?"]; return; } var sheetFrame = [aSheet frame]; - - _sheetContext = {"sheet":aSheet, "modalDelegate":aModalDelegate, "endSelector":aDidEndSelector, - "contextInfo":aContextInfo, "frame":CGRectMakeCopy(sheetFrame), "returnCode":-1, + + _sheetContext = {"sheet":aSheet, "modalDelegate":aModalDelegate, "endSelector":aDidEndSelector, + "contextInfo":aContextInfo, "frame":CGRectMakeCopy(sheetFrame), "returnCode":-1, "opened": NO }; [self _attachSheetWindow]; } -/* @ignore +/* @ignore Called to animate the sheet in. The timer seems to solve a bug where sheets would be partially animated under certain conditions. */ @@ -2400,14 +2400,14 @@ CPTexturedBackgroundWindowMask _sheetContext["isAttached"] = YES; // it would be ideal to block here and spin an event loop, until attach is complete - [CPTimer scheduledTimerWithTimeInterval:0.0 - target:self + [CPTimer scheduledTimerWithTimeInterval:0.0 + target:self selector:@selector(_sheetShouldAnimateIn:) userInfo:nil repeats:NO]; } -/* @ignore +/* @ignore Called to end the sheet. Note that orderOut: is needed to animate the sheet out, as in Cocoa. The sheet isn't completely gone until _cleanupSheetWindow gets called. */ @@ -2421,15 +2421,15 @@ CPTexturedBackgroundWindowMask if (delegate != nil && endSelector != nil) { if (_sheetContext["isAttached"]) - objj_msgSend(delegate, endSelector, _sheetContext["sheet"], _sheetContext["returnCode"], + objj_msgSend(delegate, endSelector, _sheetContext["sheet"], _sheetContext["returnCode"], _sheetContext["contextInfo"]); else _sheetContext["deferDidEndSelector"] = YES; } } -/* @ignore - Called to animate the sheet out. If called while animating in, schedules an animate +/* @ignore + Called to animate the sheet out. If called while animating in, schedules an animate out at completion */ - (void)_detachSheetWindow @@ -2437,8 +2437,8 @@ CPTexturedBackgroundWindowMask _sheetContext["isAttached"] = NO; // it would be ideal to block here and spin the event loop, until attach is complete - [CPTimer scheduledTimerWithTimeInterval:0.0 - target:self + [CPTimer scheduledTimerWithTimeInterval:0.0 + target:self selector:@selector(_sheetShouldAnimateOut:) userInfo:nil repeats:NO]; @@ -2471,15 +2471,15 @@ CPTexturedBackgroundWindowMask if (deferDidEnd) { - var delegate = _sheetContext["modalDelegate"]; + var delegate = _sheetContext["modalDelegate"], selector = _sheetContext["endSelector"], returnCode = _sheetContext["returnCode"], - contextInfo = _sheetContext["contextInfo"], - + contextInfo = _sheetContext["contextInfo"]; + // context must be destroyed, since didEnd might want to attach another sheet _sheetContext = nil; sheet._parentView = nil; - + objj_msgSend(delegate, selector, sheet, returnCode, contextInfo); } else @@ -2496,8 +2496,8 @@ CPTexturedBackgroundWindowMask if (anim._window != sheet) return; - [CPTimer scheduledTimerWithTimeInterval:0.0 - target:self + [CPTimer scheduledTimerWithTimeInterval:0.0 + target:self selector:@selector(_sheetAnimationDidEnd:) userInfo:nil repeats:NO]; @@ -2511,10 +2511,10 @@ CPTexturedBackgroundWindowMask _sheetContext["isClosing"]) return; - var sheet = _sheetContext["sheet"] + var sheet = _sheetContext["sheet"], sheetFrame = [sheet frame], frame = [self frame]; - + [self _setUpMasksForView:[sheet contentView]]; sheet._isSheet = YES; @@ -2526,11 +2526,11 @@ CPTexturedBackgroundWindowMask endFrame = CGRectMake(originx, originy, sheetFrame.size.width, sheetFrame.size.height); [[CPNotificationCenter defaultCenter] postNotificationName:CPWindowWillBeginSheetNotification object:self]; - - // if sheet is attached to a modal window, the sheet runs + + // if sheet is attached to a modal window, the sheet runs // as if itself and the parent window are modal sheet._isModal = NO; - if ([CPApp modalWindow]===self) + if ([CPApp modalWindow] === self) { [CPApp runModalForWindow:sheet]; sheet._isModal = YES; @@ -2538,14 +2538,13 @@ CPTexturedBackgroundWindowMask [sheet orderFront:self]; [sheet setFrame:startFrame display:YES animate:NO]; - + _sheetContext["opened"] = YES; _sheetContext["shouldClose"] = NO; _sheetContext["isOpening"] = YES; - + [sheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseOut]; - // NOTE: cocoa doesn't make window key until animation is done, but a // keypress while animating eventually gets to the window. Therefore, // there must be a runloop specifically designed for sheets? @@ -2565,19 +2564,19 @@ CPTexturedBackgroundWindowMask _sheetContext["shouldClose"] = YES; return; } - + if (_sheetContext["isClosing"]) return; - + _sheetContext["opened"] = NO; _sheetContext["frame"] = startFrame; _sheetContext["isClosing"] = YES; - + // the parent window can be orderedOut to disable the sheet animate out, as in Cocoa if ([self isVisible]) { endFrame.size.height = 0; - [self _setUpMasksForView:[sheet contentView]]; + [self _setUpMasksForView:[sheet contentView]]; [sheet _setFrame:endFrame delegate:self duration:[self animationResizeTime:endFrame] curve:CPAnimationEaseIn]; } else diff --git a/AppKit/CPWindow/_CPStandardWindowView.j b/AppKit/CPWindow/_CPStandardWindowView.j index 97c716bc7..19ffc4d13 100644 --- a/AppKit/CPWindow/_CPStandardWindowView.j +++ b/AppKit/CPWindow/_CPStandardWindowView.j @@ -330,13 +330,13 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, [_headView setFrameSize:CGSizeMake(width, [self toolbarMaxY])]; [_dividerView setFrame:CGRectMake(0.0, CGRectGetMaxY([_headView frame]), width, 1.0)]; - + var dividerMaxY = 0; if (![_dividerView isHidden]) dividerMaxY = CGRectGetMaxY([_dividerView frame]); - + [_bodyView setFrame:CGRectMake(0.0, dividerMaxY, width, CGRectGetHeight(bounds) - dividerMaxY)]; - + var leftOffset = 8; if (_closeButton) @@ -348,7 +348,7 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, var contentRect = CGRectMake(0.0, dividerMaxY, width, CGRectGetHeight([_bodyView frame])); - [[theWindow contentView] setFrame:contentRect]; + [[theWindow contentView] setFrame:contentRect]; } /* - (void)setAnimatingToolbar:(BOOL)isAnimatingToolbar @@ -415,7 +415,7 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, - (void)_enableSheet:(BOOL)enable { [super _enableSheet:enable]; - + [_headView setHidden:enable]; [_dividerView setHidden:enable]; [_closeButton setHidden:enable]; @@ -434,9 +434,10 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, var dy = CGRectGetHeight([_headView frame]) + CGRectGetHeight([_dividerView frame]); if (enable) dy = -dy; - - var newHeight = CGRectGetMaxY(frame) + dy; - var newWidth = CGRectGetMaxX(frame); + + var newHeight = CGRectGetMaxY(frame) + dy, + newWidth = CGRectGetMaxX(frame); + frame.size.height += dy; [self setFrameSize:CGSizeMake(newWidth, newHeight)]; diff --git a/AppKit/CPWindow/_CPWindowView.j b/AppKit/CPWindow/_CPWindowView.j index a4e27e4af..5f5f7d635 100644 --- a/AppKit/CPWindow/_CPWindowView.j +++ b/AppKit/CPWindow/_CPWindowView.j @@ -41,7 +41,7 @@ var _CPWindowViewResizeIndicatorImage = nil; CGPoint _mouseDraggedPoint; CGRect _cachedScreenFrame; - + CPView _sheetShadowView; } @@ -208,13 +208,13 @@ var _CPWindowViewResizeIndicatorImage = nil; - (void)setFrameSize:(CGSize)newSize { [super setFrameSize:newSize]; - + // reposition sheet if the parent window resizes or moves var theWindow = [self window]; - + if ([theWindow attachedSheet]) [theWindow _setAttachedSheetFrameOrigin]; -} +} - (void)setShowsResizeIndicator:(BOOL)shouldShowResizeIndicator { @@ -386,7 +386,7 @@ var _CPWindowViewResizeIndicatorImage = nil; var bundle = [CPBundle bundleForClass:[CPWindow class]]; _sheetShadowView = [[CPView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth([self bounds]), 8)]; [_sheetShadowView setAutoresizingMask:CPViewWidthSizable]; - [_sheetShadowView setBackgroundColor:[CPColor colorWithPatternImage:[[CPImage alloc] + [_sheetShadowView setBackgroundColor:[CPColor colorWithPatternImage:[[CPImage alloc] initWithContentsOfFile:[bundle pathForResource:@"CPWindow/CPWindowAttachedSheetShadow.png"] size:CGSizeMake(9,8)]]]; [self addSubview:_sheetShadowView]; } From eed93dc30da76a433ed5c02c476176e049c8483f Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 4 Aug 2012 13:57:56 -0400 Subject: [PATCH 20/22] -capp_lint --- AppKit/CPWindow/_CPHUDWindowView.j | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/AppKit/CPWindow/_CPHUDWindowView.j b/AppKit/CPWindow/_CPHUDWindowView.j index e8de3b6ce..42368704c 100644 --- a/AppKit/CPWindow/_CPHUDWindowView.j +++ b/AppKit/CPWindow/_CPHUDWindowView.j @@ -211,8 +211,6 @@ var HUD_TITLEBAR_HEIGHT = 26.0; if ([_titleField isHidden]) maxY -= ([self toolbarOffset]).height; - //[[theWindow contentView] setFrameOrigin:CGPointMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY)]; - var contentRect = CGRectMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY); [[theWindow contentView] setFrame:contentRect]; @@ -232,9 +230,10 @@ var HUD_TITLEBAR_HEIGHT = 26.0; var dy = ([self toolbarOffset]).height; if (enable) dy = -dy; - - var newHeight = CGRectGetMaxY(frame) + dy; - var newWidth = CGRectGetMaxX(frame); + + var newHeight = CGRectGetMaxY(frame) + dy, + newWidth = CGRectGetMaxX(frame); + frame.size.height += dy; [self setFrameSize:CGSizeMake(newWidth, newHeight)]; From 339937a316d768708c20085684c18b51de5260ef Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 4 Aug 2012 13:58:31 -0400 Subject: [PATCH 21/22] -support for tags on NSCell, useful for radio groups --- Tools/nib2cib/NSCell.j | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Tools/nib2cib/NSCell.j b/Tools/nib2cib/NSCell.j index ae8b2709f..47e6fb233 100644 --- a/Tools/nib2cib/NSCell.j +++ b/Tools/nib2cib/NSCell.j @@ -49,6 +49,7 @@ CPFont _font @accessors(readonly, getter=font); int _lineBreakMode @accessors(readonly, getter=lineBreakMode); CPFormatter _formatter @accessors(readonly, getter=formatter); + int _tag @accessors(readonly, getter=tag); } - (id)initWithCoder:(CPCoder)aCoder @@ -77,6 +78,8 @@ _controlSize = (flags2 & 0xE0000) >> 17; _sendsActionOnEndEditing = (flags2 & 0x00400000) ? YES : NO; + _tag = [aCoder decodeIntForKey:@"NSTag"]; + _objectValue = [aCoder decodeObjectForKey:@"NSContents"]; _font = [aCoder decodeObjectForKey:@"NSSupport"]; From 872d65b824f9e0d17c5ca870d52fb43195bf7d68 Mon Sep 17 00:00:00 2001 From: Darrell Walisser Date: Sat, 4 Aug 2012 14:06:11 -0400 Subject: [PATCH 22/22] -fix docs for new delegate methods --- AppKit/CPWindow/CPWindow.j | 3 --- 1 file changed, 3 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 04c64f436..15f3cdc08 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -269,9 +269,6 @@ var CPWindowActionMessageKeys = [ Sent from the notification center when an attached sheet on the delegate's window has been animated out and is no longer visible. @param notification contains information about the event - - @return \c YES allows the window to close. \c NO - vetoes the close operation and leaves the window open. */ @implementation CPWindow : CPResponder {