Overhaul of CPButton and supporting classes to support image positioning the way Cocoa does
@@ -463,8 +463,20 @@ CPButtonStateMixed = CPThemeState("mixed");
|
||||
*/
|
||||
- (void)sizeToFit
|
||||
{
|
||||
var size = [([self title] || " ") sizeWithFont:[self currentValueForThemeAttribute:@"font"]],
|
||||
contentInset = [self currentValueForThemeAttribute:@"content-inset"],
|
||||
[self layoutSubviews];
|
||||
|
||||
var size,
|
||||
contentView = [self ephemeralSubviewNamed:@"content-view"];
|
||||
|
||||
if (contentView)
|
||||
{
|
||||
[contentView sizeToFit];
|
||||
size = [contentView frameSize];
|
||||
}
|
||||
else
|
||||
size = [([self title] || " ") sizeWithFont:[self currentValueForThemeAttribute:@"font"]];
|
||||
|
||||
var contentInset = [self currentValueForThemeAttribute:@"content-inset"],
|
||||
minSize = [self currentValueForThemeAttribute:@"min-size"],
|
||||
maxSize = [self currentValueForThemeAttribute:@"max-size"];
|
||||
|
||||
@@ -642,7 +654,9 @@ var CPButtonImageKey = @"CPButtonImageKey",
|
||||
CPButtonTitleKey = @"CPButtonTitleKey",
|
||||
CPButtonAlternateTitleKey = @"CPButtonAlternateTitleKey",
|
||||
CPButtonIsBorderedKey = @"CPButtonIsBorderedKey",
|
||||
CPButtonAllowsMixedStateKey = @"CPButtonAllowsMixedStateKey",
|
||||
CPButtonImageDimsWhenDisabledKey = @"CPButtonImageDimsWhenDisabledKey",
|
||||
CPButtonImagePositionKey = @"CPButtonImagePositionKey",
|
||||
CPButtonKeyEquivalentKey = @"CPButtonKeyEquivalentKey",
|
||||
CPButtonKeyEquivalentMaskKey = @"CPButtonKeyEquivalentMaskKey";
|
||||
|
||||
@@ -666,12 +680,18 @@ var CPButtonImageKey = @"CPButtonImageKey",
|
||||
_title = [aCoder decodeObjectForKey:CPButtonTitleKey];
|
||||
_alternateTitle = [aCoder decodeObjectForKey:CPButtonAlternateTitleKey];
|
||||
|
||||
if ([aCoder containsValueForKey:CPButtonAllowsMixedStateKey])
|
||||
_allowsMixedState = [aCoder decodeBoolForKey:CPButtonAllowsMixedStateKey];
|
||||
|
||||
[self setImageDimsWhenDisabled:[aCoder decodeObjectForKey:CPButtonImageDimsWhenDisabledKey]];
|
||||
|
||||
if ([aCoder containsValueForKey:CPButtonImagePositionKey])
|
||||
[self setImagePosition:[aCoder decodeIntForKey:CPButtonImagePositionKey]];
|
||||
|
||||
if ([aCoder containsValueForKey:CPButtonKeyEquivalentKey])
|
||||
[self setKeyEquivalent:CFData.decodeBase64ToUtf16String([aCoder decodeObjectForKey:CPButtonKeyEquivalentKey])];
|
||||
|
||||
_keyEquivalentModifierMask = [aCoder decodeObjectForKey:CPButtonKeyEquivalentMaskKey];
|
||||
_keyEquivalentModifierMask = [aCoder decodeIntForKey:CPButtonKeyEquivalentMaskKey];
|
||||
|
||||
[self setNeedsLayout];
|
||||
[self setNeedsDisplay:YES];
|
||||
@@ -694,7 +714,10 @@ var CPButtonImageKey = @"CPButtonImageKey",
|
||||
[aCoder encodeObject:_title forKey:CPButtonTitleKey];
|
||||
[aCoder encodeObject:_alternateTitle forKey:CPButtonAlternateTitleKey];
|
||||
|
||||
[aCoder encodeObject:[self imageDimsWhenDisabled] forKey:CPButtonImageDimsWhenDisabledKey];
|
||||
[aCoder encodeBool:_allowsMixedState forKey:CPButtonAllowsMixedStateKey];
|
||||
|
||||
[aCoder encodeBool:[self imageDimsWhenDisabled] forKey:CPButtonImageDimsWhenDisabledKey];
|
||||
[aCoder encodeInt:[self imagePosition] forKey:CPButtonImagePositionKey];
|
||||
|
||||
if (_keyEquivalent)
|
||||
[aCoder encodeObject:CFData.encodeBase64Utf16String(_keyEquivalent) forKey:CPButtonKeyEquivalentKey];
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
[self setImagePosition:CPImageLeft];
|
||||
[self setAlignment:CPLeftTextAlignment];
|
||||
|
||||
[self setBordered:YES];
|
||||
[self setBordered:NO];
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
@@ -27,26 +27,26 @@
|
||||
|
||||
/*!
|
||||
@ingroup appkit
|
||||
|
||||
|
||||
from this mailing list thread:
|
||||
http://groups.google.com/group/objectivej/browse_thread/thread/7c41cbd9cbee9ea3
|
||||
|
||||
http://groups.google.com/group/objectivej/browse_thread/thread/7c41cbd9cbee9ea3
|
||||
|
||||
-----------------------------------
|
||||
|
||||
|
||||
Creating a checkbox is easy enough:
|
||||
|
||||
|
||||
checkbox = [[CPCheckBox alloc] initWithFrame:aFrame];
|
||||
|
||||
|
||||
That's basically all there is to it. Radio buttons are very similar,
|
||||
the key difference is the introduction of a new class CPRadioGroup,
|
||||
which defines which radio buttons are part of the same group:
|
||||
|
||||
|
||||
[myRadioButton setRadioGroup:aRadioGroup];
|
||||
|
||||
|
||||
Every radio button receives a unique radio group by default (so if you
|
||||
do nothing further, they will all behave independently), but you can
|
||||
use an existing radio button's group with other buttons as so:
|
||||
|
||||
|
||||
button1 = [[CPRadio alloc] initWithFrame:aFrame];
|
||||
...
|
||||
button2 = [[CPRadio alloc] initWithFrame:aFrame radioGroup:[button1
|
||||
@@ -55,7 +55,7 @@
|
||||
button3 = [[CPRadio alloc] initWithFrame:aFrame radioGroup:[button1
|
||||
radioGroup]];
|
||||
...etc...
|
||||
|
||||
|
||||
Here, all the radio buttons will act "together". [[button1 radioGroup]
|
||||
allRadios] returns every button that's part of this group, and
|
||||
[[button1 radioGroup] selectedRadio] returns the currently selected
|
||||
@@ -95,7 +95,7 @@
|
||||
- (id)initWithFrame:(CGRect)aFrame radioGroup:(CPRadioGroup)aRadioGroup
|
||||
{
|
||||
self = [super initWithFrame:aFrame];
|
||||
|
||||
|
||||
if (self)
|
||||
{
|
||||
[self setRadioGroup:aRadioGroup];
|
||||
@@ -109,8 +109,8 @@
|
||||
|
||||
[self setBordered:YES];
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)aFrame
|
||||
@@ -141,7 +141,7 @@
|
||||
- (void)setObjectValue:(id)aValue
|
||||
{
|
||||
[super setObjectValue:aValue];
|
||||
|
||||
|
||||
if ([self state] === CPOnState)
|
||||
[_radioGroup _setSelectedRadio:self];
|
||||
}
|
||||
|
||||
@@ -2480,6 +2480,14 @@ setBoundsOrigin:
|
||||
return _ephemeralSubviewsForNames[aViewName];
|
||||
}
|
||||
|
||||
- (CPView)ephemeralSubviewNamed:(CPString)aViewName
|
||||
{
|
||||
if (!_ephemeralSubviewsForNames)
|
||||
return nil;
|
||||
|
||||
return (_ephemeralSubviewsForNames[aViewName] || nil);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask",
|
||||
|
||||
@@ -46,28 +46,28 @@ var _CPCibCustomResourceClassNameKey = @"_CPCibCustomResourceClassNameKey",
|
||||
- (id)initWithClassName:(CPString)aClassName resourceName:(CPString)aResourceName properties:(CPDictionary)properties
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
|
||||
if (self)
|
||||
{
|
||||
_className = aClassName;
|
||||
_resourceName = aResourceName;
|
||||
_properties = properties;
|
||||
}
|
||||
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
|
||||
if (self)
|
||||
{
|
||||
_className = [aCoder decodeObjectForKey:_CPCibCustomResourceClassNameKey];
|
||||
_resourceName = [aCoder decodeObjectForKey:_CPCibCustomResourceResourceNameKey];
|
||||
_properties = [aCoder decodeObjectForKey:_CPCibCustomResourcePropertiesKey];
|
||||
}
|
||||
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ var _CPCibCustomResourceClassNameKey = @"_CPCibCustomResourceClassNameKey",
|
||||
|
||||
- (id)awakeAfterUsingCoder:(CPCoder)aCoder
|
||||
{
|
||||
if ([aCoder respondsToSelector:@selector(bundle)] &&
|
||||
if ([aCoder respondsToSelector:@selector(bundle)] &&
|
||||
(![aCoder respondsToSelector:@selector(awakenCustomResources)] || [aCoder awakenCustomResources]))
|
||||
if (_className === @"CPImage")
|
||||
return [[CPImage alloc] initWithContentsOfFile:[[aCoder bundle] pathForResource:_resourceName] size:_properties.valueForKey(@"size")];
|
||||
@@ -112,4 +112,14 @@ var _CPCibCustomResourceClassNameKey = @"_CPCibCustomResourceClassNameKey",
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (unsigned)loadStatus
|
||||
{
|
||||
return CPImageLoadStatusCompleted;
|
||||
}
|
||||
|
||||
- (id)delegate
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 283 B |
|
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 424 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 419 B |
|
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 420 B |
|
Before Width: | Height: | Size: 639 B After Width: | Height: | Size: 639 B |
|
Before Width: | Height: | Size: 625 B After Width: | Height: | Size: 625 B |
|
Before Width: | Height: | Size: 617 B After Width: | Height: | Size: 617 B |
|
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 269 B |
|
Before Width: | Height: | Size: 653 B After Width: | Height: | Size: 653 B |
|
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 657 B |
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 841 B |
|
Before Width: | Height: | Size: 856 B After Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 698 B |
|
Before Width: | Height: | Size: 577 B After Width: | Height: | Size: 577 B |
@@ -779,162 +779,94 @@ var themedButtonValues = nil,
|
||||
|
||||
+ (CPRadioButton)themedRadioButton
|
||||
{
|
||||
var button = [[CPRadio alloc] initWithFrame:CGRectMake(0.0, 0.0, 120.0, 17.0)],
|
||||
var button = [CPRadio radioWithTitle:@"Hello Friend!"],
|
||||
|
||||
bezelColor = PatternColor(
|
||||
[
|
||||
["radio-bezel.png", 17.0, 17.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorSelected = PatternColor(
|
||||
[
|
||||
["radio-bezel-selected.png", 17.0, 17.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorSelectedHighlighted = PatternColor(
|
||||
[
|
||||
["radio-bezel-selected-highlighted.png", 17.0, 17.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorSelectedDisabled = PatternColor(
|
||||
[
|
||||
["radio-bezel-selected-disabled.png", 17.0, 17.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorDisabled = PatternColor(
|
||||
[
|
||||
["radio-bezel-disabled.png", 17.0, 17.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorHighlighted = PatternColor(
|
||||
[
|
||||
["radio-bezel-highlighted.png", 17.0, 17.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
imageNormal = PatternImage("radio-image.png", 17.0, 17.0),
|
||||
imageSelected = PatternImage("radio-image-selected.png", 17.0, 17.0),
|
||||
imageSelectedHighlighted = PatternImage("radio-image-selected-highlighted.png", 17.0, 17.0),
|
||||
imageSelectedDisabled = PatternImage("radio-image-selected-disabled.png", 17.0, 17.0),
|
||||
imageDisabled = PatternImage("radio-image-disabled.png", 17.0, 17.0),
|
||||
imageHighlighted = PatternImage("radio-image-highlighted.png", 17.0, 17.0),
|
||||
|
||||
themeValues =
|
||||
[
|
||||
[@"alignment", CPLeftTextAlignment, CPThemeStateBordered],
|
||||
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateBordered],
|
||||
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 20.0), CPThemeStateBordered],
|
||||
[@"bezel-color", bezelColor, CPThemeStateBordered],
|
||||
[@"bezel-color", bezelColorSelected, CPThemeStateBordered | CPThemeStateSelected],
|
||||
[@"bezel-color", bezelColorSelectedHighlighted, CPThemeStateBordered | CPThemeStateSelected | CPThemeStateHighlighted],
|
||||
[@"bezel-color", bezelColorHighlighted, CPThemeStateBordered | CPThemeStateHighlighted],
|
||||
[@"bezel-color", bezelColorDisabled, CPThemeStateBordered | CPThemeStateDisabled],
|
||||
[@"bezel-color", bezelColorSelectedDisabled, CPThemeStateBordered | CPThemeStateSelected | CPThemeStateDisabled],
|
||||
[@"alignment", CPLeftTextAlignment, CPThemeStateNormal],
|
||||
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateNormal],
|
||||
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
|
||||
|
||||
[@"image", imageNormal, CPThemeStateNormal],
|
||||
[@"image", imageSelected, CPThemeStateSelected],
|
||||
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
|
||||
[@"image", imageHighlighted, CPThemeStateHighlighted],
|
||||
[@"image", imageDisabled, CPThemeStateDisabled],
|
||||
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
|
||||
[@"imageOffset", 4.0],
|
||||
|
||||
[@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0], CPThemeStateDisabled],
|
||||
|
||||
[@"min-size", CGSizeMake(0.0, 17.0)]
|
||||
[@"min-size", CGSizeMake(0.0, 17.0)],
|
||||
[@"max-size", CGSizeMake(-1.0, -1.0)]
|
||||
];
|
||||
|
||||
[self registerThemeValues:themeValues forView:button];
|
||||
|
||||
[button setTitle:@"Hello Friend!"];
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
+ (CPRadioButton)themedCheckBoxButton
|
||||
+ (CPCheckBox)themedCheckBoxButton
|
||||
{
|
||||
var button = [[CPCheckBox alloc] initWithFrame:CGRectMake(0.0, 0.0, 120.0, 17.0)],
|
||||
var button = [CPCheckBox checkBoxWithTitle:@"Another Option"],
|
||||
|
||||
bezelColor = PatternColor(
|
||||
[
|
||||
["check-box-bezel.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorSelected = PatternColor(
|
||||
[
|
||||
["check-box-bezel-selected.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorSelectedHighlighted = PatternColor(
|
||||
[
|
||||
["check-box-bezel-selected-highlighted.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorSelectedDisabled = PatternColor(
|
||||
[
|
||||
["check-box-bezel-selected-disabled.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorDisabled = PatternColor(
|
||||
[
|
||||
["check-box-bezel-disabled.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
bezelColorHighlighted = PatternColor(
|
||||
[
|
||||
["check-box-bezel-highlighted.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
imageNormal = PatternImage("check-box-image.png", 15.0, 16.0),
|
||||
imageSelected = PatternImage("check-box-image-selected.png", 15.0, 16.0),
|
||||
imageSelectedHighlighted = PatternImage("check-box-image-selected-highlighted.png", 15.0, 16.0),
|
||||
imageSelectedDisabled = PatternImage("check-box-image-selected-disabled.png", 15.0, 16.0),
|
||||
imageDisabled = PatternImage("check-box-image-disabled.png", 15.0, 16.0),
|
||||
imageHighlighted = PatternImage("check-box-image-highlighted.png", 15.0, 16.0),
|
||||
|
||||
themeValues =
|
||||
[
|
||||
[@"alignment", CPLeftTextAlignment, CPThemeStateBordered],
|
||||
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateBordered],
|
||||
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 20.0), CPThemeStateBordered],
|
||||
[@"bezel-color", bezelColor, CPThemeStateBordered],
|
||||
[@"bezel-color", bezelColorSelected, CPThemeStateBordered | CPThemeStateSelected],
|
||||
[@"bezel-color", bezelColorSelectedHighlighted, CPThemeStateBordered | CPThemeStateSelected | CPThemeStateHighlighted],
|
||||
[@"bezel-color", bezelColorHighlighted, CPThemeStateBordered | CPThemeStateHighlighted],
|
||||
[@"bezel-color", bezelColorDisabled, CPThemeStateBordered | CPThemeStateDisabled],
|
||||
[@"bezel-color", bezelColorSelectedDisabled, CPThemeStateBordered | CPThemeStateSelected | CPThemeStateDisabled],
|
||||
[@"alignment", CPLeftTextAlignment, CPThemeStateNormal],
|
||||
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateNormal],
|
||||
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
|
||||
|
||||
[@"image", imageNormal, CPThemeStateNormal],
|
||||
[@"image", imageSelected, CPThemeStateSelected],
|
||||
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
|
||||
[@"image", imageHighlighted, CPThemeStateHighlighted],
|
||||
[@"image", imageDisabled, CPThemeStateDisabled],
|
||||
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
|
||||
[@"imageOffset", 4.0],
|
||||
|
||||
[@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0], CPThemeStateDisabled],
|
||||
|
||||
[@"min-size", CGSizeMake(0.0, 17.0)]
|
||||
[@"min-size", CGSizeMake(0.0, 17.0)],
|
||||
[@"max-size", CGSizeMake(-1.0, -1.0)]
|
||||
];
|
||||
|
||||
[self registerThemeValues:themeValues forView:button];
|
||||
|
||||
[button setTitle:@"Another option"];
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
+ (CPRadioButton)themedMixedCheckBoxButton
|
||||
+ (CPCheckBox)themedMixedCheckBoxButton
|
||||
{
|
||||
var button = [self themedCheckBoxButton];
|
||||
|
||||
[button setAllowsMixedState:YES];
|
||||
[button setState:CPMixedState];
|
||||
|
||||
var mixedSelectedColor = PatternColor(
|
||||
[
|
||||
["check-box-bezel-mixed-highlighted.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
mixedDisabledColor = PatternColor(
|
||||
[
|
||||
["check-box-bezel-mixed-disabled.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
|
||||
mixedColor = PatternColor(
|
||||
[
|
||||
["check-box-bezel-mixed.png", 15.0, 16.0], nil, nil
|
||||
],
|
||||
PatternIsHorizontal),
|
||||
var mixedHighlightedImage = PatternImage("check-box-image-mixed-highlighted.png", 15.0, 16.0),
|
||||
mixedDisabledImage = PatternImage("check-box-image-mixed-disabled.png", 15.0, 16.0),
|
||||
mixedImage = PatternImage("check-box-image-mixed.png", 15.0, 16.0),
|
||||
|
||||
themeValues =
|
||||
[
|
||||
[@"bezel-color", mixedColor, CPButtonStateMixed | CPThemeStateBordered],
|
||||
[@"bezel-color", mixedSelectedColor, CPButtonStateMixed | CPThemeStateBordered | CPThemeStateSelected],
|
||||
[@"bezel-color", mixedDisabledColor, CPButtonStateMixed | CPThemeStateBordered | CPThemeStateDisabled]
|
||||
[@"image", mixedImage, CPButtonStateMixed],
|
||||
[@"image", mixedHighlightedImage, CPButtonStateMixed | CPThemeStateHighlighted],
|
||||
[@"image", mixedDisabledImage, CPButtonStateMixed | CPThemeStateDisabled],
|
||||
[@"imageOffset", 4.0, CPButtonStateMixed],
|
||||
[@"max-size", CGSizeMake(-1.0, -1.0)]
|
||||
];
|
||||
|
||||
[self registerThemeValues:themeValues forView:button];
|
||||
@@ -1355,17 +1287,17 @@ var themedButtonValues = nil,
|
||||
|
||||
themedAlertValues =
|
||||
[
|
||||
[@"size", size],
|
||||
[@"content-inset", inset],
|
||||
[@"message-text-alignment", CPJustifiedTextAlignment],
|
||||
[@"message-text-color", [CPColor blackColor]],
|
||||
[@"message-text-font", messageFont],
|
||||
[@"informative-text-alignment", CPJustifiedTextAlignment],
|
||||
[@"informative-text-color", [CPColor blackColor]],
|
||||
[@"informative-text-font", informativeFont],
|
||||
[@"size", size],
|
||||
[@"content-inset", inset],
|
||||
[@"message-text-alignment", CPJustifiedTextAlignment],
|
||||
[@"message-text-color", [CPColor blackColor]],
|
||||
[@"message-text-font", messageFont],
|
||||
[@"informative-text-alignment", CPJustifiedTextAlignment],
|
||||
[@"informative-text-color", [CPColor blackColor]],
|
||||
[@"informative-text-font", informativeFont],
|
||||
[@"image-offset", imageOffset],
|
||||
[@"information-image", informationIcon],
|
||||
[@"warning-image", warningIcon],
|
||||
[@"information-image", informationIcon],
|
||||
[@"warning-image", warningIcon],
|
||||
[@"error-image", errorIcon]
|
||||
];
|
||||
|
||||
@@ -1507,8 +1439,8 @@ var themedButtonValues = nil,
|
||||
|
||||
hudSpecificValues =
|
||||
[
|
||||
[@"message-text-color", [CPColor whiteColor]],
|
||||
[@"informative-text-color", [CPColor whiteColor]],
|
||||
[@"message-text-color", [CPColor whiteColor]],
|
||||
[@"informative-text-color", [CPColor whiteColor]],
|
||||
];
|
||||
|
||||
[self registerThemeValues:hudSpecificValues forView:alert inherit:themedAlertValues];
|
||||
|
||||
@@ -184,6 +184,11 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
if (_imagePosition == anImagePosition)
|
||||
return;
|
||||
|
||||
// If the position was CPNoImage, there is an image now,
|
||||
// so mark the flags accordingly so that the image will load.
|
||||
if (_imagePosition == CPNoImage)
|
||||
_flags |= _CPImageAndTextViewImageChangedFlag;
|
||||
|
||||
_imagePosition = anImagePosition;
|
||||
_flags |= _CPImageAndTextViewImagePositionChangedFlag;
|
||||
|
||||
@@ -616,7 +621,8 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
}
|
||||
else if (_imagePosition === CPImageAbove)
|
||||
{
|
||||
CPDOMDisplayServerSetStyleLeftTop(_DOMImageElement, NULL, FLOOR(centerX - imageWidth / 2.0), 0);
|
||||
imageStyle.left = FLOOR(centerX - imageWidth / 2.0) + "px";
|
||||
imageStyle.top = 0 + "px";
|
||||
|
||||
textRect.origin.y += imageHeight + _imageOffset;
|
||||
textRect.size.height = size.height - imageHeight - _imageOffset;
|
||||
@@ -636,7 +642,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
|
||||
textRect.size.width -= imageWidth + _imageOffset;
|
||||
}
|
||||
else if (_imagePosition === CPImageOnly)
|
||||
else if (_imagePosition === CPImageOnly || _imagePosition == CPImageOverlaps)
|
||||
{
|
||||
imageStyle.top = FLOOR(centerY - imageHeight / 2.0) + "px";
|
||||
imageStyle.left = FLOOR(centerX - imageWidth / 2.0) + "px";
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPButtonImageTest
|
||||
*
|
||||
* Created by Aparajita Fishman on August 31, 2010.
|
||||
*/
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
|
||||
CPLogRegister(CPLogConsole);
|
||||
|
||||
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPWindow theWindow;
|
||||
|
||||
@outlet CPButton button;
|
||||
@outlet CPButton imageButton;
|
||||
@outlet CPCheckBox checkbox;
|
||||
@outlet CPCheckBox multiCheckbox;
|
||||
@outlet CPRadio radio1;
|
||||
@outlet CPRadio radio2;
|
||||
@outlet CPPopUpButton positionMenu;
|
||||
|
||||
CPArray buttons;
|
||||
CPArray checksAndRadios;
|
||||
}
|
||||
|
||||
- (void)awakeFromCib
|
||||
{
|
||||
var path = [[CPBundle bundleForClass:[CPView class]] pathForResource:@"action_button.png"];
|
||||
[imageButton setImage:[[CPImage alloc] initWithContentsOfFile:path size:CGSizeMake(22.0, 14.0)]];
|
||||
|
||||
[self _setImagePosition:CPImageLeft];
|
||||
[positionMenu selectItemAtIndex:CPImageLeft];
|
||||
[self _setupButtons];
|
||||
}
|
||||
|
||||
- (void)_setupButtons
|
||||
{
|
||||
buttons = [button, imageButton];
|
||||
checksAndRadios = [checkbox, multiCheckbox, radio1, radio2];
|
||||
|
||||
var checkboxHeight = [checkbox frameSize].height,
|
||||
radioHeight = [radio1 frameSize].height;
|
||||
|
||||
[buttons makeObjectsPerformSelector:@selector(sizeToFit)];
|
||||
[checksAndRadios makeObjectsPerformSelector:@selector(sizeToFit)];
|
||||
|
||||
[checkbox setFrameSize:CGSizeMake([checkbox frameSize].width, checkboxHeight)];
|
||||
[multiCheckbox setFrameSize:CGSizeMake([multiCheckbox frameSize].width, checkboxHeight)];
|
||||
|
||||
[radio1 setFrameSize:CGSizeMake([radio1 frameSize].width, radioHeight)];
|
||||
[radio2 setFrameSize:CGSizeMake([radio2 frameSize].width, radioHeight)];
|
||||
|
||||
[multiCheckbox setState:CPMixedState];
|
||||
}
|
||||
|
||||
- (void)setImagePosition:(id)sender
|
||||
{
|
||||
[self _setImagePosition:[sender indexOfSelectedItem]];
|
||||
}
|
||||
|
||||
- (void)_setImagePosition:(unsigned)position
|
||||
{
|
||||
[buttons makeObjectsPerformSelector:@selector(setImagePosition:) withObject:position];
|
||||
[checksAndRadios makeObjectsPerformSelector:@selector(setImagePosition:) withObject:position];
|
||||
|
||||
var alignment;
|
||||
|
||||
switch (position)
|
||||
{
|
||||
case CPImageOnly:
|
||||
return;
|
||||
|
||||
case CPNoImage:
|
||||
case CPImageAbove:
|
||||
case CPImageBelow:
|
||||
case CPImageOverlaps:
|
||||
alignment = CPCenterTextAlignment;
|
||||
break;
|
||||
|
||||
case CPImageLeft:
|
||||
alignment = CPLeftTextAlignment;
|
||||
break;
|
||||
|
||||
case CPImageRight:
|
||||
alignment = CPRightTextAlignment;
|
||||
break;
|
||||
}
|
||||
|
||||
[checksAndRadios makeObjectsPerformSelector:@selector(setAlignment:) withObject:alignment];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BezelView : CPView
|
||||
|
||||
- (void)drawRect:(CGRect)dirtyRect
|
||||
{
|
||||
var sides = [CPMinYEdge, CPMaxYEdge, CPMinXEdge, CPMaxXEdge],
|
||||
grays = [0.75, 1.0, 0.75, 1.0];
|
||||
|
||||
CPDrawTiledRects(dirtyRect, dirtyRect, sides, grays);
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Main cib file base name</key>
|
||||
<string>MainMenu.cib</string>
|
||||
<key>CPBundleName</key>
|
||||
<string>CPButtonImageTest</string>
|
||||
<key>CPPrincipalClass</key>
|
||||
<string>CPApplication</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,834 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1060</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="NS.object.0">788</string>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<integer value="1182"/>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</array>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
|
||||
<object class="NSCustomObject" id="1021">
|
||||
<string key="NSClassName">NSApplication</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="1014">
|
||||
<string key="NSClassName">FirstResponder</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="1050">
|
||||
<string key="NSClassName">NSApplication</string>
|
||||
</object>
|
||||
<object class="NSWindowTemplate" id="972006081">
|
||||
<int key="NSWindowStyleMask">7</int>
|
||||
<int key="NSWindowBacking">2</int>
|
||||
<string key="NSWindowRect">{{408, 712}, {380, 253}}</string>
|
||||
<int key="NSWTFlags">1946157056</int>
|
||||
<string key="NSWindowTitle">CPButton Image Test</string>
|
||||
<string key="NSWindowClass">NSWindow</string>
|
||||
<nil key="NSViewClass"/>
|
||||
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||
<object class="NSView" key="NSWindowView" id="439893737">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSTextField" id="1048195509">
|
||||
<reference key="NSNextResponder" ref="439893737"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{40, 20}, {101, 17}}</string>
|
||||
<reference key="NSSuperview" ref="439893737"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="889147185">
|
||||
<int key="NSCellFlags">68288064</int>
|
||||
<int key="NSCellFlags2">272630784</int>
|
||||
<string key="NSContents">Image Position:</string>
|
||||
<object class="NSFont" key="NSSupport" id="688777490">
|
||||
<string key="NSName">LucidaGrande</string>
|
||||
<double key="NSSize">13</double>
|
||||
<int key="NSfFlags">1044</int>
|
||||
</object>
|
||||
<reference key="NSControlView" ref="1048195509"/>
|
||||
<object class="NSColor" key="NSBackgroundColor" id="44883150">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">controlColor</string>
|
||||
<object class="NSColor" key="NSColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSColor" key="NSTextColor">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">controlTextColor</string>
|
||||
<object class="NSColor" key="NSColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MAA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="907837266">
|
||||
<reference key="NSNextResponder" ref="439893737"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{140, 16}, {207, 26}}</string>
|
||||
<reference key="NSSuperview" ref="439893737"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="642169287">
|
||||
<int key="NSCellFlags">-2076049856</int>
|
||||
<int key="NSCellFlags2">2048</int>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="907837266"/>
|
||||
<int key="NSButtonFlags">109199615</int>
|
||||
<int key="NSButtonFlags2">129</int>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="399029894">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">No Image</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<int key="NSState">1</int>
|
||||
<object class="NSCustomResource" key="NSOnImage" id="164300911">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuCheckmark</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="NSMixedImage" id="287844448">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuMixedState</string>
|
||||
</object>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
<bool key="NSMenuItemRespectAlignment">YES</bool>
|
||||
<object class="NSMenu" key="NSMenu" id="152141186">
|
||||
<string key="NSTitle">OtherViews</string>
|
||||
<array class="NSMutableArray" key="NSMenuItems">
|
||||
<reference ref="399029894"/>
|
||||
<object class="NSMenuItem" id="22684039">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">Image Only</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="164300911"/>
|
||||
<reference key="NSMixedImage" ref="287844448"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<int key="NSTag">1</int>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="353694480">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">Left</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="164300911"/>
|
||||
<reference key="NSMixedImage" ref="287844448"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="417840949">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">Right</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="164300911"/>
|
||||
<reference key="NSMixedImage" ref="287844448"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="651203747">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">Below</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="164300911"/>
|
||||
<reference key="NSMixedImage" ref="287844448"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="978825379">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">Above</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="164300911"/>
|
||||
<reference key="NSMixedImage" ref="287844448"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="344973167">
|
||||
<reference key="NSMenu" ref="152141186"/>
|
||||
<string key="NSTitle">Overlaps</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="164300911"/>
|
||||
<reference key="NSMixedImage" ref="287844448"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="642169287"/>
|
||||
</object>
|
||||
</array>
|
||||
<reference key="NSMenuFont" ref="688777490"/>
|
||||
</object>
|
||||
<int key="NSPreferredEdge">1</int>
|
||||
<bool key="NSUsesItemFromMenu">YES</bool>
|
||||
<bool key="NSAltersState">YES</bool>
|
||||
<int key="NSArrowPosition">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSCustomView" id="65589413">
|
||||
<reference key="NSNextResponder" ref="439893737"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSMatrix" id="237170086">
|
||||
<reference key="NSNextResponder" ref="65589413"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{31, 14}, {168, 40}}</string>
|
||||
<reference key="NSSuperview" ref="65589413"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<int key="NSNumRows">1</int>
|
||||
<int key="NSNumCols">2</int>
|
||||
<array class="NSMutableArray" key="NSCells">
|
||||
<object class="NSButtonCell" id="282155940">
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Radio 1</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="237170086"/>
|
||||
<int key="NSTag">1</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSButtonImageSource" key="NSAlternateImage" id="133502171">
|
||||
<string key="NSImageName">NSRadioButton</string>
|
||||
</object>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="816571944">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Radio 2</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="237170086"/>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSAlternateImage" ref="133502171"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSCellSize">{82, 40}</string>
|
||||
<string key="NSIntercellSpacing">{4, 2}</string>
|
||||
<int key="NSMatrixFlags">1151868928</int>
|
||||
<string key="NSCellClass">NSActionCell</string>
|
||||
<object class="NSButtonCell" key="NSProtoCell" id="19159466">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Radio</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage">
|
||||
<int key="NSImageFlags">549453824</int>
|
||||
<string key="NSSize">{18, 18}</string>
|
||||
<array class="NSMutableArray" key="NSReps">
|
||||
<array>
|
||||
<integer value="0"/>
|
||||
<object class="NSBitmapImageRep">
|
||||
<object class="NSData" key="NSTIFFRepresentation">
|
||||
<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
|
||||
IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
|
||||
29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
|
||||
dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
|
||||
AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
|
||||
AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
|
||||
0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
|
||||
7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
|
||||
5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
|
||||
3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
|
||||
AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
|
||||
AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
|
||||
6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
|
||||
/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
|
||||
///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
|
||||
YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
|
||||
AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
|
||||
AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
|
||||
AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
|
||||
AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
|
||||
AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
|
||||
AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</array>
|
||||
<object class="NSColor" key="NSColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<reference key="NSAlternateImage" ref="133502171"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<reference key="NSSelectedCell" ref="282155940"/>
|
||||
<reference key="NSBackgroundColor" ref="44883150"/>
|
||||
<object class="NSColor" key="NSCellBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<reference key="NSFont" ref="688777490"/>
|
||||
</object>
|
||||
<object class="NSButton" id="722468716">
|
||||
<reference key="NSNextResponder" ref="65589413"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{163, 69}, {152, 40}}</string>
|
||||
<reference key="NSSuperview" ref="65589413"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="1031150360">
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">16777216</int>
|
||||
<string key="NSContents">Multistate Checkbox</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="722468716"/>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<object class="NSCustomResource" key="NSNormalImage" id="204220904">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSSwitch</string>
|
||||
</object>
|
||||
<object class="NSButtonImageSource" key="NSAlternateImage" id="412801564">
|
||||
<string key="NSImageName">NSSwitch</string>
|
||||
</object>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="310529951">
|
||||
<reference key="NSNextResponder" ref="65589413"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{29, 69}, {85, 40}}</string>
|
||||
<reference key="NSSuperview" ref="65589413"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="778507159">
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Checkbox</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="310529951"/>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="204220904"/>
|
||||
<reference key="NSAlternateImage" ref="412801564"/>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="463191555">
|
||||
<reference key="NSNextResponder" ref="65589413"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{143, 126}, {176, 32}}</string>
|
||||
<reference key="NSSuperview" ref="65589413"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="44707779">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Button With Image</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="463191555"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">129</int>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="938838346">
|
||||
<reference key="NSNextResponder" ref="65589413"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{24, 126}, {96, 32}}</string>
|
||||
<reference key="NSSuperview" ref="65589413"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="988784972">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Button</string>
|
||||
<reference key="NSSupport" ref="688777490"/>
|
||||
<reference key="NSControlView" ref="938838346"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">129</int>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{20, 59}, {340, 174}}</string>
|
||||
<reference key="NSSuperview" ref="439893737"/>
|
||||
<string key="NSClassName">BezelView</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{380, 253}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
|
||||
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="635946545">
|
||||
<string key="NSClassName">AppController</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="1021"/>
|
||||
<reference key="destination" ref="635946545"/>
|
||||
</object>
|
||||
<int key="connectionID">451</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">theWindow</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="972006081"/>
|
||||
</object>
|
||||
<int key="connectionID">1090</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">button</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="938838346"/>
|
||||
</object>
|
||||
<int key="connectionID">1174</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">imageButton</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="463191555"/>
|
||||
</object>
|
||||
<int key="connectionID">1175</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">checkbox</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="310529951"/>
|
||||
</object>
|
||||
<int key="connectionID">1176</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">multiCheckbox</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="722468716"/>
|
||||
</object>
|
||||
<int key="connectionID">1177</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">radio1</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="282155940"/>
|
||||
</object>
|
||||
<int key="connectionID">1178</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">radio2</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="816571944"/>
|
||||
</object>
|
||||
<int key="connectionID">1179</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">setImagePosition:</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="907837266"/>
|
||||
</object>
|
||||
<int key="connectionID">1180</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">positionMenu</string>
|
||||
<reference key="source" ref="635946545"/>
|
||||
<reference key="destination" ref="907837266"/>
|
||||
</object>
|
||||
<int key="connectionID">1181</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1048"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="1021"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="1014"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">First Responder</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-3</int>
|
||||
<reference key="object" ref="1050"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Application</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">371</int>
|
||||
<reference key="object" ref="972006081"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="439893737"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">372</int>
|
||||
<reference key="object" ref="439893737"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1048195509"/>
|
||||
<reference ref="907837266"/>
|
||||
<reference ref="65589413"/>
|
||||
</array>
|
||||
<reference key="parent" ref="972006081"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">450</int>
|
||||
<reference key="object" ref="635946545"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1148</int>
|
||||
<reference key="object" ref="1048195509"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="889147185"/>
|
||||
</array>
|
||||
<reference key="parent" ref="439893737"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1149</int>
|
||||
<reference key="object" ref="889147185"/>
|
||||
<reference key="parent" ref="1048195509"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1150</int>
|
||||
<reference key="object" ref="907837266"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="642169287"/>
|
||||
</array>
|
||||
<reference key="parent" ref="439893737"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1151</int>
|
||||
<reference key="object" ref="642169287"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="152141186"/>
|
||||
</array>
|
||||
<reference key="parent" ref="907837266"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1152</int>
|
||||
<reference key="object" ref="152141186"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="399029894"/>
|
||||
<reference ref="22684039"/>
|
||||
<reference ref="353694480"/>
|
||||
<reference ref="417840949"/>
|
||||
<reference ref="651203747"/>
|
||||
<reference ref="978825379"/>
|
||||
<reference ref="344973167"/>
|
||||
</array>
|
||||
<reference key="parent" ref="642169287"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1153</int>
|
||||
<reference key="object" ref="399029894"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1154</int>
|
||||
<reference key="object" ref="22684039"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1155</int>
|
||||
<reference key="object" ref="353694480"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1163</int>
|
||||
<reference key="object" ref="417840949"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1164</int>
|
||||
<reference key="object" ref="651203747"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1165</int>
|
||||
<reference key="object" ref="978825379"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1166</int>
|
||||
<reference key="object" ref="344973167"/>
|
||||
<reference key="parent" ref="152141186"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1182</int>
|
||||
<reference key="object" ref="65589413"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="938838346"/>
|
||||
<reference ref="463191555"/>
|
||||
<reference ref="310529951"/>
|
||||
<reference ref="722468716"/>
|
||||
<reference ref="237170086"/>
|
||||
</array>
|
||||
<reference key="parent" ref="439893737"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1130</int>
|
||||
<reference key="object" ref="938838346"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="988784972"/>
|
||||
</array>
|
||||
<reference key="parent" ref="65589413"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1131</int>
|
||||
<reference key="object" ref="988784972"/>
|
||||
<reference key="parent" ref="938838346"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1132</int>
|
||||
<reference key="object" ref="463191555"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="44707779"/>
|
||||
</array>
|
||||
<reference key="parent" ref="65589413"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1133</int>
|
||||
<reference key="object" ref="44707779"/>
|
||||
<reference key="parent" ref="463191555"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1134</int>
|
||||
<reference key="object" ref="310529951"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="778507159"/>
|
||||
</array>
|
||||
<reference key="parent" ref="65589413"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1135</int>
|
||||
<reference key="object" ref="778507159"/>
|
||||
<reference key="parent" ref="310529951"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1140</int>
|
||||
<reference key="object" ref="722468716"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1031150360"/>
|
||||
</array>
|
||||
<reference key="parent" ref="65589413"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1141</int>
|
||||
<reference key="object" ref="1031150360"/>
|
||||
<reference key="parent" ref="722468716"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1142</int>
|
||||
<reference key="object" ref="237170086"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="816571944"/>
|
||||
<reference ref="19159466"/>
|
||||
<reference ref="282155940"/>
|
||||
</array>
|
||||
<reference key="parent" ref="65589413"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1146</int>
|
||||
<reference key="object" ref="816571944"/>
|
||||
<reference key="parent" ref="237170086"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1145</int>
|
||||
<reference key="object" ref="19159466"/>
|
||||
<reference key="parent" ref="237170086"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1143</int>
|
||||
<reference key="object" ref="282155940"/>
|
||||
<reference key="parent" ref="237170086"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1132.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1133.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1135.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1140.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1141.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1142.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1143.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1145.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1148.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1149.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1150.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1151.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1152.IBEditorWindowLastContentRect">{{615, 541}, {207, 143}}</string>
|
||||
<string key="1152.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1153.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1154.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1155.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1163.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1164.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1165.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1166.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="371.IBEditorWindowLastContentRect">{{902, 462}, {380, 253}}</string>
|
||||
<string key="371.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="371.IBWindowTemplateEditedContentRect">{{902, 462}, {380, 253}}</string>
|
||||
<integer value="1" key="371.NSWindowTemplate.visibleAtLaunch"/>
|
||||
<string key="371.editorWindowContentRectSynchronizationRect">{{33, 99}, {480, 360}}</string>
|
||||
<string key="372.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">1182</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">AppController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">setImagePosition:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">setImagePosition:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">setImagePosition:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="button">NSButton</string>
|
||||
<string key="checkbox">NSButton</string>
|
||||
<string key="imageButton">NSButton</string>
|
||||
<string key="multiCheckbox">NSButton</string>
|
||||
<string key="positionMenu">NSPopUpButton</string>
|
||||
<string key="radio1">id</string>
|
||||
<string key="radio2">id</string>
|
||||
<string key="theWindow">NSWindow</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="button">
|
||||
<string key="name">button</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="checkbox">
|
||||
<string key="name">checkbox</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="imageButton">
|
||||
<string key="name">imageButton</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="multiCheckbox">
|
||||
<string key="name">multiCheckbox</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="positionMenu">
|
||||
<string key="name">positionMenu</string>
|
||||
<string key="candidateClassName">NSPopUpButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="radio1">
|
||||
<string key="name">radio1</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="radio2">
|
||||
<string key="name">radio2</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="theWindow">
|
||||
<string key="name">theWindow</string>
|
||||
<string key="candidateClassName">NSWindow</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">BezelView</string>
|
||||
<string key="superclassName">NSView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">../registration.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NSMenuCheckmark">{9, 8}</string>
|
||||
<string key="NSMenuMixedState">{7, 2}</string>
|
||||
<string key="NSSwitch">{15, 15}</string>
|
||||
</dictionary>
|
||||
</data>
|
||||
</archive>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">
|
||||
<!--
|
||||
index-debug.html
|
||||
TableCibTest
|
||||
|
||||
Created by Francisco Tolmasky on July 5, 2009.
|
||||
Copyright 2009, 280 North, Inc. All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
|
||||
|
||||
<title>CPButton Image Test</title>
|
||||
|
||||
<script type = "text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
OBJJ_INCLUDE_PATHS = ["Frameworks/Debug", "Frameworks", "SomethingElse"];
|
||||
</script>
|
||||
|
||||
<script src = "Frameworks/Debug/Objective-J/Objective-J.js" type = "text/javascript"></script>
|
||||
|
||||
<style type = "text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="loadingcontainer" style=" background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type = "text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPButton Image Test...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">
|
||||
<!--
|
||||
index.html
|
||||
TableCibTest
|
||||
|
||||
Created by Francisco Tolmasky on July 5, 2009.
|
||||
Copyright 2009, 280 North, Inc. All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
|
||||
|
||||
<title>CPButton Image Test</title>
|
||||
|
||||
<script type = "text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
</script>
|
||||
|
||||
<script src = "Frameworks/Objective-J/Objective-J.js" type = "text/javascript"></script>
|
||||
|
||||
<style type = "text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="loadingcontainer" style=" background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type = "text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPButton Image Test...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* TableCibTest
|
||||
*
|
||||
* Created by Francisco Tolmasky on July 5, 2009.
|
||||
* Copyright 2009, 280 North, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/Foundation.j>
|
||||
@import <AppKit/AppKit.j>
|
||||
|
||||
@import "AppController.j"
|
||||
|
||||
|
||||
function main(args, namedArgs)
|
||||
{
|
||||
CPApplicationMain(args, namedArgs);
|
||||
}
|
||||
@@ -33,7 +33,7 @@
|
||||
objectData = [unarchiver decodeObjectForKey:@"IB.objectdata"];
|
||||
|
||||
// Perform a bit of post-processing on views since all CP views are flipped.
|
||||
// It's better to do this here (instead of say, in NSView::initWithCoder:),
|
||||
// It's better to do this here (instead of say, in NSView::initWithCoder:),
|
||||
// because at this point all the objects an mappings are stabilized.
|
||||
var objects = [unarchiver allObjects],
|
||||
count = [objects count];
|
||||
@@ -76,10 +76,20 @@
|
||||
var convertedData = [CPData data],
|
||||
archiver = [[CPKeyedArchiver alloc] initForWritingWithMutableData:convertedData];
|
||||
|
||||
[archiver setDelegate:self];
|
||||
[archiver encodeObject:objectData forKey:@"CPCibObjectDataKey"];
|
||||
[archiver finishEncoding];
|
||||
|
||||
return convertedData;
|
||||
}
|
||||
|
||||
// For some reason, occasionally an attempt is made to archive NSMatrix. That will fail, so prevent it here.
|
||||
- (id)archiver:(CPKeyedArchiver)archiver willEncodeObject:(id)object
|
||||
{
|
||||
if ([object isKindOfClass:[NSMatrix class]])
|
||||
return nil;
|
||||
else
|
||||
return object;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -36,6 +36,22 @@ _CPButtonBezelStyleHeights[CPRoundedBezelStyle] = 18;
|
||||
_CPButtonBezelStyleHeights[CPTexturedRoundedBezelStyle] = 20;
|
||||
_CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
|
||||
var NSButtonIsBorderedMask = 0x00800000,
|
||||
NSButtonAllowsMixedStateMask = 0x1000000,
|
||||
|
||||
// The image position is contained in the third byte, and the values
|
||||
// don't really follow much of a pattern.
|
||||
NSButtonImagePositionMask = 0xFF0000,
|
||||
NSButtonImagePositionShift = 16,
|
||||
NSButtonNoImagePositionMask = 0x04,
|
||||
NSButtonImageAbovePositionMask = 0x0C,
|
||||
NSButtonImageBelowPositionMask = 0x1C;
|
||||
NSButtonImageRightPositionMask = 0x2C,
|
||||
NSButtonImageLeftPositionMask = 0x3C,
|
||||
NSButtonImageOnlyPositionMask = 0x44,
|
||||
NSButtonImageOverlapsPositionMask = 0x6C;
|
||||
|
||||
|
||||
@implementation CPButton (NSCoding)
|
||||
|
||||
- (id)NS_initWithCoder:(CPCoder)aCoder
|
||||
@@ -47,13 +63,13 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
var cell = [aCoder decodeObjectForKey:@"NSCell"];
|
||||
NIB_CONNECTION_EQUIVALENCY_TABLE[[cell UID]] = self;
|
||||
|
||||
_title = [cell title];
|
||||
|
||||
if (![self NS_isCheckBox] && ![self NS_isRadio])
|
||||
{
|
||||
_controlSize = CPRegularControlSize;
|
||||
_title = [cell title];
|
||||
|
||||
[self setBordered:[cell isBordered]];
|
||||
|
||||
_bezelStyle = [cell bezelStyle];
|
||||
|
||||
// clean up:
|
||||
@@ -112,7 +128,6 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
}
|
||||
|
||||
[self setBordered:YES];
|
||||
self._title = [cell title];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,14 +193,17 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
else if ([alternateImage imageName] === @"NSRadioButton")
|
||||
{
|
||||
_isRadio = YES;
|
||||
self._radioGroup = [CPRadioGroup new];
|
||||
_radioGroup = [CPRadioGroup new];
|
||||
}
|
||||
}
|
||||
|
||||
var self = [self NS_initWithCoder:aCoder];
|
||||
self = [self NS_initWithCoder:aCoder];
|
||||
|
||||
self._allowsMixedState = [cell allowsMixedState];
|
||||
[self setImagePosition:[cell imagePosition]];
|
||||
|
||||
[self setKeyEquivalent:[cell keyEquivalent]];
|
||||
_keyEquivalentModifierMask = [cell keyEquivalentModifierMask];
|
||||
self._keyEquivalentModifierMask = [cell keyEquivalentModifierMask];
|
||||
|
||||
return self;
|
||||
}
|
||||
@@ -205,11 +223,14 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
|
||||
@implementation NSButtonCell : NSActionCell
|
||||
{
|
||||
BOOL _isBordered @accessors(readonly, getter=isBordered);
|
||||
int _bezelStyle @accessors(readonly, getter=bezelStyle);
|
||||
BOOL _isBordered @accessors(readonly, getter=isBordered);
|
||||
int _bezelStyle @accessors(readonly, getter=bezelStyle);
|
||||
|
||||
CPString _title @accessors(readonly, getter=title);
|
||||
CPImage _alternateImage @accessors(readonly, getter=alternateImage);
|
||||
CPString _title @accessors(readonly, getter=title);
|
||||
CPImage _alternateImage @accessors(readonly, getter=alternateImage);
|
||||
|
||||
BOOL _allowsMixedState @accessors(readonly, getter=allowsMixedState);
|
||||
BOOL _imagePosition @accessors(readonly, getter=imagePosition);
|
||||
|
||||
CPString _keyEquivalent @accessors(readonly, getter=keyEquivalent);
|
||||
unsigned _keyEquivalentModifierMask @accessors(readonly, getter=keyEquivalentModifierMask);
|
||||
@@ -222,9 +243,11 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
if (self)
|
||||
{
|
||||
var buttonFlags = [aCoder decodeIntForKey:@"NSButtonFlags"],
|
||||
buttonFlags2 = [aCoder decodeIntForKey:@"NSButtonFlags2"];
|
||||
buttonFlags2 = [aCoder decodeIntForKey:@"NSButtonFlags2"],
|
||||
cellFlags2 = [aCoder decodeIntForKey:@"NSCellFlags2"],
|
||||
position = (buttonFlags & NSButtonImagePositionMask) >> NSButtonImagePositionShift;
|
||||
|
||||
_isBordered = (buttonFlags & 0x00800000) ? YES : NO;
|
||||
_isBordered = (buttonFlags & NSButtonIsBorderedMask) ? YES : NO;
|
||||
_bezelStyle = (buttonFlags2 & 0x7) | ((buttonFlags2 & 0x20) >> 2);
|
||||
|
||||
// NSContents for NSButton is actually the title
|
||||
@@ -233,6 +256,25 @@ _CPButtonBezelStyleHeights[CPHUDBezelStyle] = 20;
|
||||
_objectValue = [self state];
|
||||
|
||||
_alternateImage = [aCoder decodeObjectForKey:@"NSAlternateImage"];
|
||||
_allowsMixedState = (cellFlags2 & NSButtonAllowsMixedStateMask) ? YES : NO;
|
||||
|
||||
// Test in decreasing order of mask value to ensure the correct match,
|
||||
// because some of the positions don't care about some bits.
|
||||
|
||||
if ((position & NSButtonImageOverlapsPositionMask) == NSButtonImageOverlapsPositionMask)
|
||||
_imagePosition = CPImageOverlaps;
|
||||
else if ((position & NSButtonImageOnlyPositionMask) == NSButtonImageOnlyPositionMask)
|
||||
_imagePosition = CPImageOnly;
|
||||
else if ((position & NSButtonImageLeftPositionMask) == NSButtonImageLeftPositionMask)
|
||||
_imagePosition = CPImageLeft;
|
||||
else if ((position & NSButtonImageRightPositionMask) == NSButtonImageRightPositionMask)
|
||||
_imagePosition = CPImageRight;
|
||||
else if ((position & NSButtonImageBelowPositionMask) == NSButtonImageBelowPositionMask)
|
||||
_imagePosition = CPImageBelow;
|
||||
else if ((position & NSButtonImageAbovePositionMask) == NSButtonImageAbovePositionMask)
|
||||
_imagePosition = CPImageAbove;
|
||||
else if ((position & NSButtonNoImagePositionMask) == NSButtonNoImagePositionMask)
|
||||
_imagePosition = CPNoImage;
|
||||
|
||||
_keyEquivalent = [aCoder decodeObjectForKey:@"NSKeyEquivalent"];
|
||||
_keyEquivalentModifierMask = buttonFlags2 >> 8;
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
|
||||
@import "NSView.j"
|
||||
|
||||
|
||||
var NSMatrixRadioModeMask = 0x40000000,
|
||||
NSMatrixDrawsBackgroundMask = 0x01000000;
|
||||
|
||||
|
||||
@implementation NSMatrix : CPObject
|
||||
{
|
||||
}
|
||||
@@ -11,41 +16,37 @@
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
var view = [[CPView alloc] NS_initWithCoder:aCoder];
|
||||
|
||||
[view setBackgroundColor:[aCoder decodeObjectForKey:@"NSBackgroundColor"]];
|
||||
|
||||
var numberOfRows = [aCoder decodeIntForKey:@"NSNumRows"],
|
||||
numberOfColumns = [aCoder decodeIntForKey:@"NSNumCols"],
|
||||
cellSize = [aCoder decodeSizeForKey:@"NSCellSize"],
|
||||
intercellSpacing = [aCoder decodeSizeForKey:@"NSIntercellSpacing"],
|
||||
cellBackgroundColor = [aCoder decodeObjectForKey:@"NSCellBackgroundColor"],
|
||||
//cellClassName = [aCoder decodeObjectForKey:@"NSCellClass"];alert("6");
|
||||
flags = [aCoder decodeIntForKey:@"NSMatrixFlags"],
|
||||
isRadioMode = flags & NSMatrixRadioModeMask,
|
||||
drawsBackground = flags & NSMatrixDrawsBackgroundMask,
|
||||
backgroundColor = [aCoder decodeObjectForKey:@"NSBackgroundColor"],
|
||||
cells = [aCoder decodeObjectForKey:@"NSCells"],
|
||||
selectedCell = [aCoder decodeObjectForKey:@"NSSelectedCell"];
|
||||
|
||||
if (/*(cellClassName === @"NSButtonCell") &&*/ (flags & 0x40000000))
|
||||
if (isRadioMode)
|
||||
{
|
||||
var radioGroup = [CPRadioGroup new];
|
||||
var radioGroup = [CPRadioGroup new],
|
||||
frame = CGRectMake(0.0, 0.0, cellSize.width, cellSize.height);
|
||||
rowIndex = 0;
|
||||
|
||||
for (; rowIndex < numberOfRows; ++rowIndex)
|
||||
for (var rowIndex = 0; rowIndex < numberOfRows; ++rowIndex)
|
||||
{
|
||||
var columnIndex = 0;
|
||||
|
||||
frame.origin.x = 0;
|
||||
|
||||
for (; columnIndex < numberOfColumns; ++columnIndex)
|
||||
for (var columnIndex = 0; columnIndex < numberOfColumns; ++columnIndex)
|
||||
{
|
||||
var cell = cells[rowIndex * numberOfColumns + columnIndex],
|
||||
cellView = [[CPRadio alloc] initWithFrame:frame radioGroup:radioGroup];
|
||||
|
||||
[cellView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
[cellView setTitle:[cell title]];
|
||||
[cellView setBackgroundColor:cellBackgroundColor];
|
||||
[cellView setBackgroundColor:[CPColor clearColor]]; // the IB default
|
||||
[cellView setObjectValue:[cell objectValue]];
|
||||
|
||||
|
||||
[view addSubview:cellView];
|
||||
|
||||
NIB_CONNECTION_EQUIVALENCY_TABLE[[cell UID]] = cellView;
|
||||
@@ -56,7 +57,10 @@
|
||||
frame.origin.y = CGRectGetMaxY(frame) + intercellSpacing.height;
|
||||
}
|
||||
|
||||
NIB_CONNECTION_EQUIVALENCY_TABLE[self] = view;
|
||||
if (drawsBackground)
|
||||
[view setBackgroundColor:backgroundColor];
|
||||
|
||||
NIB_CONNECTION_EQUIVALENCY_TABLE[[self UID]] = view;
|
||||
}
|
||||
|
||||
return view;
|
||||
|
||||