From 865a45044f3976a9dfffc703ae36a215aeba38d6 Mon Sep 17 00:00:00 2001 From: cacaodev Date: Tue, 24 Mar 2015 16:38:45 +0100 Subject: [PATCH] NEW: bindings support --- AppKit/CPTabView.j | 200 +++- .../Manual/CPTabViewBindings/AppController.j | 77 ++ Tests/Manual/CPTabViewBindings/Info.plist | 14 + Tests/Manual/CPTabViewBindings/Jakefile | 184 +++ .../CPTabViewBindings/Resources/MainMenu.cib | 1 + .../CPTabViewBindings/Resources/MainMenu.xib | 1062 +++++++++++++++++ .../Manual/CPTabViewBindings/index-debug.html | 191 +++ Tests/Manual/CPTabViewBindings/index.html | 161 +++ Tests/Manual/CPTabViewBindings/main.j | 18 + 9 files changed, 1906 insertions(+), 2 deletions(-) create mode 100644 Tests/Manual/CPTabViewBindings/AppController.j create mode 100644 Tests/Manual/CPTabViewBindings/Info.plist create mode 100644 Tests/Manual/CPTabViewBindings/Jakefile create mode 100644 Tests/Manual/CPTabViewBindings/Resources/MainMenu.cib create mode 100644 Tests/Manual/CPTabViewBindings/Resources/MainMenu.xib create mode 100644 Tests/Manual/CPTabViewBindings/index-debug.html create mode 100644 Tests/Manual/CPTabViewBindings/index.html create mode 100644 Tests/Manual/CPTabViewBindings/main.j diff --git a/AppKit/CPTabView.j b/AppKit/CPTabView.j index cf4a43232..fc9aa4654 100644 --- a/AppKit/CPTabView.j +++ b/AppKit/CPTabView.j @@ -65,6 +65,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, CPSegmentedControl _tabs; CPBox _box; + CPView _placeHolderView; CPTabViewItem _selectedTabViewItem; @@ -101,6 +102,8 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [self addSubview:_box]; [self addSubview:_tabs]; + + _placeHolderView = nil; } - (CPArray)items @@ -162,7 +165,8 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, - (void)_didRemoveTabViewItem:(CPTabViewItem)aTabViewItem atIndex:(CPInteger)idx { - if ([self selectedIndexBinder]) + // If the selection is managed by bindings, let the binder do that. + if ([self binderForBinding:CPSelectionIndexesBinding] || [self binderForBinding:CPSelectedIndexBinding]) return; if (_selectedTabViewItem == aTabViewItem) @@ -308,11 +312,12 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, if (![self _selectTabViewItemAtIndex:anIndex]) return NO; - //[self _reverseSetSelectedIndex]; + [self _reverseSetSelectedIndex]; return YES; } +// Like selectTabViewItemAtIndex: but without bindings interaction - (BOOL)_selectTabViewItemAtIndex:(CPUInteger)anIndex { var aTabViewItem = [self tabViewItemAtIndex:anIndex]; @@ -525,6 +530,196 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, @end +@implementation CPTabView (BindingSupport) + ++ (Class)_binderClassForBinding:(CPString)aBinding +{ + if (aBinding == CPContentBinding) + return [_CPTabViewContentBinder class]; + else if (aBinding == CPSelectionIndexesBinding || aBinding == CPSelectedIndexBinding) + return [_CPTabViewSelectionBinder class]; + + return [super _binderClassForBinding:aBinding]; +} + ++ (BOOL)isBindingExclusive:(CPString)aBinding +{ + return (aBinding == CPSelectionIndexesBinding || aBinding == CPSelectedIndexBinding); +} + +- (void)_reverseSetContent +{ + var theBinder = [self binderForBinding:CPContentBinding]; + [theBinder reverseSetValueFor:@"items"]; +} + +- (void)_reverseSetSelectedIndex +{ + var theBinder = [self binderForBinding:CPSelectionIndexesBinding]; + + if (theBinder !== nil) + [theBinder reverseSetValueFor:@"selectionIndexes"]; + else + { + theBinder = [self binderForBinding:CPSelectedIndexBinding]; + [theBinder reverseSetValueFor:@"selectedIndex"]; + } +} + +- (CPBinder)binderForBinding:(CPString)aBinding +{ + var cls = [[self class] _binderClassForBinding:aBinding] + return [cls getBinding:aBinding forObject:self]; +} + +- (void)setItems:(CPArray)tabViewItems +{ + if ([tabViewItems isEqualToArray:[_tabs segments]]) + return; + + [[self items] makeObjectsPerformSelector:@selector(_setTabView:) withObject:nil]; + [_tabs setSegments:tabViewItems]; + [tabViewItems makeObjectsPerformSelector:@selector(_setTabView:) withObject:self]; + + [self tileWithChangedItem:nil]; + + // Update the selection because setSegments: did remove all previous segments AND the selection. + [_tabs setSelectedSegment:[self indexOfTabViewItem:_selectedTabViewItem]]; + + // should we send delegate methods in bindings mode ? + //[self _delegateTabViewDidChangeNumberOfTabViewItems:self]; +} + +- (void)_deselectAll +{ + [_tabs setSelectedSegment:-1]; + _selectedTabViewItem = nil; +} + +- (void)_displayPlaceholder:(CPString)aPlaceholder +{ + if (_placeHolderView == nil) + { + _placeHolderView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + var textField = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; + [textField setTag:1000]; + [textField setTextColor:[CPColor whiteColor]]; + [textField setFont:[CPFont boldFontWithName:@"Geneva" size:18 italic:YES]]; + [_placeHolderView addSubview:textField]; + } + + var textField = [_placeHolderView viewWithTag:1000]; + [textField setStringValue:aPlaceholder]; + [textField sizeToFit]; + + var boxBounds = [_box bounds], + textFieldBounds = [textField bounds], + origin = CGPointMake(CGRectGetWidth(boxBounds)/2 - CGRectGetWidth(textFieldBounds)/2, CGRectGetHeight(boxBounds)/2 - CGRectGetHeight(textFieldBounds)); + + [textField setFrameOrigin:origin]; + + [self _displayItemView:_placeHolderView]; +} + +@end + +var _CPTabViewContentBinderNull = @"NO CONTENT"; + +@implementation _CPTabViewContentBinder : CPBinder +{ +} + +- (void)_updatePlaceholdersWithOptions:(CPDictionary)options +{ + [super _updatePlaceholdersWithOptions:options]; + [self _setPlaceholder:_CPTabViewContentBinderNull forMarker:CPNullMarker isDefault:YES]; +} + +- (void)setPlaceholderValue:(id)aValue withMarker:(CPString)aMarker forBinding:(CPString)aBinding +{ + [_source setItems:@[]]; + [_source _setPlaceholderView:aValue]; +} + +- (void)setValue:(id)aValue forBinding:(CPString)aBinding +{ + [_source setItems:aValue]; +} + +- (id)valueForBinding:(CPString)aBinding +{ + return [_source items]; +} + +@end + +var _CPTabViewSelectionBinderMultipleValues = @"Multiple Selection", + _CPTabViewSelectionBinderNoSelection = @"No Selection"; + +@implementation _CPTabViewSelectionBinder : CPBinder +{ +} + +- (void)_updatePlaceholdersWithOptions:(CPDictionary)options +{ + [super _updatePlaceholdersWithOptions:options]; + + [self _setPlaceholder:_CPTabViewSelectionBinderMultipleValues forMarker:CPMultipleValuesMarker isDefault:YES]; + [self _setPlaceholder:_CPTabViewSelectionBinderNoSelection forMarker:CPNoSelectionMarker isDefault:YES]; +} + +- (void)setPlaceholderValue:(id)aValue withMarker:(CPString)aMarker forBinding:(CPString)aBinding +{ + if (aMarker == CPNoSelectionMarker || aMarker == CPNullMarker) + [_source _deselectAll]; + + [_source _displayPlaceholder:aValue]; +} + +- (void)setValue:(id)aValue forBinding:(CPString)aBinding +{ + if (aBinding == CPSelectionIndexesBinding) + { + if (aValue == nil || [aValue count] == 0) + { + [_source _deselectAll]; + [_source _displayPlaceholder:_CPTabViewSelectionBinderNoSelection]; + } + else if ([aValue count] > 1) + [_source _displayPlaceholder:_CPTabViewSelectionBinderMultipleValues]; + else if ([aValue firstIndex] < [_source numberOfTabViewItems]) + [_source _selectTabViewItemAtIndex:[aValue firstIndex]]; + } + else if (aBinding == CPSelectedIndexBinding) + { + if (aValue == CPNotFound) + { + [_source _deselectAll]; + [_source _displayPlaceholder:_CPTabViewSelectionBinderNoSelection]; + } + else if (aValue < [_source numberOfTabViewItems]) + [_source _selectTabViewItemAtIndex:aValue]; + } +} + +- (id)valueForBinding:(CPString)aBinding +{ + if (aBinding == CPSelectionIndexesBinding) + { + var result = [CPIndexSet indexSet], + idx = [_source indexOfTabViewItem:[_source selectedTabViewItem]]; + + if (idx !== CPNotFound) + [result addIndex:idx]; + + return result; + } + else if (aBinding == CPSelectedIndexBinding) + return [_source indexOfTabViewItem:[_source selectedTabViewItem]]; +} + +@end + var CPTabViewItemsKey = "CPTabViewItemsKey", CPTabViewSelectedItemKey = "CPTabViewSelectedItemKey", CPTabViewTypeKey = "CPTabViewTypeKey", @@ -548,6 +743,7 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", [self setDelegate:[aCoder decodeObjectForKey:CPTabViewDelegateKey]]; _selectedTabViewItem = [aCoder decodeObjectForKey:CPTabViewSelectedItemKey]; + _type = [aCoder decodeIntForKey:CPTabViewTypeKey]; } diff --git a/Tests/Manual/CPTabViewBindings/AppController.j b/Tests/Manual/CPTabViewBindings/AppController.j new file mode 100644 index 000000000..2a8c8c81e --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/AppController.j @@ -0,0 +1,77 @@ +/* + * AppController.j + * CPTabViewBindings + * + * Created by You on February 25, 2015. + * Copyright 2015, Your Company All rights reserved. + */ + +@import +@import + +CPLogRegister(CPLogConsole); + +var ITEM_NUMBER = 0; + +@implementation ArrayController : CPArrayController + +- (id)newObject +{ + var n = ITEM_NUMBER++; + var item = [[CPTabViewItem alloc] initWithIdentifier:@"Item" + n]; + [item setLabel:@"Item " + n]; + var view = [[CPView alloc] initWithFrame:CGRectMake(0,0,100,100)]; + [view setBackgroundColor:[CPColor randomColor]]; + [item setView:view]; + + return item; +} + +@end + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + @outlet CPTabView tabView; + @outlet ArrayController arrayController; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + [tabView bind:CPContentBinding toObject:arrayController withKeyPath:@"arrangedObjects" options:nil]; + [tabView bind:CPSelectionIndexesBinding toObject:arrayController withKeyPath:@"selectionIndexes" options:nil]; + [tabView bind:CPSelectedIndexBinding toObject:arrayController withKeyPath:@"selectedIndex" options:nil]; + // In this case, we want the window from Cib to become our full browser window + [theWindow setFullPlatformWindow:YES]; +} + +- (@action)preserveSelection:(id)sender +{ + [arrayController setPreservesSelection:[sender state]]; +} + +- (@action)avoidsEmpty:(id)sender +{ + [arrayController setAvoidsEmptySelection:[sender state]]; +} + +- (@action)selectsInserted:(id)sender +{ + [arrayController setSelectsInsertedObjects:[sender state]]; +} + +- (@action)usesMultipleValuesMarker:(id)sender +{ + [arrayController setAlwaysUsesMultipleValuesMarker:[sender state]]; +} + +@end diff --git a/Tests/Manual/CPTabViewBindings/Info.plist b/Tests/Manual/CPTabViewBindings/Info.plist new file mode 100644 index 000000000..7cf056cf4 --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/Info.plist @@ -0,0 +1,14 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + CPTabViewBindings + CPBundleVersion + 1.0 + CPHumanReadableCopyright + Copyright © 2015, Your Company All rights reserved. + + diff --git a/Tests/Manual/CPTabViewBindings/Jakefile b/Tests/Manual/CPTabViewBindings/Jakefile new file mode 100644 index 000000000..aa6cc29d1 --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/Jakefile @@ -0,0 +1,184 @@ +/* + * Jakefile + * CPTabViewBindings + * + * Created by You on February 25, 2015. + * Copyright 2015, 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"), + projectName = "CPTabViewBindings"; + +app (projectName, function(task) +{ + ENV["OBJJ_INCLUDE_PATHS"] = "Frameworks"; + + if (configuration === "Debug") + ENV["OBJJ_INCLUDE_PATHS"] = FILE.join(ENV["OBJJ_INCLUDE_PATHS"], configuration); + + task.setBuildIntermediatesPath(FILE.join("Build", "CPTabViewBindings.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("CPTabViewBindings"); + task.setIdentifier("com.yourcompany.CPTabViewBindings"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("CPTabViewBindings"); + task.setSources(new FileList("**/*.j").exclude(FILE.join("Build", "**")).exclude(FILE.join("Frameworks", "Source", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", [projectName], function() +{ + printResults(configuration); +}); + +task ("build", ["default"], function() +{ + updateApplicationSize(); +}); + +task ("debug", function() +{ + configuration = ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + configuration = ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", projectName, "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", projectName, "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", projectName)); + OS.system(["press", "-f", FILE.join("Build", "Release", projectName), FILE.join("Build", "Deployment", projectName)]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", projectName)); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", projectName), FILE.join("Build", "Desktop", projectName, "CPTabViewBindings.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", projectName, "CPTabViewBindings.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, projectName)); + print("----------------------------"); +} + +function updateApplicationSize() +{ + print("Calculating application file sizes..."); + + var contents = FILE.read(FILE.join("Build", configuration, projectName, "Info.plist"), { charset:"UTF-8" }), + format = CFPropertyList.sniffedFormatOfString(contents), + plist = CFPropertyList.propertyListFromString(contents), + totalBytes = {executable:0, data:0, mhtml:0}; + + // Get the size of all framework executables and sprite data + var frameworksDir = "Frameworks"; + + if (configuration === "Debug") + frameworksDir = FILE.join(frameworksDir, "Debug"); + + var frameworks = FILE.list(frameworksDir); + + frameworks.forEach(function(framework) + { + if (framework !== "Source") + addBundleFileSizes(FILE.join(frameworksDir, framework), totalBytes); + }); + + // Read in the default theme name, and attempt to get its size + var themeName = plist.valueForKey("CPDefaultTheme") || "Aristo2", + themePath = nil; + + if (themeName === "Aristo" || themeName === "Aristo2") + themePath = FILE.join(frameworksDir, "AppKit", "Resources", themeName + ".blend"); + else + themePath = FILE.join("Frameworks", "Resources", themeName + ".blend"); + + if (FILE.isDirectory(themePath)) + addBundleFileSizes(themePath, totalBytes); + + // Add sizes for the app + addBundleFileSizes(FILE.join("Build", configuration, projectName), totalBytes); + + print("Executables: " + totalBytes.executable + ", sprite data: " + totalBytes.data + ", total: " + (totalBytes.executable + totalBytes.data)); + + var dict = new CFMutableDictionary(); + + dict.setValueForKey("executable", totalBytes.executable); + dict.setValueForKey("data", totalBytes.data); + dict.setValueForKey("mhtml", totalBytes.mhtml); + + plist.setValueForKey("CPApplicationSize", dict); + + FILE.write(FILE.join("Build", configuration, projectName, "Info.plist"), CFPropertyList.stringFromPropertyList(plist, format), { charset:"UTF-8" }); +} + +function addBundleFileSizes(bundlePath, totalBytes) +{ + var bundleName = FILE.basename(bundlePath), + environment = bundleName === "Foundation" ? "Objj" : "Browser", + bundlePath = FILE.join(bundlePath, environment + ".environment"); + + if (FILE.isDirectory(bundlePath)) + { + var filename = bundleName + ".sj", + filePath = new FILE.Path(FILE.join(bundlePath, filename)); + + if (filePath.exists()) + totalBytes.executable += filePath.size(); + + filePath = new FILE.Path(FILE.join(bundlePath, "dataURLs.txt")); + + if (filePath.exists()) + totalBytes.data += filePath.size(); + + filePath = new FILE.Path(FILE.join(bundlePath, "MHTMLData.txt")); + + if (filePath.exists()) + totalBytes.mhtml += filePath.size(); + + filePath = new FILE.Path(FILE.join(bundlePath, "MHTMLPaths.txt")); + + if (filePath.exists()) + totalBytes.mhtml += filePath.size(); + } +} diff --git a/Tests/Manual/CPTabViewBindings/Resources/MainMenu.cib b/Tests/Manual/CPTabViewBindings/Resources/MainMenu.cib new file mode 100644 index 000000000..e14505c57 --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/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;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;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;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;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;62E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;68E;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;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;69E;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;70E;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;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;66E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;68E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;72E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;66E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;37E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;66E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;33E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;50E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;75E;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;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;59E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;68E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;76E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;60E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;68E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;62E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;64E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;63E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;80E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;65E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;81E;E;D;K;10;$classnameS;21;CPCibBindingConnectorK;8;$classesA;S;21;CPCibBindingConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;52E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;83E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;84E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;68E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;87E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;88E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;89E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;68E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;92E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;92E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;93E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;69E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;94E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;95E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;96E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;97E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;98E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;99E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;100E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;35E;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;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;102E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;102E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;103E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;E;D;K;10;$classnameS;9;CPTabViewK;8;$classesA;S;9;CPTabViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPTabViewItemsKeyD;K;6;CP$UIDd;3;110E;K;24;CPTabViewSelectedItemKeyD;K;6;CP$UIDd;2;39E;K;16;CPTabViewTypeKeyD;K;6;CP$UIDd;3;101E;K;16;CPTabViewFontKeyD;K;6;CP$UIDd;3;112E;K;20;CPTabViewDelegateKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTabViewItemK;8;$classesA;S;13;CPTabViewItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;38E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;113E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;114E;K;21;CPTabViewItemImageKeyD;K;6;CP$UIDd;1;0E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;40E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;38E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;118E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;119E;K;21;CPTabViewItemImageKeyD;K;6;CP$UIDd;1;0E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;42E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;E;D;K;10;$classnameS;12;CPScrollViewK;8;$classesA;S;12;CPScrollViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;43E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;120E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;121E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;123E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;125E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;126E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;57E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;54E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;127E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;127E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;127E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;127E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;128E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;128E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;128E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;129E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;130E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;101E;E;D;K;10;$classnameS;11;CPTableViewK;8;$classesA;S;11;CPTableViewS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;45E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;125E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;125E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;134E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;12;$agrid-colorD;K;6;CP$UIDd;3;135E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewDataSourceKeyD;K;6;CP$UIDd;1;0E;K;22;CPTableViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;23;CPTableViewRowHeightKeyD;K;6;CP$UIDd;3;137E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;138E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;101E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;136E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;128E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;128E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;128E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;128E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;128E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;139E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;135E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;101E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;106E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;141E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;56E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;K;35;CPTableViewArchivedReusableViewsKeyD;K;6;CP$UIDd;3;142E;E;D;K;10;$classnameS;13;CPTableColumnK;8;$classesA;S;13;CPTableColumnS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;143E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;144E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;145E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;146E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;148E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;149E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;150E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;106E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;128E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;15;CPTableCellViewK;8;$classesA;S;15;CPTableCellViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;49E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;151E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;152E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;153E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;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;51E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;50E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;158E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;6;$afontD;K;6;CP$UIDd;3;112E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;128E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;159E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;106E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;106E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;106E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;160E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;136E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;106E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;106E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;106E;E;D;K;10;$classnameS;10;CPScrollerK;8;$classesA;S;10;CPScrollerS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;161E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;162E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;44E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;163E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;44E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;167E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;1;0E;K;23;CPScrollerIsVerticalKeyD;K;6;CP$UIDd;3;106E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;168E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;17;CPTableHeaderViewK;8;$classesA;S;17;CPTableHeaderViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;126E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;169E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;169E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;171E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;172E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;44E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;163E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;44E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;173E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;1;0E;K;23;CPScrollerIsVerticalKeyD;K;6;CP$UIDd;3;128E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;174E;K;18;CPScrollerStyleKeyD;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;58E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;175E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;176E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;11;$aalignmentD;K;6;CP$UIDd;3;130E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;16;$aimage-positionD;K;6;CP$UIDd;3;168E;K;7;$aimageD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;182E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;182E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;106E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;183E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;101E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;128E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;168E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;101E;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;58E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;184E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;176E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;11;$aalignmentD;K;6;CP$UIDd;3;130E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;185E;K;16;$aimage-positionD;K;6;CP$UIDd;3;168E;K;7;$aimageD;K;6;CP$UIDd;3;186E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;182E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;182E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;106E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;183E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;101E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;128E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;168E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;101E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;187E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;188E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;189E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;190E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;112E;K;16;$aimage-positionD;K;6;CP$UIDd;3;130E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;168E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;191E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;182E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;106E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;168E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;168E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;128E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;130E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;101E;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;61E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;192E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;188E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;189E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;190E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;112E;K;16;$aimage-positionD;K;6;CP$UIDd;3;130E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;168E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;193E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;182E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;106E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;168E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;168E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;128E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;130E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;101E;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;61E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;194E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;188E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;189E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;190E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;112E;K;16;$aimage-positionD;K;6;CP$UIDd;3;130E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;168E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;195E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;182E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;106E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;168E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;168E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;128E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;130E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;101E;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;61E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;196E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;188E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;189E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;158E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;112E;K;16;$aimage-positionD;K;6;CP$UIDd;3;130E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;197E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;182E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;106E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;168E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;168E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;128E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;130E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;101E;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;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;198E;E;D;K;10;$classnameS;18;_CPCibClassSwapperK;8;$classesA;S;18;_CPCibClassSwapperS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;199E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;128E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;128E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;128E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;128E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;3;128E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;128E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;128E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;106E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;106E;K;30;_CPCibClassSwapperClassNameKeyD;K;6;CP$UIDd;3;200E;K;38;_CPCibClassSwapperOriginalClassNameKeyD;K;6;CP$UIDd;3;201E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;33E;E;E;S;8;delegateS;15;arrayControllerS;7;tabViewS;9;theWindowS;9;textFieldS;4;add:S;7;remove:S;18;preserveSelection:S;16;selectsInserted:S;12;avoidsEmpty:S;25;usesMultipleValuesMarker:S;24;value: objectValue.labelS;5;valueS;17;objectValue.labelD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;85E;K;10;CP.objectsD;E;E;S;24;content: arrangedObjectsS;7;contentS;15;arrangedObjectsD;K;6;$classD;K;6;CP$UIDd;2;85E;K;10;CP.objectsD;E;E;S;34;selectionIndexes: selectionIndexesS;16;selectionIndexesD;K;6;$classD;K;6;CP$UIDd;2;85E;K;10;CP.objectsD;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1946157056S;24;{{335, 388}, {813, 249}}S;22;{{0, 0}, {1680, 1027}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {813, 249}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;E;E;S;6;normalS;6;{1, 1}F;S;23;{{129, 14}, {450, 190}}S;20;{{0, 0}, {450, 190}}d;2;36D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;E;E;D;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;111E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;202E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;203E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;106E;E;S;1;1S;3;TabS;22;{{10, 33}, {430, 144}}S;20;{{0, 0}, {430, 144}}d;2;18S;1;2S;4;ViewS;22;{{20, 20}, {108, 185}}S;20;{{0, 0}, {108, 185}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;129E;E;E;S;10;scrollviewD;K;10;$classnameS;10;CPClipViewK;8;$classesA;S;10;CPClipViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;124E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;204E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;205E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;44E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;20;CPReuseIdentifierKeyD;K;6;CP$UIDd;3;206E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;3;124E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;207E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;208E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;209E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;44E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;20;CPReuseIdentifierKeyD;K;6;CP$UIDd;3;210E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;56E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;211E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;44E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;E;d;1;2S;20;{{0, 0}, {106, 167}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;212E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;132E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;213E;E;d;1;4d;2;31S;6;{3, 2}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;48E;E;E;D;K;10;$classnameS;13;_CPCornerViewK;8;$classesA;S;13;_CPCornerViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;140E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;101E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;214E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;215E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;44E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;163E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;216E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;20;CPReuseIdentifierKeyD;K;6;CP$UIDd;3;217E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;85E;K;10;CP.objectsD;K;32;AutomaticTableColumnIdentifier.0D;K;6;CP$UIDd;3;219E;E;E;S;32;AutomaticTableColumnIdentifier.0d;3;103d;2;40d;4;1000D;K;10;$classnameS;24;_CPTableColumnHeaderViewK;8;$classesA;S;24;_CPTableColumnHeaderViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;147E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;211E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;220E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;221E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;101E;K;6;$afontD;K;6;CP$UIDd;3;222E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;223E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;224E;E;D;K;6;$classD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;211E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;225E;K;11;$aalignmentD;K;6;CP$UIDd;3;101E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;6;$afontD;K;6;CP$UIDd;3;112E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;226E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;227E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;101E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;128E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;128E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;106E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;133E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;136E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;101E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;106E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;106E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;106E;E;d;1;3S;19;{{1, 1}, {103, 31}}S;19;{{0, 0}, {103, 31}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;52E;E;E;S;18;{{2, 0}, {99, 17}}S;18;{{0, 0}, {99, 17}}d;2;34S;9;textfieldS;18;controlSizeRegularS;15;Table View CellD;K;6;$classD;K;6;CP$UIDd;3;132E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;228E;E;S;20;{{1, 51}, {223, 15}}S;19;{{0, 0}, {223, 15}}d;1;8d;11;-2147483648S;8;scrollerS;27;controlSizeRegular+disabledS;29;_horizontalScrollerDidScroll:d;1;1S;19;{{0, 0}, {106, 25}}S;14;tableHeaderRowS;22;{{224, 66}, {15, 102}}S;19;{{0, 0}, {15, 102}}S;27;_verticalScrollerDidScroll:f;18;0.8717948717948718S;22;{{106, 208}, {22, 25}}S;18;{{0, 0}, {22, 25}}S;6;buttonS;27;bordered+controlSizeRegularD;K;6;$classD;K;6;CP$UIDd;3;111E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;229E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;230E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;128E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;106E;E;D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;231E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;232E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;233E;E;S;0;d;2;14S;21;{{81, 208}, {22, 25}}D;K;6;$classD;K;6;CP$UIDd;3;111E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;202E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;234E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;3;180E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;231E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;235E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;236E;E;S;22;{{590, 17}, {214, 21}}S;19;{{0, 0}, {214, 21}}S;9;check-boxS;27;controlSizeRegular+selectedS;19;Preserves SelectionS;22;{{590, 72}, {214, 21}}S;22;Avoids Empty SelectionS;22;{{590, 44}, {214, 21}}S;24;Selects Inserted ObjectsS;23;{{590, 103}, {214, 21}}S;27;Uses Mutliple Values MarkerS;13;AppControllerS;13;CPTabViewItemS;15;ArrayControllerS;17;CPArrayControllerS;29;.Helvetica Neue DeskInterfaced;2;13S;20;{{1, 1}, {106, 167}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;46E;E;E;S;6;_NS:11S;21;{{1, 168}, {106, 17}}S;19;{{0, 0}, {106, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;56E;E;E;S;6;_NS:16S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;168E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;168E;E;E;S;20;{{0, 160}, {14, 25}}S;18;{{0, 0}, {14, 25}}S;10;cornerviewS;6;_NS:19D;K;10;$classnameS;5;CPCibK;8;$classesA;S;5;CPCibS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;218E;K;16;CPCibDataFileKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;240E;E;E;S;12;columnHeaderD;K;6;$classD;K;6;CP$UIDd;3;111E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;202E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;241E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;106E;E;S;6;LabelsD;K;6;$classD;K;6;CP$UIDd;3;111E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;242E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;243E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;128E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;106E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;128E;E;S;41;controlSizeRegular+editable+tableDataViewS;9;Text Celld;4;3072D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;168E;E;E;S;5;Ariald;1;9S;7;CPImageS;13;CPAddTemplateD;K;6;$classD;K;6;CP$UIDd;2;85E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;246E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;182E;K;9;frameworkD;K;6;CP$UIDd;3;182E;E;E;d;2;16S;16;CPRemoveTemplateD;K;6;$classD;K;6;CP$UIDd;2;85E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;247E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;182E;K;9;frameworkD;K;6;CP$UIDd;3;182E;E;E;f;3;0.8S;8120;MjgwTlBMSVNUOzEuMDtEO0s7NDskdG9wRDtLOzE4O0NQQ2liT2JqZWN0RGF0YUtleUQ7Szs2O0NQJFVJRGQ7MTsyRTtFO0s7ODskb2JqZWN0c0E7Uzs1OyRudWxsRDtLOzEwOyRjbGFzc25hbWVTOzE2O19DUENpYk9iamVjdERhdGFLOzg7JGNsYXNzZXNBO1M7MTY7X0NQQ2liT2JqZWN0RGF0YVM7ODtDUE9iamVjdEU7RTtEO0s7NjskY2xhc3NEO0s7NjtDUCRVSURkOzE7MUU7SzsyODtfQ1BDaWJPYmplY3REYXRhTmFtZXNLZXlzS2V5RDtLOzY7Q1AkVUlEZDsxOzBFO0s7MzA7X0NQQ2liT2JqZWN0RGF0YU5hbWVzVmFsdWVzS2V5RDtLOzY7Q1AkVUlEZDsxOzBFO0s7MzA7X0NQQ2liT2JqZWN0RGF0YUNsYXNzZXNLZXlzS2V5RDtLOzY7Q1AkVUlEZDsxOzBFO0s7MzI7X0NQQ2liT2JqZWN0RGF0YUNsYXNzZXNWYWx1ZXNLZXlEO0s7NjtDUCRVSURkOzE7MEU7SzszMDtfQ1BDaWJPYmplY3REYXRhQ29ubmVjdGlvbnNLZXlEO0s7NjtDUCRVSURkOzE7NEU7SzsyODtfQ1BDaWJPYmplY3REYXRhRnJhbWV3b3JrS2V5RDtLOzY7Q1AkVUlEZDsxOzBFO0s7MjY7X0NQQ2liT2JqZWN0RGF0YU5leHRPaWRLZXlEO0s7NjtDUCRVSURkOzE7NUU7SzszMDtfQ1BDaWJPYmplY3REYXRhT2JqZWN0c0tleXNLZXlEO0s7NjtDUCRVSURkOzE7NkU7SzszMjtfQ1BDaWJPYmplY3REYXRhT2JqZWN0c1ZhbHVlc0tleUQ7Szs2O0NQJFVJRGQ7MTs3RTtLOzI2O19DUENpYk9iamVjdERhdGFPaWRLZXlzS2V5RDtLOzY7Q1AkVUlEZDsxOzhFO0s7Mjg7X0NQQ2liT2JqZWN0RGF0YU9pZFZhbHVlc0tleUQ7Szs2O0NQJFVJRGQ7MTs5RTtLOzI4O19DUENpYk9iamVjdERhdGFGaWxlT3duZXJLZXlEO0s7NjtDUCRVSURkOzI7MTFFO0s7MzM7X0NQQ2liT2JqZWN0RGF0YVZpc2libGVXaW5kb3dzS2V5RDtLOzY7Q1AkVUlEZDsyOzEzRTtFO0Q7SzsxMDskY2xhc3NuYW1lUzs3O0NQQXJyYXlLOzg7JGNsYXNzZXNBO1M7NztDUEFycmF5Uzs4O0NQT2JqZWN0RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7MTszRTtLOzEwO0NQLm9iamVjdHNBO0Q7Szs2O0NQJFVJRGQ7MjsxNUU7RDtLOzY7Q1AkVUlEZDsyOzE3RTtFO0U7RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsxOzNFO0s7MTA7Q1Aub2JqZWN0c0E7RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7MTszRTtLOzEwO0NQLm9iamVjdHNBO0Q7Szs2O0NQJFVJRGQ7MjsxOUU7RDtLOzY7Q1AkVUlEZDsyOzIxRTtEO0s7NjtDUCRVSURkOzE7MEU7RDtLOzY7Q1AkVUlEZDsyOzIyRTtFO0U7RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsxOzNFO0s7MTA7Q1Aub2JqZWN0c0E7RDtLOzY7Q1AkVUlEZDsyOzExRTtEO0s7NjtDUCRVSURkOzI7MTlFO0Q7Szs2O0NQJFVJRGQ7MjsyMUU7RDtLOzY7Q1AkVUlEZDsyOzExRTtFO0U7RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsxOzNFO0s7MTA7Q1Aub2JqZWN0c0E7RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7MTszRTtLOzEwO0NQLm9iamVjdHNBO0U7RTtEO0s7MTA7JGNsYXNzbmFtZVM7MTg7X0NQQ2liQ3VzdG9tT2JqZWN0Szs4OyRjbGFzc2VzQTtTOzE4O19DUENpYkN1c3RvbU9iamVjdFM7ODtDUE9iamVjdEU7RTtEO0s7NjskY2xhc3NEO0s7NjtDUCRVSURkOzI7MTBFO0s7Mjc7X0NQQ2liQ3VzdG9tT2JqZWN0Q2xhc3NOYW1lRDtLOzY7Q1AkVUlEZDsyOzIzRTtFO0Q7SzsxMDskY2xhc3NuYW1lUzs1O0NQU2V0Szs4OyRjbGFzc2VzQTtTOzU7Q1BTZXRTOzg7Q1BPYmplY3RFO0U7RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsyOzEyRTtLOzE1O0NQU2V0T2JqZWN0c0tleUQ7Szs2O0NQJFVJRGQ7MjsyNEU7RTtEO0s7MTA7JGNsYXNzbmFtZVM7MjA7Q1BDaWJPdXRsZXRDb25uZWN0b3JLOzg7JGNsYXNzZXNBO1M7MjA7Q1BDaWJPdXRsZXRDb25uZWN0b3JTOzE0O0NQQ2liQ29ubmVjdG9yUzs4O0NQT2JqZWN0RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7MjsxNEU7SzsyNDtfQ1BDaWJDb25uZWN0b3JTb3VyY2VLZXlEO0s7NjtDUCRVSURkOzI7MTlFO0s7Mjk7X0NQQ2liQ29ubmVjdG9yRGVzdGluYXRpb25LZXlEO0s7NjtDUCRVSURkOzI7MjFFO0s7MjM7X0NQQ2liQ29ubmVjdG9yTGFiZWxLZXlEO0s7NjtDUCRVSURkOzI7MjVFO0U7RDtLOzEwOyRjbGFzc25hbWVTOzIxO0NQQ2liQmluZGluZ0Nvbm5lY3Rvcks7ODskY2xhc3Nlc0E7UzsyMTtDUENpYkJpbmRpbmdDb25uZWN0b3JTOzE0O0NQQ2liQ29ubmVjdG9yUzs4O0NQT2JqZWN0RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7MjsxNkU7SzsyNDtfQ1BDaWJDb25uZWN0b3JTb3VyY2VLZXlEO0s7NjtDUCRVSURkOzI7MjFFO0s7Mjk7X0NQQ2liQ29ubmVjdG9yRGVzdGluYXRpb25LZXlEO0s7NjtDUCRVSURkOzI7MTlFO0s7MjM7X0NQQ2liQ29ubmVjdG9yTGFiZWxLZXlEO0s7NjtDUCRVSURkOzI7MjZFO0s7MzE7Q1BDaWJCaW5kaW5nQ29ubmVjdG9yQmluZGluZ0tleUQ7Szs2O0NQJFVJRGQ7MjsyN0U7SzszMTtDUENpYkJpbmRpbmdDb25uZWN0b3JLZXlQYXRoS2V5RDtLOzY7Q1AkVUlEZDsyOzI4RTtLOzMxO0NQQ2liQmluZGluZ0Nvbm5lY3Rvck9wdGlvbnNLZXlEO0s7NjtDUCRVSURkOzI7MzBFO0U7RDtLOzEwOyRjbGFzc25hbWVTOzE1O0NQVGFibGVDZWxsVmlld0s7ODskY2xhc3Nlc0E7UzsxNTtDUFRhYmxlQ2VsbFZpZXdTOzY7Q1BWaWV3UzsxMTtDUFJlc3BvbmRlclM7ODtDUE9iamVjdEU7RTtEO0s7NjskY2xhc3NEO0s7NjtDUCRVSURkOzI7MThFO0s7MTg7Q1BSZXNwb25kZXJNZW51S2V5RDtLOzY7Q1AkVUlEZDsxOzBFO0s7MTI7Q1BWaWV3VGFnS2V5RDtLOzY7Q1AkVUlEZDsyOzMxRTtLOzE0O0NQVmlld0ZyYW1lS2V5RDtLOzY7Q1AkVUlEZDsyOzMyRTtLOzE1O0NQVmlld0JvdW5kc0tleUQ7Szs2O0NQJFVJRGQ7MjszM0U7SzsxNztDUFZpZXdTdWJ2aWV3c0tleUQ7Szs2O0NQJFVJRGQ7MjszNEU7SzsyMjtDUFZpZXdBdXRvcmVzaXppbmdNYXNrRDtLOzY7Q1AkVUlEZDsyOzM1RTtLOzE5O0NQVmlld1RoZW1lQ2xhc3NLZXlEO0s7NjtDUCRVSURkOzE7MEU7SzsxOTtDUFZpZXdUaGVtZVN0YXRlS2V5RDtLOzY7Q1AkVUlEZDsyOzM2RTtLOzIwO0NQUmV1c2VJZGVudGlmaWVyS2V5RDtLOzY7Q1AkVUlEZDsyOzM3RTtLOzE0O0NQVmlld1NjYWxlS2V5RDtLOzY7Q1AkVUlEZDsyOzM4RTtLOzE4O0NQVmlld1NpemVTY2FsZUtleUQ7Szs2O0NQJFVJRGQ7MjszOEU7SzsxNztDUFZpZXdJc1NjYWxlZEtleUQ7Szs2O0NQJFVJRGQ7MjszOUU7RTtEO0s7MTA7JGNsYXNzbmFtZVM7MTE7Q1BUZXh0RmllbGRLOzg7JGNsYXNzZXNBO1M7MTE7Q1BUZXh0RmllbGRTOzk7Q1BDb250cm9sUzs2O0NQVmlld1M7MTE7Q1BSZXNwb25kZXJTOzg7Q1BPYmplY3RFO0U7RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsyOzIwRTtLOzI3O0NQUmVzcG9uZGVyTmV4dFJlc3BvbmRlcktleUQ7Szs2O0NQJFVJRGQ7MjsxOUU7SzsxODtDUFJlc3BvbmRlck1lbnVLZXlEO0s7NjtDUCRVSURkOzE7MEU7SzsxMjtDUFZpZXdUYWdLZXlEO0s7NjtDUCRVSURkOzI7MzFFO0s7MTQ7Q1BWaWV3RnJhbWVLZXlEO0s7NjtDUCRVSURkOzI7NDBFO0s7MTU7Q1BWaWV3Qm91bmRzS2V5RDtLOzY7Q1AkVUlEZDsyOzQxRTtLOzE4O0NQVmlld1N1cGVydmlld0tleUQ7Szs2O0NQJFVJRGQ7MjsxOUU7SzsyMjtDUFZpZXdBdXRvcmVzaXppbmdNYXNrRDtLOzY7Q1AkVUlEZDsyOzQyRTtLOzE5O0NQVmlld1RoZW1lQ2xhc3NLZXlEO0s7NjtDUCRVSURkOzI7NDNFO0s7MTk7Q1BWaWV3VGhlbWVTdGF0ZUtleUQ7Szs2O0NQJFVJRGQ7Mjs0NEU7SzsxMTskYWFsaWdubWVudEQ7Szs2O0NQJFVJRGQ7Mjs0NUU7SzsxNzskYWxpbmUtYnJlYWstbW9kZUQ7Szs2O0NQJFVJRGQ7Mjs0NUU7Szs2OyRhZm9udEQ7Szs2O0NQJFVJRGQ7Mjs0N0U7SzsxNDtDUFZpZXdTY2FsZUtleUQ7Szs2O0NQJFVJRGQ7MjszOEU7SzsxODtDUFZpZXdTaXplU2NhbGVLZXlEO0s7NjtDUCRVSURkOzI7MzhFO0s7MTc7Q1BWaWV3SXNTY2FsZWRLZXlEO0s7NjtDUCRVSURkOzI7MzlFO0s7MzU7Q1BDb250cm9sU2VuZHNBY3Rpb25PbkVuZEVkaXRpbmdLZXlEO0s7NjtDUCRVSURkOzI7NDhFO0s7MTc7Q1BDb250cm9sVmFsdWVLZXlEO0s7NjtDUCRVSURkOzI7NDlFO0s7MjQ7Q1BDb250cm9sU2VuZEFjdGlvbk9uS2V5RDtLOzY7Q1AkVUlEZDsyOzQ1RTtLOzIzO0NQQ29udHJvbENvbnRyb2xTaXplS2V5RDtLOzY7Q1AkVUlEZDsyOzMxRTtLOzI0O0NQVGV4dEZpZWxkSXNFZGl0YWJsZUtleUQ7Szs2O0NQJFVJRGQ7MjszOUU7SzsyNjtDUFRleHRGaWVsZElzU2VsZWN0YWJsZUtleUQ7Szs2O0NQJFVJRGQ7MjszOUU7SzsyOTtDUFRleHRGaWVsZERyYXdzQmFja2dyb3VuZEtleUQ7Szs2O0NQJFVJRGQ7MjszOUU7SzsyOTtDUFRleHRGaWVsZEJhY2tncm91bmRDb2xvcktleUQ7Szs2O0NQJFVJRGQ7Mjs1MUU7SzsyNztDUFRleHRGaWVsZExpbmVCcmVha01vZGVLZXlEO0s7NjtDUCRVSURkOzI7NDVFO0s7MjM7Q1BUZXh0RmllbGRBbGlnbm1lbnRLZXlEO0s7NjtDUCRVSURkOzI7NDVFO0s7MzE7Q1BUZXh0RmllbGRQbGFjZWhvbGRlclN0cmluZ0tleUQ7Szs2O0NQJFVJRGQ7MTswRTtLOzI5O0NQVGV4dEZpZWxkVXNlc1NpbmdsZUxpbmVNb2RlRDtLOzY7Q1AkVUlEZDsyOzM5RTtLOzE2O0NQVGV4dEZpZWxkV3JhcHNEO0s7NjtDUCRVSURkOzI7MzlFO0s7MTg7Q1BUZXh0RmllbGRTY3JvbGxzRDtLOzY7Q1AkVUlEZDsyOzM5RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7MjsxMEU7SzsyNztfQ1BDaWJDdXN0b21PYmplY3RDbGFzc05hbWVEO0s7NjtDUCRVSURkOzI7NTJFO0U7Uzs4O0NQT2JqZWN0RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsxOzNFO0s7MTA7Q1Aub2JqZWN0c0E7RTtFO1M7OTt0ZXh0RmllbGRTOzI0O3ZhbHVlOiBvYmplY3RWYWx1ZS5sYWJlbFM7NTt2YWx1ZVM7MTc7b2JqZWN0VmFsdWUubGFiZWxEO0s7MTA7JGNsYXNzbmFtZVM7MTI7Q1BEaWN0aW9uYXJ5Szs4OyRjbGFzc2VzQTtTOzEyO0NQRGljdGlvbmFyeVM7ODtDUE9iamVjdEU7RTtEO0s7NjskY2xhc3NEO0s7NjtDUCRVSURkOzI7MjlFO0s7MTA7Q1Aub2JqZWN0c0Q7RTtFO2Q7MTswUzsxOTt7ezEsIDF9LCB7MTAzLCAzMX19UzsxOTt7ezAsIDB9LCB7MTAzLCAzMX19RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsxOzNFO0s7MTA7Q1Aub2JqZWN0c0E7RDtLOzY7Q1AkVUlEZDsyOzIxRTtFO0U7ZDsyOzE4Uzs2O25vcm1hbFM7MzI7QXV0b21hdGljVGFibGVDb2x1bW5JZGVudGlmaWVyLjBTOzY7ezEsIDF9RjtTOzE4O3t7MiwgMH0sIHs5OSwgMTd9fVM7MTg7e3swLCAwfSwgezk5LCAxN319ZDsyOzM0Uzs5O3RleHRmaWVsZFM7MTg7Y29udHJvbFNpemVSZWd1bGFyZDsxOzREO0s7MTA7JGNsYXNzbmFtZVM7NjtDUEZvbnRLOzg7JGNsYXNzZXNBO1M7NjtDUEZvbnRTOzg7Q1BPYmplY3RFO0U7RDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsyOzQ2RTtLOzEzO0NQRm9udE5hbWVLZXlEO0s7NjtDUCRVSURkOzI7NTNFO0s7MTM7Q1BGb250U2l6ZUtleUQ7Szs2O0NQJFVJRGQ7Mjs1NEU7SzsxNTtDUEZvbnRJc0JvbGRLZXlEO0s7NjtDUCRVSURkOzI7MzlFO0s7MTc7Q1BGb250SXNJdGFsaWNLZXlEO0s7NjtDUCRVSURkOzI7MzlFO0s7MTc7Q1BGb250SXNTeXN0ZW1LZXlEO0s7NjtDUCRVSURkOzI7MzlFO0U7VDtTOzE1O1RhYmxlIFZpZXcgQ2VsbEQ7SzsxMDskY2xhc3NuYW1lUzs3O0NQQ29sb3JLOzg7JGNsYXNzZXNBO1M7NztDUENvbG9yUzs4O0NQT2JqZWN0RTtFO0Q7Szs2OyRjbGFzc0Q7Szs2O0NQJFVJRGQ7Mjs1MEU7SzsyMDtDUENvbG9yQ29tcG9uZW50c0tleUQ7Szs2O0NQJFVJRGQ7Mjs1NUU7RTtTOzEzO0NQQXBwbGljYXRpb25TOzI5Oy5IZWx2ZXRpY2EgTmV1ZSBEZXNrSW50ZXJmYWNlZDsyOzEzRDtLOzY7JGNsYXNzRDtLOzY7Q1AkVUlEZDsxOzNFO0s7MTA7Q1Aub2JqZWN0c0E7RDtLOzY7Q1AkVUlEZDsyOzU2RTtEO0s7NjtDUCRVSURkOzI7NTZFO0Q7Szs2O0NQJFVJRGQ7Mjs1NkU7RDtLOzY7Q1AkVUlEZDsyOzU3RTtFO0U7ZjsxODswLjY4NjI3NDUwOTgwMzkyMTZkOzE7MUU7Szs5OyRhcmNoaXZlclM7MTU7Q1BLZXllZEFyY2hpdmVySzs4OyR2ZXJzaW9uUzs2OzEwMDAwMEU7D;K;10;$classnameS;19;_CPImageAndTextViewK;8;$classesA;S;19;_CPImageAndTextViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;239E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;148E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;248E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;249E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;148E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;17;CPViewHitTestsKeyD;K;6;CP$UIDd;3;106E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;104E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;105E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;106E;E;d;2;11S;28;_CPFontSystemFacePlaceholderd;2;12f;18;0.6862745098039216D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;245E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;3;245E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;250E;E;S;18;{{5, 0}, {-10, 0}}S;18;{{0, 0}, {-10, 0}}S;22;{"width":0,"height":0}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPTabViewBindings/Resources/MainMenu.xib b/Tests/Manual/CPTabViewBindings/Resources/MainMenu.xib new file mode 100644 index 000000000..77530525b --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/Resources/MainMenu.xib @@ -0,0 +1,1062 @@ + + + + 1050 + 14C109 + 6751 + 1344.72 + 757.30 + + com.apple.InterfaceBuilder.CocoaPlugin + 6751 + + + NSArrayController + NSButton + NSButtonCell + NSCustomObject + NSScrollView + NSScroller + NSTabView + NSTabViewItem + NSTableCellView + NSTableColumn + NSTableHeaderView + NSTableView + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{335, 390}, {813, 249}} + 1946157056 + Window + NSWindow + + + + + 256 + + + + 268 + + + + 2322 + + + + 256 + + + + 274 + + + + 266 + {{0, 14}, {103, 17}} + + + + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + YES + 13 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + NO + 1 + + + {{1, 1}, {103, 31}} + + + + + + {106, 167} + + + + _NS:13 + YES + NO + YES + + + 256 + {106, 17} + + + + _NS:15 + + + + + -2147483392 + {15, 20} + + + + _NS:19 + + + + 103 + 40 + 1000 + + 75497536 + 2048 + Labels + + YES + 11 + 3100 + + + 6 + System + headerColor + + 3 + MQA + + + + 6 + System + headerTextColor + + + + + 337641537 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 31 + -566231040 + + + 4 + -1 + 0 + YES + 0 + 1 + + + {{1, 17}, {106, 167}} + + + + _NS:11 + + + 4 + YES + + + + 2338 + + + + {{1, 0}, {106, 17}} + + + + _NS:16 + + YES + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:65 + NO + _doScroller: + + + _doScroller: + 0.87179487179487181 + + + + -2147483392 + {{1, 119}, {223, 15}} + + + + _NS:61 + NO + _doScroller: + + 1 + + _doScroller: + + + + {{20, 44}, {108, 185}} + + + + _NS:9 + 133682 + + + + + + QSAAAEEgAABCBAAAQgQAAA + 0.25 + 4 + 1 + + + + 268 + {{129, 45}, {450, 190}} + + + + _NS:9 + + + 1 + + + 274 + {{10, 33}, {430, 144}} + + + + _NS:11 + + Tab + + + + + 2 + + + 256 + {{10, 33}, {430, 144}} + _NS:28 + + View + + + + + + + 0 + YES + YES + + + + + + + 268 + {{100, 13}, {34, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + + + Arial-BoldMT + 9 + 16 + + _NS:9 + + -2033303552 + 1 + + NSImage + NSAddTemplate + + + + 200 + 25 + + NO + + + + 268 + {{75, 13}, {34, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + + + YES + 16 + 1044 + + _NS:9 + + -2033303552 + 1 + + NSImage + NSRemoveTemplate + + + + 200 + 25 + + NO + + + + 268 + {{591, 213}, {204, 18}} + + + + _NS:9 + YES + + -2080374784 + 268435456 + Preserves Selection + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{591, 158}, {204, 18}} + + + + _NS:9 + YES + + -2080374784 + 268435456 + Avoids Empty Selection + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{591, 186}, {204, 18}} + + + + _NS:9 + YES + + -2080374784 + 268435456 + Selects Inserted Objects + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{591, 127}, {204, 18}} + + + + _NS:9 + YES + + 67108864 + 268435456 + Uses Mutliple Values Marker + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {813, 249} + + + + + {{0, 0}, {1680, 1027}} + {10000000000000, 10000000000000} + YES + + + AppController + + + CPTabViewItem + YES + YES + + YES + YES + YES + YES + YES + + + + + + + delegate + + + + 451 + + + + theWindow + + + + 459 + + + + tabView + + + + 494 + + + + arrayController + + + + 498 + + + + preserveSelection: + + + + 513 + + + + avoidsEmpty: + + + + 515 + + + + selectsInserted: + + + + 516 + + + + usesMultipleValuesMarker: + + + + 517 + + + + content: arrangedObjects + + + + + + content: arrangedObjects + content + arrangedObjects + 2 + + + 480 + + + + selectionIndexes: selectionIndexes + + + + + + selectionIndexes: selectionIndexes + selectionIndexes + selectionIndexes + + 2 + + + 484 + + + + textField + + + + 472 + + + + value: objectValue.label + + + + + + value: objectValue.label + value + objectValue.label + 2 + + + 482 + + + + add: + + + + 497 + + + + remove: + + + + 502 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + + + + + + 372 + + + + + + + + + + + + + + + 450 + + + + + 460 + + + + + + + + + + + 461 + + + + + + + + 462 + + + + + 463 + + + + + 464 + + + + + 465 + + + + + + + + + 468 + + + + + 469 + + + + + + + + 470 + + + + + + + + 471 + + + + + 477 + + + + + 485 + + + + + + + + + 486 + + + + + + + + 487 + + + + + + + + 488 + + + + + 489 + + + + + 495 + + + + + + + + 496 + + + + + 499 + + + + + + + + 500 + + + + + 503 + + + + + + + + 504 + + + + + 507 + + + + + + + + 508 + + + + + 509 + + + + + + + + 510 + + + + + 511 + + + + + + + + 512 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {407.5, 426.5} + com.apple.InterfaceBuilder.CocoaPlugin + {{303, 221}, {480, 360}} + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + 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 + ArrayController + 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 + + + + + + 517 + + + + + AppController + NSObject + + id + id + id + id + + + + avoidsEmpty: + id + + + preserveSelection: + id + + + selectsInserted: + id + + + usesMultipleValuesMarker: + id + + + + ArrayController + NSTabView + NSWindow + + + + arrayController + ArrayController + + + tabView + NSTabView + + + theWindow + NSWindow + + + + IBProjectSource + ../.XcodeSupport/AppController.h + + + + ArrayController + NSArrayController + + + + + 0 + IBCocoaFramework + NO + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + {11, 11} + {11, 11} + {15, 15} + + + diff --git a/Tests/Manual/CPTabViewBindings/index-debug.html b/Tests/Manual/CPTabViewBindings/index-debug.html new file mode 100644 index 000000000..d167acc92 --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/index-debug.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + CPTabViewBindings + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/CPTabViewBindings/index.html b/Tests/Manual/CPTabViewBindings/index.html new file mode 100644 index 000000000..65e579ad1 --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/index.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + CPTabViewBindings + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/CPTabViewBindings/main.j b/Tests/Manual/CPTabViewBindings/main.j new file mode 100644 index 000000000..4cfee11cb --- /dev/null +++ b/Tests/Manual/CPTabViewBindings/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * CPTabViewBindings + * + * Created by You on February 25, 2015. + * Copyright 2015, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +}