Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RonchettiAssociati/125821 to your computer and use it in GitHub Desktop.
Save RonchettiAssociati/125821 to your computer and use it in GitHub Desktop.
/*
* AppController.j
* WktTest04
*
* Created by Bruno Ronchetti on May 31, 2009.
* Copyright 2009, Ronchetti & Associati All rights reserved.
*/
@import <Foundation/CPObject.j>
@import <AppKit/CPCollectionView.j>
@implementation AppController : CPObject
{
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
CPView id horizontalSplitView;
CPView id topView;
CPView id bottomView;
CPView id verticalSplitView;
CPView id leftView;
CPView id rightView;
CPButton id firstMenuButton;
CPButton id secondMenuButton;
CPButton id thirdMenuButton;
CPButton id fourthMenuButton;
CPCollectionView id listCollectionView;
CPView id listItem;
}
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
{
// This is called when the application is done loading.
CPLogRegister(CPLogPopup);
/*
dataArray contains the nodes as elements of an Array;
for each element we need:
level of the node:
level 0 is the level immediately below the root
an indication od the type of node:
"+" the node has children
"|" the node is a leaf
the name of the node
the name of the node's parent;
you may have to pre-process your graph to bring it in this form;
*/
dataArray = new Array;
dataArray.push([0,@"+",@"pippo","root"]);
dataArray.push([0,@"|",@"pippo2","root"]);
dataArray.push([0,@"|",@"pippo3","root"]);
dataArray.push([0,@"+",@"pippo4","root"]);
dataArray.push([1,@"+",@"pippo5","pippo4"]);
dataArray.push([2,@"|",@"pippo6","pippo5"]);
dataArray.push([1,@"|",@"pluto", "pippo"]);
dataArray.push([1,@"+",@"paperino","pippo"]);
dataArray.push([2,@"|",@"gambadilegno", "paperino"]);
dataArray.push([2,@"|",@"minnie","paperino"]);
displayedArray = new Array;
initializeDisplayedArray();
var bounds = [leftView bounds];
folderScrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(0, 0, 200, 450)];
[folderScrollView setAutohidesScrollers:YES];
[folderScrollView setBackgroundColor:[CPColor blueColor]];
folderCollectionViewItem = [[CPCollectionViewItem alloc] init];
[folderCollectionViewItem setView:[[FolderListCell alloc] initWithFrame:CGRectMakeZero()]];
folderCollectionView = [[CPCollectionView alloc] initWithFrame:CGRectMake(0, 0, 200, 450)];
[folderCollectionView setItemPrototype:folderCollectionViewItem];
[folderCollectionView setMinItemSize:CGSizeMake(20, 18)];
[folderCollectionView setMaxItemSize:CGSizeMake(1000, 72)];
[folderCollectionView setMaxNumberOfColumns:1];
[folderCollectionView setVerticalMargin:0];
[folderCollectionView setAutoresizingMask:CPViewWidthSizable];
[folderCollectionView setContent:displayedArray];
[folderScrollView setDocumentView:folderCollectionView];
[[folderScrollView contentView] setBackgroundColor:[CPColor colorWithCalibratedRed:213/255 green:221/255 blue:230/255 alpha:1.0]];
[leftView addSubview:folderScrollView];
}
- (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.
imgNumberOne = [[CPImage alloc] initWithContentsOfFile:[[CPBundle mainBundle] pathForResource:@"Number_1.png"] size:CPSizeMake(24, 24)];
imgNumberTwo = [[CPImage alloc] initWithContentsOfFile:[[CPBundle mainBundle] pathForResource:@"Number_2.png"] size:CPSizeMake(24, 24)];
imgNumberThree = [[CPImage alloc] initWithContentsOfFile:[[CPBundle mainBundle] pathForResource:@"Number_3.png"] size:CPSizeMake(24, 24)];
imgNumberFour = [[CPImage alloc] initWithContentsOfFile:[[CPBundle mainBundle] pathForResource:@"Number_4.png"] size:CPSizeMake(24, 24)];
// In this case, we want the window from Cib to become our full browser window
[theWindow setFullBridge:YES];
[horizontalSplitView setPosition:36 ofDividerAtIndex:0];
[verticalSplitView setPosition:150 ofDividerAtIndex:0];
[topView setBackgroundColor:[CPColor colorWithCalibratedRed:66/255 green:72/255 blue: 78/255 alpha:1.0]];
[leftView setBackgroundColor:[CPColor colorWithCalibratedRed:223/255 green:225/255 blue: 227/255 alpha:1.0]];
[firstMenuButton setImage:imgNumberOne];
[secondMenuButton setImage:imgNumberTwo];
[thirdMenuButton setImage:imgNumberThree];
[fourthMenuButton setImage:imgNumberFour];
}
- (void)reloadList:(id)sender
{
[folderCollectionView setContent:[displayedArray copy]];
}
@end
@implementation FolderListCell : CPView
{
CPLabel label1;
CPButton button1;
}
- (void)setRepresentedObject:(JSObject)anObject
{
self = [super initWithFrame:CGRectMake(0, 0, 140, 20)];
indent = anObject[0]*10;
type = anObject[1];
description = anObject[2];
button1 = [[CPButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[button1 setFrameOrigin: CGPointMake(indent, 0)];
[button1 setBordered:NO];
[button1 setTitle:type];
[button1 setFont:[CPFont systemFontOfSize:18]];
[button1 setTarget:self];
[button1 setAction:@selector(button1Pressed:)];
[self addSubview:button1];
label1 = [[CPTextField alloc] initWithFrame:CGRectMake(0, 0, 120, 18)];
[label1 setStringValue:description];
[label1 setFont:[CPFont systemFontOfSize:12]];
[label1 setTextColor:[CPColor blackColor]];
[label1 setFrameOrigin: CGPointMake(indent+20, 0)];
[self addSubview:label1];
}
-(IBAction)button1Pressed:(id)sender
{
if ([button1 title] == @"+")
{
addChildrenToDisplayedArray([label1 stringValue]);
[button1 setTitle:@"-"];
[label1 setTextColor:[CPColor grayColor]];
[CPApp sendAction:@selector(reloadList:) to:nil from:sender];
}
else if ([button1 title] == @"-")
{
removeChildrenFromDisplayedArray([label1 stringValue]);
[button1 setTitle:@"+"];
[label1 setTextColor:[CPColor blackColor]];
[CPApp sendAction:@selector(reloadList:) to:nil from:sender];
}
else
{
}
}
@end
function initializeDisplayedArray() {
for (var i =0; i< dataArray.length; i++) {
if (dataArray[i][0] < 1) {
displayedArray.push(dataArray[i]);
}
}
return displayedArray;
}
function addChildrenToDisplayedArray(key) {
for (var i =0; i< displayedArray.length; i++) {
if (displayedArray[i][2] == key) {
var leadingArray = displayedArray.slice(0,i+1);
var trailingArray = displayedArray.slice(i+1);
break;
}
}
for (var j =0; j< dataArray.length; j++) {
if (dataArray[j][3] == key) {
leadingArray.push(dataArray[j]);
CPLog(leadingArray.length);
}
}
displayedArray = leadingArray.concat(trailingArray);
return displayedArray;
}
function removeChildrenFromDisplayedArray(key) {
for (var i =0; i< displayedArray.length; i++) {
if (displayedArray[i][2] == key) {
var keyLevel = displayedArray[i][0];
break;
}
}
for (var j =i+1; j< displayedArray.length; j++) {
CPLog(j + " " +displayedArray[j]);
if (displayedArray[j][0] > keyLevel) {
displayedArray.splice(j,1);
j--;
}
else
{
break;
}
}
return displayedArray;
}
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;4E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;7E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;9E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;2;10E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;2;11E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;2;12E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;2;13E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;2;14E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;16E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;18E;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;20E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;41E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;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;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;E;E;S;16;IBCocoaFrameworkd;3;528D;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;1;0E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;16E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;41E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;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;15E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;119E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;120E;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;19E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;121E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;123E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;124E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;11;$aalignmentD;K;6;CP$UIDd;3;127E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;129E;K;16;CPButtonImageKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateImageKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;130E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;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;21E;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;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;135E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;136E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;137E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;11;$aalignmentD;K;6;CP$UIDd;3;127E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;129E;K;16;CPButtonImageKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateImageKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;130E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;16;_CPCibCustomViewK;8;$classesA;S;16;_CPCibCustomViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;24E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;138E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;139E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;140E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;141E;E;D;K;10;$classnameS;11;CPSplitViewK;8;$classesA;S;11;CPSplitViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;22E;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;142E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;22E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;1;0E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;24E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;27E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;27E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;146E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;3;143E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;147E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;136E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;137E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;11;$aalignmentD;K;6;CP$UIDd;3;127E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;129E;K;16;CPButtonImageKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateImageKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;130E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;119E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;148E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;136E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;137E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;11;$aalignmentD;K;6;CP$UIDd;3;127E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;129E;K;16;CPButtonImageKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateImageKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;130E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;149E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;150E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;151E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;152E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;153E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;22E;K;41;_CPCibWindowTemplateWindowIsFullBridgeKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;24E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;27E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;156E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;158E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;27E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;140E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;141E;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;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;159E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;160E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;161E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;162E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;12;$atext-colorD;K;6;CP$UIDd;3;164E;K;11;$aalignmentD;K;6;CP$UIDd;3;129E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;165E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;143E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;143E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;143E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;166E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;168E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;136E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;137E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;11;$aalignmentD;K;6;CP$UIDd;3;127E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;129E;K;16;CPButtonImageKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateImageKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;130E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;24E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;169E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;169E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;140E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;40E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;171E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;40E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;123E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;124E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;11;$aalignmentD;K;6;CP$UIDd;3;127E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;128E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;129E;K;16;CPButtonImageKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateImageKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;130E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;E;S;32;Square Button (NSActionTemplate)S;24;Button Cell (NSDotMac)-3S;27;Button Cell (NSAddTemplate)S;24;Button Cell (NSDotMac)-2S;11;contentViewS;15;thirdMenuButtonS;24;Button Cell (NSDotMac)-1S;9;rightViewS;19;horizontalSplitViewS;10;bottomViewS;17;verticalSplitViewS;16;secondMenuButtonS;11;ApplicationS;16;fourthMenuButtonS;12;File's OwnerS;9;theWindowS;22;Button Cell (NSDotMac)S;30;Button Cell (NSActionTemplate)S;14;App ControllerS;7;topViewS;10;Text FieldS;15;firstMenuButtonS;8;leftViewS;15;Text Field CellS;29;Square Button (NSAddTemplate)D;K;10;$classnameS;21;_CPCibOutletConnectorK;8;$classesA;S;21;_CPCibOutletConnectorS;15;_CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;38E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;29E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;39E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;28E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;23E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;47E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;40E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;34E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;57E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;25E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;16E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;35E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;50E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;32E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;67E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;36E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;61E;E;d;3;475d;3;482d;3;474d;3;478d;3;471d;3;480d;3;372d;3;483d;3;490d;3;486d;3;472d;3;464d;3;470d;3;459d;3;460d;3;465d;3;462d;3;468d;3;466d;3;488d;3;481d;2;-3d;3;487d;3;484d;3;451d;3;526d;3;371d;3;485d;3;476d;3;461d;3;450d;3;489d;3;494d;3;477d;3;469d;3;495d;3;496d;3;473S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;E;E;S;21;{{30, 333}, {30, 24}}S;18;{{0, 0}, {30, 24}}d;2;12S;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;125E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;174E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;175E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;154E;E;d;1;2d;1;0d;1;4S;0;S;20;{{0, 0}, {490, 418}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;E;E;d;2;18S;6;normalS;19;{{85, 6}, {34, 24}}S;18;{{0, 0}, {34, 24}}d;2;36S;22;{{254, 0}, {236, 363}}S;20;{{0, 0}, {236, 363}}d;1;8S;6;CPViewD;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;28E;E;E;T;S;20;{{0, 0}, {490, 363}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;29E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;25E;E;E;S;19;{{47, 6}, {34, 24}}S;20;{{126, 6}, {34, 24}}S;26;{3.40282e+38, 3.40282e+38}S;8;CPWindowS;24;{{335, 128}, {490, 418}}d;2;15S;6;WindowF;S;13;AppControllerS;21;{{0, 364}, {490, 54}}S;19;{{0, 0}, {490, 54}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;38E;E;E;S;21;{{310, 0}, {164, 30}}S;19;{{0, 0}, {164, 30}}d;2;33S;19;bezeled+placeholderD;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;163E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;176E;E;d;4;3072D;K;6;$classD;K;6;CP$UIDd;3;163E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;177E;E;S;13;search stringS;18;{{6, 6}, {34, 24}}S;20;{{0, 0}, {253, 363}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;41E;E;E;S;20;{{0, 339}, {30, 24}}S;14;topSearchFieldS;8;delegateS;5;Ariald;2;13D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;178E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;178E;E;E;d;1;1E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment