diff --git a/AppKit/CPScrollView.j b/AppKit/CPScrollView.j index 6215ddee2..2fb5ff510 100644 --- a/AppKit/CPScrollView.j +++ b/AppKit/CPScrollView.j @@ -40,6 +40,7 @@ CPClipView _contentView; CPClipView _headerClipView; CPView _cornerView; + CPView _bottomCornerView; BOOL _hasVerticalScroller; BOOL _hasHorizontalScroller; @@ -58,6 +59,19 @@ CPBorderType _borderType; } ++ (CPString)themeClass +{ + return @"scrollview" +} + ++ (CPDictionary)themeAttributes +{ + return [CPDictionary dictionaryWithJSObject:{ + @"bottom-corner-color": [CPColor whiteColor], + @"border-color": [CPColor blackColor] + }]; +} + - (id)initWithFrame:(CGRect)aFrame { self = [super initWithFrame:aFrame]; @@ -77,9 +91,11 @@ [self addSubview:_contentView]; _headerClipView = [[CPClipView alloc] init]; - [self addSubview:_headerClipView]; + _bottomCornerView = [[CPView alloc] init]; + [self addSubview:_bottomCornerView]; + [self setHasVerticalScroller:YES]; [self setHasHorizontalScroller:YES]; } @@ -298,7 +314,7 @@ if (shouldShowVerticalScroller) { - var verticalScrollerY = MAX(_CGRectGetMaxY([self _cornerViewFrame]), headerClipViewHeight), + var verticalScrollerY = MAX(_CGRectGetMaxY([self _cornerViewFrame]), headerClipViewHeight + 1.0), verticalScrollerHeight = _CGRectGetMaxY(contentFrame) - verticalScrollerY; [_verticalScroller setFloatValue:(difference.height <= 0.0) ? 0.0 : scrollPoint.y / difference.height]; @@ -327,8 +343,8 @@ [_headerClipView setFrame:headerClipViewFrame]; [_cornerView setFrame:[self _cornerViewFrame]]; - if (shouldShowHorizontalScroller && shouldShowVerticalScroller) - [self setNeedsDisplay:YES]; + [[self bottomCornerView] setFrame:[self _bottomCornerViewFrame]]; + [[self bottomCornerView] setBackgroundColor:[self currentValueForThemeAttribute:@"bottom-corner-color"]]; --_recursionCount; } @@ -568,6 +584,42 @@ return frame; } +- (CGRect)_bottomCornerViewFrame +{ + if ([[self horizontalScroller] isHidden] || [[self verticalScroller] isHidden]) + return CGRectMakeZero(); + + var verticalFrame = [[self verticalScroller] frame], + bottomCornerFrame = CGRectMakeZero(); + + bottomCornerFrame.origin.x = CGRectGetMinX(verticalFrame); + bottomCornerFrame.origin.y = CGRectGetMaxY(verticalFrame); + bottomCornerFrame.size.width = [CPScroller scrollerWidth]; + bottomCornerFrame.size.height = [CPScroller scrollerWidth]; + + return bottomCornerFrame; +} + +- (void)setBottomCornerView:(CPView)aBottomCornerView +{ + if (_bottomCornerView === aBottomCornerView) + return; + + [_bottomCornerView removeFromSuperview]; + + [aBottomCornerView setFrame:[self _bottomCornerViewFrame]]; + [self addSubview:aBottomCornerView]; + + _bottomCornerView = aBottomCornerView; + + [self _updateCornerAndHeaderView]; +} + +- (CPView)bottomCornerView +{ + return _bottomCornerView; +} + /* @ignore */ - (void)_verticalScrollerDidScroll:(CPScroller)aScroller { @@ -770,7 +822,7 @@ switch (_borderType) { case CPLineBorder: - CGContextSetStrokeColor(context, [CPColor blackColor]); + CGContextSetStrokeColor(context, [self currentValueForThemeAttribute:@"border-color"]); CGContextStrokeRect(context, _CGRectInset(strokeRect, 0.5, 0.5)); break; @@ -785,29 +837,6 @@ default: break; } - - - if (![[self verticalScroller] isHidden] && ![[self horizontalScroller] isHidden]) - { - var verticalScrollerFrame = [[self verticalScroller] frame], - bottomCornerRect = CGRectMakeCopy(verticalScrollerFrame); - - bottomCornerRect.origin.y = CGRectGetMaxY(verticalScrollerFrame); - bottomCornerRect.size.height = [CPScroller scrollerWidth]; - - CGContextSetFillColor(context, [CPColor colorWithRed:242.0 / 255.0 green:242.0 / 255.0 blue:243.0 / 255.0 alpha:1.0]); - CGContextFillRect(context, bottomCornerRect); - - CGContextSetStrokeColor(context, [CPColor colorWithRed:184.0 / 255.0 green:184.0 / 255.0 blue:184.0 / 255.0 alpha:1.0]); - - CGContextMoveToPoint(context, CGRectGetMinX(bottomCornerRect), CGRectGetMinY(bottomCornerRect)); - CGContextAddLineToPoint(context, CGRectGetMaxX(bottomCornerRect), CGRectGetMinY(bottomCornerRect)); - CGContextStrokePath(context); - - CGContextMoveToPoint(context, CGRectGetMinX(bottomCornerRect), CGRectGetMinY(bottomCornerRect)); - CGContextAddLineToPoint(context, CGRectGetMinX(bottomCornerRect), CGRectGetMaxY(bottomCornerRect)); - CGContextStrokePath(context); - } } - (void)_drawGrayBezelInContext:(CGContext)context bounds:(CGRect)aRect @@ -1018,6 +1047,9 @@ var CPScrollViewContentViewKey = "CPScrollViewContentView", [self addSubview:_headerClipView]; } + _bottomCornerView = [[CPView alloc] init]; + [self addSubview:_bottomCornerView]; + _verticalScroller = [aCoder decodeObjectForKey:CPScrollViewVScrollerKey]; _horizontalScroller = [aCoder decodeObjectForKey:CPScrollViewHScrollerKey]; diff --git a/AppKit/CPScroller.j b/AppKit/CPScroller.j index 14e190507..41e320255 100644 --- a/AppKit/CPScroller.j +++ b/AppKit/CPScroller.j @@ -79,17 +79,18 @@ NAMES_FOR_PARTS[CPScrollerKnob] = @"knob"; + (id)themeAttributes { - return [CPDictionary dictionaryWithObjects:[ [CPNull null], [CPNull null], [CPNull null], [CPNull null], - _CGSizeMakeZero(), _CGSizeMakeZero(), _CGInsetMakeZero(), _CGInsetMakeZero(), _CGSizeMakeZero()] - forKeys:[ @"knob-slot-color", - @"decrement-line-color", - @"increment-line-color", - @"knob-color", - @"decrement-line-size", - @"increment-line-size", - @"track-inset", - @"knob-inset", - @"minimum-knob-length"]]; + return [CPDictionary dictionaryWithJSObject:{ + @"scroller-width": 15.0, + @"knob-slot-color": [CPColor lightGrayColor], + @"decrement-line-color": [CPNull null], + @"increment-line-color": [CPNull null], + @"knob-color": [CPColor grayColor], + @"decrement-line-size":_CGSizeMakeZero(), + @"increment-line-size":_CGSizeMakeZero(), + @"track-inset":_CGInsetMakeZero(), + @"knob-inset": _CGInsetMakeZero(), + @"minimum-knob-length":21.0 + }] } @@ -98,7 +99,7 @@ NAMES_FOR_PARTS[CPScrollerKnob] = @"knob"; - (id)initWithFrame:(CGRect)aFrame { self = [super initWithFrame:aFrame]; - + if (self) { _controlSize = CPRegularControlSize; @@ -121,7 +122,7 @@ NAMES_FOR_PARTS[CPScrollerKnob] = @"knob"; */ + (float)scrollerWidth { - return 15.0;//[self scrollerWidthForControlSize:CPRegularControlSize]; + return [[[CPScroller alloc] init] currentValueForThemeAttribute:@"scroller-width"]; } /*! @@ -130,7 +131,7 @@ NAMES_FOR_PARTS[CPScrollerKnob] = @"knob"; */ + (float)scrollerWidthForControlSize:(CPControlSize)aControlSize { - return 15.0;//_CPScrollerWidths[aControlSize]; + return [self scrollerWidth]; } /*! @@ -607,6 +608,19 @@ var CPScrollerControlSizeKey = "CPScrollerControlSize", _hitPart = CPScrollerNoPart; [self _calculateIsVertical]; + + // Adjust the size of the scroller if the size from cib + // isn't equal to the scrollerWidth + var frame = [self frame], + scrollerWidth = [CPScroller scrollerWidth]; + + if ([self isVertical] && CGRectGetWidth(frame) !== scrollerWidth) + frame.size.width = scrollerWidth; + + if (![self isVertical] && CGRectGetHeight(frame) !== scrollerWidth) + frame.size.height = scrollerWidth; + + [self setFrame:frame]; } return self; diff --git a/AppKit/Themes/Aristo/Resources/scrollview-bottom-corner-color.png b/AppKit/Themes/Aristo/Resources/scrollview-bottom-corner-color.png new file mode 100644 index 000000000..ec7c9e451 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/scrollview-bottom-corner-color.png differ diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index c1cdb23e8..c0e471181 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -528,6 +528,27 @@ var themedButtonValues = nil, return button; } ++ (CPScrollView)themedScrollView +{ + var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 200.0)]; + + var borderColor = [CPColor colorWithWhite:0.0 alpha:0.2], + bottomCornerColor = PatternColor(@"scrollview-bottom-corner-color.png", 15.0, 15.0); + + var themedScrollViewValues = + [ + [@"border-color", borderColor], + [@"bottom-corner-color", bottomCornerColor] + ]; + + [self registerThemeValues:themedScrollViewValues forView:scrollView]; + + [scrollView setAutohidesScrollers:YES]; + [scrollView setBorderType:CPLineBorder]; + + return scrollView; +} + + (CPScroller)makeVerticalScroller { var scroller = [[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, 15.0, 170.0)]; @@ -1267,9 +1288,22 @@ var themedButtonValues = nil, + (CPSplitView)themedSplitView { - var splitView = [[CPSplitView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 200.0)]; - [splitView setValue:10.0 forThemeAttribute:@"divider-thickness"]; - [splitView setValue:1.0 forThemeAttribute:@"pane-divider-thickness"]; + var splitView = [[CPSplitView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 200.0)], + leftView = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, 75.0, 150.0)], + rightView = [[CPView alloc] initWithFrame:CGRectMake(75.0, 0.0, 75.0, 150.0)]; + + [splitView addSubview:leftView]; + [splitView addSubview:rightView]; + + + var themedSplitViewValues = + [ + [@"divider-thickness", 10.0], + [@"pane-divider-thickness", 1.0] + ]; + + [self registerThemeValues:themedSplitViewValues forView:splitView]; + return splitView; } diff --git a/Tests/Manual/ScrollviewTheming/AppController.j b/Tests/Manual/ScrollviewTheming/AppController.j new file mode 100644 index 000000000..1026c7663 --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/AppController.j @@ -0,0 +1,64 @@ +/* + * AppController.j + * ScrollviewTheming + * + * Created by You on September 9, 2010. + * Copyright 2010, Your Company All rights reserved. + */ + +@import +@import "DocumentView.j" + +@implementation AppController : CPObject +{ + @outlet CPWindow _window @accessors(property=window); + @outlet CPScrollView _scrollView @accessors(property=scrollView); +} + +- (void)awakeFromCib +{ + var headerView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + [headerView setBackgroundColor:[CPColor blueColor]]; + + [[self window] setFullBridge:YES]; +} + +- (@action)changeBorderType:(id)aSender +{ + var borderType = CPNoBorder; + + switch ([aSender title]) + { + default: + case @"CPNoBorder": + borderType = CPNoBorder; + break; + + case @"CPLineBorder": + borderType = CPLineBorder; + break; + + case @"CPBezelBorder": + borderType = CPBezelBorder; + break; + + case @"CPGrooveBorder": + borderType = CPGrooveBorder; + break; + } + + [[self scrollView] setBorderType:borderType]; +} + +- (@action)toggleHeaderView:(id)aSender +{ + [[[self scrollView] documentView] setShowHeaderView:[aSender objectValue]]; + [[self scrollView] _updateCornerAndHeaderView]; +} + +- (@action)changeBorderColor:(id)aSender +{ + [[self scrollView] setValue:[aSender color] forThemeAttribute:@"border-color"]; +} + +@end diff --git a/Tests/Manual/ScrollviewTheming/DocumentView.j b/Tests/Manual/ScrollviewTheming/DocumentView.j new file mode 100644 index 000000000..361d153ae --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/DocumentView.j @@ -0,0 +1,46 @@ +@implementation DocumentView : CPView +{ + BOOL _showHeaderView @accessors(property=showHeaderView); + + CPView _headerView @accessors(property=headerView); + CPView _cornerView @accessors(property=cornerView); +} + +- (void)awakeFromCib +{ + [self setFrame:CGRectMake(0.0, 0.0, 2000.0, 2000.0)]; +} + +- (CPView)headerView +{ + if (![self showHeaderView]) + return nil; + + if (!_headerView) + { + _headerView = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, CGRectGetWidth([self bounds]), 30.0)]; + [_headerView setAutoresizingMask:CPViewWidthSizable]; + [_headerView setAlphaValue:0.3]; + [_headerView setBackgroundColor:[CPColor greenColor]]; + } + + return _headerView; +} + +- (CPView)cornerView +{ + if (![self showHeaderView]) + return nil; + + if (!_cornerView) + { + _cornerView = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, 15.0, 30.0)]; + [_cornerView setAutoresizingMask:CPViewWidthSizable]; + [_cornerView setAlphaValue:0.3]; + [_cornerView setBackgroundColor:[CPColor blueColor]]; + } + + return _cornerView; +} + +@end \ No newline at end of file diff --git a/Tests/Manual/ScrollviewTheming/Info.plist b/Tests/Manual/ScrollviewTheming/Info.plist new file mode 100644 index 000000000..5c1b917c0 --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/Info.plist @@ -0,0 +1,12 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + ScrollviewTheming + CPPrincipalClass + CPApplication + + diff --git a/Tests/Manual/ScrollviewTheming/Jakefile b/Tests/Manual/ScrollviewTheming/Jakefile new file mode 100644 index 000000000..ba192f9f5 --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * ScrollviewTheming + * + * Created by You on September 9, 2010. + * Copyright 2010, Your Company All rights reserved. + */ + +var ENV = require("system").env, + FILE = require("file"), + JAKE = require("jake"), + task = JAKE.task, + FileList = JAKE.FileList, + app = require("cappuccino/jake").app, + configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", + OS = require("os"); + +app ("ScrollviewTheming", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "ScrollviewTheming.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("ScrollviewTheming"); + task.setIdentifier("com.yourcompany.ScrollviewTheming"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("ScrollviewTheming"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["ScrollviewTheming"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "ScrollviewTheming", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "ScrollviewTheming", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "ScrollviewTheming")); + OS.system(["press", "-f", FILE.join("Build", "Release", "ScrollviewTheming"), FILE.join("Build", "Deployment", "ScrollviewTheming")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "ScrollviewTheming")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "ScrollviewTheming"), FILE.join("Build", "Desktop", "ScrollviewTheming", "ScrollviewTheming.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "ScrollviewTheming", "ScrollviewTheming.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "ScrollviewTheming")); + print("----------------------------"); +} diff --git a/Tests/Manual/ScrollviewTheming/Resources/MainMenu.cib b/Tests/Manual/ScrollviewTheming/Resources/MainMenu.cib new file mode 100644 index 000000000..4507e507b --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/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;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;2;21E;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;16E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;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;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;46E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;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;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;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;E;E;S;16;IBCocoaFrameworkD;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;20E;D;K;6;CP$UIDd;2;21E;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;29E;D;K;6;CP$UIDd;2;31E;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;37E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;33E;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;16E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;42E;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;15E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;79E;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;2;80E;E;D;K;10;$classnameS;11;CPColorWellK;8;$classesA;S;11;CPColorWellS;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;31E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;83E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;85E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;2;87E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;79E;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;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;89E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;90E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;91E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;92E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;93E;K;11;$aalignmentD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;93E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;85E;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;2;94E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;24E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;95E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;96E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;91E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;97E;K;11;$aalignmentD;K;6;CP$UIDd;2;85E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;98E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;99E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;100E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;100E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;100E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;97E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;85E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;101E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;42E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;102E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;33E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;103E;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;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;46E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;104E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;105E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;46E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;106E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;107E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;93E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;46E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;108E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;85E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;93E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;109E;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;30E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;110E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;112E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;113E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;114E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;115E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;116E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;117E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;118E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;31E;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;119E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;42E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;102E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;33E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;120E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;42E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;102E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;33E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;46E;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;46E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;106E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;123E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;46E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;125E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;85E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;93E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;126E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;127E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;128E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;128E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;127E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;129E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;130E;E;D;K;10;$classnameS;13;CPPopUpButtonK;8;$classesA;S;13;CPPopUpButtonS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;132E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;91E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;92E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;85E;K;11;$aalignmentD;K;6;CP$UIDd;2;93E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;85E;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;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;1;0E;K;20;CPPopUpButtonMenuKeyD;K;6;CP$UIDd;2;33E;K;29;CPPopUpButtonSelectedIndexKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;134E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;42E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;102E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;133E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;33E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;135E;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;45E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;136E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;137E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;129E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;127E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;38E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;29E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;140E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;140E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;140E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;140E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;88E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;88E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;100E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;133E;E;S;10;Color WellS;11;ApplicationS;27;Check Box (Show headerview)S;33;Pop Up Button Cell (CPLineBorder)S;27;Static Text (Border style:)S;22;Menu Item (CPNoBorder)S;12;File's OwnerS;19;Horizontal ScrollerS;12;Content ViewS;17;Menu (OtherViews)S;29;Button Cell (Show headerview)S;15;Window (Window)S;25;Menu Item (CPBezelBorder)S;31;Text Field Cell (Border style:)S;26;Menu Item (CPGrooveBorder)S;17;Vertical ScrollerS;13;Document ViewS;13;Pop Up ButtonS;24;Menu Item (CPLineBorder)S;14;App ControllerS;34;Bordered Scroll View (Custom View)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;68E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;16E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;35E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;143E;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;72E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;27E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;72E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;72E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;36E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;72E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;37E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;72E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;23E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;145E;E;D;K;6;$classD;K;6;CP$UIDd;2;72E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;20E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;146E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;35E;E;E;S;22;{{210, 464}, {44, 23}}S;18;{{0, 0}, {44, 23}}d;2;36S;6;normald;1;4D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;147E;E;T;S;22;{{18, 503}, {131, 18}}S;19;{{0, 0}, {131, 18}}d;2;12S;8;borderedd;1;0S;15;Show headerviewS;21;{{17, 440}, {84, 17}}S;18;{{0, 0}, {84, 17}}d;1;2S;13;Border style:d;4;3072F;S;10;CPNoBorderS;17;_popUpItemAction:d;7;1048576S;19;{{1, 1}, {700, 15}}S;19;{{0, 0}, {700, 15}}d;1;8S;8;disabledS;29;_horizontalScrollerDidScroll:f;18;0.5060241222381592S;20;{{0, 0}, {757, 547}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;20E;E;E;S;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;E;E;S;28;{1.79769e+308, 1.79769e+308}S;8;CPWindowS;24;{{335, 128}, {757, 547}}d;1;7S;6;WindowS;13;CPBezelBorderS;14;CPGrooveBorderS;22;{{701, 16}, {15, 382}}S;19;{{0, 0}, {15, 382}}S;17;disabled+verticalf;18;0.9738219895287958S;27;_verticalScrollerDidScroll:f;18;0.9636362791061401D;K;6;$classD;K;6;CP$UIDd;3;139E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;46E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;148E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;128E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;149E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;46E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;106E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;40E;E;S;20;{{0, 0}, {700, 382}}d;2;18S;12;DocumentViewS;22;{{17, 461}, {168, 24}}S;19;{{0, 0}, {168, 24}}d;1;1S;12;CPLineBorderS;13;AppControllerS;22;{{20, 20}, {717, 399}}S;20;{{0, 0}, {717, 399}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;29E;E;E;D;K;10;$classnameS;10;CPClipViewK;8;$classesA;S;10;CPClipViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;d;2;10S;8;delegateS;10;scrollViewS;6;windowS;17;changeBorderType:S;17;toggleHeaderView:S;18;changeBorderColor:D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;3;150E;E;E;S;21;{{1, 16}, {700, 382}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;E;E;f;3;0.2E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/ScrollviewTheming/Resources/MainMenu.xib b/Tests/Manual/ScrollviewTheming/Resources/MainMenu.xib new file mode 100644 index 000000000..39c33a809 --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/Resources/MainMenu.xib @@ -0,0 +1,729 @@ + + + + 1050 + 10F569 + 788 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 788 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{335, 203}, {757, 547}} + 1946157056 + Window + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 274 + {700, 382} + + DocumentView + + + {{1, 1}, {700, 382}} + + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + 4 + + + + 256 + {{701, 1}, {15, 382}} + + + _doScroller: + 0.97382198952879584 + 0.96363627910614014 + + + + 256 + {{1, 383}, {700, 15}} + + 1 + + _doScroller: + 0.50602412223815918 + + + {{20, 128}, {717, 399}} + + + 49 + + + + + + + 292 + {{17, 58}, {168, 26}} + + YES + + -2076049856 + 2048 + + LucidaGrande + 13 + 1044 + + + 109199615 + 129 + + + 400 + 75 + + + CPLineBorder + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + CPNoBorder + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + CPBezelBorder + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + CPGrooveBorder + + 2147483647 + + + _popUpItemAction: + + + + + + 1 + 1 + YES + YES + 2 + + + + + 292 + {{17, 90}, {84, 17}} + + YES + + 68288064 + 272630784 + Border style: + + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 292 + {{18, 26}, {131, 18}} + + YES + + 67239424 + 0 + Show headerview + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{210, 60}, {44, 23}} + + YES + YES + YES + + 1 + MCAwIDAgMC4yAA + + + + {757, 547} + + + {{0, 0}, {1440, 878}} + {1.79769e+308, 1.79769e+308} + + + AppController + + + + + YES + + + delegate + + + + 451 + + + + scrollView + + + + 509 + + + + window + + + + 512 + + + + changeBorderType: + + + + 517 + + + + changeBorderType: + + + + 518 + + + + changeBorderType: + + + + 519 + + + + changeBorderType: + + + + 520 + + + + toggleHeaderView: + + + + 523 + + + + changeBorderColor: + + + + 528 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + 450 + + + + + 460 + + + YES + + + + + + + + 461 + + + + + 462 + + + + + 463 + + + YES + + + + + 484 + + + YES + + + + + + 485 + + + YES + + + + + + 486 + + + YES + + + + + + + + + 487 + + + + + 488 + + + + + 489 + + + + + 490 + + + YES + + + + + + 491 + + + + + 492 + + + + + 521 + + + YES + + + + + + 522 + + + + + 527 + + + + + + + YES + + YES + -3.IBPluginDependency + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBViewEditorWindowController.showingLayoutRectangles + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.maxSize + 372.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 462.IBPluginDependency + 463.IBPluginDependency + 484.IBPluginDependency + 485.IBPluginDependency + 486.IBEditorWindowLastContentRect + 486.IBPluginDependency + 487.IBPluginDependency + 488.IBPluginDependency + 489.IBPluginDependency + 490.IBPluginDependency + 491.IBPluginDependency + 492.IBPluginDependency + 521.IBPluginDependency + 522.IBPluginDependency + 527.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + {{280, 469}, {757, 547}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{280, 469}, {757, 547}} + + {{33, 99}, {480, 360}} + {3.40282e+38, 3.40282e+38} + 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 + {{286, 470}, {177, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 528 + + + + YES + + AppController + + YES + + YES + changeBorderColor: + changeBorderType: + toggleHeaderView: + + + YES + id + id + id + + + + YES + + YES + changeBorderColor: + changeBorderType: + toggleHeaderView: + + + YES + + changeBorderColor: + id + + + changeBorderType: + id + + + toggleHeaderView: + id + + + + + YES + + YES + scrollView + window + + + YES + NSScrollView + NSWindow + + + + YES + + YES + scrollView + window + + + YES + + scrollView + NSScrollView + + + window + NSWindow + + + + + IBUserSource + + + + + DocumentView + NSView + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../adsfsdf.xcodeproj + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + NSSwitch + + + YES + {9, 8} + {7, 2} + {15, 15} + + + + diff --git a/Tests/Manual/ScrollviewTheming/Resources/spinner.gif b/Tests/Manual/ScrollviewTheming/Resources/spinner.gif new file mode 100644 index 000000000..06dbc2bc2 Binary files /dev/null and b/Tests/Manual/ScrollviewTheming/Resources/spinner.gif differ diff --git a/Tests/Manual/ScrollviewTheming/index-debug.html b/Tests/Manual/ScrollviewTheming/index-debug.html new file mode 100644 index 000000000..a728135e9 --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/index-debug.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + ScrollviewTheming + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/ScrollviewTheming/index.html b/Tests/Manual/ScrollviewTheming/index.html new file mode 100644 index 000000000..51ad4697a --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/index.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + ScrollviewTheming + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/ScrollviewTheming/main.j b/Tests/Manual/ScrollviewTheming/main.j new file mode 100644 index 000000000..48439af45 --- /dev/null +++ b/Tests/Manual/ScrollviewTheming/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * ScrollviewTheming + * + * Created by You on September 9, 2010. + * Copyright 2010, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +}