diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 8743ecee4..b310e9f6a 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -958,6 +958,7 @@ CPRunContinuesResponse = -1002; [aWindow orderFront:self]; [aSheet setPlatformWindow:[aWindow platformWindow]]; } + [aWindow _attachSheet:aSheet modalDelegate:aModalDelegate didEndSelector:aDidEndSelector contextInfo:aContextInfo]; } diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 5e27a56b7..ecbf008d5 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -190,7 +190,7 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); CPTextFieldBlurFunction = function(anEvent) { - if (CPTextFieldInputOwner && CPTextFieldInputOwner._DOMElement != CPTextFieldDOMInputElement.parentNode) + if (CPTextFieldInputOwner && CPTextFieldInputOwner._DOMElement !== CPTextFieldDOMInputElement.parentNode) return; if (!CPTextFieldInputResigning) @@ -494,12 +494,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); /* @ignore */ - (BOOL)becomeFirstResponder { -#if PLATFORM(DOM) - // FIXME Why do we care about who's the first responder in a different window? - if (CPTextFieldInputOwner && [CPTextFieldInputOwner window] !== [self window]) - [[CPTextFieldInputOwner window] makeFirstResponder:nil]; -#endif - // As long as we are the first responder we need to monitor the key status of our window. [self _setObserveWindowKeyNotifications:YES]; @@ -512,7 +506,7 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); } /*! - A text field can be the first responder without necessarily being the focus of keyboard input. For example, it might be the first responder of window A but window B is the main and key window. It's important we don't put a focused input field into a text field in a non key window, even if that field is the first responder, because the key window might also have a first responder text field which the user will expect to receive keyboard input. + A text field can be the first responder without necessarily being the focus of keyboard input. For example, it might be the first responder of window A but window B is the main and key window. It's important we don't put a focused input field into a text field in a non-key window, even if that field is the first responder, because the key window might also have a first responder text field which the user will expect to receive keyboard input. Since a first responder but non-key window text field can't receive input it should not even look like an active text field (Cocoa has a "slightly active" text field look it uses when another window is the key window, but Cappuccino doesn't today.) */ @@ -534,8 +528,10 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); element.value = _stringValue; element.style.color = [[self currentValueForThemeAttribute:@"text-color"] cssString]; + if (CPFeatureIsCompatible(CPInputSetFontOutsideOfDOM)) element.style.font = [font cssString]; + element.style.zIndex = 1000; switch ([self alignment]) @@ -571,35 +567,24 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); element.style.top = topPoint; var left = _CGRectGetMinX(contentRect); + // If the browser has a built in left padding, compensate for it. We need the input text to be exactly on top of the original text. if (CPFeatureIsCompatible(CPInput1PxLeftPadding)) left -= 1; + element.style.left = left + "px"; element.style.width = _CGRectGetWidth(contentRect) + "px"; element.style.height = ROUND(lineHeight) + "px"; element.style.lineHeight = ROUND(lineHeight) + "px"; - element.style.verticalAlign = @"top"; + element.style.verticalAlign = "top"; + element.style.cursor = "auto"; _DOMElement.appendChild(element); - // The font change above doesn't work for some browsers if the element isn't already .appendChild'ed. + // The font change above doesn't work for some browsers if the element isn't already appendChild'ed. if (!CPFeatureIsCompatible(CPInputSetFontOutsideOfDOM)) element.style.font = [font cssString]; - window.setTimeout(function() - { - element.focus(); - - // Select the text if the textfield became first responder through keyboard interaction - if (!_willBecomeFirstResponderByClick) - [self _selectText:self immediately:YES]; - - _willBecomeFirstResponderByClick = NO; - - [self textDidFocus:[CPNotification notificationWithName:CPTextFieldDidFocusNotification object:self userInfo:nil]]; - CPTextFieldInputOwner = self; - }, 0.0); - [[[self window] platformWindow] _propagateCurrentDOMEvent:YES]; CPTextFieldInputIsActive = YES; @@ -612,6 +597,28 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); [[self window] platformWindow]._DOMBodyElement.ondrag = function () {}; [[self window] platformWindow]._DOMBodyElement.onselectstart = function () {}; } + + CPTextFieldInputOwner = self; + + window.setTimeout(function() + { + /* + setTimeout handlers are not guaranteed to fire in the order they were initiated. This can cause a race condition when several windows with text fields are opened quickly, resulting in several instances of this timeout function being fired, perhaps out of order. So we have to check that by the time this function is fired, CPTextFieldInputOwner has not been changed to another text field in the meantime. + */ + if (CPTextFieldInputOwner !== self) + return; + + element.focus(); + + // Select the text if the textfield became first responder through keyboard interaction + if (!_willBecomeFirstResponderByClick) + [self _selectText:self immediately:YES]; + + _willBecomeFirstResponderByClick = NO; + + [self textDidFocus:[CPNotification notificationWithName:CPTextFieldDidFocusNotification object:self userInfo:nil]]; + }, 0.0); + #endif } diff --git a/AppKit/CPView.j b/AppKit/CPView.j index a1b1d42ba..25801757a 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -463,7 +463,7 @@ var CPViewFlags = { }, // We will have to adjust the z-index of all views starting at this index. var count = _subviews.length; - // dirty the key view loop, in case the window wants to auto recalculate it + // Dirty the key view loop, in case the window wants to auto recalculate it [[self window] _dirtyKeyViewLoop]; // If this is already one of our subviews, remove it. @@ -544,7 +544,7 @@ var CPViewFlags = { }, if (!_superview) return; - // dirty the key view loop, in case the window wants to auto recalculate it + // Dirty the key view loop, in case the window wants to auto recalculate it [[self window] _dirtyKeyViewLoop]; [_superview willRemoveSubview:self]; diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index bcc0eb0b4..7fa243e4d 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -306,6 +306,7 @@ var CPWindowActionMessageKeys = [ CPToolbar _toolbar; CPResponder _firstResponder; CPResponder _initialFirstResponder; + BOOL _hasBecomeKeyWindow; id _delegate; CPString _title; @@ -445,7 +446,6 @@ CPTexturedBackgroundWindowMask // Create a generic content view. [self setContentView:[[CPView alloc] initWithFrame:CGRectMakeZero()]]; - [self setInitialFirstResponder:[self contentView]]; _firstResponder = self; @@ -474,7 +474,8 @@ CPTexturedBackgroundWindowMask _autorecalculatesKeyViewLoop = NO; _defaultButtonEnabled = YES; - _keyViewLoopIsDirty = YES; + _keyViewLoopIsDirty = NO; + _hasBecomeKeyWindow = NO; [self setShowsResizeIndicator:_styleMask & CPResizableWindowMask]; } @@ -532,13 +533,6 @@ CPTexturedBackgroundWindowMask - (void)awakeFromCib { - _keyViewLoopIsDirty = ![self _hasKeyViewLoop]; - - // If no key view loop has been specified by hand, and we are not intending to auto recalculate, - // set up a default key view loop. - if (_keyViewLoopIsDirty && ![self autorecalculatesKeyViewLoop]) - [self recalculateKeyViewLoop]; - // At this time we know the final screen (or browser) size and can apply the positioning mask, if any, from the nib. if (_positioningScreenRect) { @@ -1048,17 +1042,18 @@ CPTexturedBackgroundWindowMask var bounds = CGRectMake(0.0, 0.0, CGRectGetWidth(_frame), CGRectGetHeight(_frame)); - // During init the initial first responder is set to the contentView - // if it hasn't changed in the mean time we need to update that reference - // to the new contentView - if (_initialFirstResponder === _contentView) - [self setInitialFirstResponder:aView]; - _contentView = aView; [_contentView setFrame:[self contentRectForFrameRect:bounds]]; [_contentView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; [_windowView addSubview:_contentView]; + + /* + If the initial first responder has been set to something other than + the window, set it to the window because it will no longer be valid. + */ + if (_initialFirstResponder && _initialFirstResponder !== self) + _initialFirstResponder = self; } /*! @@ -1404,43 +1399,46 @@ CPTexturedBackgroundWindowMask - (void)setInitialFirstResponder:(CPView)aView { - // Before an initial first responder is set, be sure to calculate the key loop - [self _setupFirstResponder:aView]; - _initialFirstResponder = aView; } -- (void)_setupFirstResponder:(CPView)anInitialFirstResponder +- (void)_setupFirstResponder { /* - If: - - - The key loop is dirty - - The key loop does not auto-recalculate - - No view within the window has become first responder - - No initial first responder has been set - - Then calculate the key view loop and set the first responder - to the first view in the loop if no initial responder has been set, since we should - always have an initial first responder and a key loop by default. + When the window is first made the key window, if the first responder is the window, use the initial first responder if there is one. If there is a first responder and it is not the window, ignore the initial first responder. */ - if (_keyViewLoopIsDirty && - !_autorecalculatesKeyViewLoop && - _firstResponder === self && - _initialFirstResponder === [self contentView]) + if (!_hasBecomeKeyWindow) { - [self recalculateKeyViewLoop]; - - if (anInitialFirstResponder) - [self makeFirstResponder:anInitialFirstResponder]; - else + if (_firstResponder === self) { - // Make the first key view of the content view the first responder - var firstKeyView = [[self contentView] nextValidKeyView]; + if (_initialFirstResponder) + [self makeFirstResponder:_initialFirstResponder]; + else + { + // Make the first valid key view of the content view the first responder + var view = [self _firstValidKeyView]; - [self makeFirstResponder:firstKeyView]; + if (view) + [self makeFirstResponder:view]; + } + + return; } } + + if (_firstResponder) + [self makeFirstResponder:_firstResponder]; +} + +- (CPView)_firstValidKeyView +{ + var views = [self _viewsSortedByPosition]; + + for (var index = 0, count = [views count]; index < count; ++index) + if ([views[index] canBecomeKeyView]) + return views[index]; + + return nil; } /*! @@ -1831,8 +1829,9 @@ CPTexturedBackgroundWindowMask } /*! - Called when the receiver should become the key window. It also sends - the \c -becomeKeyWindow message to the first responder. + Called when the receiver should become the key window. It sends + the \c -becomeKeyWindow message to the first responder if it responds, + and posts \c CPWindowDidBecomeKeyNotification. */ - (void)becomeKeyWindow { @@ -1841,7 +1840,31 @@ CPTexturedBackgroundWindowMask if (_firstResponder !== self && [_firstResponder respondsToSelector:@selector(becomeKeyWindow)]) [_firstResponder becomeKeyWindow]; - [self _setupFirstResponder:nil]; + if (!_hasBecomeKeyWindow) + { + // The first time a window is loaded, if it does not have a key view loop + // established, calculate it now. + if (![self _hasKeyViewLoop:[_contentView subviews]]) + { + // Do this to be compliant with Cocoa docs, it just marks the loop as dirty + [self recalculateKeyViewLoop]; + + /* + We have to calculate now. Otherwise, the following can happen for a window with autorecalculatesKeyViewLoop == NO: + + - Window opens, recalculateKeyViewLoop marks loop dirty. + - Add a new text field, focus the field. + - Tab from the field. Because loop is dirty, it is recalculated, + even though it shouldn't because autorecalculatesKeyViewLoop == NO. + + By calculating the loop now, we ensure that the loop stays clean. + */ + [self _doRecalculateKeyViewLoop]; + } + } + + [self _setupFirstResponder]; + _hasBecomeKeyWindow = YES; [_windowView noteKeyWindowStateChanged]; @@ -1865,7 +1888,7 @@ CPTexturedBackgroundWindowMask says it will return YES if there is a "resize bar", but in practice that is not the same as the resizable mask. */ - return (_styleMask & CPTitledWindowMask) || [self isFullPlatformWindow]; + return (_styleMask & CPTitledWindowMask) || [self isFullPlatformWindow] || _isSheet; } /*! @@ -2438,7 +2461,7 @@ CPTexturedBackgroundWindowMask { // Position the sheet above the contentRect. var attachedSheet = [self attachedSheet]; - var contentRect = [[self contentView] frame], + var contentRect = [_contentView frame], sheetFrame = CGRectMakeCopy([attachedSheet frame]); sheetFrame.origin.y = CGRectGetMinY(_frame) + CGRectGetMinY(contentRect); @@ -2571,6 +2594,7 @@ CPTexturedBackgroundWindowMask - (void)animationDidEnd:(id)anim { var sheet = _sheetContext["sheet"]; + if (anim._window != sheet) return; @@ -2599,7 +2623,7 @@ CPTexturedBackgroundWindowMask 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, + originy = frame.origin.y + [_contentView frame].origin.y, startFrame = CGRectMake(originx, originy, sheetFrame.size.width, 0), endFrame = CGRectMake(originx, originy, sheetFrame.size.width, sheetFrame.size.height); @@ -2608,6 +2632,7 @@ CPTexturedBackgroundWindowMask // 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) { [CPApp runModalForWindow:sheet]; @@ -2761,7 +2786,7 @@ CPTexturedBackgroundWindowMask { // FIXME: should we be starting at the root, in other words _windowView? // The evidence seems to point to no... - return [[self contentView] performKeyEquivalent:anEvent]; + return [_contentView performKeyEquivalent:anEvent]; } - (void)keyDown:(CPEvent)anEvent @@ -2807,9 +2832,9 @@ CPTexturedBackgroundWindowMask } else { - // Cocoa sends complete: for the escape key (in stead of the default cancelOperation:) - // This is also the only action that is not sent directly to the first responder, but through doCommandBySelector. - // The difference is that doCommandBySelector: will also send the action to the window and application delegates. + /* + Cocoa sends complete: for the escape key (instead of the default cancelOperation:). This is also the only action that is not sent directly to the first responder, but through doCommandBySelector. The difference is that doCommandBySelector: will also send the action to the window and application delegates. + */ [[self firstResponder] doCommandBySelector:@selector(complete:)]; } @@ -2822,23 +2847,51 @@ CPTexturedBackgroundWindowMask _keyViewLoopIsDirty = YES; } -- (BOOL)_hasKeyViewLoop -{ - var views = allViews(self), - index = [views count]; +/* + Recursively traverse an array of views (depth last) until we find one that has a next or previous key view set. Return nil if none can be found. - while (index--) - if ([views[index] nextKeyView]) + We don't use allViews here because it is wasteful to enumerate the entire view hierarchy when we will probably find a key view at the top level. +*/ +- (BOOL)_hasKeyViewLoop:(CPArray)theViews +{ + var i, + count = [theViews count]; + + for (i = 0; i < count; ++i) + { + var view = theViews[i]; + + if ([view nextKeyView] || [view previousKeyView]) return YES; + } + + for (i = 0; i < count; ++i) + { + var subviews = [theViews[i] subviews]; + + if ([subviews count] && [self _hasKeyViewLoop:subviews]) + return YES; + } return NO; } - (void)recalculateKeyViewLoop +{ + _keyViewLoopIsDirty = YES; +} + +- (CPArray)_viewsSortedByPosition { var views = allViews(self); [views sortUsingFunction:keyViewComparator context:nil]; + return views; +} + +- (void)_doRecalculateKeyViewLoop +{ + var views = [self _viewsSortedByPosition]; for (var index = 0, count = [views count]; index < count; ++index) [views[index] setNextKeyView:views[(index + 1) % count]]; @@ -2852,9 +2905,6 @@ CPTexturedBackgroundWindowMask return; _autorecalculatesKeyViewLoop = shouldRecalculate; - - if (_autorecalculatesKeyViewLoop) - [self _dirtyKeyViewLoop]; } - (BOOL)autorecalculatesKeyViewLoop @@ -2864,8 +2914,8 @@ CPTexturedBackgroundWindowMask - (void)selectNextKeyView:(id)sender { - if (_keyViewLoopIsDirty && [self autorecalculatesKeyViewLoop]) - [self recalculateKeyViewLoop]; + if (_keyViewLoopIsDirty) + [self _doRecalculateKeyViewLoop]; var nextValidKeyView = nil; @@ -2874,21 +2924,20 @@ CPTexturedBackgroundWindowMask if (!nextValidKeyView) { - var initialFirstResponder = _initialFirstResponder; - - if ([initialFirstResponder acceptsFirstResponder]) - nextValidKeyView = initialFirstResponder; + if ([_initialFirstResponder acceptsFirstResponder]) + nextValidKeyView = _initialFirstResponder; else - nextValidKeyView = [initialFirstResponder nextValidKeyView]; + nextValidKeyView = [_initialFirstResponder nextValidKeyView]; } - [self makeFirstResponder:nextValidKeyView]; + if (nextValidKeyView) + [self makeFirstResponder:nextValidKeyView]; } - (void)selectPreviousKeyView:(id)sender { - if (_keyViewLoopIsDirty && [self autorecalculatesKeyViewLoop]) - [self recalculateKeyViewLoop]; + if (_keyViewLoopIsDirty) + [self _doRecalculateKeyViewLoop]; var previousValidKeyView = nil; @@ -2897,21 +2946,20 @@ CPTexturedBackgroundWindowMask if (!previousValidKeyView) { - var initialFirstResponder = _initialFirstResponder; - - if ([initialFirstResponder acceptsFirstResponder]) - previousValidKeyView = initialFirstResponder; + if ([_initialFirstResponder acceptsFirstResponder]) + previousValidKeyView = _initialFirstResponder; else - previousValidKeyView = [initialFirstResponder previousValidKeyView]; + previousValidKeyView = [_initialFirstResponder previousValidKeyView]; } - [self makeFirstResponder:previousValidKeyView]; + if (previousValidKeyView) + [self makeFirstResponder:previousValidKeyView]; } - (void)selectKeyViewFollowingView:(CPView)aView { - if (_keyViewLoopIsDirty && [self autorecalculatesKeyViewLoop]) - [self recalculateKeyViewLoop]; + if (_keyViewLoopIsDirty) + [self _doRecalculateKeyViewLoop]; var nextValidKeyView = [aView nextValidKeyView]; @@ -2921,8 +2969,8 @@ CPTexturedBackgroundWindowMask - (void)selectKeyViewPrecedingView:(CPView)aView { - if (_keyViewLoopIsDirty && [self autorecalculatesKeyViewLoop]) - [self recalculateKeyViewLoop]; + if (_keyViewLoopIsDirty) + [self _doRecalculateKeyViewLoop]; var previousValidKeyView = [aView previousValidKeyView]; @@ -3015,12 +3063,9 @@ CPTexturedBackgroundWindowMask var allViews = function(aWindow) { - var views = [CPArray arrayWithObject:[aWindow contentView]]; + var views = [[aWindow contentView] subviews]; - [views addObjectsFromArray:[[aWindow contentView] subviews]]; - - // Start from index 1 because index 0 is the contentView and its subviews have already been added - for (var index = 1; index < views.length; ++index) + for (var index = 0; index < views.length; ++index) views = views.concat([views[index] subviews]); return views; diff --git a/Tests/Manual/KeyViewLoopTest/AppController.j b/Tests/Manual/KeyViewLoopTest/AppController.j new file mode 100644 index 000000000..ce5fa53c3 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/AppController.j @@ -0,0 +1,44 @@ +/* + * AppController.j + * KeyViewLoopTest + * + * Created by You on January 7, 2013. + * Copyright 2013, Your Company All rights reserved. + */ + +@import + + +@implementation AppController : CPObject +{ + @outlet CPWindow customNoInitial; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + [customNoInitial makeKeyAndOrderFront:self]; +} + +@end + + +@implementation MyWindow : CPWindow + +- (@action)addField:(id)sender +{ + var field = [CPTextField textFieldWithStringValue:@"" placeholder:@"" width:96]; + + [field setFrameOrigin:CGPointMake(43, 135)]; + [[self contentView] addSubview:field]; + + [sender setEnabled:NO]; + [self makeFirstResponder:[[self contentView] viewWithTag:1]]; +} + +- (@action)recalc:(id)sender +{ + [self recalculateKeyViewLoop]; + [self makeFirstResponder:[[self contentView] viewWithTag:1]]; +} + +@end diff --git a/Tests/Manual/KeyViewLoopTest/Info.plist b/Tests/Manual/KeyViewLoopTest/Info.plist new file mode 100644 index 000000000..8a09a2f00 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + panel + + diff --git a/Tests/Manual/KeyViewLoopTest/Jakefile b/Tests/Manual/KeyViewLoopTest/Jakefile new file mode 100644 index 000000000..c5530d946 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * panel + * + * Created by You on January 7, 2013. + * Copyright 2013, Your Company 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 ("panel", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "panel.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("panel"); + task.setIdentifier("com.yourcompany.panel"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("panel"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["panel"], 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", "panel", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "panel", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "panel")); + OS.system(["press", "-f", FILE.join("Build", "Release", "panel"), FILE.join("Build", "Deployment", "panel")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "panel")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "panel"), FILE.join("Build", "Desktop", "panel", "panel.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "panel", "panel.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "panel")); + print("----------------------------"); +} diff --git a/Tests/Manual/KeyViewLoopTest/KeyViewLoopTest.xcodeproj/project.pbxproj b/Tests/Manual/KeyViewLoopTest/KeyViewLoopTest.xcodeproj/project.pbxproj new file mode 100644 index 000000000..7e4f1d6ac --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/KeyViewLoopTest.xcodeproj/project.pbxproj @@ -0,0 +1,500 @@ + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 18AD4EF5A788E8BE153F3D14 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + _Users_aparajita_Development_Libs_cappuccino_cappuccino_Tests_Manual_KeyViewLoopTest_AppController.m + path + .XcodeSupport/_Users_aparajita_Development_Libs_cappuccino_cappuccino_Tests_Manual_KeyViewLoopTest_AppController.m + sourceTree + SOURCE_ROOT + + 1BA4419F810882A5F82AFC60 + + isa + PBXFileReference + lastKnownFileType + ? + name + AppController.j + path + AppController.j + sourceTree + SOURCE_ROOT + + 6EEB4B5FBC546F0D38F7CBFC + + fileRef + 18AD4EF5A788E8BE153F3D14 + isa + PBXBuildFile + + 7FB3401F89606F501370B1A9 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + _Users_aparajita_Development_Libs_cappuccino_cappuccino_Tests_Manual_KeyViewLoopTest_AppController.h + path + .XcodeSupport/_Users_aparajita_Development_Libs_cappuccino_cappuccino_Tests_Manual_KeyViewLoopTest_AppController.h + sourceTree + SOURCE_ROOT + + 85CB43EBBE11EDBF8A18EA3D + + children + + F7B045A2B5801CC7BC4C6D50 + 7FB3401F89606F501370B1A9 + 18AD4EF5A788E8BE153F3D14 + + isa + PBXGroup + name + Classes + sourceTree + <group> + + 8AB7432EBD9B62552A16F2F1 + + children + + 1BA4419F810882A5F82AFC60 + + isa + PBXGroup + name + Sources + sourceTree + <group> + + 9EEC4488135749D200615446 + + children + + 9EEC44CB13574A0B00615446 + 9EEC4496135749D200615446 + 85CB43EBBE11EDBF8A18EA3D + 8AB7432EBD9B62552A16F2F1 + + isa + PBXGroup + sourceTree + <group> + + 9EEC448A135749D200615446 + + attributes + + LastUpgradeCheck + 0440 + ORGANIZATIONNAME + 280 North, Inc. + + buildConfigurationList + 9EEC448D135749D200615446 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + + mainGroup + 9EEC4488135749D200615446 + productRefGroup + 9EEC4494135749D200615446 + projectDirPath + + projectRoot + + targets + + 9EEC4492135749D200615446 + + + 9EEC448D135749D200615446 + + buildConfigurations + + 9EEC44C3135749D300615446 + 9EEC44C4135749D300615446 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 9EEC448F135749D200615446 + + buildActionMask + 2147483647 + files + + 6EEB4B5FBC546F0D38F7CBFC + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 9EEC4490135749D200615446 + + buildActionMask + 2147483647 + files + + 9EEC4498135749D200615446 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 9EEC4491135749D200615446 + + buildActionMask + 2147483647 + files + + 9EEC44CC13574A0B00615446 + + isa + PBXResourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 9EEC4492135749D200615446 + + buildConfigurationList + 9EEC44C5135749D300615446 + buildPhases + + 9EEC448F135749D200615446 + 9EEC4490135749D200615446 + 9EEC4491135749D200615446 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Another + productName + Another + productReference + 9EEC4493135749D200615446 + productType + com.apple.product-type.application + + 9EEC4493135749D200615446 + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + Another.app + sourceTree + BUILT_PRODUCTS_DIR + + 9EEC4494135749D200615446 + + children + + 9EEC4493135749D200615446 + + isa + PBXGroup + name + Products + sourceTree + <group> + + 9EEC4496135749D200615446 + + children + + 9EEC4497135749D200615446 + 9EEC4499135749D300615446 + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + 9EEC4497135749D200615446 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Cocoa.framework + path + System/Library/Frameworks/Cocoa.framework + sourceTree + SDKROOT + + 9EEC4498135749D200615446 + + fileRef + 9EEC4497135749D200615446 + isa + PBXBuildFile + + 9EEC4499135749D300615446 + + children + + 9EEC449A135749D300615446 + 9EEC449B135749D300615446 + 9EEC449C135749D300615446 + + isa + PBXGroup + name + Other Frameworks + sourceTree + <group> + + 9EEC449A135749D300615446 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + AppKit.framework + path + System/Library/Frameworks/AppKit.framework + sourceTree + SDKROOT + + 9EEC449B135749D300615446 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + CoreData.framework + path + System/Library/Frameworks/CoreData.framework + sourceTree + SDKROOT + + 9EEC449C135749D300615446 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + System/Library/Frameworks/Foundation.framework + sourceTree + SDKROOT + + 9EEC44C3135749D300615446 + + buildSettings + + ARCHS + $(ARCHS_STANDARD_32_64_BIT) + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + DEBUG + 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_UNUSED_VARIABLE + YES + MACOSX_DEPLOYMENT_TARGET + 10.6 + ONLY_ACTIVE_ARCH + YES + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Debug + + 9EEC44C4135749D300615446 + + buildSettings + + ARCHS + $(ARCHS_STANDARD_32_64_BIT) + GCC_C_LANGUAGE_STANDARD + gnu99 + 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_UNUSED_VARIABLE + YES + MACOSX_DEPLOYMENT_TARGET + 10.6 + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Release + + 9EEC44C5135749D300615446 + + buildConfigurations + + 9EEC44C6135749D300615446 + 9EEC44C7135749D300615446 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 9EEC44C6135749D300615446 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + GCC_DYNAMIC_NO_PIC + NO + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Another/Another-Prefix.pch + INFOPLIST_FILE + Another/Another-Info.plist + PRODUCT_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + 9EEC44C7135749D300615446 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Another/Another-Prefix.pch + INFOPLIST_FILE + Another/Another-Info.plist + PRODUCT_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Release + + 9EEC44CB13574A0B00615446 + + isa + PBXFileReference + lastKnownFileType + folder + name + CappuccinoResources + path + Resources + sourceTree + <group> + + 9EEC44CC13574A0B00615446 + + fileRef + 9EEC44CB13574A0B00615446 + isa + PBXBuildFile + + F7B045A2B5801CC7BC4C6D50 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + xcc_general_include.h + path + .XcodeSupport/xcc_general_include.h + sourceTree + SOURCE_ROOT + + + rootObject + 9EEC448A135749D200615446 + + diff --git a/Tests/Manual/KeyViewLoopTest/KeyViewLoopTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tests/Manual/KeyViewLoopTest/KeyViewLoopTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..962f5ecb3 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/KeyViewLoopTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Tests/Manual/KeyViewLoopTest/Resources/MainMenu.cib b/Tests/Manual/KeyViewLoopTest/Resources/MainMenu.cib new file mode 100644 index 000000000..24eb71aa5 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/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;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;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;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;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;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;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;47E;D;K;6;CP$UIDd;1;0E;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;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;54E;D;K;6;CP$UIDd;1;0E;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;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;2;63E;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;68E;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;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;75E;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;11E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;11E;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;42E;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;42E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;11E;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;49E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;11E;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;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;11E;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;63E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;11E;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;71E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;71E;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;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;76E;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;77E;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;30E;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;30E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;32E;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;36E;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;37E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;36E;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;37E;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;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;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;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;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;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;47E;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;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;45E;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;55E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;58E;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;25E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;69E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;62E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;72E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;68E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;62E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;76E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;84E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;85E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;86E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;87E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;88E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;89E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;90E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;91E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;34E;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;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;93E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;93E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;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;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;96E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;34E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;110E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;34E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;34E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;34E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;114E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;118E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;34E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;119E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;85E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;86E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;87E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;120E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;89E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;90E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;121E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;42E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;93E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;93E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;122E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;123E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;124E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;81E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;114E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;110E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;96E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;85E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;86E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;87E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;125E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;89E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;90E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;126E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;93E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;93E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;49E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;118E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;49E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;119E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;49E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;49E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;49E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;49E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;49E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;110E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;49E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;49E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;96E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;49E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;85E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;86E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;87E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;129E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;89E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;90E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;130E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;56E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;132E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;133E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;134E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;135E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;136E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;124E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;81E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;85E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;138E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;87E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;139E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;89E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;90E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;141E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;142E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;143E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;145E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;146E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;147E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;67E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;148E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;149E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;150E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;152E;K;6;$afontD;K;6;CP$UIDd;3;153E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;92E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;92E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;104E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;154E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;106E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;115E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;155E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;92E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;103E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;92E;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;67E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;156E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;150E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;152E;K;6;$afontD;K;6;CP$UIDd;3;153E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;92E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;92E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;104E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;158E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;106E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;115E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;155E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;92E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;103E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;92E;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;31E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;85E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;138E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;159E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;160E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;89E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;90E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;161E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;71E;K;53;_CPCibWindowTemplateWindowAutorecalculatesKeyViewLoopD;K;6;CP$UIDd;3;105E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;162E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;71E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;163E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;71E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;150E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;152E;K;6;$afontD;K;6;CP$UIDd;3;153E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;92E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;92E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;104E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;158E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;106E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;115E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;155E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;92E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;103E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;92E;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;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;71E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;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;71E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;103E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;166E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;115E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;115E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;116E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;103E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;71E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;92E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;71E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;71E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;142E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;143E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;71E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;102E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;103E;K;11;$aalignmentD;K;6;CP$UIDd;3;104E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;105E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;105E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;105E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;109E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;103E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;104E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;70E;E;E;S;8;delegateS;15;customNoInitialS;11;nextKeyViewS;21;initialFirstResponderS;9;addField:S;7;recalc:S;13;AppControllerS;32;{10000000000000, 10000000000000}S;8;CPWindowd;9;606602240S;22;{{27, 63}, {297, 185}}S;21;{{0, 0}, {1440, 878}}d;1;7S;19;Custom - no initiald;1;0S;20;{{0, 0}, {297, 185}}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;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;E;E;S;6;normalS;21;{{37, 87}, {104, 29}}S;19;{{0, 0}, {104, 29}}d;2;37S;9;textfieldS;28;bezeled+editable+placeholderD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;101E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;167E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;168E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;115E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;115E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;105E;E;d;1;2d;1;4T;S;0;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;108E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;169E;E;S;22;{{151, 87}, {104, 29}}S;22;{{37, 139}, {104, 29}}S;21;{{93, 19}, {105, 17}}S;19;{{0, 0}, {105, 17}}S;15;Custom key loopF;D;K;6;$classD;K;6;CP$UIDd;3;108E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;170E;E;S;21;{{69, 44}, {154, 17}}S;19;{{0, 0}, {154, 17}}S;24;No initialFirstResponderS;23;{{27, 313}, {297, 185}}S;16;Custom - initialD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;43E;E;E;S;21;{{80, 44}, {132, 17}}S;19;{{0, 0}, {132, 17}}S;23;{{349, 63}, {297, 185}}S;17;Auto - no initialD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;50E;E;E;S;13;Auto key loopS;24;{{349, 311}, {297, 187}}S;14;Auto - initialS;20;{{0, 0}, {297, 187}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;E;E;S;21;{{37, 89}, {104, 29}}S;22;{{151, 89}, {104, 29}}S;22;{{37, 141}, {104, 29}}S;21;{{93, 21}, {105, 17}}S;21;{{80, 46}, {132, 17}}S;8;MyWindowS;23;{{671, 61}, {297, 187}}S;21;Don’t autorecalculateD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;69E;D;K;6;CP$UIDd;2;68E;E;E;d;1;1S;21;{{37, 47}, {104, 29}}S;22;{{151, 47}, {104, 29}}S;21;{{40, 19}, {212, 17}}S;19;{{0, 0}, {212, 17}}S;30;autorecalculatesKeyViewLoop:NOS;21;{{154, 91}, {99, 24}}S;18;{{0, 0}, {99, 24}}d;2;36S;6;buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;101E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;167E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;168E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;105E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;115E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;105E;E;S;11;Recalculated;2;14S;20;{{47, 91}, {85, 24}}S;18;{{0, 0}, {85, 24}}S;9;Add fieldd;9;606604288S;24;{{671, 311}, {297, 187}}S;15;AutorecalculateD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;72E;E;E;S;21;{{104, 89}, {85, 24}}S;21;{{39, 19}, {215, 17}}S;19;{{0, 0}, {215, 17}}S;31;autorecalculatesKeyViewLoop:YESS;28;_CPFontSystemFacePlaceholderd;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;E;E;D;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;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;142E;E;E;f;18;0.6862745098039216E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/KeyViewLoopTest/Resources/MainMenu.xib b/Tests/Manual/KeyViewLoopTest/Resources/MainMenu.xib new file mode 100644 index 000000000..7fb8e10b7 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/Resources/MainMenu.xib @@ -0,0 +1,1833 @@ + + + + 1050 + 12C3012 + 2844 + 1187.34 + 625.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2844 + + + YES + NSButton + NSButtonCell + NSCustomObject + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AppController + + + 7 + 2 + {{27, 630}, {297, 185}} + 606602240 + Custom - no initial + NSWindow + + + + + 256 + + YES + + + 269 + {{43, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + LucidaGrande + 13 + 1044 + + _NS:9 + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + NO + + + + 269 + {{157, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{43, 20}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{93, 150}, {111, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + Custom key loop + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + NO + + + + 269 + {{69, 125}, {160, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + No initialFirstResponder + + _NS:1535 + + + + + NO + + + {297, 185} + + + + _NS:20 + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + 7 + 2 + {{27, 380}, {297, 185}} + 606602240 + Custom - initial + NSWindow + + + + + 256 + + YES + + + 269 + {{43, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{157, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{43, 20}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{93, 150}, {111, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + Custom key loop + + _NS:1535 + + + + + NO + + + + 269 + {{80, 125}, {138, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + initialFirstResponder + + _NS:1535 + + + + + NO + + + {297, 185} + + + + _NS:20 + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + 7 + 2 + {{349, 630}, {297, 185}} + 606602240 + Auto - no initial + NSWindow + + + + + 256 + + YES + + + 269 + {{43, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{157, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{43, 20}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{93, 150}, {111, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + Auto key loop + + _NS:1535 + + + + + NO + + + + 269 + {{69, 125}, {160, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + No initialFirstResponder + + _NS:1535 + + + + + NO + + + {297, 185} + + + + _NS:20 + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + 7 + 2 + {{349, 380}, {297, 187}} + 606602240 + Auto - initial + NSWindow + + + + + 256 + + YES + + + 269 + {{43, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{157, 72}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{43, 20}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{93, 150}, {111, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + Auto key loop + + _NS:1535 + + + + + NO + + + + 269 + {{80, 125}, {138, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + initialFirstResponder + + _NS:1535 + + + + + NO + + + {297, 187} + + + + _NS:20 + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + 7 + 2 + {{671, 630}, {297, 187}} + 606602240 + Don’t autorecalculate + MyWindow + + + + + 256 + + YES + + + 269 + {{43, 114}, {96, 22}} + + + + _NS:9 + 1 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{157, 114}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{40, 152}, {218, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + autorecalculatesKeyViewLoop:NO + + _NS:1535 + + + + + NO + + + + 268 + {{43, 66}, {97, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Add field + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + NO + + + + 268 + {{150, 66}, {111, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Recalculate + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {297, 187} + + + + _NS:20 + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + 7 + 2 + {{671, 380}, {297, 187}} + 606604288 + Autorecalculate + MyWindow + + + + + 256 + + YES + + + 269 + {{43, 114}, {96, 22}} + + + + _NS:9 + 1 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{157, 114}, {96, 22}} + + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + + + + 269 + {{39, 152}, {221, 17}} + + + + _NS:1535 + YES + + 68157504 + 138413056 + autorecalculatesKeyViewLoop:YES + + _NS:1535 + + + + + NO + + + + 268 + {{100, 68}, {97, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Add field + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + NO + + + {297, 187} + + + + _NS:20 + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + + + YES + + + delegate + + + + 451 + + + + customNoInitial + + + + 736 + + + + nextKeyView + + + + 510 + + + + nextKeyView + + + + 512 + + + + nextKeyView + + + + 511 + + + + initialFirstResponder + + + + 544 + + + + nextKeyView + + + + 543 + + + + nextKeyView + + + + 542 + + + + nextKeyView + + + + 541 + + + + initialFirstResponder + + + + 735 + + + + addField: + + + + 764 + + + + recalc: + + + + 779 + + + + addField: + + + + 775 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 450 + + + + + 498 + + + YES + + + + + + 499 + + + YES + + + + + + + + + + 500 + + + YES + + + + + + 501 + + + YES + + + + + + 502 + + + YES + + + + + + 503 + + + YES + + + + + + 504 + + + YES + + + + + + 505 + + + + + 506 + + + + + 507 + + + + + 508 + + + + + 509 + + + + + 529 + + + YES + + + + + + 530 + + + YES + + + + + + + + + + 531 + + + YES + + + + + + 532 + + + YES + + + + + + 533 + + + YES + + + + + + 534 + + + YES + + + + + + 535 + + + YES + + + + + + 536 + + + + + 537 + + + + + 538 + + + + + 539 + + + + + 540 + + + + + 708 + + + YES + + + + + + 709 + + + YES + + + + + + + + + + 710 + + + YES + + + + + + 711 + + + YES + + + + + + 712 + + + YES + + + + + + 713 + + + YES + + + + + + 714 + + + YES + + + + + + 715 + + + + + 716 + + + + + 717 + + + + + 718 + + + + + 719 + + + + + 723 + + + YES + + + + + + 724 + + + YES + + + + + + + + + + 725 + + + YES + + + + + + 726 + + + YES + + + + + + 727 + + + YES + + + + + + 728 + + + YES + + + + + + 729 + + + YES + + + + + + 730 + + + + + 731 + + + + + 732 + + + + + 733 + + + + + 734 + + + + + 737 + + + YES + + + + + + 750 + + + YES + + + + + + + + + + 751 + + + YES + + + + + + 752 + + + YES + + + + + + 754 + + + YES + + + + + + 757 + + + + + 759 + + + + + 760 + + + + + 762 + + + YES + + + + + + 763 + + + + + 765 + + + YES + + + + + + 766 + + + YES + + + + + + + + + 767 + + + YES + + + + + + 768 + + + YES + + + + + + 769 + + + YES + + + + + + 770 + + + YES + + + + + + 771 + + + + + 772 + + + + + 773 + + + + + 774 + + + + + 776 + + + YES + + + + + + 777 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 450.IBPluginDependency + 498.IBNSWindowAutoPositionCentersHorizontal + 498.IBNSWindowAutoPositionCentersVertical + 498.IBPluginDependency + 498.NSWindowTemplate.visibleAtLaunch + 499.IBPluginDependency + 500.IBPluginDependency + 501.IBPluginDependency + 502.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBPluginDependency + 509.IBPluginDependency + 529.IBNSWindowAutoPositionCentersHorizontal + 529.IBNSWindowAutoPositionCentersVertical + 529.IBPluginDependency + 529.NSWindowTemplate.visibleAtLaunch + 530.IBPluginDependency + 531.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 535.IBPluginDependency + 536.IBPluginDependency + 537.IBPluginDependency + 538.IBPluginDependency + 539.IBPluginDependency + 540.IBPluginDependency + 708.IBNSWindowAutoPositionCentersHorizontal + 708.IBNSWindowAutoPositionCentersVertical + 708.IBPluginDependency + 708.NSWindowTemplate.visibleAtLaunch + 709.IBPluginDependency + 710.IBPluginDependency + 711.IBPluginDependency + 712.IBPluginDependency + 713.IBPluginDependency + 714.IBPluginDependency + 715.IBPluginDependency + 716.IBPluginDependency + 717.IBPluginDependency + 718.IBPluginDependency + 719.IBPluginDependency + 723.IBNSWindowAutoPositionCentersHorizontal + 723.IBNSWindowAutoPositionCentersVertical + 723.IBPluginDependency + 723.NSWindowTemplate.visibleAtLaunch + 724.IBPluginDependency + 725.IBPluginDependency + 726.IBPluginDependency + 727.IBPluginDependency + 728.IBPluginDependency + 729.IBPluginDependency + 730.IBPluginDependency + 731.IBPluginDependency + 732.IBPluginDependency + 733.IBPluginDependency + 734.IBPluginDependency + 737.IBNSWindowAutoPositionCentersHorizontal + 737.IBNSWindowAutoPositionCentersVertical + 737.IBPluginDependency + 737.NSWindowTemplate.visibleAtLaunch + 750.IBPluginDependency + 751.IBPluginDependency + 752.IBPluginDependency + 754.IBPluginDependency + 757.IBPluginDependency + 759.IBPluginDependency + 760.IBPluginDependency + 762.IBPluginDependency + 763.IBPluginDependency + 765.IBNSWindowAutoPositionCentersHorizontal + 765.IBNSWindowAutoPositionCentersVertical + 765.IBPluginDependency + 765.NSWindowTemplate.visibleAtLaunch + 766.IBPluginDependency + 767.IBPluginDependency + 768.IBPluginDependency + 769.IBPluginDependency + 770.IBPluginDependency + 771.IBPluginDependency + 772.IBPluginDependency + 773.IBPluginDependency + 774.IBPluginDependency + 776.IBPluginDependency + 777.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 + + + + YES + + + + + + YES + + + + + 779 + + + + YES + + AppController + NSObject + + customNoInitial + NSWindow + + + customNoInitial + + customNoInitial + NSWindow + + + + IBProjectSource + ./Classes/AppController.h + + + + MyWindow + NSWindow + + YES + + YES + addField: + recalc: + + + YES + id + id + + + + YES + + YES + addField: + recalc: + + + YES + + addField: + id + + + recalc: + id + + + + + IBProjectSource + ./Classes/MyWindow.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/Tests/Manual/KeyViewLoopTest/Resources/spinner.gif b/Tests/Manual/KeyViewLoopTest/Resources/spinner.gif new file mode 100644 index 000000000..77b36416b Binary files /dev/null and b/Tests/Manual/KeyViewLoopTest/Resources/spinner.gif differ diff --git a/Tests/Manual/KeyViewLoopTest/index-debug.html b/Tests/Manual/KeyViewLoopTest/index-debug.html new file mode 100644 index 000000000..6d7c42403 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/index-debug.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + KeyViewLoopTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/KeyViewLoopTest/index.html b/Tests/Manual/KeyViewLoopTest/index.html new file mode 100644 index 000000000..340fb75b1 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/index.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + KeyViewLoopTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/KeyViewLoopTest/main.j b/Tests/Manual/KeyViewLoopTest/main.j new file mode 100644 index 000000000..48b4ef808 --- /dev/null +++ b/Tests/Manual/KeyViewLoopTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * panel + * + * Created by You on January 7, 2013. + * Copyright 2013, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +}