This commit is contained in:
Antoine Mercadal
2014-03-20 16:35:12 -07:00
28 changed files with 917 additions and 646 deletions
+1 -1
View File
@@ -255,7 +255,7 @@ var bottomHeight = 71;
[_themeView setValue:aValue forThemeAttribute:aName];
}
- (void)setValue:(id)aValue forThemeAttribute:(CPString)aName inState:(CPThemeState)aState
- (void)setValue:(id)aValue forThemeAttribute:(CPString)aName inState:(ThemeState)aState
{
[_themeView setValue:aValue forThemeAttribute:aName inState:aState];
}
+1 -1
View File
@@ -980,7 +980,7 @@
var imageView = [self layoutEphemeralSubviewNamed:@"image-view"
positioned:CPWindowAbove
relativeToEphemeralSubviewNamed:nil],
isHighlighted = [self themeState] & CPThemeStateSelectedDataView;
isHighlighted = [self hasThemeState:CPThemeStateSelectedDataView];
[imageView setImage: _isLeaf ? (isHighlighted ? _highlightedBranchImage : _branchImage) : nil];
[imageView setImageScaling:CPImageScaleNone];
+1 -1
View File
@@ -268,7 +268,7 @@ CPButtonImageOffset = 3.0;
break;
case CPOffState:
[self unsetThemeState:CPThemeStateSelected | CPButtonStateMixed | CPThemeStateHighlighted];
[self unsetThemeState:[CPThemeStateSelected, CPButtonStateMixed, CPThemeStateHighlighted]];
}
}
+6 -6
View File
@@ -250,15 +250,15 @@
currentButtonOffset += width - 1;
}
[button setValue:normalColor forThemeAttribute:@"bezel-color" inState:CPThemeStateNormal | CPThemeStateBordered];
[button setValue:highlightedColor forThemeAttribute:@"bezel-color" inState:CPThemeStateHighlighted | CPThemeStateBordered];
[button setValue:disabledColor forThemeAttribute:@"bezel-color" inState:CPThemeStateDisabled | CPThemeStateBordered];
[button setValue:normalColor forThemeAttribute:@"bezel-color" inState:[CPThemeStateNormal, CPThemeStateBordered]];
[button setValue:highlightedColor forThemeAttribute:@"bezel-color" inState:[CPThemeStateHighlighted, CPThemeStateBordered, ]];
[button setValue:disabledColor forThemeAttribute:@"bezel-color" inState:[CPThemeStateDisabled, CPThemeStateBordered]];
[button setValue:textColor forThemeAttribute:@"text-color" inState:CPThemeStateBordered];
// FIXME shouldn't need this
[button setValue:normalColor forThemeAttribute:@"bezel-color" inState:CPThemeStateNormal | CPThemeStateBordered | CPPopUpButtonStatePullsDown];
[button setValue:highlightedColor forThemeAttribute:@"bezel-color" inState:CPThemeStateHighlighted | CPThemeStateBordered | CPPopUpButtonStatePullsDown];
[button setValue:disabledColor forThemeAttribute:@"bezel-color" inState:CPThemeStateDisabled | CPThemeStateBordered | CPPopUpButtonStatePullsDown];
[button setValue:normalColor forThemeAttribute:@"bezel-color" inState:[CPThemeStateNormal, CPThemeStateBordered, CPPopUpButtonStatePullsDown]];
[button setValue:highlightedColor forThemeAttribute:@"bezel-color" inState:[CPThemeStateHighlighted, CPThemeStateBordered, CPPopUpButtonStatePullsDown]];
[button setValue:disabledColor forThemeAttribute:@"bezel-color" inState:[CPThemeStateDisabled, CPThemeStateBordered, CPPopUpButtonStatePullsDown]];
[self addSubview:button];
}
+19 -19
View File
@@ -1020,30 +1020,30 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:CPThemeStateDisabled | CPThemeStateSelected] forThemeAttribute:@"font" inState:CPThemeStateDisabled | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeStateDisabled | CPThemeStateSelected] forThemeAttribute:@"text-color" inState:CPThemeStateDisabled | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeStateDisabled | CPThemeStateSelected] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeStateDisabled | CPThemeStateSelected] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:[CPThemeStateDisabled, CPThemeStateSelected]] forThemeAttribute:@"font" inState:[CPThemeStateDisabled, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:[CPThemeStateDisabled, CPThemeStateSelected]]forThemeAttribute:@"text-color" inState:[CPThemeStateDisabled, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:[CPThemeStateDisabled, CPThemeStateSelected]] forThemeAttribute:@"text-shadow-color" inState:[CPThemeStateDisabled, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:[CPThemeStateDisabled, CPThemeStateSelected]] forThemeAttribute:@"text-shadow-offset" inState:[CPThemeStateDisabled, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:CPThemeStateHighlighted] forThemeAttribute:@"font" inState:CPThemeStateHighlighted];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeStateHighlighted] forThemeAttribute:@"text-color" inState:CPThemeStateHighlighted];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeStateHighlighted] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateHighlighted];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeStateHighlighted] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateHighlighted];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"font" inState:CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"text-color" inState:CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:[CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"font" inState:[CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:[CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"text-color" inState:[CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:[CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"text-shadow-color" inState:[CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:[CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"text-shadow-offset" inState:[CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"font" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"text-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"text-shadow-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected] forThemeAttribute:@"text-shadow-offset" inState: CPThemeStateDisabled | CPThemeStateHighlighted | CPThemeStateSelected];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"font" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"text-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"text-shadow-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]] forThemeAttribute:@"text-shadow-offset" inState:[CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState: CPThemeStateDisabled | CPThemeStateHighlighted ] forThemeAttribute:@"font" inState: CPThemeStateDisabled | CPThemeStateHighlighted ];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted ] forThemeAttribute:@"text-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted ];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted ] forThemeAttribute:@"text-shadow-color" inState: CPThemeStateDisabled | CPThemeStateHighlighted ];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState: CPThemeStateDisabled | CPThemeStateHighlighted ] forThemeAttribute:@"text-shadow-offset" inState: CPThemeStateDisabled | CPThemeStateHighlighted];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-font" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]] forThemeAttribute:@"font" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]] forThemeAttribute:@"text-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]] forThemeAttribute:@"text-shadow-color" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]] forThemeAttribute:@"text-shadow-offset" inState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[self addSubview:_textField];
@@ -1059,7 +1059,7 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
/*! Set a theme
*/
- (BOOL)setThemeState:(CPThemeState)aState
- (BOOL)setThemeState:(ThemeState)aState
{
[_textField setThemeState:aState];
[super setThemeState:aState];
@@ -1067,7 +1067,7 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
/*! Unset a theme
*/
- (BOOL)unsetThemeState:(CPThemeState)aState
- (BOOL)unsetThemeState:(ThemeState)aState
{
[_textField unsetThemeState:aState];
[super unsetThemeState:aState];
@@ -1156,7 +1156,7 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
var themeState = [self themeState],
context = [[CPGraphicsContext currentContext] graphicsPort];
if (themeState & CPThemeStateSelected)
if (themeState.hasThemeState(CPThemeStateSelected))
{
[self setBackgroundColor:[_datePicker valueForThemeAttribute:@"bezel-color-calendar" inState:themeState]];
CGContextSetLineWidth(context, [_datePicker valueForThemeAttribute:@"border-width"]);
+14 -3
View File
@@ -1222,6 +1222,7 @@ var CPMonthDateType = 0,
int _maxNumber @accessors(getter=maxNumber);
int _minNumber @accessors(getter=minNumber);
BOOL _firstEvent;
CPTimer _timerEdition;
}
@@ -1231,6 +1232,7 @@ var CPMonthDateType = 0,
- (BOOL)acceptFirstResponder
{
_firstEvent = YES;
return NO;
}
@@ -1339,7 +1341,7 @@ var CPMonthDateType = 0,
if (keyCode != CPDeleteKeyCode && keyCode != CPDeleteForwardKeyCode && keyCode < CPZeroKeyCode || keyCode > CPNineKeyCode)
return;
var newValue = [self stringValue],
var newValue = [self stringValue].replace(/\s/g, ''),
length = [newValue length],
eventKeyValue = parseInt([anEvent characters]).toString();
@@ -1355,7 +1357,7 @@ var CPMonthDateType = 0,
{
_timerEdition = [CPTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(_timerKeyEvent:) userInfo:nil repeats:NO];
if ((_dateType == CPYearDateType && length == 4) || (_dateType != CPYearDateType && length == 2) || !length)
if (_firstEvent || !length)
newValue = eventKeyValue;
else
newValue = parseInt(newValue).toString() + eventKeyValue;
@@ -1374,6 +1376,8 @@ var CPMonthDateType = 0,
if (parseInt(newValue) > [self _maxNumberWithMaxDate] || ([_datePicker _isEnglishFormat] && _dateType == CPHourDateType && parseInt(newValue) > 12))
return;
_firstEvent = NO;
[super setObjectValue:newValue];
}
@@ -1473,7 +1477,13 @@ var CPMonthDateType = 0,
}
while ([aStringValue length] < 2)
aStringValue = "0" + aStringValue;
{
if (_dateType == CPSecondDateType || _dateType == CPMinuteDateType)
aStringValue = @"0" + aStringValue;
else
aStringValue = @" " + aStringValue;
}
}
[super setObjectValue:aStringValue];
@@ -1612,6 +1622,7 @@ var CPMonthDateType = 0,
*/
- (void)makeDeselectable
{
_firstEvent = YES;
[self unsetThemeState:CPThemeStateSelected];
}
+1 -1
View File
@@ -733,7 +733,7 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark");
var themeState = _themeState;
if (NAMES_FOR_PARTS[_hitPart] + "-color" !== anAttributeName)
themeState &= ~CPThemeStateHighlighted;
themeState = themeState.without(CPThemeStateHighlighted);
return [self valueForThemeAttribute:anAttributeName inState:themeState];
}
+16 -15
View File
@@ -285,7 +285,6 @@ CPSegmentSwitchTrackingMomentary = 2;
- (void)setWidth:(float)aWidth forSegment:(unsigned)aSegment
{
[_segments[aSegment] setWidth:aWidth];
[self tileWithChangedSegment:aSegment];
}
@@ -432,9 +431,9 @@ CPSegmentSwitchTrackingMomentary = 2;
[_segments[aSegment] setEnabled:shouldBeEnabled];
if (shouldBeEnabled)
_themeStates[aSegment] &= ~CPThemeStateDisabled;
_themeStates[aSegment] = _themeStates[aSegment].without(CPThemeStateDisabled);
else
_themeStates[aSegment] |= CPThemeStateDisabled;
_themeStates[aSegment] = _themeStates[aSegment].and(CPThemeStateDisabled);
[self setNeedsLayout];
[self setNeedsDisplay:YES];
@@ -478,9 +477,9 @@ CPSegmentSwitchTrackingMomentary = 2;
- (void)drawSegmentBezel:(int)aSegment highlight:(BOOL)shouldHighlight
{
if (shouldHighlight)
_themeStates[aSegment] |= CPThemeStateHighlighted;
_themeStates[aSegment] = _themeStates[aSegment].and(CPThemeStateHighlighted);
else
_themeStates[aSegment] &= ~CPThemeStateHighlighted;
_themeStates[aSegment] = _themeStates[aSegment].without(CPThemeStateHighlighted);
[self setNeedsLayout];
[self setNeedsDisplay:YES];
@@ -574,9 +573,10 @@ CPSegmentSwitchTrackingMomentary = 2;
if (_segments.length <= 0)
return;
var themeState = _themeStates[0];
var themeState = _themeStates[0],
isDisabled = [self hasThemeState:CPThemeStateDisabled];
themeState |= _themeState & CPThemeStateDisabled;
themeState = isDisabled ? themeState.and(CPThemeStateDisabled) : themeState;
var leftCapColor = [self valueForThemeAttribute:@"left-segment-bezel-color"
inState:themeState],
@@ -589,7 +589,7 @@ CPSegmentSwitchTrackingMomentary = 2;
var themeState = _themeStates[_themeStates.length - 1];
themeState |= _themeState & CPThemeStateDisabled;
themeState = isDisabled ? themeState.and(CPThemeStateDisabled) : themeState;
var rightCapColor = [self valueForThemeAttribute:@"right-segment-bezel-color"
inState:themeState],
@@ -604,7 +604,7 @@ CPSegmentSwitchTrackingMomentary = 2;
{
var themeState = _themeStates[i];
themeState |= _themeState & CPThemeStateDisabled;
themeState = isDisabled ? themeState.and(CPThemeStateDisabled) : themeState;
var bezelColor = [self valueForThemeAttribute:@"center-segment-bezel-color"
inState:themeState],
@@ -642,11 +642,11 @@ CPSegmentSwitchTrackingMomentary = 2;
if (i == count - 1)
continue;
var borderState = _themeStates[i] | _themeStates[i + 1];
var borderState = _themeStates[i].and(_themeStates[i + 1]);
borderState = (borderState & CPThemeStateSelected & ~CPThemeStateHighlighted) ? CPThemeStateSelected : CPThemeStateNormal;
borderState = (borderState.hasThemeState(CPThemeStateSelected) && !borderState.hasThemeState(CPThemeStateHighlighted)) ? CPThemeStateSelected : CPThemeStateNormal;
borderState |= _themeState & CPThemeStateDisabled;
borderState = isDisabled ? borderState.and(CPThemeStateDisabled) : borderState;
var borderColor = [self valueForThemeAttribute:@"divider-bezel-color"
inState:borderState],
@@ -676,7 +676,7 @@ CPSegmentSwitchTrackingMomentary = 2;
var segment = _segments[aSegment],
segmentWidth = [segment width],
themeState = _themeStates[aSegment] | (_themeState & CPThemeStateDisabled),
themeState = _themeState.hasThemeState(CPThemeStateDisabled) ? _themeStates[aSegment].and(CPThemeStateDisabled) : _themeStates[aSegment];
contentInset = [self valueForThemeAttribute:@"content-inset" inState:themeState],
font = [self font];
@@ -915,10 +915,11 @@ var CPSegmentedControlSegmentsKey = "CPSegmentedControlSegmentsKey",
// HACK
for (var i = 0; i < _segments.length; i++)
{
_themeStates[i] = [_segments[i] selected] ? CPThemeStateSelected : CPThemeStateNormal;
// We do this in a second loop because it relies on all the themeStates being set first
for (var i = 0; i < _segments.length; i++)
[self tileWithChangedSegment:i];
}
var difference = MAX(originalWidth - [self frame].size.width, 0.0),
remainingWidth = FLOOR(difference / _segments.length);
+4 -4
View File
@@ -182,11 +182,11 @@
[_buttonDown setFrame:downFrame];
[_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:CPThemeStateBordered] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered];
[_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:CPThemeStateBordered | CPThemeStateDisabled] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered | CPThemeStateDisabled];
[_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:CPThemeStateBordered | CPThemeStateHighlighted] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered | CPThemeStateHighlighted];
[_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[CPThemeStateBordered, CPThemeStateDisabled]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateDisabled]];
[_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[CPThemeStateBordered, CPThemeStateHighlighted]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateHighlighted]];
[_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:CPThemeStateBordered] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered];
[_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:CPThemeStateBordered | CPThemeStateDisabled] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered | CPThemeStateDisabled];
[_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:CPThemeStateBordered | CPThemeStateHighlighted] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered | CPThemeStateHighlighted];
[_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[CPThemeStateBordered, CPThemeStateDisabled]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateDisabled]];
[_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[CPThemeStateBordered, CPThemeStateHighlighted]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateHighlighted]];
}
- (void)_sizeToFit
+8 -2
View File
@@ -6186,14 +6186,20 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey",
[self setThemeState:CPThemeStateTableDataView];
}
- (BOOL)setThemeState:(CPThemeState)aState
- (BOOL)setThemeState:(ThemeState)aState
{
if (aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
[super setThemeState:aState];
[self recursivelyPerformSelector:@selector(setThemeState:) withObject:aState startingFrom:self];
}
- (BOOL)unsetThemeState:(CPThemeState)aState
- (BOOL)unsetThemeState:(ThemeState)aState
{
if (aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
[super unsetThemeState:aState];
[self recursivelyPerformSelector:@selector(unsetThemeState:) withObject:aState startingFrom:self];
}
+183 -133
View File
@@ -240,7 +240,7 @@ var CPThemesByName = { },
@param aClass The themed class in which to look for the attribute
@return A value or nil
*/
- (id)valueForAttributeWithName:(CPString)aName inState:(CPThemeState)aState forClass:(id)aClass
- (id)valueForAttributeWithName:(CPString)aName inState:(ThemeState)aState forClass:(id)aClass
{
var attribute = [self attributeWithName:aName forClass:aClass];
@@ -314,6 +314,164 @@ var CPThemeNameKey = @"CPThemeNameKey",
@end
/*!
* ThemeStates are immutable objects representing a particular ThemeState. Applications should never be creating
* ThemeStates directly but should instead use the CPThemeState function.
*/
function ThemeState(stateNames)
{
var stateNameKeys = [];
this._stateNames = {};
for (key in stateNames)
{
if (!stateNames.hasOwnProperty(key))
continue;
if (key !== 'normal')
{
this._stateNames[key] = true;
stateNameKeys.push(key);
}
}
if (stateNameKeys.length === 0)
{
stateNameKeys.push('normal');
this._stateNames['normal'] = true;
}
stateNameKeys.sort();
this._stateNameString = stateNameKeys[0];
var stateNameLength = stateNameKeys.length;
for (var stateIndex = 1; stateIndex < stateNameLength; stateIndex++)
this._stateNameString = this._stateNameString + "+" + stateNameKeys[stateIndex];
this._stateNameCount = stateNameLength;
}
ThemeState.prototype.toString = function()
{
return this._stateNameString;
}
ThemeState.prototype.hasThemeState = function(aState)
{
if (!aState || !aState._stateNames)
return false;
// We can do this in O(n) because both states have their stateNames already sorted.
for (var stateName in aState._stateNames)
{
if (!aState._stateNames.hasOwnProperty(stateName))
continue;
if (!this._stateNames[stateName])
return false;
}
return true;
}
ThemeState.prototype.isSubsetOf = function(aState)
{
if (aState._stateNameCount < this._stateNameCount)
return false;
for (var key in this._stateNames)
{
if (!this._stateNames.hasOwnProperty(key))
continue;
if (!aState._stateNames[key])
return false;
}
return true;
}
ThemeState.prototype.without = function(aState)
{
if (!aState || aState === [CPNull null])
return this;
var newStates = {};
for (var stateName in this._stateNames)
{
if (!this._stateNames.hasOwnProperty(stateName))
continue;
if (!aState._stateNames[stateName])
newStates[stateName] = true;
}
return ThemeState._cacheThemeState(new ThemeState(newStates));
}
ThemeState.prototype.and = function(aState)
{
return CPThemeState(this, aState);
}
var CPThemeStates = {};
ThemeState._cacheThemeState = function(aState)
{
// We do this caching so themeState equality works. Basically, doing CPThemeState('foo+bar') === CPThemeState('bar', 'foo') will return true.
var themeState = CPThemeStates[String(aState)];
if (themeState === undefined)
{
themeState = aState;
CPThemeStates[String(themeState)] = themeState;
}
return themeState;
}
/*!
* This method can be called in multiple ways:
* CPThemeState('state1') - creates a new CPThemeState that corresponds to the string 'state1'
* CPThemeState('state1', 'state2') - creates a new composite CPThemeState made up of both 'state1' or 'state2'
* CPThemeState('state1+state2') - The same as CPThemeState('state1', 'state2')
* CPThemeState(state1, state2) - creates a new composite CPThemeState made up of state1 and state2
* where state1 and state2 are not strings but are themselves CPThemeStates.
*/
function CPThemeState()
{
if (arguments.length < 1)
throw "CPThemeState() must be called with at least one string argument";
var themeState;
if (arguments.length === 1 && typeof arguments[0] === 'string')
{
themeState = CPThemeStates[arguments[0]];
if (themeState !== undefined)
return themeState;
}
var stateNames = {};
for (var argIndex = 0; argIndex < arguments.length; argIndex++)
{
if (arguments[argIndex] === [CPNull null] || !arguments[argIndex])
continue;
if (typeof arguments[argIndex] === 'object')
{
for (var stateName in arguments[argIndex]._stateNames)
{
if (!arguments[argIndex]._stateNames.hasOwnProperty(stateName))
continue;
stateNames[stateName] = true;
}
}
else
{
var allNames = arguments[argIndex].split('+');
for (var nameIndex = 0; nameIndex < allNames.length; nameIndex++)
stateNames[allNames[nameIndex]] = true;
}
}
themeState = ThemeState._cacheThemeState(new ThemeState(stateNames));
return themeState;
}
@implementation _CPThemeKeyedUnarchiver : CPKeyedUnarchiver
{
CPBundle _bundle;
@@ -341,71 +499,7 @@ var CPThemeNameKey = @"CPThemeNameKey",
@end
var CPThemeStates = {},
CPThemeStateNames = {},
CPThemeStateCount = 0;
function CPThemeState(aStateName)
{
var state = CPThemeStates[aStateName];
if (state === undefined)
{
if (aStateName.indexOf('+') === -1)
state = 1 << CPThemeStateCount++;
else
{
var state = 0,
states = aStateName.split('+'),
count = states.length;
while (count--)
{
var stateName = states[count],
individualState = CPThemeStates[stateName];
if (individualState === undefined)
{
individualState = 1 << CPThemeStateCount++;
CPThemeStates[stateName] = individualState;
CPThemeStateNames[individualState] = stateName;
}
state |= individualState;
}
}
CPThemeStates[aStateName] = state;
CPThemeStateNames[state] = aStateName;
}
return state;
}
function CPThemeStateName(aState)
{
var name = CPThemeStateNames[aState];
if (name !== undefined)
return name;
if (!(aState & (aState - 1)))
return "";
var state = 1,
name = "";
for (; state < aState; state <<= 1)
if (aState & state)
name += (name.length === 0 ? '' : '+') + CPThemeStateNames[state];
CPThemeStateNames[aState] = name;
return name;
}
CPThemeStateNames[0] = "normal";
CPThemeStateNormal = CPThemeStates["normal"] = 0;
CPThemeStateNormal = CPThemeState("normal");
CPThemeStateDisabled = CPThemeState("disabled");
CPThemeStateHovered = CPThemeState("hovered");
CPThemeStateHighlighted = CPThemeState("highlighted");
@@ -464,11 +558,6 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
return [_values count] > 0;
}
- (BOOL)isTrivial
{
return ([_values count] === 1) && (Number([_values allKeys][0]) === CPThemeStateNormal);
}
- (void)setValue:(id)aValue
{
_cache = {};
@@ -479,7 +568,7 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
_values = @{ String(CPThemeStateNormal): aValue };
}
- (void)setValue:(id)aValue forState:(CPThemeState)aState
- (void)setValue:(id)aValue forState:(ThemeState)aState
{
_cache = { };
@@ -494,44 +583,34 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
return [self valueForState:CPThemeStateNormal];
}
- (id)valueForState:(CPThemeState)aState
- (id)valueForState:(ThemeState)aState
{
var value = _cache[aState];
var stateName = String(aState),
value = _cache[stateName];
// This can be nil.
if (value !== undefined)
return value;
value = [_values objectForKey:String(aState)];
value = [_values objectForKey:stateName];
// If we don't have a value, and we have a non-normal state...
if ((value === undefined || value === nil) && aState !== CPThemeStateNormal)
if (value === undefined || value === nil)
{
// If this is a composite state (not a power of 2), find the closest partial subset match.
if (aState & (aState - 1))
// If this is a composite state, find the closest partial subset match.
if (aState._stateNameCount > 1)
{
var highestOneCount = 0,
states = [_values allKeys],
count = states.length;
var states = [_values allKeys],
count = states.length,
largestThemeState = 0;
while (count--)
{
// states[count] is a string!
var state = Number(states[count]);
var stateObject = CPThemeState(states[count]);
// A & B = A iff A < B
if ((state & aState) === state)
if (stateObject.isSubsetOf(aState) && stateObject._stateNameCount > largestThemeState)
{
var oneCount = cachedNumberOfOnes[state];
if (oneCount === undefined)
oneCount = numberOfOnes(state);
if (oneCount > highestOneCount)
{
highestOneCount = oneCount;
value = [_values objectForKey:String(state)];
}
value = [_values objectForKey:states[count]];
largestThemeState = stateObject._stateNameCount;
}
}
}
@@ -554,7 +633,7 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
value = nil;
}
_cache[aState] = value;
_cache[stateName] = value;
return value;
}
@@ -596,10 +675,10 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
if ([aCoder containsValueForKey:@"value"])
{
var state = CPThemeStateNormal;
var state = String(CPThemeStateNormal);
if ([aCoder containsValueForKey:@"state"])
state = CPThemeState([aCoder decodeObjectForKey:@"state"]);
state = [aCoder decodeObjectForKey:@"state"];
[_values setObject:[aCoder decodeObjectForKey:"value"] forKey:state];
}
@@ -613,7 +692,7 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
{
var key = keys[count];
[_values setObject:[encodedValues objectForKey:key] forKey:CPThemeState(key)];
[_values setObject:[encodedValues objectForKey:key] forKey:key];
}
}
}
@@ -633,8 +712,8 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
{
var onlyKey = keys[0];
if (Number(onlyKey) !== CPThemeStateNormal)
[aCoder encodeObject:CPThemeStateName(Number(onlyKey)) forKey:@"state"];
if (onlyKey !== String(CPThemeStateNormal))
[aCoder encodeObject:onlyKey forKey:@"state"];
[aCoder encodeObject:[_values objectForKey:onlyKey] forKey:@"value"];
}
@@ -646,7 +725,7 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
{
var key = keys[count];
[encodedValues setObject:[_values objectForKey:key] forKey:CPThemeStateName(Number(key))];
[encodedValues setObject:[_values objectForKey:key] forKey:key];
}
[aCoder encodeObject:encodedValues forKey:@"values"];
@@ -655,35 +734,6 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
@end
var cachedNumberOfOnes = [ 0 /*000000*/, 1 /*000001*/, 1 /*000010*/, 2 /*000011*/, 1 /*000100*/, 2 /*000101*/, 2 /*000110*/,
3 /*000111*/, 1 /*001000*/, 2 /*001001*/, 2 /*001010*/, 3 /*001011*/, 2 /*001100*/, 3 /*001101*/,
3 /*001110*/, 4 /*001111*/, 1 /*010000*/, 2 /*010001*/, 2 /*010010*/, 3 /*010011*/, 2 /*010100*/,
3 /*010101*/, 3 /*010110*/, 4 /*010111*/, 2 /*011000*/, 3 /*011001*/, 3 /*011010*/, 4 /*011011*/,
3 /*011100*/, 4 /*011101*/, 4 /*011110*/, 5 /*011111*/, 1 /*100000*/, 2 /*100001*/, 2 /*100010*/,
3 /*100011*/, 2 /*100100*/, 3 /*100101*/, 3 /*100110*/, 4 /*100111*/, 2 /*101000*/, 3 /*101001*/,
3 /*101010*/, 4 /*101011*/, 3 /*101100*/, 4 /*101101*/, 4 /*101110*/, 5 /*101111*/, 2 /*110000*/,
3 /*110001*/, 3 /*110010*/, 4 /*110011*/, 3 /*110100*/, 4 /*110101*/, 4 /*110110*/, 5 /*110111*/,
3 /*111000*/, 4 /*111001*/, 4 /*111010*/, 5 /*111011*/, 4 /*111100*/, 5 /*111101*/, 5 /*111110*/,
6 /*111111*/ ];
var numberOfOnes = function(aNumber)
{
var count = 0,
slot = aNumber;
while (aNumber)
{
++count;
aNumber &= (aNumber - 1);
}
cachedNumberOfOnes[slot] = count;
return count;
};
numberOfOnes.displayName = "numberOfOnes";
function CPThemeAttributeEncode(aCoder, aThemeAttribute)
{
var values = aThemeAttribute._values,
@@ -694,7 +744,7 @@ function CPThemeAttributeEncode(aCoder, aThemeAttribute)
{
var state = [values allKeys][0];
if (Number(state) === 0)
if (state === String(CPThemeStateNormal))
{
[aCoder encodeObject:[values objectForKey:state] forKey:key];
+10 -4
View File
@@ -1389,12 +1389,15 @@ CPTokenFieldDeleteButtonType = 1;
[self setNeedsLayout];
}
- (BOOL)setThemeState:(CPThemeState)aState
- (BOOL)setThemeState:(ThemeState)aState
{
if (aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
var r = [super setThemeState:aState];
// Share hover state with the disclosure and delete buttons.
if (aState & CPThemeStateHovered)
if (aState.hasThemeState(CPThemeStateHovered))
{
[_disclosureButton setThemeState:CPThemeStateHovered];
[_deleteButton setThemeState:CPThemeStateHovered];
@@ -1403,12 +1406,15 @@ CPTokenFieldDeleteButtonType = 1;
return r;
}
- (BOOL)unsetThemeState:(CPThemeState)aState
- (BOOL)unsetThemeState:(ThemeState)aState
{
if (aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
var r = [super unsetThemeState:aState];
// Share hover state with the disclosure and delete button.
if (aState & CPThemeStateHovered)
if (aState.hasThemeState(CPThemeStateHovered))
{
[_disclosureButton unsetThemeState:CPThemeStateHovered];
[_deleteButton unsetThemeState:CPThemeStateHovered];
+26 -18
View File
@@ -2887,23 +2887,23 @@ setBoundsOrigin:
return _themeState;
}
- (BOOL)hasThemeState:(CPThemeState)aState
- (BOOL)hasThemeState:(ThemeState)aState
{
// Because CPThemeStateNormal is defined as 0 we need to check for it explicitly here
if (aState === CPThemeStateNormal && _themeState === CPThemeStateNormal)
return YES;
if (aState.isa && [aState isKindOfClass:CPArray])
return _themeState.hasThemeState.apply(_themeState, aState);
return !!(_themeState & ((typeof aState === "string") ? CPThemeState(aState) : aState));
return _themeState.hasThemeState(aState);
}
- (BOOL)setThemeState:(CPThemeState)aState
- (BOOL)setThemeState:(ThemeState)aState
{
var newState = (typeof aState === "string") ? CPThemeState(aState) : aState;
if (aState && aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
if (_themeState & newState)
if (_themeState.hasThemeState(aState))
return NO;
_themeState |= newState;
_themeState = CPThemeState(_themeState, aState);
[self setNeedsLayout];
[self setNeedsDisplay:YES];
@@ -2911,15 +2911,17 @@ setBoundsOrigin:
return YES;
}
- (BOOL)unsetThemeState:(CPThemeState)aState
- (BOOL)unsetThemeState:(ThemeState)aState
{
var newState = ((typeof aState === "string") ? CPThemeState(aState) : aState);
if (aState && aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
if (!(_themeState & newState))
var oldThemeState = _themeState
_themeState = _themeState.without(aState);
if (oldThemeState === _themeState)
return NO;
_themeState &= ~newState;
[self setNeedsLayout];
[self setNeedsDisplay:YES];
@@ -3077,8 +3079,11 @@ setBoundsOrigin:
return dictionary;
}
- (void)setValue:(id)aValue forThemeAttribute:(CPString)aName inState:(CPThemeState)aState
- (void)setValue:(id)aValue forThemeAttribute:(CPString)aName inState:(ThemeState)aState
{
if (aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
if (!_themeAttributes || !_themeAttributes[aName])
[CPException raise:CPInvalidArgumentException reason:[self className] + " does not contain theme attribute '" + aName + "'"];
@@ -3109,8 +3114,11 @@ setBoundsOrigin:
[self setNeedsLayout];
}
- (id)valueForThemeAttribute:(CPString)aName inState:(CPThemeState)aState
- (id)valueForThemeAttribute:(CPString)aName inState:(ThemeState)aState
{
if (aState.isa && [aState isKindOfClass:CPArray])
aState = CPThemeState.apply(null, aState);
if (!_themeAttributes || !_themeAttributes[aName])
[CPException raise:CPInvalidArgumentException reason:[self className] + " does not contain theme attribute '" + aName + "'"];
@@ -3361,7 +3369,7 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask",
_theme = [CPTheme defaultTheme];
_themeClass = [aCoder decodeObjectForKey:CPViewThemeClassKey];
_themeState = CPThemeState([aCoder decodeIntForKey:CPViewThemeStateKey]);
_themeState = CPThemeState([aCoder decodeObjectForKey:CPViewThemeStateKey]);
_themeAttributes = {};
var theClass = [self class],
@@ -3452,7 +3460,7 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask",
[aCoder encodeConditionalObject:previousKeyView forKey:CPViewPreviousKeyViewKey];
[aCoder encodeObject:[self themeClass] forKey:CPViewThemeClassKey];
[aCoder encodeInt:CPThemeStateName(_themeState) forKey:CPViewThemeStateKey];
[aCoder encodeObject:String(_themeState) forKey:CPViewThemeStateKey];
for (var attributeName in _themeAttributes)
if (_themeAttributes.hasOwnProperty(attributeName))
+143 -147
View File
@@ -502,29 +502,29 @@ var themedButtonValues = nil,
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBordered],
[@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateBordered],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateBordered | CPThemeStateDisabled],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"text-shadow-offset", CGSizeMake(0.0, 1.0), CPThemeStateBordered],
[@"line-break-mode", CPLineBreakByTruncatingTail],
[@"bezel-color", bezelColor, CPThemeStateBordered],
[@"bezel-color", highlightedBezelColor, CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color", disabledBezelColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", defaultBezelColor, CPThemeStateBordered | CPThemeStateDefault],
[@"bezel-color", defaultHighlightedBezelColor, CPThemeStateBordered | CPThemeStateHighlighted | CPThemeStateDefault],
[@"bezel-color", defaultDisabledBezelColor, CPThemeStateBordered | CPThemeStateDefault | CPThemeStateDisabled],
[@"bezel-color", highlightedBezelColor, [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"bezel-color", disabledBezelColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color", defaultBezelColor, [CPThemeStateBordered, CPThemeStateDefault]],
[@"bezel-color", defaultHighlightedBezelColor, [CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault]],
[@"bezel-color", defaultDisabledBezelColor, [CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(0.0, 7.0, 0.0, 7.0), CPThemeStateBordered],
[@"bezel-color", roundedBezelColor, CPThemeStateBordered | CPButtonStateBezelStyleRounded],
[@"bezel-color", roundedHighlightedBezelColor, CPThemeStateBordered | CPThemeStateHighlighted | CPButtonStateBezelStyleRounded],
[@"bezel-color", roundedDisabledBezelColor, CPThemeStateBordered | CPThemeStateDisabled | CPButtonStateBezelStyleRounded],
[@"bezel-color", defaultRoundedBezelColor, CPThemeStateBordered | CPThemeStateDefault | CPButtonStateBezelStyleRounded],
[@"bezel-color", defaultRoundedHighlightedBezelColor, CPThemeStateBordered | CPThemeStateHighlighted | CPThemeStateDefault | CPButtonStateBezelStyleRounded],
[@"bezel-color", defaultRoundedDisabledBezelColor, CPThemeStateBordered | CPThemeStateDefault | CPThemeStateDisabled | CPButtonStateBezelStyleRounded],
[@"content-inset", CGInsetMake(0.0, 10.0, 0.0, 10.0), CPThemeStateBordered | CPButtonStateBezelStyleRounded],
[@"bezel-color", roundedBezelColor, [CPThemeStateBordered, CPButtonStateBezelStyleRounded]],
[@"bezel-color", roundedHighlightedBezelColor, [CPThemeStateBordered, CPThemeStateHighlighted, CPButtonStateBezelStyleRounded]],
[@"bezel-color", roundedDisabledBezelColor, [CPThemeStateBordered, CPThemeStateDisabled, CPButtonStateBezelStyleRounded]],
[@"bezel-color", defaultRoundedBezelColor, [CPThemeStateBordered, CPThemeStateDefault, CPButtonStateBezelStyleRounded]],
[@"bezel-color", defaultRoundedHighlightedBezelColor, [CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault, CPButtonStateBezelStyleRounded]],
[@"bezel-color", defaultRoundedDisabledBezelColor, [CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled, CPButtonStateBezelStyleRounded]],
[@"content-inset", CGInsetMake(0.0, 10.0, 0.0, 10.0), [CPThemeStateBordered, CPButtonStateBezelStyleRounded]],
[@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], CPThemeStateDisabled],
[@"text-color", defaultTextColor, CPThemeStateDefault],
[@"text-color", defaultDisabledTextColor, CPThemeStateDefault | CPThemeStateDisabled],
[@"text-color", defaultDisabledTextColor, [CPThemeStateDefault, CPThemeStateDisabled]],
[@"min-size", CGSizeMake(0.0, 24.0)],
[@"max-size", CGSizeMake(-1.0, 24.0)],
@@ -588,15 +588,15 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", color, CPThemeStateBordered],
[@"bezel-color", disabledColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", disabledColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(0, 21.0 + 5.0, 0, 5.0), CPThemeStateBordered],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]],
[@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0]],
[@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], CPThemeStateBordered | CPThemeStateDisabled],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6], CPThemeStateBordered | CPThemeStateDisabled],
[@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"min-size", CGSizeMake(32.0, 24.0)],
[@"max-size", CGSizeMake(-1.0, 24.0)]
@@ -631,16 +631,16 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", color, CPPopUpButtonStatePullsDown | CPThemeStateBordered],
[@"bezel-color", disabledColor, CPPopUpButtonStatePullsDown | CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", color, [CPPopUpButtonStatePullsDown, CPThemeStateBordered]],
[@"bezel-color", disabledColor, [CPPopUpButtonStatePullsDown, CPThemeStateBordered, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(0, 27.0 + 5.0, 0, 5.0), CPThemeStateBordered],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]],
[@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0]],
[@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], CPThemeStateBordered | CPThemeStateDisabled],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6], CPThemeStateBordered | CPThemeStateDisabled],
[@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"min-size", CGSizeMake(32.0, 24.0)],
[@"max-size", CGSizeMake(-1.0, 24.0)]
@@ -761,35 +761,35 @@ var themedButtonValues = nil,
[@"track-inset", CGInsetMake(2.0, 0.0, 2.0, 0.0), CPThemeStateVertical],
[@"track-border-overlay", 12.0, CPThemeStateVertical],
[@"knob-slot-color", [CPNull null], CPThemeStateVertical],
[@"knob-slot-color", trackColor, CPThemeStateVertical | CPThemeStateSelected],
[@"knob-slot-color", trackColorLight, CPThemeStateVertical | CPThemeStateSelected | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColorDark, CPThemeStateVertical | CPThemeStateSelected | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColor, [CPThemeStateVertical, CPThemeStateSelected]],
[@"knob-slot-color", trackColorLight, [CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColorDark, [CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
[@"knob-color", knobColor, CPThemeStateVertical],
[@"knob-color", knobColorLight, CPThemeStateVertical | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorDark, CPThemeStateVertical | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColorLight, [CPThemeStateVertical, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorDark, [CPThemeStateVertical, CPThemeStateScrollerKnobDark]],
[@"increment-line-color", [CPNull null], CPThemeStateVertical],
[@"decrement-line-color", [CPNull null], CPThemeStateVertical],
[@"decrement-line-size", CGSizeMakeZero(), CPThemeStateVertical],
[@"increment-line-size", CGSizeMakeZero(), CPThemeStateVertical],
// Legacy
[@"scroller-width", 14.0, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"track-border-overlay", 0.0, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateSelected],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateSelected | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateSelected | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"increment-line-color", incrementColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"decrement-line-color", decrementColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"decrement-line-size", CGSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"increment-line-size", CGSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy]
[@"scroller-width", 14.0, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"track-border-overlay", 0.0, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-color", knobColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"increment-line-color", incrementColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"decrement-line-color", decrementColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"decrement-line-size", CGSizeMake(14.0, 11.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"increment-line-size", CGSizeMake(14.0, 11.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]]
];
[self registerThemeValues:themedVerticalScrollerValues forView:scroller];
@@ -884,8 +884,8 @@ var themedButtonValues = nil,
[@"track-border-overlay", 12.0],
[@"knob-slot-color", [CPNull null]],
[@"knob-slot-color", trackColor, CPThemeStateSelected],
[@"knob-slot-color", trackColorLight, CPThemeStateSelected | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColorDark, CPThemeStateSelected | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLight, [CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColorDark, [CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
[@"knob-color", knobColor],
[@"knob-color", knobColorLight, CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorDark, CPThemeStateScrollerKnobDark],
@@ -898,12 +898,12 @@ var themedButtonValues = nil,
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateScrollViewLegacy],
[@"track-border-overlay", 0.0, CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateSelected],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateSelected]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"increment-line-color", incrementColorLegacy, CPThemeStateScrollViewLegacy],
[@"decrement-line-color", decrementColorLegacy, CPThemeStateScrollViewLegacy],
[@"decrement-line-size", CGSizeMake(11.0, 14.0), CPThemeStateScrollViewLegacy],
@@ -965,8 +965,8 @@ var themedButtonValues = nil,
[
[@"vertical-alignment", CPTopVerticalTextAlignment, CPThemeStateBezeled],
[@"bezel-color", bezelColor, CPThemeStateBezeled],
[@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-color", bezelDisabledColor, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled],
@@ -978,30 +978,30 @@ var themedButtonValues = nil,
[@"bezel-inset", CGInsetMakeZero(), CPThemeStateBezeled],
[@"content-inset", CGInsetMake(8.0, 7.0, 7.0, 8.0), CPThemeStateBezeled],
[@"text-color", textDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-color", textDisabledColor, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"text-color", placeholderColor, CPTextFieldStatePlaceholder],
[@"text-color", placeholderColor, CPTextFieldStatePlaceholder | CPThemeStateDisabled],
[@"text-color", placeholderColor, [CPTextFieldStatePlaceholder, CPThemeStateDisabled]],
[@"line-break-mode", CPLineBreakByTruncatingTail, CPThemeStateTableDataView],
[@"vertical-alignment", CPCenterVerticalTextAlignment, CPThemeStateTableDataView],
[@"content-inset", CGInsetMake(3.0, 3.0, 3.0, 5.0), CPThemeStateTableDataView],
[@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView],
[@"text-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateSelectedDataView],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateSelectedDataView],
[@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateEditable],
[@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateSelectedDataView | CPThemeStateEditing],
[@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateBezeled],
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 5.0), CPThemeStateTableDataView | CPThemeStateEditing],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(-1.0, -1.0, -1.0, -1.0), CPThemeStateTableDataView | CPThemeStateEditing],
[@"text-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateSelectedDataView]],
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateEditable]],
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateEditing]],
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateBezeled]],
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 5.0), [CPThemeStateTableDataView, CPThemeStateEditing]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateEditing]],
[@"bezel-inset", CGInsetMake(-1.0, -1.0, -1.0, -1.0), [CPThemeStateTableDataView, CPThemeStateEditing]],
[@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow],
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedDataView],
[@"text-shadow-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateGroupRow],
[@"text-shadow-offset", CGSizeMake(0,1), CPThemeStateTableDataView | CPThemeStateGroupRow],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedDataView],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateGroupRow]
[@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], [CPThemeStateTableDataView, CPThemeStateGroupRow]],
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], [CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView]],
[@"text-shadow-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateGroupRow]],
[@"text-shadow-offset", CGSizeMake(0,1), [CPThemeStateTableDataView, CPThemeStateGroupRow]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], [CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView]],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateGroupRow]]
];
[self registerThemeValues:themedTextFieldValues forView:textfield];
@@ -1045,21 +1045,21 @@ var themedButtonValues = nil,
// Global for reuse by subclasses
themedRoundedTextFieldValues =
[
[@"bezel-color", bezelColor, CPTextFieldStateRounded | CPThemeStateBezeled],
[@"bezel-color", bezelFocusedColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelDisabledColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelColor, [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"bezel-color", bezelFocusedColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-color", bezelDisabledColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize]],
// The new bezel is one pixel shorter, so we add one extra empty pixel at the bottom
// for size compatibility with an earlier version.
[@"bezel-inset", CGInsetMake(0.0, 0.0, 1.0, 0.0), CPTextFieldStateRounded | CPThemeStateBezeled],
[@"content-inset", CGInsetMake(8.0, 13.0, 7.0, 14.0), CPTextFieldStateRounded | CPThemeStateBezeled],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 1.0, 0.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"content-inset", CGInsetMake(8.0, 13.0, 7.0, 14.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"text-color", textDisabledColor, CPTextFieldStateRounded | CPThemeStateDisabled],
[@"text-color", placeholderColor, CPTextFieldStateRounded | CPTextFieldStatePlaceholder],
[@"text-color", textDisabledColor, [CPTextFieldStateRounded, CPThemeStateDisabled]],
[@"text-color", placeholderColor, [CPTextFieldStateRounded, CPTextFieldStatePlaceholder]],
[@"min-size", CGSizeMake(0.0, 30.0), CPTextFieldStateRounded | CPThemeStateBezeled],
[@"max-size", CGSizeMake(-1.0, 30.0), CPTextFieldStateRounded | CPThemeStateBezeled]
[@"min-size", CGSizeMake(0.0, 30.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"max-size", CGSizeMake(-1.0, 30.0), [CPTextFieldStateRounded, CPThemeStateBezeled]]
];
[self registerThemeValues:themedRoundedTextFieldValues forView:textfield];
@@ -1135,7 +1135,7 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", bezelColor, CPThemeStateBezeled],
[@"bezel-color", bezelDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelDisabledColor, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"font", [CPFont boldSystemFontOfSize:13.0]],
[@"text-color", [CPColor colorWithWhite:0.2 alpha:0.8]],
@@ -1147,8 +1147,8 @@ var themedButtonValues = nil,
[@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateNormal],
[@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, CPThemeStateSelected],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateNormal | CPThemeStateDisabled],
[@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, CPThemeStateSelected | CPThemeStateDisabled],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateNormal, CPThemeStateDisabled]],
[@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"min-size-datepicker-textfield", CGSizeMake(6.0, 18.0)],
@@ -1209,12 +1209,12 @@ var themedButtonValues = nil,
[
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:1.0], CPThemeStateNormal],
[@"border-color", [CPColor colorWithCalibratedRed:100.0 / 255.0 green:154.0 / 255.0 blue:184.0 / 255.0 alpha:1.0], CPThemeStateSelected],
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:0.5], CPThemeStateNormal | CPThemeStateDisabled],
[@"border-color", [CPColor colorWithCalibratedRed:100.0 / 255.0 green:154.0 / 255.0 blue:184.0 / 255.0 alpha:0.5], CPThemeStateSelected | CPThemeStateDisabled],
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:0.5], [CPThemeStateNormal, CPThemeStateDisabled]],
[@"border-color", [CPColor colorWithCalibratedRed:100.0 / 255.0 green:154.0 / 255.0 blue:184.0 / 255.0 alpha:0.5], [CPThemeStateSelected, CPThemeStateDisabled]],
[@"bezel-color-calendar", [CPColor whiteColor]],
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:159.0 / 255.0 green:201.0 / 255.0 blue:225.0 / 255.0 alpha:1.0], CPThemeStateSelected],
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:159.0 / 255.0 green:201.0 / 255.0 blue:225.0 / 255.0 alpha:0.5], CPThemeStateSelected | CPThemeStateDisabled],
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:159.0 / 255.0 green:201.0 / 255.0 blue:225.0 / 255.0 alpha:0.5], [CPThemeStateSelected, CPThemeStateDisabled]],
[@"bezel-color-clock", clockImageColor],
[@"bezel-color-clock", clockImageColorDisabled, CPThemeStateDisabled],
@@ -1258,35 +1258,35 @@ var themedButtonValues = nil,
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted],
[@"tile-text-color", [CPColor colorWithCalibratedRed:100.0 / 255.0 green:154.0 / 255.0 blue:184.0 / 255.0 alpha:0.5], CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-text-color", [CPColor colorWithCalibratedRed:100.0 / 255.0 green:154.0 / 255.0 blue:184.0 / 255.0 alpha:0.5], [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:1.0], CPThemeStateSelected],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateSelected],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateSelected],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateSelected],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:1.0], CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:1.0], [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-text-color", [CPColor colorWithCalibratedRed:179.0 / 255.0 green:179.0 / 255.0 blue:179.0 / 255.0 alpha:1.0], CPThemeStateDisabled],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateDisabled],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:0.5], CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:0.5], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:0.5], CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-text-color", [CPColor colorWithCalibratedRed:13.0 / 255.0 green:51.0 / 255.0 blue:70.0 / 255.0 alpha:0.5], [CPThemeStateDisabled, CPThemeStateSelected]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], [CPThemeStateDisabled, CPThemeStateSelected]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateDisabled, CPThemeStateSelected]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateDisabled, CPThemeStateSelected]],
[@"arrow-image-left", arrowImageLeft],
[@"arrow-image-right", arrowImageRight],
@@ -1347,7 +1347,7 @@ var themedButtonValues = nil,
[@"content-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBezeled],
// Bezeled token field with no tokens
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 8.0), CPThemeStateBezeled | CPTextFieldStatePlaceholder]
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 8.0), [CPThemeStateBezeled, CPTextFieldStatePlaceholder]]
];
[self registerThemeValues:overrides forView:tokenfield inherit:themedTextFieldValues];
@@ -1389,8 +1389,8 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", bezelColor, CPThemeStateBezeled],
[@"bezel-color", bezelHighlightedColor, CPThemeStateBezeled | CPThemeStateHighlighted],
[@"bezel-color", bezelColorDisabled, CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelHighlightedColor, [CPThemeStateBezeled, CPThemeStateHighlighted]],
[@"bezel-color", bezelColorDisabled, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"text-color", textColor],
[@"text-color", textHighlightedColor, CPThemeStateHighlighted],
@@ -1422,8 +1422,8 @@ var themedButtonValues = nil,
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
[@"bezel-color", nil, CPThemeStateBordered],
[@"bezel-color", arrowImage, CPThemeStateBordered | CPThemeStateHovered],
[@"bezel-color", arrowImageHiglighted, CPThemeStateBordered | CPThemeStateHovered | CPThemeStateHighlighted],
[@"bezel-color", arrowImage, [CPThemeStateBordered, CPThemeStateHovered]],
[@"bezel-color", arrowImageHiglighted, [CPThemeStateBordered, CPThemeStateHovered, CPThemeStateHighlighted]],
[@"min-size", CGSizeMake(7.0, 6.0)],
[@"max-size", CGSizeMake(7.0, 6.0)],
@@ -1445,15 +1445,15 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", bezelColor, CPThemeStateBordered | CPThemeStateHovered],
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color", bezelColor, [CPThemeStateBordered, CPThemeStateHovered]],
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color", bezelHighlightedColor, [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"min-size", CGSizeMake(8.0, 8.0)],
[@"max-size", CGSizeMake(8.0, 8.0)],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"offset", CGPointMake(17, 6), CPThemeStateBordered]
];
@@ -1509,9 +1509,9 @@ var themedButtonValues = nil,
[@"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", bezelHighlightedColor, [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", bezelDisabledColor, [CPThemeStateBordered, CPThemeStateDisabled]],
];
[self registerThemeValues:themedColorWellValues forView:colorWell];
@@ -1573,24 +1573,24 @@ var themedButtonValues = nil,
overrides =
[
[@"bezel-color", bezelColor, CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPComboBoxStateButtonBordered | CPThemeStateEditing],
[@"bezel-color", bezelDisabledColor, CPThemeStateBezeled | CPComboBoxStateButtonBordered | CPThemeStateDisabled],
[@"bezel-color", bezelColor, [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
[@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing]],
[@"bezel-color", bezelDisabledColor, [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled]],
[@"bezel-color", bezelNoBorderColor, CPThemeStateBezeled],
[@"bezel-color", bezelNoBorderFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelNoBorderDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelNoBorderFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-color", bezelNoBorderDisabledColor, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"border-inset", CGInsetMake(3.0, 3.0, 3.0, 3.0), CPThemeStateBezeled],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 1.0, 1.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 1.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing]],
// The right border inset has to make room for the focus ring and popup button
[@"content-inset", CGInsetMake(8.0, 27.0, 7.0, 8.0), CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"content-inset", CGInsetMake(8.0, 27.0, 7.0, 8.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
[@"content-inset", CGInsetMake(8.0, 24.0, 7.0, 8.0), CPThemeStateBezeled],
[@"content-inset", CGInsetMake(8.0, 24.0, 7.0, 8.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"content-inset", CGInsetMake(8.0, 24.0, 7.0, 8.0), [CPThemeStateBezeled, CPThemeStateEditing]],
[@"popup-button-size", CGSizeMake(21.0, 23.0), CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"popup-button-size", CGSizeMake(21.0, 23.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
[@"popup-button-size", CGSizeMake(17.0, 23.0), CPThemeStateBezeled],
// Because combo box uses a three-part bezel, the height is fixed
@@ -1621,10 +1621,10 @@ var themedButtonValues = nil,
[@"image", imageNormal, CPThemeStateNormal],
[@"image", imageSelected, CPThemeStateSelected],
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"image-offset", CPRadioImageOffset],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal],
@@ -1657,10 +1657,10 @@ var themedButtonValues = nil,
[@"image", imageNormal, CPThemeStateNormal],
[@"image", imageSelected, CPThemeStateSelected],
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"image-offset", CPCheckBoxImageOffset],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal],
@@ -1691,8 +1691,8 @@ var themedButtonValues = nil,
themeValues =
[
[@"image", mixedImage, CPButtonStateMixed],
[@"image", mixedHighlightedImage, CPButtonStateMixed | CPThemeStateHighlighted],
[@"image", mixedDisabledImage, CPButtonStateMixed | CPThemeStateDisabled],
[@"image", mixedHighlightedImage, [CPButtonStateMixed, CPThemeStateHighlighted]],
[@"image", mixedDisabledImage, [CPButtonStateMixed, CPThemeStateDisabled]],
[@"image-offset", CPCheckBoxImageOffset, CPButtonStateMixed],
[@"max-size", CGSizeMake(-1.0, -1.0)]
];
@@ -1755,29 +1755,29 @@ var themedButtonValues = nil,
[
[@"center-segment-bezel-color", centerBezelColor, CPThemeStateNormal],
[@"center-segment-bezel-color", inactiveCenterBezelColor, CPThemeStateDisabled],
[@"center-segment-bezel-color", inactiveHighlightedCenterBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"center-segment-bezel-color", inactiveHighlightedCenterBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"center-segment-bezel-color", centerHighlightedBezelColor, CPThemeStateSelected],
[@"center-segment-bezel-color", pushedCenterBezelColor, CPThemeStateHighlighted],
[@"center-segment-bezel-color", pushedHighlightedCenterBezelColor, CPThemeStateHighlighted | CPThemeStateSelected],
[@"center-segment-bezel-color", pushedHighlightedCenterBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"divider-bezel-color", dividerBezelColor, CPThemeStateNormal],
[@"divider-bezel-color", inactiveDividerBezelColor, CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"divider-bezel-color", dividerHighlightedBezelColor, CPThemeStateSelected],
[@"left-segment-bezel-color", leftBezelColor, CPThemeStateNormal],
[@"left-segment-bezel-color", inactiveLeftBezelColor, CPThemeStateDisabled],
[@"left-segment-bezel-color", inactiveHighlightedLeftBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"left-segment-bezel-color", inactiveHighlightedLeftBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"left-segment-bezel-color", leftHighlightedBezelColor, CPThemeStateSelected],
[@"left-segment-bezel-color", pushedLeftBezelColor, CPThemeStateHighlighted],
[@"left-segment-bezel-color", pushedHighlightedLeftBezelColor, CPThemeStateHighlighted | CPThemeStateSelected],
[@"left-segment-bezel-color", pushedHighlightedLeftBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"right-segment-bezel-color", rightBezelColor, CPThemeStateNormal],
[@"right-segment-bezel-color", inactiveRightBezelColor, CPThemeStateDisabled],
[@"right-segment-bezel-color", inactiveHighlightedRightBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"right-segment-bezel-color", inactiveHighlightedRightBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"right-segment-bezel-color", rightHighlightedBezelColor, CPThemeStateSelected],
[@"right-segment-bezel-color", pushedRightBezelColor, CPThemeStateHighlighted],
[@"right-segment-bezel-color", pushedHighlightedRightBezelColor, CPThemeStateHighlighted | CPThemeStateSelected],
[@"right-segment-bezel-color", pushedHighlightedRightBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"content-inset", CGInsetMake(0.0, 4.0, 0.0, 4.0), CPThemeStateNormal],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
@@ -1878,7 +1878,7 @@ var themedButtonValues = nil,
[
[@"track-width", 5.0],
[@"track-color", trackColor, CPThemeStateVertical],
[@"track-color", trackDisabledColor, CPThemeStateVertical | CPThemeStateDisabled],
[@"track-color", trackDisabledColor, [CPThemeStateVertical, CPThemeStateDisabled]],
[@"knob-size", CGSizeMake(23.0, 24.0)],
[@"knob-color", knobColor],
@@ -1913,12 +1913,12 @@ var themedButtonValues = nil,
themedCircularSliderValues =
[
[@"track-color", trackColor, CPThemeStateCircular],
[@"track-color", trackDisabledColor, CPThemeStateCircular | CPThemeStateDisabled],
[@"track-color", trackDisabledColor, [CPThemeStateCircular, CPThemeStateDisabled]],
[@"knob-size", CGSizeMake(5.0, 5.0), CPThemeStateCircular],
[@"knob-color", knobColor, CPThemeStateCircular],
[@"knob-color", knobHighlightedColor, CPThemeStateCircular | CPThemeStateHighlighted],
[@"knob-color", knobDisabledColor, CPThemeStateCircular | CPThemeStateDisabled]
[@"knob-color", knobHighlightedColor, [CPThemeStateCircular, CPThemeStateHighlighted]],
[@"knob-color", knobDisabledColor, [CPThemeStateCircular, CPThemeStateDisabled]]
];
[self registerThemeValues:themedCircularSliderValues forView:slider];
@@ -2029,7 +2029,7 @@ var themedButtonValues = nil,
[@"background-color", pressed, CPThemeStateHighlighted],
[@"background-color", highlighted, CPThemeStateSelected],
[@"background-color", highlightedPressed, CPThemeStateHighlighted | CPThemeStateSelected]
[@"background-color", highlightedPressed, [CPThemeStateHighlighted, CPThemeStateSelected]]
];
[self registerThemeValues:themedColumnHeaderValues forView:header];
@@ -2260,10 +2260,10 @@ var themedButtonValues = nil,
[
[@"bezel-color-up-button", bezelUp, CPThemeStateBordered],
[@"bezel-color-down-button", bezelDown, CPThemeStateBordered],
[@"bezel-color-up-button", bezelUpDisabled, CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color-down-button", bezelDownDisabled, CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color-up-button", bezelUpHighlighted, CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color-down-button", bezelDownHighlighted, CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color-up-button", bezelUpDisabled, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color-down-button", bezelDownDisabled, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color-up-button", bezelUpHighlighted, [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"bezel-color-down-button", bezelDownHighlighted, [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"min-size", CGSizeMake(25.0, 25.0)],
[@"up-button-size", CGSizeMake(19.0, 13.0)],
[@"down-button-size", CGSizeMake(19.0, 12.0)]
@@ -2429,6 +2429,7 @@ var themedButtonValues = nil,
return box;
}
+ (CPLevelIndicator)themedLevelIndicator
{
var levelIndicator = [[CPLevelIndicator alloc] initWithFrame:CGRectMake(0,0,100,100)],
@@ -2803,7 +2804,6 @@ var themedButtonValues = nil,
+ (_CPToolbarView)themedToolbarView
{
var toolbarView = [[_CPToolbarView alloc] initWithFrame:CGRectMakeZero()],
toolbarExtraItemsImage = PatternImage(@"toolbar-view-extra-items-image.png", 10.0, 15.0),
toolbarExtraItemsAlternateImage = PatternImage(@"toolbar-view-extra-items-alternate-image.png", 10.0, 15.0),
toolbarSeparatorColor = PatternColor([
@@ -2883,8 +2883,6 @@ var themedButtonValues = nil,
+ (_CPMenuView)themedMenuView
{
var menuView = [[_CPMenuView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 100.0)],
menuWindowMoreAboveImage = PatternImage(@"menu-window-more-above.png", 38.0, 18.0),
menuWindowMoreBelowImage = PatternImage(@"menu-window-more-below.png", 38.0, 18.0),
generalIconNew = PatternImage(@"menu-general-icon-new.png", 16.0, 16.0),
@@ -3014,7 +3012,6 @@ var themedButtonValues = nil,
@end
@implementation AristoHUDThemeDescriptor : BKThemeDescriptor
{
}
@@ -3094,7 +3091,7 @@ var themedButtonValues = nil,
// var scroller = [AristoThemeDescriptor makeVerticalScroller],
// overrides =
// [
// [@"knob-color", nil, CPThemeStateVertical | CPThemeStateDisabled]
// [@"knob-color", nil, [CPThemeStateVertical, CPThemeStateDisabled]]
// ];
//
// [self registerThemeValues:[self defaultThemeOverridesAddedTo:overrides] forView:scroller inherit:themedVerticalScrollerValues];
@@ -3178,5 +3175,4 @@ var themedButtonValues = nil,
return progressBar;
}
@end
+164 -164
View File
@@ -139,14 +139,14 @@ var themedButtonValues = nil,
[@"text-shadow-color", regularTextShadowColor, CPThemeStateBordered],
[@"text-color", regularDisabledTextColor, CPThemeStateDisabled],
[@"text-color", defaultTextColor, CPThemeStateBordered | CPThemeStateDefault],
[@"text-color", defaultTextColor, [CPThemeStateBordered, CPThemeStateDefault]],
[@"text-color", defaultTextColor, CPThemeStateDefault],
[@"text-shadow-color", defaultTextShadowColor, CPThemeStateBordered | CPThemeStateDefault],
[@"text-shadow-color", defaultTextShadowColor, [CPThemeStateBordered, CPThemeStateDefault]],
[@"text-color", defaultDisabledTextColor, CPThemeStateDefault | CPThemeStateDisabled],
[@"text-shadow-color", defaultDisabledTextShadowColor, CPThemeStateDefault | CPThemeStateDisabled],
[@"text-color", defaultDisabledTextColor, [CPThemeStateDefault, CPThemeStateDisabled]],
[@"text-shadow-color", defaultDisabledTextShadowColor, [CPThemeStateDefault, CPThemeStateDisabled]],
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), CPThemeStateDefault | CPThemeStateDisabled],
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), [CPThemeStateDefault, CPThemeStateDisabled]],
[@"text-shadow-offset", CGSizeMake(0.0, 1.0), CPThemeStateBordered],
[@"line-break-mode", CPLineBreakByTruncatingTail],
@@ -155,41 +155,41 @@ var themedButtonValues = nil,
CPThemeStateBordered],
[@"bezel-color",
bezelColor["@"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted],
[CPThemeStateBordered, CPThemeStateHighlighted]],
[@"bezel-color",
bezelColor["@"]["disabled"],
CPThemeStateBordered | CPThemeStateDisabled],
[CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color",
bezelColor["default"]["@"],
CPThemeStateBordered | CPThemeStateDefault],
[CPThemeStateBordered, CPThemeStateDefault]],
[@"bezel-color",
bezelColor["default"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted | CPThemeStateDefault],
[CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault]],
[@"bezel-color",
bezelColor["default"]["disabled"],
CPThemeStateBordered | CPThemeStateDefault | CPThemeStateDisabled],
[CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(0.0, 7.0, 0.0, 7.0), CPThemeStateBordered],
[@"bezel-color",
roundedBezelColor["@"]["@"],
CPThemeStateBordered | CPButtonStateBezelStyleRounded],
[CPThemeStateBordered, CPButtonStateBezelStyleRounded]],
[@"bezel-color",
roundedBezelColor["@"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted | CPButtonStateBezelStyleRounded],
[CPThemeStateBordered, CPThemeStateHighlighted, CPButtonStateBezelStyleRounded]],
[@"bezel-color",
roundedBezelColor["@"]["disabled"],
CPThemeStateBordered | CPThemeStateDisabled | CPButtonStateBezelStyleRounded],
[CPThemeStateBordered, CPThemeStateDisabled, CPButtonStateBezelStyleRounded]],
[@"bezel-color",
roundedBezelColor["default"]["@"],
CPThemeStateBordered | CPThemeStateDefault | CPButtonStateBezelStyleRounded],
[CPThemeStateBordered, CPThemeStateDefault, CPButtonStateBezelStyleRounded]],
[@"bezel-color",
roundedBezelColor["default"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted | CPThemeStateDefault | CPButtonStateBezelStyleRounded],
[CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault, CPButtonStateBezelStyleRounded]],
[@"bezel-color",
roundedBezelColor["default"]["disabled"],
CPThemeStateBordered | CPThemeStateDefault | CPThemeStateDisabled | CPButtonStateBezelStyleRounded],
[CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled, CPButtonStateBezelStyleRounded]],
[@"content-inset", CGInsetMake(0.0, 10.0, 0.0, 10.0), CPThemeStateBordered | CPButtonStateBezelStyleRounded],
[@"content-inset", CGInsetMake(0.0, 10.0, 0.0, 10.0), [CPThemeStateBordered, CPButtonStateBezelStyleRounded]],
[@"min-size", CGSizeMake(0.0, CPButtonDefaultHeight)],
[@"max-size", CGSizeMake(-1.0, CPButtonDefaultHeight)],
@@ -235,7 +235,7 @@ var themedButtonValues = nil,
var button = [self button];
[button setTitle:@"OK"];
[button setThemeState:CPButtonStateBezelStyleRounded | CPThemeStateDefault];
[button setThemeState:[CPButtonStateBezelStyleRounded, CPThemeStateDefault]];
return button;
}
@@ -256,15 +256,15 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", color["@"], CPThemeStateBordered],
[@"bezel-color", color["disabled"], CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", color["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(0, 21.0 + 5.0, 0, 5.0), CPThemeStateBordered],
[@"font", [CPFont boldSystemFontOfSize:12.0]],
[@"text-color", regularTextColor],
[@"text-shadow-color", regularTextShadowColor],
[@"text-color", regularDisabledTextColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"text-color", regularDisabledTextColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"min-size", CGSizeMake(32.0, 25.0)],
[@"max-size", CGSizeMake(-1.0, 25.0)]
@@ -293,16 +293,16 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", color["@"], CPPopUpButtonStatePullsDown | CPThemeStateBordered],
[@"bezel-color", color["disabled"], CPPopUpButtonStatePullsDown | CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", color["@"], [CPPopUpButtonStatePullsDown, CPThemeStateBordered]],
[@"bezel-color", color["disabled"], [CPPopUpButtonStatePullsDown, CPThemeStateBordered, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(0, 27.0 + 5.0, 0, 5.0), CPThemeStateBordered],
[@"font", [CPFont boldSystemFontOfSize:12.0]],
[@"text-color", regularTextColor],
[@"text-shadow-color", regularTextShadowColor],
[@"text-color", regularDisabledTextColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"text-color", regularDisabledTextColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"min-size", CGSizeMake(32.0, 25.0)],
[@"max-size", CGSizeMake(-1.0, 25.0)]
@@ -403,35 +403,35 @@ var themedButtonValues = nil,
[@"track-inset", CGInsetMake(2.0, 0.0, 2.0, 0.0), CPThemeStateVertical],
[@"track-border-overlay", 12.0, CPThemeStateVertical],
[@"knob-slot-color", [CPNull null], CPThemeStateVertical],
[@"knob-slot-color", trackColor["@"], CPThemeStateVertical | CPThemeStateSelected],
[@"knob-slot-color", trackColor["light"], CPThemeStateVertical | CPThemeStateSelected | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColor["dark"], CPThemeStateVertical | CPThemeStateSelected | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColor["@"], [CPThemeStateVertical, CPThemeStateSelected]],
[@"knob-slot-color", trackColor["light"], [CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColor["dark"], [CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
[@"knob-color", knobColor["@"], CPThemeStateVertical],
[@"knob-color", knobColor["light"], CPThemeStateVertical | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColor["dark"], CPThemeStateVertical | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColor["light"], [CPThemeStateVertical, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColor["dark"], [CPThemeStateVertical, CPThemeStateScrollerKnobDark]],
[@"increment-line-color", [CPNull null], CPThemeStateVertical],
[@"decrement-line-color", [CPNull null], CPThemeStateVertical],
[@"decrement-line-size", CGSizeMakeZero(), CPThemeStateVertical],
[@"increment-line-size", CGSizeMakeZero(), CPThemeStateVertical],
// Legacy
[@"scroller-width", 14.0, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"track-border-overlay", 0.0, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateSelected],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateSelected | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateSelected | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"increment-line-color", incrementColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"decrement-line-color", decrementColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"decrement-line-size", CGSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy],
[@"increment-line-size", CGSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy]
[@"scroller-width", 14.0, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"track-border-overlay", 0.0, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"knob-color", knobColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"increment-line-color", incrementColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"decrement-line-color", decrementColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"decrement-line-size", CGSizeMake(14.0, 11.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
[@"increment-line-size", CGSizeMake(14.0, 11.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]]
];
[self registerThemeValues:themedVerticalScrollerValues forView:scroller];
@@ -484,8 +484,8 @@ var themedButtonValues = nil,
[@"track-border-overlay", 12.0],
[@"knob-slot-color", [CPNull null]],
[@"knob-slot-color", trackColor["@"], CPThemeStateSelected],
[@"knob-slot-color", trackColor["light"], CPThemeStateSelected | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColor["dark"], CPThemeStateSelected | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColor["light"], [CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColor["dark"], [CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
[@"knob-color", knobColor["@"]],
[@"knob-color", knobColor["light"], CPThemeStateScrollerKnobLight],
[@"knob-color", knobColor["dark"], CPThemeStateScrollerKnobDark],
@@ -498,12 +498,12 @@ var themedButtonValues = nil,
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateScrollViewLegacy],
[@"track-border-overlay", 0.0, CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateSelected],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateSelected]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
[@"knob-color", knobColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
[@"increment-line-color", incrementColorLegacy, CPThemeStateScrollViewLegacy],
[@"decrement-line-color", decrementColorLegacy, CPThemeStateScrollViewLegacy],
[@"decrement-line-size", CGSizeMake(11.0, 14.0), CPThemeStateScrollViewLegacy],
@@ -541,16 +541,16 @@ var themedButtonValues = nil,
[
[@"vertical-alignment", CPTopVerticalTextAlignment, CPThemeStateBezeled],
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled],
[@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelColor["disabled"], CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled],
[@"text-color", regularDisabledTextColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-color", regularDisabledTextColor, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"content-inset", CGInsetMake(8.0, 7.0, 5.0, 10.0), CPThemeStateBezeled],
[@"content-inset", CGInsetMake(8.0, 7.0, 5.0, 10.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"content-inset", CGInsetMake(8.0, 7.0, 5.0, 10.0), [CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeStateBezeled],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing]],
[@"text-color", placeholderColor, CPTextFieldStatePlaceholder],
@@ -559,20 +559,20 @@ var themedButtonValues = nil,
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 5.0), CPThemeStateTableDataView],
[@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView],
[@"text-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateSelectedDataView],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateSelectedDataView],
[@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateEditing],
[@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateSelectedDataView | CPThemeStateEditable],
[@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 10.0), CPThemeStateTableDataView | CPThemeStateEditable],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(-2.0, -2.0, -2.0, -2.0), CPThemeStateTableDataView | CPThemeStateEditing],
[@"text-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateSelectedDataView]],
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateEditing]],
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateEditable]],
[@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 10.0), [CPThemeStateTableDataView, CPThemeStateEditable]],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateEditing]],
[@"bezel-inset", CGInsetMake(-2.0, -2.0, -2.0, -2.0), [CPThemeStateTableDataView, CPThemeStateEditing]],
[@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow],
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedDataView],
[@"text-shadow-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateGroupRow],
[@"text-shadow-offset", CGSizeMake(0, 1), CPThemeStateTableDataView | CPThemeStateGroupRow],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedDataView],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateGroupRow]
[@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], [CPThemeStateTableDataView, CPThemeStateGroupRow]],
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], [CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView]],
[@"text-shadow-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateGroupRow]],
[@"text-shadow-offset", CGSizeMake(0, 1), [CPThemeStateTableDataView, CPThemeStateGroupRow]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], [CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView]],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateGroupRow]]
];
[self registerThemeValues:themedTextFieldValues forView:textfield];
@@ -610,25 +610,25 @@ var themedButtonValues = nil,
themedRoundedTextFieldValues =
[
[@"bezel-color",
bezelColor["@"], CPTextFieldStateRounded | CPThemeStateBezeled],
bezelColor["@"], [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"bezel-color",
bezelFocusedColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateEditing],
bezelFocusedColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-color",
bezelColor["disabled"], CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
bezelColor["disabled"], [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]],
[@"font", [CPFont systemFontOfSize:12.0]],
[@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), CPTextFieldStateRounded | CPThemeStateBezeled],
[@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateEditing],
[@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPTextFieldStateRounded | CPThemeStateBezeled],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
[@"text-color", placeholderColor, CPTextFieldStateRounded | CPTextFieldStatePlaceholder],
[@"text-color", regularDisabledTextColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-color", placeholderColor, [CPTextFieldStateRounded, CPTextFieldStatePlaceholder]],
[@"text-color", regularDisabledTextColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]],
[@"text-shadow-color", regularDisabledTextShadowColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]],
[@"min-size", CGSizeMake(0.0, 29.0), CPTextFieldStateRounded | CPThemeStateBezeled],
[@"max-size", CGSizeMake(-1.0, 29.0), CPTextFieldStateRounded | CPThemeStateBezeled]
[@"min-size", CGSizeMake(0.0, 29.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
[@"max-size", CGSizeMake(-1.0, 29.0), [CPTextFieldStateRounded, CPThemeStateBezeled]]
];
[self registerThemeValues:themedRoundedTextFieldValues forView:textfield];
@@ -688,7 +688,7 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled],
[@"bezel-color", bezelColor["disabled"], CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"font", [CPFont boldSystemFontOfSize:13.0]],
[@"text-color", [CPColor colorWithWhite:0.2 alpha:0.8]],
@@ -700,8 +700,8 @@ var themedButtonValues = nil,
[@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateNormal],
[@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, CPThemeStateSelected],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateNormal | CPThemeStateDisabled],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateSelected | CPThemeStateDisabled],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateNormal, CPThemeStateDisabled]],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateSelected, CPThemeStateDisabled]],
[@"min-size-datepicker-textfield", CGSizeMake(6.0, 18.0)],
@@ -762,12 +762,12 @@ var themedButtonValues = nil,
[
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:1.0], CPThemeStateNormal],
[@"border-color", [CPColor colorWithCalibratedRed:68.0 / 255.0 green:109.0 / 255.0 blue:198.0 / 255.0 alpha:1.0], CPThemeStateSelected],
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:0.5], CPThemeStateNormal | CPThemeStateDisabled],
[@"border-color", [CPColor colorWithCalibratedRed:68.0 / 255.0 green:109.0 / 255.0 blue:198.0 / 255.0 alpha:0.5], CPThemeStateSelected | CPThemeStateDisabled],
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:0.5], [CPThemeStateNormal, CPThemeStateDisabled]],
[@"border-color", [CPColor colorWithCalibratedRed:68.0 / 255.0 green:109.0 / 255.0 blue:198.0 / 255.0 alpha:0.5], [CPThemeStateSelected, CPThemeStateDisabled]],
[@"bezel-color-calendar", [CPColor whiteColor]],
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:1.0], CPThemeStateSelected],
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:0.5], CPThemeStateSelected | CPThemeStateDisabled],
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:0.5], [CPThemeStateSelected, CPThemeStateDisabled]],
[@"bezel-color-clock", clockImageColor],
[@"bezel-color-clock", clockImageColorDisabled, CPThemeStateDisabled],
@@ -811,15 +811,15 @@ var themedButtonValues = nil,
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted],
[@"tile-text-color", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:0.5], CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-text-shadow-color", [CPColor whiteColor], CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted | CPThemeStateDisabled],
[@"tile-text-color", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:0.5], [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-text-shadow-color", [CPColor whiteColor], [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateHighlighted, CPThemeStateDisabled]],
[@"tile-text-color", [CPColor whiteColor], CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted | CPThemeStateSelected],
[@"tile-text-color", [CPColor whiteColor], [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"tile-text-color", [CPColor whiteColor], CPThemeStateSelected],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], CPThemeStateSelected],
@@ -831,15 +831,15 @@ var themedButtonValues = nil,
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled],
[@"tile-text-color", [CPColor colorWithCalibratedRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:0.5], CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled | CPThemeStateSelected | CPThemeStateHighlighted],
[@"tile-text-color", [CPColor colorWithCalibratedRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:0.5], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
[@"tile-text-color", [CPColor colorWithCalibratedRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:0.5], CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled | CPThemeStateSelected],
[@"tile-text-color", [CPColor colorWithCalibratedRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:0.5], [CPThemeStateDisabled, CPThemeStateSelected]],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], [CPThemeStateDisabled, CPThemeStateSelected]],
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateDisabled, CPThemeStateSelected]],
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateDisabled, CPThemeStateSelected]],
[@"arrow-image-left", arrowImageLeft],
[@"arrow-image-right", arrowImageRight],
@@ -888,7 +888,7 @@ var themedButtonValues = nil,
[
[@"bezel-inset", CGInsetMakeZero()],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeStateBezeled],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateBezeled, CPThemeStateEditing]],
[@"editor-inset", CGInsetMake(3.0, 0.0, 0.0, 0.0)],
@@ -902,7 +902,7 @@ var themedButtonValues = nil,
[@"content-inset", CGInsetMake(4.0, 8.0, 4.0, 8.0), CPThemeStateBezeled],
// Bezeled token field with no tokens
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 8.0), CPThemeStateBezeled | CPTextFieldStatePlaceholder]
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 8.0), [CPThemeStateBezeled, CPTextFieldStatePlaceholder]]
];
[self registerThemeValues:overrides forView:tokenfield inherit:themedTextFieldValues];
@@ -930,8 +930,8 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled],
[@"bezel-color", bezelColor["highlighted"], CPThemeStateBezeled | CPThemeStateHighlighted],
[@"bezel-color", bezelColor["disabled"], CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelColor["highlighted"], [CPThemeStateBezeled, CPThemeStateHighlighted]],
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"text-color", textColor],
[@"text-color", textHighlightedColor, CPThemeStateHighlighted],
@@ -964,8 +964,8 @@ var themedButtonValues = nil,
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
[@"bezel-color", nil, CPThemeStateBordered],
[@"bezel-color", arrowImage, CPThemeStateBordered | CPThemeStateHovered],
[@"bezel-color", arrowImageHiglighted, CPThemeStateBordered | CPThemeStateHovered | CPThemeStateHighlighted],
[@"bezel-color", arrowImage, [CPThemeStateBordered, CPThemeStateHovered]],
[@"bezel-color", arrowImageHiglighted, [CPThemeStateBordered, CPThemeStateHovered, CPThemeStateHighlighted]],
[@"min-size", CGSizeMake(7.0, 6.0)],
[@"max-size", CGSizeMake(7.0, 6.0)],
@@ -987,15 +987,15 @@ var themedButtonValues = nil,
themeValues =
[
[@"bezel-color", bezelColor, CPThemeStateBordered | CPThemeStateHovered],
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color", bezelColor, [CPThemeStateBordered, CPThemeStateHovered]],
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color", bezelHighlightedColor, [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"min-size", CGSizeMake(8.0, 8.0)],
[@"max-size", CGSizeMake(8.0, 8.0)],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"offset", CGPointMake(16, 6), CPThemeStateBordered]
];
@@ -1049,36 +1049,36 @@ var themedButtonValues = nil,
overrides =
[
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPComboBoxStateButtonBordered | CPThemeStateEditing],
[@"bezel-color", bezelColor["disabled"], CPThemeStateBezeled | CPComboBoxStateButtonBordered | CPThemeStateDisabled],
[@"bezel-color", bezelColor["@"], [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
[@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing]],
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled]],
[@"bezel-color", bezelNoBorderColor["@"], CPThemeStateBezeled],
[@"bezel-color", bezelNoBorderFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelNoBorderColor["disabled"], CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelNoBorderFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-color", bezelNoBorderColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
[@"border-inset", CGInsetMake(3.0, 3.0, 3.0, 3.0), CPThemeStateBezeled],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), CPThemeStateBezeled | CPThemeStateEditing | CPComboBoxStateButtonBordered],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeStateBezeled | CPThemeStateDisabled | CPComboBoxStateButtonBordered],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing, CPComboBoxStateButtonBordered]],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), [CPThemeStateBezeled, CPThemeStateDisabled, CPComboBoxStateButtonBordered]],
[@"bezel-inset", CGInsetMake(0.0, 4.0, 0.0, 1.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-inset", CGInsetMake(3.0, 5.0, 3.0, 4.0), CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-inset", CGInsetMake(0.0, 4.0, 0.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing]],
[@"bezel-inset", CGInsetMake(3.0, 5.0, 3.0, 4.0), [CPThemeStateBezeled, CPThemeStateDisabled]],
// The right border inset has to make room for the focus ring and popup button
[@"content-inset", CGInsetMake(9.0, 26.0, 7.0, 10.0), CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"content-inset", CGInsetMake(9.0, 26.0, 7.0, 10.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
[@"content-inset", CGInsetMake(9.0, 26.0, 7.0, 10.0), CPThemeStateBezeled],
[@"content-inset", CGInsetMake(9.0, 24.0, 7.0, 10.0), CPThemeStateBezeled | CPThemeStateEditing],
[@"content-inset", CGInsetMake(9.0, 24.0, 7.0, 10.0), [CPThemeStateBezeled, CPThemeStateEditing]],
[@"popup-button-size", CGSizeMake(21.0, 23.0), CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"popup-button-size", CGSizeMake(21.0, 23.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
[@"popup-button-size", CGSizeMake(17.0, 23.0), CPThemeStateBezeled],
// Because combo box uses a three-part bezel, the height is fixed
[@"min-size", CGSizeMake(0, 31.0)],
[@"max-size", CGSizeMake(-1, 31.0)],
[@"text-color", regularDisabledTextColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"text-color", regularDisabledTextColor, [CPThemeStateBordered, CPThemeStateDisabled]],
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBordered, CPThemeStateDisabled]],
];
[self registerThemeValues:overrides forView:combo inherit:themedTextFieldValues];
@@ -1105,10 +1105,10 @@ var themedButtonValues = nil,
[@"image", imageNormal, CPThemeStateNormal],
[@"image", imageSelected, CPThemeStateSelected],
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"image-offset", CPRadioImageOffset],
[@"text-color", regularDisabledTextColor, CPThemeStateDisabled],
@@ -1140,10 +1140,10 @@ var themedButtonValues = nil,
[@"image", imageNormal, CPThemeStateNormal],
[@"image", imageSelected, CPThemeStateSelected],
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"image-offset", CPCheckBoxImageOffset],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal],
@@ -1174,8 +1174,8 @@ var themedButtonValues = nil,
themeValues =
[
[@"image", mixedImage, CPButtonStateMixed],
[@"image", mixedHighlightedImage, CPButtonStateMixed | CPThemeStateHighlighted],
[@"image", mixedDisabledImage, CPButtonStateMixed | CPThemeStateDisabled],
[@"image", mixedHighlightedImage, [CPButtonStateMixed, CPThemeStateHighlighted]],
[@"image", mixedDisabledImage, [CPButtonStateMixed, CPThemeStateDisabled]],
[@"image-offset", CPCheckBoxImageOffset, CPButtonStateMixed],
[@"max-size", CGSizeMake(-1.0, -1.0)]
];
@@ -1238,29 +1238,29 @@ var themedButtonValues = nil,
[
[@"center-segment-bezel-color", centerBezelColor, CPThemeStateNormal],
[@"center-segment-bezel-color", inactiveCenterBezelColor, CPThemeStateDisabled],
[@"center-segment-bezel-color", inactiveHighlightedCenterBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"center-segment-bezel-color", inactiveHighlightedCenterBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"center-segment-bezel-color", centerHighlightedBezelColor, CPThemeStateSelected],
[@"center-segment-bezel-color", pushedCenterBezelColor, CPThemeStateHighlighted],
[@"center-segment-bezel-color", pushedHighlightedCenterBezelColor, CPThemeStateHighlighted | CPThemeStateSelected],
[@"center-segment-bezel-color", pushedHighlightedCenterBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"divider-bezel-color", dividerBezelColor, CPThemeStateNormal],
[@"divider-bezel-color", inactiveDividerBezelColor, CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"divider-bezel-color", dividerHighlightedBezelColor, CPThemeStateSelected],
[@"left-segment-bezel-color", leftBezelColor, CPThemeStateNormal],
[@"left-segment-bezel-color", inactiveLeftBezelColor, CPThemeStateDisabled],
[@"left-segment-bezel-color", inactiveHighlightedLeftBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"left-segment-bezel-color", inactiveHighlightedLeftBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"left-segment-bezel-color", leftHighlightedBezelColor, CPThemeStateSelected],
[@"left-segment-bezel-color", pushedLeftBezelColor, CPThemeStateHighlighted],
[@"left-segment-bezel-color", pushedHighlightedLeftBezelColor, CPThemeStateHighlighted | CPThemeStateSelected],
[@"left-segment-bezel-color", pushedHighlightedLeftBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"right-segment-bezel-color", rightBezelColor, CPThemeStateNormal],
[@"right-segment-bezel-color", inactiveRightBezelColor, CPThemeStateDisabled],
[@"right-segment-bezel-color", inactiveHighlightedRightBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"right-segment-bezel-color", inactiveHighlightedRightBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"right-segment-bezel-color", rightHighlightedBezelColor, CPThemeStateSelected],
[@"right-segment-bezel-color", pushedRightBezelColor, CPThemeStateHighlighted],
[@"right-segment-bezel-color", pushedHighlightedRightBezelColor, CPThemeStateHighlighted | CPThemeStateSelected],
[@"right-segment-bezel-color", pushedHighlightedRightBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
[@"content-inset", CGInsetMake(0.0, 4.0, 0.0, 4.0), CPThemeStateNormal],
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
@@ -1272,14 +1272,14 @@ var themedButtonValues = nil,
// The "default" button state is the same theme color as the "selected" segmented control state, so we can use
// the same text theme values.
[@"text-color", defaultTextColor, CPThemeStateSelected],
[@"text-color", defaultDisabledTextColor, CPThemeStateDisabled | CPThemeStateSelected],
[@"text-color", defaultDisabledTextColor, [CPThemeStateDisabled, CPThemeStateSelected]],
[@"text-shadow-color", regularTextShadowColor],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateDisabled],
[@"text-shadow-color", defaultDisabledTextShadowColor, CPThemeStateDisabled | CPThemeStateSelected],
[@"text-shadow-color", defaultDisabledTextShadowColor, [CPThemeStateDisabled, CPThemeStateSelected]],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.2], CPThemeStateSelected],
[@"text-shadow-offset", CGSizeMake(0.0, 1.0)],
[@"text-shadow-offset", CGSizeMake(0.0, 1.0), CPThemeStateSelected],
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), CPThemeStateSelected | CPThemeStateDisabled],
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), [CPThemeStateSelected, CPThemeStateDisabled]],
[@"line-break-mode", CPLineBreakByTruncatingTail],
[@"divider-thickness", 1.0],
@@ -1365,7 +1365,7 @@ var themedButtonValues = nil,
[
[@"track-width", 5.0],
[@"track-color", trackColor, CPThemeStateVertical],
[@"track-color", trackDisabledColor, CPThemeStateVertical | CPThemeStateDisabled],
[@"track-color", trackDisabledColor, [CPThemeStateVertical, CPThemeStateDisabled]],
[@"knob-size", CGSizeMake(21.0, 21.0)],
[@"knob-color", knobColor],
@@ -1400,12 +1400,12 @@ var themedButtonValues = nil,
themedCircularSliderValues =
[
[@"track-color", trackColor, CPThemeStateCircular],
[@"track-color", trackDisabledColor, CPThemeStateCircular | CPThemeStateDisabled],
[@"track-color", trackDisabledColor, [CPThemeStateCircular, CPThemeStateDisabled]],
[@"knob-size", CGSizeMake(5.0, 5.0), CPThemeStateCircular],
[@"knob-color", knobColor, CPThemeStateCircular],
[@"knob-color", knobHighlightedColor, CPThemeStateCircular | CPThemeStateHighlighted],
[@"knob-color", knobDisabledColor, CPThemeStateCircular | CPThemeStateDisabled]
[@"knob-color", knobHighlightedColor, [CPThemeStateCircular, CPThemeStateHighlighted]],
[@"knob-color", knobDisabledColor, [CPThemeStateCircular, CPThemeStateDisabled]]
];
[self registerThemeValues:themedCircularSliderValues forView:slider];
@@ -1500,7 +1500,7 @@ var themedButtonValues = nil,
[@"background-color", pressed, CPThemeStateHighlighted],
[@"background-color", highlighted, CPThemeStateSelected],
[@"background-color", highlightedPressed, CPThemeStateHighlighted | CPThemeStateSelected]
[@"background-color", highlightedPressed, [CPThemeStateHighlighted, CPThemeStateSelected]]
];
[self registerThemeValues:themedColumnHeaderValues forView:header];
@@ -1708,10 +1708,10 @@ var themedButtonValues = nil,
[
[@"bezel-color-up-button", bezelUp["@"], CPThemeStateBordered],
[@"bezel-color-down-button", bezelDown["@"], CPThemeStateBordered],
[@"bezel-color-up-button", bezelUp["disabled"], CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color-down-button", bezelDown["disabled"], CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color-up-button", bezelUp["highlighted"], CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color-down-button", bezelDown["highlighted"], CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color-up-button", bezelUp["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color-down-button", bezelDown["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]],
[@"bezel-color-up-button", bezelUp["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"bezel-color-down-button", bezelDown["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"min-size", CGSizeMake(25.0, 25.0)],
[@"up-button-size", CGSizeMake(25.0, 13.0)],
[@"down-button-size", CGSizeMake(25.0, 12.0)]
@@ -1800,9 +1800,9 @@ var themedButtonValues = nil,
[@"content-border-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBordered],
[@"content-border-color", contentBorderColor, CPThemeStateBordered],
[@"bezel-color", bezelColor["highlighted"], CPThemeStateBordered | CPThemeStateHighlighted],
[@"bezel-color", bezelColor["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]],
[@"bezel-color", bezelColor["disabled"], CPThemeStateBordered | CPThemeStateDisabled]
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]]
];
[self registerThemeValues:themedColorWellValues forView:colorWell];
@@ -2627,13 +2627,13 @@ var themedButtonValues = nil,
[
[@"image", imageNormal, CPThemeStateNormal],
[@"image", imageSelected, CPThemeStateSelected],
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
[@"image", mixedImage, CPButtonStateMixed],
[@"image", mixedHighlightedImage, CPButtonStateMixed | CPThemeStateHighlighted],
[@"image", mixedDisabledImage, CPButtonStateMixed | CPThemeStateDisabled]
[@"image", mixedHighlightedImage, [CPButtonStateMixed, CPThemeStateHighlighted]],
[@"image", mixedDisabledImage, [CPButtonStateMixed, CPThemeStateDisabled]]
];
[self registerThemeValues:[self defaultThemeOverridesAddedTo:hudSpecific] forView:button inherit:themedCheckBoxValues];
@@ -2667,10 +2667,10 @@ var themedButtonValues = nil,
[
[@"image", imageNormal, CPThemeStateNormal],
[@"image", imageSelected, CPThemeStateSelected],
[@"image", imageSelectedHighlighted, CPThemeStateSelected | CPThemeStateHighlighted],
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled]
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]]
];
[self registerThemeValues:[self defaultThemeOverridesAddedTo:hudSpecific] forView:button inherit:themedRadioButtonValues];
+2 -2
View File
@@ -171,9 +171,9 @@ var _CPAutocompleteMenuMaximumHeight = 307;
var dataView = [tableColumn dataView],
fontNormal = [dataView valueForThemeAttribute:@"font" inState:CPThemeStateTableDataView],
fontSelected = [dataView valueForThemeAttribute:@"font" inState:CPThemeStateTableDataView | CPThemeStateSelectedDataView],
fontSelected = [dataView valueForThemeAttribute:@"font" inState:[CPThemeStateTableDataView, CPThemeStateSelectedDataView]],
contentInsetNormal = [dataView valueForThemeAttribute:@"content-inset" inState:CPThemeStateTableDataView],
contentInsetSelected = [dataView valueForThemeAttribute:@"content-inset" inState:CPThemeStateTableDataView | CPThemeStateSelectedDataView];
contentInsetSelected = [dataView valueForThemeAttribute:@"content-inset" inState:[CPThemeStateTableDataView, CPThemeStateSelectedDataView]];
var mergedString = contentArray.join("\n");
+4 -1
View File
@@ -172,7 +172,10 @@ CFHTTPRequest.prototype.responseXML = function()
{
var responseXML = this._nativeRequest.responseXML;
if (responseXML && (NativeRequest === window.XMLHttpRequest))
// Internet Explorer will return a non-null but empty request.responseXML if the response
// content type wasn't "text/html", so also check that responseXML.documentRoot is set.
// Otherwise fall back to regular parsing.
if (responseXML && (NativeRequest === window.XMLHttpRequest) && responseXML.documentRoot)
return responseXML;
return parseXML(this.responseText());
+2 -2
View File
@@ -320,8 +320,8 @@ var XML_XML = "xml",
#define IS_WHITESPACE(anXMLNode) (NODE_TYPE(anXMLNode) === 8 || NODE_TYPE(anXMLNode) === 3)
#define IS_DOCUMENTTYPE(anXMLNode) (NODE_TYPE(anXMLNode) === 10)
#define PLIST_NEXT_SIBLING(anXMLNode) while ((anXMLNode = NEXT_SIBLING(anXMLNode)) && IS_WHITESPACE(anXMLNode)) ;
#define PLIST_FIRST_CHILD(anXMLNode) anXMLNode = FIRST_CHILD(anXMLNode); if (anXMLNode !== NULL && IS_WHITESPACE(anXMLNode)) PLIST_NEXT_SIBLING(anXMLNode)
#define PLIST_NEXT_SIBLING(anXMLNode) while ((anXMLNode = NEXT_SIBLING(anXMLNode)) && IS_WHITESPACE(anXMLNode));
#define PLIST_FIRST_CHILD(anXMLNode) { anXMLNode = FIRST_CHILD(anXMLNode); if (anXMLNode !== NULL && IS_WHITESPACE(anXMLNode)) PLIST_NEXT_SIBLING(anXMLNode) }
var textContent = function(nodes)
{
+10
View File
@@ -132,6 +132,16 @@
[self assert:CPMixedState equals:[button state] message:@"Mixed state is allowed, state should be CPMixedState"];
}
- (void)testThemeStateWhenSettingObjectValue
{
[button unsetThemeState:[button themeState]];
[button setObjectValue:CPOnState];
[self assert:String(CPThemeStateSelected) equals:String([button themeState]) message:@"object should be in the selected themestate"];
[button setObjectValue:CPOffState];
[self assert:String(CPThemeStateNormal) equals:String([button themeState]) message:@"object should be in the normal themestate"];
}
- (void)testThemeAttributes
{
var attributes = [CPButton themeAttributes];
+70
View File
@@ -0,0 +1,70 @@
@import <AppKit/CPTheme.j>
@implementation CPThemeTest : OJTestCase
{
}
- (void)testCreatingThemeState
{
var themeState = new ThemeState({'test': true, 'test1': true});
[self assertTrue:themeState._stateNames['test'] message:"Creating a new ThemeState sets the statenames correctly."];
[self assertTrue:themeState._stateNames['test1'] message:"Creating a new ThemeState sets the statenames correctly."];
[self assertTrue:(themeState._stateNameCount === 2) message:"Creating a new ThemeState sets count of state names correctly."];
[self assertTrue:(String(themeState) === "test+test1") message:"Creating a new ThemeState sets its string value to its sorted state names"];
themeState = new ThemeState();
[self assertTrue:themeState._stateNames['normal'] message:"Creating a new ThemeState with no states sets the ThemeState to be a normal themestate"];
[self assertTrue:(themeState._stateNameCount === 1) message:"Creating a new ThemeState with no states creates a new ThemeState with one state (normal)."];
themeState = new ThemeState({'boo': true, 'normal': true});
[self assertTrue:themeState._stateNames['boo'] message:"Creating a new combined ThemeState with normal and something else only sets the other theme state."];
[self assertFalse:themeState._stateNames['normal'] message:"Creating a new combined ThemeState with normal and something else only sets the other theme state."];
[self assertTrue:(themeState._stateNameCount === 1) message:"Creating a new ThemeState with no states creates a new ThemeState with one state (normal)."];
}
- (void)testCreatingThemeStateWithCPThemeState
{
var themeState1 = CPThemeState('normal');
var themeState2 = CPThemeState('normal');
[self assertTrue:(themeState1 === themeState2) message:"Creating two themestates with the same string returns the same object for both"];
themeState1 = CPThemeState('smee+blee');
themeState2 = CPThemeState('blee+smee');
[self assertTrue:(themeState1 === themeState2) message:"Creating two combined themestates with the same component themestates returns the same object for both"];
var themeState3 = CPThemeState('hello', themeState1, themeState2);
[self assertTrue:(String(themeState3) === "blee+hello+smee") message:"Can create a combined themestate with both string and object arguments"];
var themeState4 = CPThemeState(themeState3);
[self assertTrue:(themeState4 === themeState3) message:"Creating a new ThemeState off an old one returns the same object"];
var themeState5 = CPThemeState('a', 'theme', 'state');
[self assertTrue:(String(themeState5) === 'a+state+theme') message:"Creating a new ThemeState using multiple strings works."];
var themeState6 = CPThemeState('a')
var themeState7 = CPThemeState('a', 'b')
[self assertTrue:(String(CPThemeState(themeState6, themeState7)) === 'a+b') message:"Creating a new ThemeState where the same state repeats itself does not result in the state being in the new themestate twice"];
}
- (void)testThemeAttributeValueForState
{
var themeAttribute = [[_CPThemeAttribute alloc] initWithName:@"test" defaultValue:5];
[self assertTrue:([themeAttribute valueForState:CPThemeState("aState")] == 5) message:"Return the default value for the theme attribute if the theme attribute has no value defined for the given state"];
[themeAttribute setValue:7 forState:CPThemeState("aState")];
[self assertTrue:([themeAttribute valueForState:CPThemeState("aState")] == 7) message:"Return the correct value for the state if the state is defined"];
[themeAttribute setValue:8 forState:CPThemeState('normal')];
[self assertTrue:([themeAttribute valueForState:CPThemeState("aState1")] == 8) message:"Return the normal value for the state if the theme attribute has no value defined for the given state but has a value for the normal state defined"];
[themeAttribute setValue:10 forState:CPThemeState('aState3+aState4')];
[self assertTrue:([themeAttribute valueForState:CPThemeState("aState3")] == 8) message:"Return the normal value for the state if the state is only a partial match on the theme attributes defined states"];
[self assertTrue:([themeAttribute valueForState:CPThemeState("aState4+aState3")] == 10) message:"Correctly match combined states on the theme attribute"];
[themeAttribute setValue:9 forState:CPThemeState('aState3')];
[self assertTrue:([themeAttribute valueForState:CPThemeState("aState8+aState3+aState4")] == 10) message:"Return the largest partial subset match for a combined state that isn't a perfect match"];
}
@end
+69 -6
View File
@@ -42,20 +42,83 @@
[self assert:undefined same:[_CPDisplayServer run]];
}
- (void)testThemeState
- (void)testHasThemeState
{
[self assertTrue:[view hasThemeState:CPThemeStateNormal] message:@"CPView should initialy have CPThemeStateNormal"];
[self assertFalse:[view hasThemeState:CPThemeStateDisabled] message:@"view should be disabled"];
[self assertTrue:[view hasThemeState:CPThemeStateNormal] message:@"By default, CPView should be in CPThemeStateNormal"];
view._themeState = CPThemeState(CPThemeStateDisabled, CPThemeStateBordered);
[self assertTrue:[view hasThemeState:CPThemeStateDisabled] message:@"CPView should be in state CPThemeStateDisabled"];
[self assertTrue:[view hasThemeState:CPThemeStateBordered] message:@"CPView should be in state CPThemeStateBordered"];
[self assertTrue:[view hasThemeState:CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)] message:@"CPView should be in the combined state of CPThemeStateDisabled and CPThemeStateBordered"];
[self assertTrue:[view hasThemeState:[CPThemeStateBordered, CPThemeStateDisabled]] message:@"hasThemeState works with an array argument"];
[self assertFalse:[view hasThemeState:CPThemeState(CPThemeStateNormal)] message:@"CPView should not be in CPThemeStateNormal"];
}
- (void)testSetThemeState
{
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should initialy have CPThemeStateNormal"];
[view setThemeState:CPThemeStateDisabled];
[self assertTrue:[view hasThemeState:CPThemeStateDisabled] message:@"The view should be CPThemeStateDisabled"];
[self assert:String(CPThemeStateDisabled) equals:String([view themeState]) message:@"The view should be CPThemeStateDisabled"];
[view setThemeState:CPThemeStateHighlighted];
[self assertTrue:[view hasThemeState:CPThemeStateHighlighted] message:@"Theme state should be CPThemeStateHighlighted"];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)) equals:String([view themeState]) message:@"Theme state should be CPThemeStateHighlighted and CPThemeStateDisabled"];
[view setThemeState:CPThemeStateNormal | CPThemeStateHighlighted];
[view unsetThemeState:[view themeState]];
[view setThemeState:CPThemeState(CPThemeStateNormal, CPThemeStateHighlighted)];
[self assertFalse:[view hasThemeState:CPThemeStateNormal] message:@"CPThemeStateNormal cannot exist as part of a compound state"];
[self assert:String([view themeState]) equals:String(CPThemeStateHighlighted) message:@"The view should be CPThemeStateHighlighted"];
[view setThemeState:CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)];
[self assertTrue:[view hasThemeState:CPThemeStateHighlighted] message:@"The view should be CPThemeStateHighlighted"];
[self assertTrue:[view hasThemeState:CPThemeStateDisabled] message:@"The view should be CPThemeStateDisabled"];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)) equals:String([view themeState]) message:@"The view should be in the combined state of CPThemeStateDisabled and CPThemeStateHighlighted"];
[view unsetThemeState:[view themeState]];
[view setThemeState:[CPThemeStateSelected, CPThemeStateDisabled]];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)) equals:String([view themeState]) message:@"setThemeState works with array argument"];
}
- (void)testUnsetThemeState
{
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should initialy have CPThemeStateNormal"];
[view unsetThemeState:CPThemeStateNormal];
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView always be in CPThemeStateNormal even if you try to unset it"];
[view setThemeState:CPThemeStateDisabled];
[view unsetThemeState:CPThemeStateDisabled];
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should be in CPThemeStateNormal when all other theme states have been unset from it"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)];
[view unsetThemeState:CPThemeStateDisabled];
[self assert:String(CPThemeStateHighlighted) equals:String([view themeState]) message:"@CPView should have the remaining state when one of its combined states is unset"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateBordered)];
[view unsetThemeState:CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDisabled)];
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should be able to unset a combined theme state"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateBordered)];
[view unsetThemeState:[CPThemeStateBordered, CPThemeStateHighlighted]];
[self assert:String(CPThemeStateDisabled) equals:String([view themeState]) message:@"unsetThemeState works with array argument"];
[view setThemeState:CPThemeStateDisabled];
[view unsetThemeState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[self assert:String(CPThemeStateNormal) equals:String([view themeState]) message:@"CPView should be able to unset a combined theme state that has more theme states than the view currently has"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)];
var returnValue = [view unsetThemeState:[CPThemeStateDisabled, CPThemeStateHighlighted]];
[self assert:String(CPThemeStateBordered) equals:String([view themeState]) message:@"CPView should be able to unset a combined theme state that has not entirely overlapping themestates"];
[self assertTrue:returnValue message:@"When unsetThemeState successfully unsets anything, it return YES"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)];
var returnValue = [view unsetThemeState:[CPThemeStateSelected, CPThemeStateHighlighted]];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)) equals:String([view themeState]) message:@"CPView not unset any theme states it does not have"];
[self assertFalse:returnValue message:@"When unsetThemeState doesn't unset anything, it returns NO"];
[view setThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)];
var returnValue = [view unsetThemeState:null];
[self assert:String(CPThemeState(CPThemeStateDisabled, CPThemeStateBordered)) equals:String([view themeState]) message:@"Trying to unset a null themestate does not change the current themestate of the view"];
[self assertFalse:returnValue message:@"Trying to unset a null themestate returns false"];
}
- (void)testThemeAttributes
@@ -44,7 +44,7 @@
[self setText:value];
}
- (void)setThemeState:(CPThemeState)state
- (void)setThemeState:(ThemeState)state
{
if (state === CPThemeStateSelectedDataView)
{
@@ -55,7 +55,7 @@
[super setThemeState:state];
}
- (void)unsetThemeState:(CPThemeState)state
- (void)unsetThemeState:(ThemeState)state
{
if (state === CPThemeStateSelectedDataView)
{
+1 -1
View File
@@ -113,7 +113,7 @@ var BrowserColumnTheme = 0,
var value = [theme valueForAttributeWithName:[attribute name] inState:state forClass:className];
[valueLabel setStringValue:[SCString stringWithTemplate:ValueLabelTemplate, [theme name], className, [attribute name], CPThemeStateName(state)]]
[valueLabel setStringValue:[SCString stringWithTemplate:ValueLabelTemplate, [theme name], className, [attribute name], String(state)]]
[self showValueDescription:value];
}
+53
View File
@@ -25,4 +25,57 @@ var FILE = require("file"),
[self assert:[[CPDate alloc] initWithString:"2012-01-01 10:00:00 +0100"] equals:date];
}
- (void)testPropertyListFromXMLShouldHandleEmptyXMLGracefully {
// rhino can't parse empty XML documents
if (system.engine !== "rhino") {
var XML = "<?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\">",
object = CFPropertyList.propertyListFromXML(XML);
[self assert:object equals:null];
}
}
- (void)testPropertyListFromXMLShouldHandleEmptierXMLGracefully {
// rhino can't parse empty XML documents
if (system.engine !== "rhino") {
var XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>",
object = CFPropertyList.propertyListFromXML(XML);
[self assert:object equals:null];
}
}
- (void)testPropertyListFromXMLShouldHandleEmptiestXMLGracefully {
// rhino can't parse empty XML documents
if (system.engine !== "rhino") {
var XML = "",
object = CFPropertyList.propertyListFromXML(XML);
[self assert:object equals:null];
}
}
- (void)testPropertyListFromXMLShouldParseNiceAndCleanXML {
var XML = "<?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>CopyAndPaste</string><key>CPBundleVersion</key><string>1.0</string><key>CPHumanReadableCopyright</key><string>Copyright \u00a9 2013, SlevenBits, Ltd. All rights reserved.</string></dict></plist>",
object = CFPropertyList.propertyListFromXML(XML);
[self assert:[object valueForKey:"Main cib file base name"] equals:"MainMenu.cib"];
[self assert:[object valueForKey:"CPBundleName"] equals:"CopyAndPaste"];
[self assert:[object valueForKey:"CPBundleVersion"] equals:"1.0"];
[self assert:[object valueForKey:"CPHumanReadableCopyright"] equals:"Copyright \u00a9 2013, SlevenBits, Ltd. All rights reserved."];
[self assert:[object count] equals:4];
}
- (void)testPropertyListFromXMLShouldIgnoreWhiteSpace{
var XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--Some really fab XML coming here--> <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> <!--Get ready, this will be great--> \n<plist version=\"1.0\"> \n<dict>\n\t<key>Main cib file base name</key>\n\t<string>MainMenu.cib</string>\n\t <key>CPBundleName</key>\n\t<string>CopyAndPaste</string>\n <key>CPBundleVersion</key>\n <string>1.0</string>\n <key>CPHumanReadableCopyright</key>\n <string>Copyright \u00a9 2013, SlevenBits, Ltd. All rights reserved.</string>\n</dict>\n</plist>\n",
// feed in preparsed XML to ensure we preserve whitespace for purposes of this test
object = CFPropertyList.propertyListFromXML(new window.DOMParser().parseFromString(XML, "text/xml"));
[self assert:[object valueForKey:"Main cib file base name"] equals:"MainMenu.cib"];
[self assert:[object valueForKey:"CPBundleName"] equals:"CopyAndPaste"];
[self assert:[object valueForKey:"CPBundleVersion"] equals:"1.0"];
[self assert:[object valueForKey:"CPHumanReadableCopyright"] equals:"Copyright \u00a9 2013, SlevenBits, Ltd. All rights reserved."];
[self assert:[object count] equals:4];
}
@end
+102 -108
View File
@@ -116,6 +116,7 @@ div.qindex, div.navtab {
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
background: white;
}
div.qindex+table {
@@ -175,7 +176,11 @@ a.elRef {
}
a.code {
color: #4765A1;
color: #8AACE5;
}
a.code:visited {
color: #8AACE5;
}
a.codeRef {
@@ -188,24 +193,33 @@ dl.el {
margin-left: -1cm;
}
.fragment {
margin-top: 20px;
background-color: #27292C;
width: 100%;
border-radius: 3px;
}
.fragment .line:first-child {
padding-top: 20px;
}
.fragment .line {
font-family: Consolas, Courier, monospace, fixed;
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
font-size: 11px;
margin-bottom: 3px;
color: #d4d4d4;
}
.fragment .lineno {
color: #d4d4d4;
color: #555;
margin-right: 10px;
}
.fragment .lineno a {
color: #d4d4d4;
color: #777;
}
pre.fragment {
@@ -221,21 +235,14 @@ pre.fragment {
}
div.ah {
background-color: black;
background-color: #333;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px;
padding: 0.2em;
border: solid thin #333;
border-radius: 0.5em;
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
box-shadow: 2px 2px 3px #999;
-webkit-box-shadow: 2px 2px 3px #999;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
background-color: #F6F6F6;
}
div.groupHeader {
@@ -252,8 +259,8 @@ div.groupText {
body {
background-color: white;
color: black;
margin: 0;
color: #333;
margin: 0;
}
div.contents {
@@ -301,7 +308,7 @@ table tr.memlist > td {
tr.memlist td {
font-family: Consolas, "Lucida Console", Courier, monospace;
padding: .25em 0;
border-bottom: 1px solid #eee;
border-bottom: 1px solid #F6F6F6;
}
/* Don't show the [static] column in full member list */
@@ -340,16 +347,18 @@ address.footer {
img.footer {
border: 0px;
vertical-align: middle;
height: 15px;
margin-top: -5px;
}
/* @group Code Colorization */
span.keyword {
color: #008000
color: #D67C7B
}
span.keywordtype {
color: #604020
color: #C0A7C6
}
span.keywordflow {
@@ -357,7 +366,7 @@ span.keywordflow {
}
span.comment {
color: #A085E4
color: #6A6C73
}
span.preprocessor {
@@ -365,7 +374,7 @@ span.preprocessor {
}
span.stringliteral {
color: #002080
color: #C2C67F;
}
span.charliteral {
@@ -427,7 +436,7 @@ th.dirtab {
hr {
height: 0px;
border: none;
border-top: 2px solid #ddd;
border-top: 1px solid #ddd;
margin: 1em 0;
}
@@ -458,7 +467,7 @@ table.memberdecls {
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #f3f3f3;
border-top: 1px solid #F3F3F3;
}
.memItemLeft, .memTemplItemLeft {
@@ -513,50 +522,27 @@ table.memberdecls {
}
.memproto, dl.reflist dt {
border-top: 1px solid #BDBDBD;
border-left: 1px solid #BDBDBD;
border-right: 1px solid #BDBDBD;
padding: 6px 0px 6px 0px;
color: #333;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
/* opera specific markup */
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
border-top-right-radius: 8px;
border-top-left-radius: 8px;
/* firefox specific markup */
-moz-box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 5px;
-moz-border-radius-topright: 3px;
-moz-border-radius-topleft: 3px;
/* webkit specific markup */
-webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 3px;
-webkit-border-top-left-radius: 3px;
background-color: #E2E2E2;
font-weight: normal;
background-color: #F6F6F6;
padding-left: 9px;
}
.memdoc > p {
margin-top: 0;
}
.memdoc > p:last-child {
color: #AAAAAA;
font-size: 80%;
}
.memdoc, dl.reflist dd {
border-bottom: 1px solid #BDBDBD;
border-left: 1px solid #BDBDBD;
border-right: 1px solid #BDBDBD;
border-bottom: 1px solid #F6F6F6;
border-left: 1px solid #F6F6F6;
border-right: 1px solid #F6F6F6;
background-color: white;
border-top-width: 0;
/* opera specific markup */
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.15);
/* firefox specific markup */
-moz-border-radius-bottomleft: 3px;
-moz-border-radius-bottomright: 3px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 5px;
/* webkit specific markup */
-webkit-border-bottom-left-radius: 3px;
-webkit-border-bottom-right-radius: 3px;
-webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.15);
padding: .8em 12px 0 12px;
}
@@ -595,6 +581,15 @@ dl.reflist dt {
color: #602020;
white-space: nowrap;
}
.params .paramname {
color: #602020 !important;
white-space: nowrap;
text-align: right;
font-family: Consolas, "Lucida Console", Courier, monospace;
padding: 3px;
}
.paramname em {
font-style: normal;
}
@@ -751,12 +746,6 @@ table.fieldtable {
margin-bottom: 10px;
border: 1px solid #A9B9D8;
border-spacing: 0px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
}
.fieldtable td, .fieldtable th {
@@ -788,12 +777,6 @@ table.fieldtable {
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
-moz-border-radius-topleft: 4px;
-moz-border-radius-topright: 4px;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom: 1px solid #A9B9D8;
}
@@ -811,12 +794,11 @@ table.fieldtable {
.navpath ul
{
font-size: 11px;
background: -moz-linear-gradient(-90deg, whiteSmoke, #CCC);
background: -webkit-gradient(linear, left top, left bottom, from(whiteSmoke), to(#CCC));
background-color: white;
height:30px;
line-height:30px;
color:#333;
border:solid 1px #CCC;
border:solid 1px #f3f3f3;
overflow:hidden;
margin:0px;
padding:0px;
@@ -824,7 +806,7 @@ table.fieldtable {
.navpath li
{
list-style-type:none;
list-style-type: none;
float:left;
padding-left:10px;
padding-right: 15px;
@@ -843,6 +825,7 @@ table.fieldtable {
color: #333;
}
.navpath li.navelem a:hover
{
color:#6985BC;
@@ -858,7 +841,7 @@ table.fieldtable {
background-image:none;
background-repeat:no-repeat;
background-position:right;
color:#374E7C;
color:#aaa;
font-size: 8pt;
}
@@ -902,17 +885,14 @@ div.header
{
background-color: #F9FAFC;
margin: 0px;
border-bottom: 1px solid #C5CFE5;
border-bottom: 1px solid #eaeaea;
}
div.headertitle
{
padding: 10px 5px 10px 20px;
background: #333;
background: -moz-linear-gradient(-90deg, #444, #333);
background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#333));
color: white;
text-shadow: -1px -1px black;
background-color: #f6f6f6;
color: #333;
min-height: 36px;
}
@@ -977,16 +957,24 @@ dl.bug
border-collapse: separate;
}
#projectlogo img
#projectlogo
{
border: 0px none;
max-height: 55px;
padding-left: 5px;
margin-top: 8px;
display: block;
float: right;
width: 200px;
}
#projectlogo img
{
max-height: 40px;
}
#projectname
{
font: 300% Tahoma, Arial,sans-serif;
font: 200% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 2px 0px;
}
@@ -1010,13 +998,9 @@ dl.bug
padding: 0px;
margin: 0px;
width: 100%;
border-bottom: 1px solid #CCC;
color: white;
font-weight: bold;
text-shadow: -1px -1px black;
background: #485D77;
background: -moz-linear-gradient(-90deg, #485D77, #252D38);
background: -webkit-gradient(linear, left top, left bottom, from(#485D77), to(#252D38));
background: #FA7622;
}
.image
@@ -1093,9 +1077,8 @@ dl.citelist dd {
/* ADDITIONS */
.tabs, .tabs2, .tabs3 {
background: -moz-linear-gradient(-90deg, #fff, #eee);
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#eee));
border-bottom: 1px solid #ccc;
background: #F6F6F6 !important;
border-bottom: 1px solid #eaeaea;
width: 100%;
z-index: 101;
font-size: 100%;
@@ -1128,17 +1111,15 @@ dl.citelist dd {
display: block;
padding: 0 20px;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none;
outline: none;
background: none;
color: #444;
border-right: 1px solid #ccc;
border-right: 1px solid #eaeaea;
}
.tablist a:hover {
background: inherit;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
text-decoration: none;
text-shadow: none;
color: gray;
@@ -1164,10 +1145,9 @@ dl.citelist dd {
}
.tablist li.current a {
background: -moz-linear-gradient(-90deg, #eee, #fff);
background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#fff));
background: #ddd;
color: #444;
text-shadow: 0px 1px 1px #f2f2f2;
text-shadow: none;
}
.tabs2 li{
@@ -1191,7 +1171,7 @@ dl.citelist dd {
#nav-tree li {
white-space:nowrap;
margin:0px;
padding:0px;
padding-top: 5px;
}
#nav-tree .plus {
@@ -1199,17 +1179,23 @@ dl.citelist dd {
}
#nav-tree .selected {
background: -moz-linear-gradient(-90deg, #62B9ED, #308CD9) !important;
background: -webkit-gradient(linear, left top, left bottom, from(#62B9ED), to(#308CD9)) !important;
border-top: 1px solid #308CD9;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
background-color: #F87631 !important;
border-top: none;
background-image: none;
}
#nav-tree img {
margin:0px;
padding:0px;
border:0px;
vertical-align: middle;
-webkit-filter: grayscale(1);
width: 8px;
height: 11px;
margin-top: -4px;
}
#nav-tree .selected img {
-webkit-filter: grayscale(0);
}
#nav-tree a {
@@ -1233,7 +1219,9 @@ dl.citelist dd {
text-decoration:none;
padding:2px;
margin:0px;
color:#fff;
color: white;
text-shadow: none;
font-weight: bold;
}
#nav-tree .children_ul {
@@ -1243,17 +1231,16 @@ dl.citelist dd {
#nav-tree .item {
margin:0px;
padding:0px;
padding:0px;;
}
#nav-tree {
padding: 0px 0px;
background: #E8EAEE;
background: white;
font-size:14px;
overflow:auto;
padding-right: 0px !important;
margin-right: -5px !important;
background: #E8EAEE !important;
}
#doc-content {
@@ -1280,7 +1267,7 @@ dl.citelist dd {
}
.ui-resizable-e {
background: #CCC !important;
background: #eaeaea !important;
cursor:e-resize;
height:100%;
right:0;
@@ -1314,7 +1301,14 @@ dl.citelist dd {
right: 5px;
}
#nav-sync img {
width: 16px;
width: 10px;
height: 10px;
}
}
.mlabels-right {
visibility: hidden;
}
.groupheader {
color: #FA7622;
}
+1 -1
View File
@@ -136,7 +136,7 @@ function main(args)
value = [theme valueForAttributeWithName:attributeName inState:state forClass:className],
description = CPDescriptionOfObject(value).replace(/^/mg, " ");
colorPrint("cyan", " " + CPThemeStateName(state));
colorPrint("cyan", " " + String(state));
stream.print(description + "\n");
}
}
+3 -3
View File
@@ -113,10 +113,10 @@ var IBDefaultFontSizeTableHeader = 11.0;
if (![textColor isEqual:defaultColor])
{
var selectedColor = [self valueForDataViewThemeAttribute:@"text-color" inState:CPThemeStateTableDataView | CPThemeStateSelectedDataView];
var selectedColor = [self valueForDataViewThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)];
[dataView setValue:selectedColor forThemeAttribute:@"text-color" inState:CPThemeStateTableDataView | CPThemeStateSelectedDataView];
[dataView setValue:textColor forThemeAttribute:@"text-color" inState:CPThemeStateTableDataView | CPThemeStateSelectedDataView | CPThemeStateEditing];
[dataView setValue:selectedColor forThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)];
[dataView setValue:textColor forThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateEditing)];
}
}
+1 -1
View File
@@ -51,7 +51,7 @@
{
var theme = [Nib2Cib defaultTheme],
height = [theme valueForAttributeWithName:@"default-row-height" forClass:[CPTableView class]],
width = [theme valueForAttributeWithName:@"scroller-width" inState:CPThemeStateVertical | CPThemeStateScrollViewLegacy forClass:[CPScroller class]];
width = [theme valueForAttributeWithName:@"scroller-width" inState:CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy) forClass:[CPScroller class]];
_frame.size.height = height;
_bounds.size.height = height;