diff --git a/AppKit/CPButton.j b/AppKit/CPButton.j index 7add82d70..8594bc410 100644 --- a/AppKit/CPButton.j +++ b/AppKit/CPButton.j @@ -576,35 +576,18 @@ CPButtonImageOffset = 3.0; { var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; - if (_CGInsetIsEmpty(contentInset)) - return bounds; - - bounds = _CGRectMakeCopy(bounds); - bounds.origin.x += contentInset.left; - bounds.origin.y += contentInset.top; - bounds.size.width -= contentInset.left + contentInset.right; - bounds.size.height -= contentInset.top + contentInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, contentInset); } - (CGRect)bezelRectForBounds:(CGRect)bounds { + // Is this necessary? The theme itself can just change its inset to a zero inset when !CPThemeStateBordered. if (![self isBordered]) return bounds; var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; - if (_CGInsetIsEmpty(bezelInset)) - return bounds; - - bounds = _CGRectMakeCopy(bounds); - bounds.origin.x += bezelInset.left; - bounds.origin.y += bezelInset.top; - bounds.size.width -= bezelInset.left + bezelInset.right; - bounds.size.height -= bezelInset.top + bezelInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, bezelInset); } - (CGSize)_minimumFrameSize diff --git a/AppKit/CPColorPanel.j b/AppKit/CPColorPanel.j index d9fe9bbf7..25ee0ddda 100644 --- a/AppKit/CPColorPanel.j +++ b/AppKit/CPColorPanel.j @@ -144,7 +144,7 @@ CPColorPickerViewHeight = 370; - (void)setColor:(CPColor)aColor { _color = aColor; - [_previewView setBackgroundColor: _color]; + [_previewView setBackgroundColor:_color]; [CPApp sendAction:@selector(changeColor:) to:nil from:self]; @@ -299,7 +299,7 @@ CPColorPickerViewHeight = 370; bounds = [contentView bounds]; _toolbar = [[CPView alloc] initWithFrame:CGRectMake(0, 6, CGRectGetWidth(bounds), TOOLBAR_HEIGHT)]; - [_toolbar setAutoresizingMask: CPViewWidthSizable]; + [_toolbar setAutoresizingMask:CPViewWidthSizable]; var totalToolbarWidth = count * ICON_WIDTH + (count - 1) * ICON_PADDING, leftOffset = (CGRectGetWidth(bounds) - totalToolbarWidth) / 2.0, @@ -339,7 +339,7 @@ CPColorPickerViewHeight = 370; [previewBox addSubview:_previewView]; - var _previewLabel = [[CPTextField alloc] initWithFrame: CPRectMake(10, TOOLBAR_HEIGHT + 10, 60, 15)]; + var _previewLabel = [[CPTextField alloc] initWithFrame:CGRectMake(10, TOOLBAR_HEIGHT + 10, 60, 15)]; [_previewLabel setStringValue:"Preview:"]; [_previewLabel setTextColor:[CPColor blackColor]]; [_previewLabel setAlignment:CPRightTextAlignment]; @@ -357,14 +357,14 @@ CPColorPickerViewHeight = 370; [swatchBox addSubview:_swatchView]; - var _swatchLabel = [[CPTextField alloc] initWithFrame: CPRectMake(10, TOOLBAR_HEIGHT + 8 + PREVIEW_HEIGHT + 6, 60, 15)]; - [_swatchLabel setStringValue: "Swatches:"]; + var _swatchLabel = [[CPTextField alloc] initWithFrame:CGRectMake(10, TOOLBAR_HEIGHT + 8 + PREVIEW_HEIGHT + 6, 60, 15)]; + [_swatchLabel setStringValue:"Swatches:"]; [_swatchLabel setTextColor:[CPColor blackColor]]; [_swatchLabel setAlignment:CPRightTextAlignment]; - var opacityLabel = [[CPTextField alloc] initWithFrame: CPRectMake(10, TOOLBAR_HEIGHT + PREVIEW_HEIGHT + 35, 60, 20)]; - [opacityLabel setStringValue: "Opacity:"]; + var opacityLabel = [[CPTextField alloc] initWithFrame:CGRectMake(10, TOOLBAR_HEIGHT + PREVIEW_HEIGHT + 35, 60, 20)]; + [opacityLabel setStringValue:"Opacity:"]; [opacityLabel setTextColor:[CPColor blackColor]]; [opacityLabel setAlignment:CPRightTextAlignment]; @@ -389,7 +389,7 @@ CPColorPickerViewHeight = 370; _action = nil; _activePicker = nil; - [_previewView setBackgroundColor: _color]; + [_previewView setBackgroundColor:_color]; if (buttonForLater) [self _setPicker:buttonForLater]; @@ -407,12 +407,13 @@ CPColorPickerViewHeight = 370; CPColorDragType = "CPColorDragType"; + var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; /* @ignore */ @implementation _CPColorPanelSwatches : CPView { - CPView[] _swatches; + CPArray _swatches; CPColor _dragColor; CPColorPanel _colorPanel; CPCookie _swatchCookie; @@ -422,13 +423,13 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; { self = [super initWithFrame:aFrame]; - [self setBackgroundColor: [CPColor grayColor]]; + [self setBackgroundColor:[CPColor grayColor]]; [self registerForDraggedTypes:[CPArray arrayWithObjects:CPColorDragType]]; var whiteColor = [CPColor whiteColor]; - _swatchCookie = [[CPCookie alloc] initWithName: CPColorPanelSwatchesCookie]; + _swatchCookie = [[CPCookie alloc] initWithName:CPColorPanelSwatchesCookie]; var colorList = [self startingColorList]; _swatches = []; @@ -436,15 +437,15 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; for (var i = 0; i < 50; i++) { // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox - var view = [[CPView alloc] initWithFrame: CPRectMake(13 * i + 1, 1, 12, 12)], + var view = [[CPView alloc] initWithFrame:CPRectMake(13 * i + 1, 1, 12, 12)], fillView = [[CPView alloc] initWithFrame:CGRectInset([view bounds], 1.0, 1.0)]; [view setBackgroundColor:whiteColor]; - [fillView setBackgroundColor: (i < colorList.length) ? colorList[i] : whiteColor]; + [fillView setBackgroundColor:(i < colorList.length) ? colorList[i] : whiteColor]; [view addSubview:fillView]; - [self addSubview: view]; + [self addSubview:view]; _swatches.push(view); } @@ -461,7 +462,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; { var cookieValue = [_swatchCookie value]; - if (cookieValue == "") + if (!cookieValue) { return [ [CPColor blackColor], @@ -480,7 +481,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; result = []; for (var i = 0; i < cookieValue.length; i++) - result.push([CPColor colorWithHexString: cookieValue[i]]); + result.push([CPColor colorWithHexString:cookieValue[i]]); return result; } @@ -495,7 +496,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; var future = new Date(); future.setYear(2019); - [_swatchCookie setValue: JSON.stringify(result) expires:future domain: nil]; + [_swatchCookie setValue:JSON.stringify(result) expires:future domain:nil]; } - (void)setColorPanel:(CPColorPanel)panel @@ -528,7 +529,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; if (!CGRectContainsPoint(bounds, point) || point.x > [self bounds].size.width - 1 || point.x < 1) return NO; - [_colorPanel setColor: [self colorAtIndex:FLOOR(point.x / 13)] updatePicker: YES]; + [_colorPanel setColor:[self colorAtIndex:FLOOR(point.x / 13)] updatePicker:YES]; } - (void)mouseDragged:(CPEvent)anEvent @@ -545,10 +546,10 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox _dragColor = [[swatch subviews][0] backgroundColor]; - var bounds = CPRectCreateCopy([swatch bounds]); + var bounds = CGRectMakeCopy([swatch bounds]); // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox - var dragView = [[CPView alloc] initWithFrame: bounds], + var dragView = [[CPView alloc] initWithFrame:bounds], dragFillView = [[CPView alloc] initWithFrame:CGRectInset(bounds, 1.0, 1.0)]; [dragView setBackgroundColor:[CPColor blackColor]]; @@ -556,13 +557,13 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; [dragView addSubview:dragFillView]; - [self dragView: dragView - at: CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) - offset: CPPointMake(0.0, 0.0) - event: anEvent - pasteboard: nil - source: self - slideBack: YES]; + [self dragView:dragView + at:CGPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) + offset:CGPointMake(0.0, 0.0) + event:anEvent + pasteboard:nil + source:self + slideBack:YES]; } - (void)pasteboard:(CPPasteboard)aPasteboard provideDataForType:(CPString)aType @@ -580,7 +581,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; if (![pasteboard availableTypeFromArray:[CPColorDragType]] || location.x > [self bounds].size.width - 1 || location.x < 1) return NO; - [self setColor:[CPKeyedUnarchiver unarchiveObjectWithData:[pasteboard dataForType:CPColorDragType]] atIndex: FLOOR(location.x / 13)]; + [self setColor:[CPKeyedUnarchiver unarchiveObjectWithData:[pasteboard dataForType:CPColorDragType]] atIndex:FLOOR(location.x / 13)]; } @end @@ -635,7 +636,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; var bounds = CPRectMake(0, 0, 15, 15); // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox - var dragView = [[CPView alloc] initWithFrame: bounds], + var dragView = [[CPView alloc] initWithFrame:bounds], dragFillView = [[CPView alloc] initWithFrame:CGRectInset(bounds, 1.0, 1.0)]; [dragView setBackgroundColor:[CPColor blackColor]]; @@ -643,13 +644,13 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; [dragView addSubview:dragFillView]; - [self dragView: dragView - at: CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) - offset: CPPointMake(0.0, 0.0) - event: anEvent - pasteboard: nil - source: self - slideBack: YES]; + [self dragView:dragView + at:CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) + offset:CPPointMake(0.0, 0.0) + event:anEvent + pasteboard:nil + source:self + slideBack:YES]; } - (void)pasteboard:(CPPasteboard)aPasteboard provideDataForType:(CPString)aType diff --git a/AppKit/CPColorPicker.j b/AppKit/CPColorPicker.j index 032f78dc4..7fe4e7c09 100644 --- a/AppKit/CPColorPicker.j +++ b/AppKit/CPColorPicker.j @@ -44,10 +44,11 @@ */ - (id)initWithPickerMask:(int)aMask colorPanel:(CPColorPanel)aPanel { - self = [super init]; - - _panel = aPanel; - _mask = aMask; + if (self = [super init]) + { + _panel = aPanel; + _mask = aMask; + } return self; } @@ -76,7 +77,6 @@ */ - (void)setMode:(CPColorPanelMode)mode { - return; } /*! @@ -85,7 +85,6 @@ */ - (void)setColor:(CPColor)aColor { - return; } @end @@ -110,12 +109,12 @@ - (id)initView { - aFrame = CPRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); + var aFrame = _CGRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); _pickerView = [[CPView alloc] initWithFrame:aFrame]; [_pickerView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; - _brightnessSlider = [[CPSlider alloc] initWithFrame:CGRectMake(0, (aFrame.size.height - 34), aFrame.size.width, 15)]; + _brightnessSlider = [[CPSlider alloc] initWithFrame:_CGRectMake(0, (aFrame.size.height - 34), aFrame.size.width, 15)]; [_brightnessSlider setValue:15.0 forThemeAttribute:@"track-width"]; [_brightnessSlider setValue:[CPColor colorWithPatternImage:[[CPImage alloc] initWithContentsOfFile:[[CPBundle bundleForClass:[CPColorPicker class]] pathForResource:@"brightness_bar.png"]]] forThemeAttribute:@"track-color"]; @@ -128,9 +127,9 @@ [_brightnessSlider setAction:@selector(brightnessSliderDidChange:)]; [_brightnessSlider setAutoresizingMask:CPViewWidthSizable | CPViewMinYMargin]; - _hueSaturationView = [[__CPColorWheel alloc] initWithFrame: CPRectMake(0, 0, aFrame.size.width, aFrame.size.height - 38)]; - [_hueSaturationView setDelegate: self]; - [_hueSaturationView setAutoresizingMask: (CPViewWidthSizable | CPViewHeightSizable)]; + _hueSaturationView = [[__CPColorWheel alloc] initWithFrame:_CGRectMake(0, 0, aFrame.size.width, aFrame.size.height - 38)]; + [_hueSaturationView setDelegate:self]; + [_hueSaturationView setAutoresizingMask:(CPViewWidthSizable | CPViewHeightSizable)]; [_pickerView addSubview:_hueSaturationView]; [_pickerView addSubview:_brightnessSlider]; @@ -225,46 +224,49 @@ - (id)initWithFrame:(CPRect)aFrame { - self = [super initWithFrame:aFrame]; - - var path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel.png"]; - - _wheelImage = new Image(); - _wheelImage.src = path; - _wheelImage.style.position = "absolute"; - - path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel_black.png"]; - - _blackWheelImage = new Image(); - _blackWheelImage.src = path; - _blackWheelImage.style.opacity = "0"; - _blackWheelImage.style.filter = "alpha(opacity=0)" - _blackWheelImage.style.position = "absolute"; - + if (self = [super initWithFrame:aFrame]) + { #if PLATFORM(DOM) - _DOMElement.appendChild(_wheelImage); - _DOMElement.appendChild(_blackWheelImage); + var path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel.png"]; + + _wheelImage = new Image(); + _wheelImage.src = path; + _wheelImage.style.position = "absolute"; + + path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel_black.png"]; + + _blackWheelImage = new Image(); + _blackWheelImage.src = path; + _blackWheelImage.style.opacity = "0"; + _blackWheelImage.style.filter = "alpha(opacity=0)" + _blackWheelImage.style.position = "absolute"; + + _DOMElement.appendChild(_wheelImage); + _DOMElement.appendChild(_blackWheelImage); #endif - [self setWheelSize:aFrame.size]; + [self setWheelSize:aFrame.size]; - _crosshair = [[CPView alloc] initWithFrame:CPRectMake(_radius - 2, _radius - 2, 4, 4)]; - [_crosshair setBackgroundColor:[CPColor blackColor]]; + _crosshair = [[CPView alloc] initWithFrame:CGRectMake(_radius - 2, _radius - 2, 4, 4)]; + [_crosshair setBackgroundColor:[CPColor blackColor]]; - var view = [[CPView alloc] initWithFrame:CGRectInset([_crosshair bounds], 1.0, 1.0)]; - [view setBackgroundColor:[CPColor whiteColor]]; + var view = [[CPView alloc] initWithFrame:CGRectInset([_crosshair bounds], 1.0, 1.0)]; + [view setBackgroundColor:[CPColor whiteColor]]; - [_crosshair addSubview:view]; + [_crosshair addSubview:view]; - [self addSubview:_crosshair]; + [self addSubview:_crosshair]; + } return self; } - (void)setWheelBrightness:(float)brightness { +#if PLATFORM(DOM) _blackWheelImage.style.opacity = 1.0 - brightness; _blackWheelImage.style.filter = "alpha(opacity=" + (1.0 - brightness) * 100 + ")" +#endif } - (void)setFrameSize:(CPSize)aSize @@ -277,6 +279,7 @@ { var min = MIN(aSize.width, aSize.height); +#if PLATFORM(DOM) _blackWheelImage.style.width = min; _blackWheelImage.style.height = min; _blackWheelImage.width = min; @@ -290,6 +293,7 @@ _wheelImage.height = min; _wheelImage.style.top = (aSize.height - min) / 2.0 + "px"; _wheelImage.style.left = (aSize.width - min) / 2.0 + "px"; +#endif _radius = min / 2.0; diff --git a/AppKit/CPColorWell.j b/AppKit/CPColorWell.j index 9b86c4c6c..35e113211 100644 --- a/AppKit/CPColorWell.j +++ b/AppKit/CPColorWell.j @@ -43,7 +43,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv BOOL _bordered; CPColor _color; - CPView _wellView; } + (Class)_binderClassForBinding:(CPString)theBinding @@ -54,6 +53,17 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv return [super _binderClassForBinding:theBinding]; } ++ (CPString)defaultThemeClass +{ + return @"colorwell"; +} + ++ (id)themeAttributes +{ + return [CPDictionary dictionaryWithObjects:[_CGInsetMakeZero(), [CPNull null], _CGInsetMake(3.0, 3.0, 3.0, 3.0), _CGInsetMakeZero(), [CPNull null]] + forKeys:[@"bezel-inset", @"bezel-color", @"content-inset", @"content-border-inset", @"content-border-color"]]; +} + - (void)_reverseSetBinding { var binderClass = [[self class] _binderClassForBinding:CPValueBinding], @@ -69,11 +79,8 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv if (self) { _active = NO; - _bordered = YES; _color = [CPColor whiteColor]; - - [self drawBezelWithHighlight:NO]; - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; + [self setBordered:YES]; [self _registerForNotifications]; } @@ -98,25 +105,23 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv object:[CPColorPanel sharedColorPanel]]; } +/*! + Sets whether the color well is bordered. +*/ +- (void)setBordered:(BOOL)shouldBeBordered +{ + if (shouldBeBordered) + [self setThemeState:CPThemeStateBordered]; + else + [self unsetThemeState:CPThemeStateBordered]; +} + /*! Returns whether the color well is bordered */ - (BOOL)isBordered { - return _bordered; -} - -/*! - Sets the color well's current color. -*/ -- (void)setBordered:(BOOL)bordered -{ - if (_bordered == bordered) - return; - - _bordered = bordered; - - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; + return [self hasThemeState:CPThemeStateBordered]; } // Managing Color From Color Wells @@ -139,7 +144,7 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv _color = aColor; - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; + [self setNeedsLayout]; } /*! @@ -202,31 +207,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv return _active; } -// Drawing a Color Well - -- (void)drawBezelWithHighlight:(BOOL)shouldHighlight -{ -} - -/*! - Draws the colored area inside the color well without borders. - @param aRect the location at which to draw -*/ -- (void)drawWellInside:(CGRect)aRect -{ - if (!_wellView) - { - _wellView = [[CPView alloc] initWithFrame:aRect]; - [_wellView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; - - [self addSubview:_wellView]; - } - else - [_wellView setFrame:aRect]; - - [_wellView setBackgroundColor:_color]; -} - - (void)colorPanelDidChangeColor:(CPNotification)aNotification { [self takeColorFrom:[aNotification object]]; @@ -245,27 +225,11 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv [self deactivate]; } -- (void)mouseDown:(CPEvent)anEvent +- (void)stopTracking:(CGPoint)lastPoint at:(CGPoint)aPoint mouseIsUp:(BOOL)mouseIsUp { - if (![self isEnabled]) - return; + [self highlight:NO]; - [self drawBezelWithHighlight:YES]; -} - -- (void)mouseDragged:(CPEvent)anEvent -{ - if (![self isEnabled]) - return; - - [self drawBezelWithHighlight:CGRectContainsPoint([self bounds], [self convertPoint:[anEvent locationInWindow] fromView:nil])]; -} - -- (void)mouseUp:(CPEvent)anEvent -{ - [self drawBezelWithHighlight:NO]; - - if (!CGRectContainsPoint([self bounds], [self convertPoint:[anEvent locationInWindow] fromView:nil]) || ![self isEnabled]) + if (!mouseIsUp || !CGRectContainsPoint([self bounds], aPoint) || ![self isEnabled]) return; [self activate:YES]; @@ -276,6 +240,73 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv [colorPanel orderFront:self]; } +- (CGRect)contentRectForBounds:(CGRect)bounds +{ + var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; + + return _CGRectInsetByInset(bounds, contentInset); +} + +- (CGRect)bezelRectForBounds:(CGRect)bounds +{ + var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; + + return _CGRectInsetByInset(bounds, bezelInset); +} + +- (CGRect)contentBorderRectForBounds:(CGRect)bounds +{ + var contentBorderInset = [self currentValueForThemeAttribute:@"content-border-inset"]; + + return _CGRectInsetByInset(bounds, contentBorderInset); +} + +- (CGRect)rectForEphemeralSubviewNamed:(CPString)aName +{ + switch (aName) + { + case "bezel-view": + return [self bezelRectForBounds:[self bounds]]; + case "content-view": + return [self contentRectForBounds:[self bounds]]; + case "content-border-view": + return [self contentBorderRectForBounds:[self bounds]]; + } + + return [super rectForEphemeralSubviewNamed:aName]; +} + +- (CPView)createEphemeralSubviewNamed:(CPString)aName +{ + var view = [[CPView alloc] initWithFrame:_CGRectMakeZero()]; + + [view setHitTests:NO]; + + return view; +} + +- (void)layoutSubviews +{ + var bezelView = [self layoutEphemeralSubviewNamed:@"bezel-view" + positioned:CPWindowBelow + relativeToEphemeralSubviewNamed:@"content-view"]; + + [bezelView setBackgroundColor:[self currentValueForThemeAttribute:@"bezel-color"]]; + + var contentView = [self layoutEphemeralSubviewNamed:@"content-view" + positioned:CPWindowAbove + relativeToEphemeralSubviewNamed:@"bezel-view"]; + + + [contentView setBackgroundColor:_color]; + + var contentBorderView = [self layoutEphemeralSubviewNamed:@"content-border-view" + positioned:CPWindowAbove + relativeToEphemeralSubviewNamed:@"content-view"]; + + [contentBorderView setBackgroundColor:[self currentValueForThemeAttribute:@"content-border-color"]]; +} + @end @implementation CPColorWellValueBinder : CPBinder @@ -336,11 +367,8 @@ var CPColorWellColorKey = "CPColorWellColorKey", if (self) { _active = NO; - _bordered = [aCoder decodeBoolForKey:CPColorWellBorderedKey]; _color = [aCoder decodeObjectForKey:CPColorWellColorKey]; - - [self drawBezelWithHighlight:NO]; - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; + [self setBordered:[aCoder decodeBoolForKey:CPColorWellBorderedKey]]; [self _registerForNotifications]; } @@ -354,19 +382,10 @@ var CPColorWellColorKey = "CPColorWellColorKey", */ - (void)encodeWithCoder:(CPCoder)aCoder { - // We do this in order to avoid encoding the _wellView, which - // should just automatically be created programmatically as needed. - var actualSubviews = _subviews; - - _subviews = [_subviews copy]; - [_subviews removeObjectIdenticalTo:_wellView]; - [super encodeWithCoder:aCoder]; - _subviews = actualSubviews; - [aCoder encodeObject:_color forKey:CPColorWellColorKey]; - [aCoder encodeObject:_bordered forKey:CPColorWellBorderedKey]; + [aCoder encodeObject:[self isBordered] forKey:CPColorWellBorderedKey]; } @end diff --git a/AppKit/CPSliderColorPicker.j b/AppKit/CPSliderColorPicker.j index 3945d9619..3bf8106db 100644 --- a/AppKit/CPSliderColorPicker.j +++ b/AppKit/CPSliderColorPicker.j @@ -60,7 +60,7 @@ - (id)initWithPickerMask:(int)mask colorPanel:(CPColorPanel)owningColorPanel { - return [super initWithPickerMask:mask colorPanel: owningColorPanel]; + return [super initWithPickerMask:mask colorPanel:owningColorPanel]; } - (id)initView @@ -70,156 +70,156 @@ _contentView = [[CPView alloc] initWithFrame:aFrame]; [_contentView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; - _rgbLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 10, 100, 20)]; - [_rgbLabel setStringValue: "Red, Green, Blue"]; + _rgbLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 10, 100, 20)]; + [_rgbLabel setStringValue:"Red, Green, Blue"]; [_rgbLabel setTextColor:[CPColor blackColor]]; - _redLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 37, 15, 20)]; - [_redLabel setStringValue: "R"]; + _redLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 37, 15, 20)]; + [_redLabel setStringValue:"R"]; [_redLabel setTextColor:[CPColor blackColor]]; - _redSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 35, aFrame.size.width - 70, 20)]; - [_redSlider setMaxValue: 1.0]; - [_redSlider setMinValue: 0.0]; - [_redSlider setTarget: self]; - [_redSlider setAction: @selector(sliderChanged:)]; - [_redSlider setAutoresizingMask: CPViewWidthSizable]; + _redSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 35, aFrame.size.width - 70, 20)]; + [_redSlider setMaxValue:1.0]; + [_redSlider setMinValue:0.0]; + [_redSlider setTarget:self]; + [_redSlider setAction:@selector(sliderChanged:)]; + [_redSlider setAutoresizingMask:CPViewWidthSizable]; // red value input box - _redValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 30, 45, 28)]; - [_redValue setAutoresizingMask: CPViewMinXMargin]; - [_redValue setEditable: YES]; - [_redValue setBezeled: YES]; - [_redValue setDelegate: self]; - [_contentView addSubview: _redValue]; + _redValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 30, 45, 28)]; + [_redValue setAutoresizingMask:CPViewMinXMargin]; + [_redValue setEditable:YES]; + [_redValue setBezeled:YES]; + [_redValue setDelegate:self]; + [_contentView addSubview:_redValue]; - _greenLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 63, 15, 20)]; - [_greenLabel setStringValue: "G"]; + _greenLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 63, 15, 20)]; + [_greenLabel setStringValue:"G"]; [_greenLabel setTextColor:[CPColor blackColor]]; - _greenSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 61, aFrame.size.width - 70, 20)]; - [_greenSlider setMaxValue: 1.0]; - [_greenSlider setMinValue: 0.0]; - [_greenSlider setTarget: self]; - [_greenSlider setAction: @selector(sliderChanged:)]; - [_greenSlider setAutoresizingMask: CPViewWidthSizable]; + _greenSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 61, aFrame.size.width - 70, 20)]; + [_greenSlider setMaxValue:1.0]; + [_greenSlider setMinValue:0.0]; + [_greenSlider setTarget:self]; + [_greenSlider setAction:@selector(sliderChanged:)]; + [_greenSlider setAutoresizingMask:CPViewWidthSizable]; // green value input box - _greenValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 56, 45, 28)]; - [_greenValue setAutoresizingMask: CPViewMinXMargin]; - [_greenValue setEditable: YES]; - [_greenValue setBezeled: YES]; - [_greenValue setDelegate: self]; - [_contentView addSubview: _greenValue]; + _greenValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 56, 45, 28)]; + [_greenValue setAutoresizingMask:CPViewMinXMargin]; + [_greenValue setEditable:YES]; + [_greenValue setBezeled:YES]; + [_greenValue setDelegate:self]; + [_contentView addSubview:_greenValue]; - _blueLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 90, 15, 20)]; - [_blueLabel setStringValue: "B"]; + _blueLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 90, 15, 20)]; + [_blueLabel setStringValue:"B"]; [_blueLabel setTextColor:[CPColor blackColor]]; - _blueSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 87, aFrame.size.width - 70, 20)]; - [_blueSlider setMaxValue: 1.0]; - [_blueSlider setMinValue: 0.0]; - [_blueSlider setTarget: self]; - [_blueSlider setAction: @selector(sliderChanged:)]; - [_blueSlider setAutoresizingMask: CPViewWidthSizable]; + _blueSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 87, aFrame.size.width - 70, 20)]; + [_blueSlider setMaxValue:1.0]; + [_blueSlider setMinValue:0.0]; + [_blueSlider setTarget:self]; + [_blueSlider setAction:@selector(sliderChanged:)]; + [_blueSlider setAutoresizingMask:CPViewWidthSizable]; // blue value input box - _blueValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 82, 45, 28)]; - [_blueValue setAutoresizingMask: CPViewMinXMargin]; - [_blueValue setEditable: YES]; - [_blueValue setBezeled: YES]; - [_blueValue setDelegate: self]; - [_contentView addSubview: _blueValue]; + _blueValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 82, 45, 28)]; + [_blueValue setAutoresizingMask:CPViewMinXMargin]; + [_blueValue setEditable:YES]; + [_blueValue setBezeled:YES]; + [_blueValue setDelegate:self]; + [_contentView addSubview:_blueValue]; - _hsbLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 120, 190, 20)]; - [_hsbLabel setStringValue: "Hue, Saturation, Brightness"]; + _hsbLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 120, 190, 20)]; + [_hsbLabel setStringValue:"Hue, Saturation, Brightness"]; [_hsbLabel setTextColor:[CPColor blackColor]]; - _hueLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 145, 15, 20)]; - [_hueLabel setStringValue: "H"]; + _hueLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 145, 15, 20)]; + [_hueLabel setStringValue:"H"]; [_hueLabel setTextColor:[CPColor blackColor]]; - _hueSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 143, aFrame.size.width - 70, 20)]; - [_hueSlider setMaxValue: 359.0]; - [_hueSlider setMinValue: 0.0]; - [_hueSlider setTarget: self]; - [_hueSlider setAction: @selector(sliderChanged:)]; - [_hueSlider setAutoresizingMask: CPViewWidthSizable]; + _hueSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 143, aFrame.size.width - 70, 20)]; + [_hueSlider setMaxValue:359.0]; + [_hueSlider setMinValue:0.0]; + [_hueSlider setTarget:self]; + [_hueSlider setAction:@selector(sliderChanged:)]; + [_hueSlider setAutoresizingMask:CPViewWidthSizable]; // hue value input box - _hueValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 138, 45, 28)]; - [_hueValue setAutoresizingMask: CPViewMinXMargin]; - [_hueValue setEditable: YES]; - [_hueValue setBezeled: YES]; - [_hueValue setDelegate: self]; - [_contentView addSubview: _hueValue]; + _hueValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 138, 45, 28)]; + [_hueValue setAutoresizingMask:CPViewMinXMargin]; + [_hueValue setEditable:YES]; + [_hueValue setBezeled:YES]; + [_hueValue setDelegate:self]; + [_contentView addSubview:_hueValue]; - _saturationLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 170, 15, 20)]; - [_saturationLabel setStringValue: "S"]; + _saturationLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 170, 15, 20)]; + [_saturationLabel setStringValue:"S"]; [_saturationLabel setTextColor:[CPColor blackColor]]; - _saturationSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 168, aFrame.size.width - 70, 20)]; - [_saturationSlider setMaxValue: 100.0]; - [_saturationSlider setMinValue: 0.0]; - [_saturationSlider setTarget: self]; - [_saturationSlider setAction: @selector(sliderChanged:)]; - [_saturationSlider setAutoresizingMask: CPViewWidthSizable]; + _saturationSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 168, aFrame.size.width - 70, 20)]; + [_saturationSlider setMaxValue:100.0]; + [_saturationSlider setMinValue:0.0]; + [_saturationSlider setTarget:self]; + [_saturationSlider setAction:@selector(sliderChanged:)]; + [_saturationSlider setAutoresizingMask:CPViewWidthSizable]; // saturation value input box - _saturationValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 164, 45, 28)]; - [_saturationValue setAutoresizingMask: CPViewMinXMargin]; - [_saturationValue setEditable: YES]; - [_saturationValue setBezeled: YES]; - [_saturationValue setDelegate: self]; - [_contentView addSubview: _saturationValue]; + _saturationValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 164, 45, 28)]; + [_saturationValue setAutoresizingMask:CPViewMinXMargin]; + [_saturationValue setEditable:YES]; + [_saturationValue setBezeled:YES]; + [_saturationValue setDelegate:self]; + [_contentView addSubview:_saturationValue]; - _brightnessLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 196, 15, 20)]; - [_brightnessLabel setStringValue: "B"]; + _brightnessLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 196, 15, 20)]; + [_brightnessLabel setStringValue:"B"]; [_brightnessLabel setTextColor:[CPColor blackColor]]; - _brightnessSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 194, aFrame.size.width - 70, 20)]; - [_brightnessSlider setMaxValue: 100.0]; - [_brightnessSlider setMinValue: 0.0]; - [_brightnessSlider setTarget: self]; - [_brightnessSlider setAction: @selector(sliderChanged:)]; - [_brightnessSlider setAutoresizingMask: CPViewWidthSizable]; + _brightnessSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 194, aFrame.size.width - 70, 20)]; + [_brightnessSlider setMaxValue:100.0]; + [_brightnessSlider setMinValue:0.0]; + [_brightnessSlider setTarget:self]; + [_brightnessSlider setAction:@selector(sliderChanged:)]; + [_brightnessSlider setAutoresizingMask:CPViewWidthSizable]; // brightness value input box - _brightnessValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 190, 45, 28)]; - [_brightnessValue setAutoresizingMask: CPViewMinXMargin]; - [_brightnessValue setEditable: YES]; - [_brightnessValue setBezeled: YES]; - [_brightnessValue setDelegate: self]; - [_contentView addSubview: _brightnessValue]; + _brightnessValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 190, 45, 28)]; + [_brightnessValue setAutoresizingMask:CPViewMinXMargin]; + [_brightnessValue setEditable:YES]; + [_brightnessValue setBezeled:YES]; + [_brightnessValue setDelegate:self]; + [_contentView addSubview:_brightnessValue]; - _hexLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 230, 30, 20)]; - [_hexLabel setStringValue: "Hex"]; + _hexLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 230, 30, 20)]; + [_hexLabel setStringValue:"Hex"]; [_hexLabel setTextColor:[CPColor blackColor]]; //hex input box - _hexValue = [[CPTextField alloc] initWithFrame: CGRectMake(32, 225, 80, 28)]; - [_hexValue setEditable: YES]; - [_hexValue setBezeled: YES]; - [_hexValue setDelegate: self]; - [_contentView addSubview: _hexValue]; + _hexValue = [[CPTextField alloc] initWithFrame:CGRectMake(32, 225, 80, 28)]; + [_hexValue setEditable:YES]; + [_hexValue setBezeled:YES]; + [_hexValue setDelegate:self]; + [_contentView addSubview:_hexValue]; - [_contentView addSubview: _rgbLabel]; - [_contentView addSubview: _redLabel]; - [_contentView addSubview: _greenLabel]; - [_contentView addSubview: _blueLabel]; - [_contentView addSubview: _redSlider]; - [_contentView addSubview: _greenSlider]; - [_contentView addSubview: _blueSlider]; + [_contentView addSubview:_rgbLabel]; + [_contentView addSubview:_redLabel]; + [_contentView addSubview:_greenLabel]; + [_contentView addSubview:_blueLabel]; + [_contentView addSubview:_redSlider]; + [_contentView addSubview:_greenSlider]; + [_contentView addSubview:_blueSlider]; - [_contentView addSubview: _hsbLabel]; - [_contentView addSubview: _hueLabel]; - [_contentView addSubview: _saturationLabel]; - [_contentView addSubview: _brightnessLabel]; - [_contentView addSubview: _hueSlider]; - [_contentView addSubview: _saturationSlider]; - [_contentView addSubview: _brightnessSlider]; + [_contentView addSubview:_hsbLabel]; + [_contentView addSubview:_hueLabel]; + [_contentView addSubview:_saturationLabel]; + [_contentView addSubview:_brightnessLabel]; + [_contentView addSubview:_hueSlider]; + [_contentView addSubview:_saturationSlider]; + [_contentView addSubview:_brightnessSlider]; - [_contentView addSubview: _hexLabel]; + [_contentView addSubview:_hexLabel]; } - (CPView)provideNewView:(BOOL)initialRequest @@ -250,35 +250,35 @@ { case _hueSlider: case _saturationSlider: - case _brightnessSlider: newColor = [CPColor colorWithHue: [_hueSlider floatValue] - saturation: [_saturationSlider floatValue] - brightness: [_brightnessSlider floatValue] - alpha: alpha]; + case _brightnessSlider: newColor = [CPColor colorWithHue:[_hueSlider floatValue] + saturation:[_saturationSlider floatValue] + brightness:[_brightnessSlider floatValue] + alpha:alpha]; - [self updateRGBSliders: newColor]; + [self updateRGBSliders:newColor]; break; case _redSlider: case _greenSlider: - case _blueSlider: newColor = [CPColor colorWithCalibratedRed: [_redSlider floatValue] - green: [_greenSlider floatValue] - blue: [_blueSlider floatValue] - alpha: alpha]; + case _blueSlider: newColor = [CPColor colorWithCalibratedRed:[_redSlider floatValue] + green:[_greenSlider floatValue] + blue:[_blueSlider floatValue] + alpha:alpha]; - [self updateHSBSliders: newColor]; + [self updateHSBSliders:newColor]; break; } [self updateLabels]; - [self updateHex: newColor]; - [colorPanel setColor: newColor]; + [self updateHex:newColor]; + [colorPanel setColor:newColor]; } - (void)setColor:(CPColor)aColor { - [self updateRGBSliders: aColor]; - [self updateHSBSliders: aColor]; - [self updateHex: aColor]; + [self updateRGBSliders:aColor]; + [self updateHSBSliders:aColor]; + [self updateHex:aColor]; [self updateLabels]; } @@ -307,13 +307,13 @@ - (void)updateLabels { - [_hueValue setStringValue: ROUND([_hueSlider floatValue])]; - [_saturationValue setStringValue: ROUND([_saturationSlider floatValue])]; - [_brightnessValue setStringValue: ROUND([_brightnessSlider floatValue])]; + [_hueValue setStringValue:ROUND([_hueSlider floatValue])]; + [_saturationValue setStringValue:ROUND([_saturationSlider floatValue])]; + [_brightnessValue setStringValue:ROUND([_brightnessSlider floatValue])]; - [_redValue setStringValue: ROUND([_redSlider floatValue] * 255)]; - [_greenValue setStringValue: ROUND([_greenSlider floatValue] * 255)]; - [_blueValue setStringValue: ROUND([_blueSlider floatValue] * 255)]; + [_redValue setStringValue:ROUND([_redSlider floatValue] * 255)]; + [_greenValue setStringValue:ROUND([_greenSlider floatValue] * 255)]; + [_blueValue setStringValue:ROUND([_blueSlider floatValue] * 255)]; } - (CPImage)provideNewButtonImage @@ -333,12 +333,12 @@ if (field === _hexValue) { - var newColor = [CPColor colorWithHexString: value]; + var newColor = [CPColor colorWithHexString:value]; if (newColor) { - [self setColor: newColor]; - [[self colorPanel] setColor: newColor]; + [self setColor:newColor]; + [[self colorPanel] setColor:newColor]; } } else @@ -346,27 +346,27 @@ switch (field) { case _redValue: [_redSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)]; - [self sliderChanged: _redSlider]; + [self sliderChanged:_redSlider]; break; case _greenValue: [_greenSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)]; - [self sliderChanged: _greenSlider]; + [self sliderChanged:_greenSlider]; break; case _blueValue: [_blueSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)]; - [self sliderChanged: _blueSlider]; + [self sliderChanged:_blueSlider]; break; case _hueValue: [_hueSlider setFloatValue:MAX(MIN(ROUND(value), 360), 0)]; - [self sliderChanged: _hueSlider]; + [self sliderChanged:_hueSlider]; break; case _saturationValue: [_saturationSlider setFloatValue:MAX(MIN(ROUND(value), 100), 0)]; - [self sliderChanged: _saturationSlider]; + [self sliderChanged:_saturationSlider]; break; case _brightnessValue: [_brightnessSlider setFloatValue:MAX(MIN(ROUND(value), 100), 0)]; - [self sliderChanged: _brightnessSlider]; + [self sliderChanged:_brightnessSlider]; break; } } diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 60874a91a..f02bb28fd 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -1313,27 +1313,14 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); { var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; - bounds.origin.x += contentInset.left; - bounds.origin.y += contentInset.top; - bounds.size.width -= contentInset.left + contentInset.right; - bounds.size.height -= contentInset.top + contentInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, contentInset); } - (CGRect)bezelRectForBounds:(CGRect)bounds { var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; - if (_CGInsetIsEmpty(bezelInset)) - return bounds; - - bounds.origin.x += bezelInset.left; - bounds.origin.y += bezelInset.top; - bounds.size.width -= bezelInset.left + bezelInset.right; - bounds.size.height -= bezelInset.top + bezelInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, bezelInset); } - (CGRect)rectForEphemeralSubviewNamed:(CPString)aName diff --git a/AppKit/CoreGraphics/CGGeometry.h b/AppKit/CoreGraphics/CGGeometry.h index dbfef2039..f66a82d32 100644 --- a/AppKit/CoreGraphics/CGGeometry.h +++ b/AppKit/CoreGraphics/CGGeometry.h @@ -45,6 +45,19 @@ #define _CGRectOffset(aRect, dX, dY) _CGRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width, aRect.size.height) #define _CGRectInset(aRect, dX, dY) _CGRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width - 2 * dX, aRect.size.height - 2 * dY) +/*! + Slow: + + var theInsetRect = _CGRectInsetByInset([self bounds], [self contentInset]); + + Fast: + + var aRect = [self bounds], + anInset = [self contentInset], + theInsetRect = _CGRectInsetByInset(aRect, anInset); +*/ +#define _CGRectInsetByInset(aRect, anInset) _CGRectMake((aRect).origin.x + (anInset).left, (aRect).origin.y + (anInset).top, (aRect).size.width - (anInset).left - (anInset).right, (aRect).size.height - (anInset).top - (anInset).bottom) + #define _CGRectGetHeight(aRect) (aRect.size.height) #define _CGRectGetMaxX(aRect) (aRect.origin.x + aRect.size.width) #define _CGRectGetMaxY(aRect) (aRect.origin.y + aRect.size.height) diff --git a/AppKit/CoreGraphics/CGGeometry.j b/AppKit/CoreGraphics/CGGeometry.j index 20775a1a8..957662a00 100644 --- a/AppKit/CoreGraphics/CGGeometry.j +++ b/AppKit/CoreGraphics/CGGeometry.j @@ -241,6 +241,14 @@ function CGRectUnion(lhsRect, rhsRect) return _CGRectMake(minX, minY, maxX - minX, maxY - minY); } +/*! + Returns the specified rectangle inset by the given CGInset as a new rectangle. + @param aRect the rect to inset + @param anInset a CGInset to inset by + @return CGRect aRect inset by anInset +*/ +_function(CGRectInsetByInset(aRect, anInset)); + function CGPointFromString(aString) { var comma = aString.indexOf(','); diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-center.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-center.png new file mode 100644 index 000000000..343e76d51 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-center.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-center.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-center.png new file mode 100644 index 000000000..3aefab2d3 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-center.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-left.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-left.png new file mode 100644 index 000000000..6f1614ab9 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-left.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-right.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-right.png new file mode 100644 index 000000000..bf56b9637 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-right.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-center.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-center.png new file mode 100644 index 000000000..3dd335f5b Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-center.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-left.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-left.png new file mode 100644 index 000000000..8c1579335 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-left.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-right.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-right.png new file mode 100644 index 000000000..8bde109b6 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-right.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-left.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-left.png new file mode 100644 index 000000000..d188ea17b Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-left.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-right.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-right.png new file mode 100644 index 000000000..7c6bbf90d Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-bezel-right.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-content-border-center.png b/AppKit/Themes/Aristo/Resources/colorwell-content-border-center.png new file mode 100644 index 000000000..96e46d5ca Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-content-border-center.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-content-border-left.png b/AppKit/Themes/Aristo/Resources/colorwell-content-border-left.png new file mode 100644 index 000000000..ca13ac1c8 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-content-border-left.png differ diff --git a/AppKit/Themes/Aristo/Resources/colorwell-content-border-right.png b/AppKit/Themes/Aristo/Resources/colorwell-content-border-right.png new file mode 100644 index 000000000..ca13ac1c8 Binary files /dev/null and b/AppKit/Themes/Aristo/Resources/colorwell-content-border-right.png differ diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index df1eae02c..00b7787dc 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -1129,6 +1129,61 @@ var themedButtonValues = nil, return button; } ++ (CPColorWell)themedColorWell +{ + // The CPColorPanel CPColorWell depends on requires CPApp. + [CPApplication sharedApplication]; + + var colorWell = [[CPColorWell alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 24.0)], + + bezelColor = PatternColor( + [ + ["colorwell-bezel-left.png", 3.0, 24.0], + ["colorwell-bezel-center.png", 1.0, 24.0], + ["colorwell-bezel-right.png", 3.0, 24.0] + ], + PatternIsHorizontal), + + bezelHighlightedColor = PatternColor( + [ + ["colorwell-bezel-highlighted-left.png", 3.0, 24.0], + ["colorwell-bezel-highlighted-center.png", 1.0, 24.0], + ["colorwell-bezel-highlighted-right.png", 3.0, 24.0] + ], + PatternIsHorizontal), + + bezelDisabledColor = PatternColor( + [ + ["colorwell-bezel-disabled-left.png", 3.0, 24.0], + ["colorwell-bezel-disabled-center.png", 1.0, 24.0], + ["colorwell-bezel-disabled-right.png", 3.0, 24.0] + ], + PatternIsHorizontal), + + contentBorderColor = PatternColor( + [ + ["colorwell-content-border-left.png", 1.0, 15.0], + ["colorwell-content-border-center.png", 1.0, 15.0], + ["colorwell-content-border-right.png", 1.0, 15.0] + ], + PatternIsHorizontal), + + themedColorWellValues = [ + [@"bezel-color", bezelColor, CPThemeStateBordered], + [@"content-inset", CGInsetMake(5.0, 5.0, 5.0, 5.0), CPThemeStateBordered], + [@"content-border-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBordered], + [@"content-border-color", contentBorderColor, CPThemeStateBordered], + + [@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted], + + [@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled], + ]; + + [self registerThemeValues:themedColorWellValues forView:colorWell]; + + return colorWell; +} + + (CPComboBox)themedComboBox { var combo = [[CPComboBox alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 29.0)], diff --git a/AppKit/_CPPopUpList.j b/AppKit/_CPPopUpList.j index b214c777d..2bf5f081b 100644 --- a/AppKit/_CPPopUpList.j +++ b/AppKit/_CPPopUpList.j @@ -140,7 +140,7 @@ var ListColumnIdentifier = @"1"; [panel setTitle:@""]; [panel setFloatingPanel:YES]; [panel setBecomesKeyOnlyIfNeeded:YES]; - [panel setLevel:CPStatusWindowLevel]; + [panel setLevel:CPPopUpMenuWindowLevel]; [panel setHasShadow:YES]; [panel setShadowStyle:CPMenuWindowShadowStyle]; [panel setDelegate:self]; diff --git a/Objective-J/Debug.js b/Objective-J/Debug.js index b6f51acb9..58ec0d48f 100644 --- a/Objective-J/Debug.js +++ b/Objective-J/Debug.js @@ -117,7 +117,7 @@ GLOBAL(objj_backtrace_decorator) = function(msgSend) // make sure to always pop objj_backtrace.pop(); } - } + }; } GLOBAL(objj_supress_exceptions_decorator) = function(msgSend) @@ -135,7 +135,7 @@ GLOBAL(objj_supress_exceptions_decorator) = function(msgSend) // print the exception and backtrace CPLog.warn("Exception " + anException + " in " + objj_debug_message_format(aReceiver, aSelector)); } - } + }; } // type checking decorator @@ -148,7 +148,7 @@ GLOBAL(objj_typecheck_decorator) = function(msgSend) return function(aReceiverOrSuper, aSelector) { var aReceiver = aReceiverOrSuper && (aReceiverOrSuper.receiver || aReceiverOrSuper); - + if (!aReceiver) return msgSend.apply(NULL, arguments); @@ -170,7 +170,7 @@ GLOBAL(objj_typecheck_decorator) = function(msgSend) } } } - + var result = msgSend.apply(NULL, arguments); try @@ -189,14 +189,14 @@ GLOBAL(objj_typecheck_decorator) = function(msgSend) } return result; - } + }; } // type checking logic: GLOBAL(objj_debug_typecheck) = function(expectedType, object) { var objjClass; - + if (!expectedType) { return; @@ -230,7 +230,7 @@ GLOBAL(objj_debug_typecheck) = function(expectedType, object) { return; } - + var actualType; if (object === NULL) actualType = "null"; diff --git a/Tests/AppKit/CPButtonTest.j b/Tests/AppKit/CPButtonTest.j index 3632a7d35..112d89020 100644 --- a/Tests/AppKit/CPButtonTest.j +++ b/Tests/AppKit/CPButtonTest.j @@ -3,7 +3,7 @@ @import @import -[CPApplication sharedApplication] +[CPApplication sharedApplication]; @implementation CPButtonTest : OJTestCase { diff --git a/Tests/AppKit/CPColorWellTest.j b/Tests/AppKit/CPColorWellTest.j new file mode 100644 index 000000000..2e57ee0b9 --- /dev/null +++ b/Tests/AppKit/CPColorWellTest.j @@ -0,0 +1,32 @@ +@import +@import + +[CPApplication sharedApplication]; + +@implementation CPColorWellTest : OJTestCase +{ + CPColorWell colorWell; +} + +- (void)setUp +{ + colorWell = [[CPColorWell alloc] initWithFrame:CGRectMakeZero()]; +} + +- (void)testCoding +{ + [self assertTrue:[colorWell isBordered] message:"color well bordered"]; + [self assert:[CPColor whiteColor] equals:[colorWell color] message:"color well default color"]; + + [colorWell setColor:[CPColor greenColor]]; + [colorWell setBordered:NO]; + + // Test archiving. + var archived = [CPKeyedArchiver archivedDataWithRootObject:colorWell], + unarchived = [CPKeyedUnarchiver unarchiveObjectWithData:archived]; + + [self assertFalse:[colorWell isBordered] message:"color well archived bordered state"]; + [self assert:[CPColor greenColor] equals:[colorWell color] message:"color well archived color"]; +} + +@end diff --git a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib index b0441739a..36d612407 100644 --- a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib +++ b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib @@ -1 +1 @@ -280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;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;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;46E;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;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;43E;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;47E;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;48E;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;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;26E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;50E;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;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;53E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;34E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;56E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;57E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;58E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;60E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;61E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;62E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;63E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;64E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;65E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;66E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;67E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;39E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;70E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;47E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;72E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;73E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;74E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;75E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;28E;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;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;78E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;78E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;79E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;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;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;83E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;85E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;2;87E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;37E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;36E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;2;88E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;2;88E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;2;88E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;2;88E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;89E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;89E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;2;89E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;2;90E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;2;91E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;2;77E;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;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;87E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;92E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;92E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;87E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;95E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;12;$agrid-colorD;K;6;CP$UIDd;2;96E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;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;2;98E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;2;99E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;2;77E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;2;77E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;2;89E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;2;89E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;100E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;100E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;2;89E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;101E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;2;96E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;2;77E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;2;89E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;1;0E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTableColumnK;8;$classesA;S;13;CPTableColumnS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;102E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;103E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;104E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;106E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;107E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;108E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;100E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;89E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;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;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;77E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;113E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;77E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;114E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;111E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;117E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;77E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;119E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;77E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;120E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;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;38E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;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;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;3;123E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;2;89E;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;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;97E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;89E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;129E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;130E;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;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;97E;K;31;CPTextFieldPlaceholderStringKeyD;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;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;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;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;16;$aimage-positionD;K;6;CP$UIDd;2;91E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;77E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;135E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;136E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;100E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;91E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;77E;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;137E;E;D;K;10;$classnameS;17;CPArrayControllerK;8;$classesA;S;17;CPArrayControllerS;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;45E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;138E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;100E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;100E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;100E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;100E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;2;89E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;100E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;100E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;100E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;100E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;26E;E;E;S;8;delegateS;9;theWindowS;27;value: avoidsEmptySelectionS;5;valueS;20;avoidsEmptySelectionD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;38;value: arrangedObjects.color.cssStringS;31;arrangedObjects.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;19;contentArray: arrayS;12;contentArrayS;5;arrayD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;32;value: selection.color.cssStringS;25;selection.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;K;17;CPNullPlaceholderD;K;6;CP$UIDd;3;139E;E;E;S;26;textColor: selection.colorS;9;textColorS;15;selection.colorD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;22;value: selection.colorD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 165}, {715, 473}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {715, 473}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;43E;E;E;S;6;normalS;22;{{20, 20}, {168, 135}}S;20;{{0, 0}, {168, 135}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;90E;E;E;d;2;36S;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;2;86E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;142E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;111E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;143E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;32E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;E;d;1;2S;20;{{0, 0}, {167, 133}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;145E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;146E;E;d;1;4d;2;23S;6;{3, 2}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;E;E;d;3;164d;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;105E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;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;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;148E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;77E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;149E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;151E;K;6;$afontD;K;6;CP$UIDd;3;153E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;97E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;15;$acontent-insetD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;130E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;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;77E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;149E;E;d;1;3S;19;{{1, 1}, {166, 15}}S;19;{{0, 0}, {166, 15}}d;1;8S;8;scrollerS;29;_horizontalScrollerDidScroll:f;18;0.9940119760479041S;22;{{224, 16}, {15, 102}}S;19;{{0, 0}, {15, 102}}d;11;-2147483648S;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.9925373134328358S;22;{{213, 20}, {103, 23}}S;19;{{0, 0}, {103, 23}}D;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;156E;E;S;22;{{210, 51}, {194, 17}}S;19;{{0, 0}, {194, 17}}S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;157E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;158E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;100E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;100E;E;S;5;Labeld;4;3072S;22;{{18, 161}, {172, 18}}S;19;{{0, 0}, {172, 18}}S;9;check-boxS;8;selectedd;1;1S;21;Avoid Empty SelectionS;13;AppControllerS;19;CPMutableDictionaryS;4;NULLS;20;{{1, 1}, {166, 133}}S;20;{{0, 0}, {166, 133}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;159E;E;S;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;135E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;162E;E;E;S;12;columnHeaderS;0;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;157E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;158E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;100E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;100E;E;S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;152E;K;4;nameD;K;6;CP$UIDd;3;163E;K;12;defaultValueD;K;6;CP$UIDd;3;150E;K;6;valuesD;K;6;CP$UIDd;3;164E;E;D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;154E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;E;E;S;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;E;E;f;3;0.5D;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;161E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;106E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;106E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;169E;K;6;normalD;K;6;CP$UIDd;3;150E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}f;13;0.05813049898f;13;0.05554189906d;2;18D;K;6;$classD;K;6;CP$UIDd;3;127E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;157E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;158E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;89E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;100E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;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;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;2;33E;D;K;6;CP$UIDd;2;35E;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;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;48E;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;27E;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;2;35E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;29E;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;49E;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;50E;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;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;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;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;57E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;58E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;60E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;61E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;62E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;64E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;65E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;66E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;69E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;70E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;71E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;72E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;40E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;49E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;75E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;77E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;78E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;79E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;29E;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;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;81E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;82E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;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;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;84E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;85E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;2;90E;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;37E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;2;91E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;2;91E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;2;91E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;2;91E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;92E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;92E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;2;92E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;2;93E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;2;94E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;2;80E;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;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;90E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;95E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;95E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;90E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;2;97E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;12;$agrid-colorD;K;6;CP$UIDd;2;99E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;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;101E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;102E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;2;80E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;2;80E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;2;92E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;2;92E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;103E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;103E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;2;92E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;104E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;2;99E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;2;80E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;2;92E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;1;0E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTableColumnK;8;$classesA;S;13;CPTableColumnS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;106E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;107E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;109E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;110E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;111E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;103E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;92E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;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;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;115E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;31E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;116E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;80E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;117E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;118E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;119E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;114E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;115E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;121E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;31E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;122E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;80E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;123E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;127E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;3;128E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;2;92E;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;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;129E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;130E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;6;$afontD;K;6;CP$UIDd;3;133E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;100E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;92E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;134E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;103E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;103E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;103E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;136E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;94E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;100E;K;31;CPTextFieldPlaceholderStringKeyD;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;43E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;139E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;140E;K;16;$aimage-positionD;K;6;CP$UIDd;2;94E;K;6;$afontD;K;6;CP$UIDd;3;133E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;80E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;141E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;142E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;143E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;103E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;141E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;141E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;92E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;94E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;80E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;3;146E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;147E;E;D;K;10;$classnameS;17;CPArrayControllerK;8;$classesA;S;17;CPArrayControllerS;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;148E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;103E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;103E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;103E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;103E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;2;92E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;103E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;103E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;103E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;103E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;E;E;S;8;delegateS;9;theWindowS;22;value: selection.colorS;5;valueS;15;selection.colorD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;26;CPConditionallySetsEnabledD;K;6;CP$UIDd;3;103E;E;E;S;27;value: avoidsEmptySelectionS;20;avoidsEmptySelectionD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;S;38;value: arrangedObjects.color.cssStringS;31;arrangedObjects.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;S;19;contentArray: arrayS;12;contentArrayS;5;arrayD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;S;32;value: selection.color.cssStringS;25;selection.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;17;CPNullPlaceholderD;K;6;CP$UIDd;3;149E;E;E;S;26;textColor: selection.colorS;9;textColorD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;26;CPConditionallySetsEnabledD;K;6;CP$UIDd;3;103E;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 555}, {715, 473}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {715, 473}}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;42E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;E;E;S;6;normalS;22;{{20, 20}, {168, 135}}S;20;{{0, 0}, {168, 135}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;93E;E;E;d;2;36S;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;2;89E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;150E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;151E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;152E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;114E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;153E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;33E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;E;d;1;2S;20;{{0, 0}, {167, 133}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;155E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;156E;E;d;1;4d;2;23S;6;{3, 2}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;35E;E;E;d;3;164d;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;108E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;158E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;80E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;143E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;160E;K;6;$afontD;K;6;CP$UIDd;3;162E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;100E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;15;$acontent-insetD;K;6;CP$UIDd;3;164E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;143E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;100E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;143E;E;d;1;3S;19;{{1, 1}, {166, 15}}S;19;{{0, 0}, {166, 15}}d;1;8S;8;scrollerS;29;_horizontalScrollerDidScroll:f;18;0.9940119760479041S;22;{{224, 16}, {15, 102}}S;19;{{0, 0}, {15, 102}}d;11;-2147483648S;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.9925373134328358S;22;{{213, 19}, {103, 24}}S;19;{{0, 0}, {103, 24}}S;9;colorwellS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;165E;E;S;22;{{210, 51}, {194, 17}}S;19;{{0, 0}, {194, 17}}S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;166E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;167E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;103E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;103E;E;S;5;Labeld;4;3072D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;168E;E;S;22;{{18, 161}, {172, 18}}S;19;{{0, 0}, {172, 18}}S;9;check-boxS;8;selectedd;1;1S;21;Avoid Empty SelectionS;0;S;22;{{324, 20}, {103, 23}}S;19;{{0, 0}, {103, 23}}D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;169E;E;S;13;AppControllerS;19;CPMutableDictionaryS;4;NULLS;20;{{1, 1}, {166, 133}}S;20;{{0, 0}, {166, 133}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;33E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;170E;E;S;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;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;173E;E;E;S;12;columnHeaderD;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;166E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;167E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;103E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;103E;E;S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;161E;K;4;nameD;K;6;CP$UIDd;3;174E;K;12;defaultValueD;K;6;CP$UIDd;3;159E;K;6;valuesD;K;6;CP$UIDd;3;175E;E;D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;163E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;176E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;S;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;f;3;0.8D;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;172E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;109E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;109E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;180E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;181E;K;6;normalD;K;6;CP$UIDd;3;159E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}f;13;0.05813049898f;13;0.05554189906f;18;0.6862745098039216d;2;18D;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;166E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;167E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;92E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;103E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib index b716f978c..789de57ac 100644 --- a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib +++ b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib @@ -2,13 +2,13 @@ 1050 - 11C74 - 1938 - 1138.23 - 567.00 + 11E53 + 2182 + 1138.47 + 569.00 com.apple.InterfaceBuilder.CocoaPlugin - 1938 + 2182 YES @@ -72,7 +72,7 @@ {{213, 430}, {103, 23}} - + _NS:1100 YES YES @@ -297,13 +297,34 @@ 25 + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{324, 430}, {103, 23}} + + + + _NS:1100 + YES + + 1 + MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA + + {715, 473} - {{0, 0}, {1680, 1028}} + {{0, 0}, {2560, 1418}} {10000000000000, 10000000000000} YES @@ -349,10 +370,14 @@ value: selection.color value selection.color + + NSConditionallySetsEnabled + + 2 - 523 + 540 @@ -438,6 +463,26 @@ 534 + + + value: selection.color + + + + + + value: selection.color + value + selection.color + + NSConditionallySetsEnabled + + + 2 + + + 541 + @@ -486,6 +531,7 @@ + @@ -576,6 +622,11 @@ + + 538 + + + @@ -602,8 +653,9 @@ 507.IBPluginDependency 520.IBPluginDependency 521.IBPluginDependency + 538.IBPluginDependency - + YES com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -625,6 +677,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -639,7 +692,7 @@ - 535 + 541 diff --git a/Tools/nib2cib/NSColorWell.j b/Tools/nib2cib/NSColorWell.j index 161d7b80c..dbb0a0042 100644 --- a/Tools/nib2cib/NSColorWell.j +++ b/Tools/nib2cib/NSColorWell.j @@ -38,6 +38,14 @@ [self setEnabled:[aCoder decodeBoolForKey:@"NSEnabled"]]; [self setBordered:[aCoder decodeBoolForKey:@"NSIsBordered"]]; [self setColor:[aCoder decodeObjectForKey:@"NSColor"]]; + + if ([self isBordered]) + { + var frameSize = [self frameSize]; + CPLog.debug("NSColorWell: adjusting height from %d to %d", frameSize.height, 24.0); + frameSize.height = 24.0; + [self setFrameSize:frameSize]; + } } return self;