Merge pull request #2073 from mockingbird/set-backed-cptheme

Change CPThemes to use sets instead of bitmasks. Closes #2015.
This commit is contained in:
Alexander Ljungberg committed 2014-02-28 16:56:20 +00:00
commit e4a4dd3219
19 files changed
+641 -513

No files matched your search

+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:CPThemeState(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:CPThemeState(CPThemeStateNormal, CPThemeStateBordered)];
[button setValue:highlightedColor forThemeAttribute:@"bezel-color" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateBordered)];
[button setValue:disabledColor forThemeAttribute:@"bezel-color" inState:CPThemeState(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:CPThemeState(CPThemeStateNormal, CPThemeStateBordered, CPPopUpButtonStatePullsDown)];
[button setValue:highlightedColor forThemeAttribute:@"bezel-color" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateBordered, CPPopUpButtonStatePullsDown)];
[button setValue:disabledColor forThemeAttribute:@"bezel-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateBordered, CPPopUpButtonStatePullsDown)];
[self addSubview:button];
}
+17 -17
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:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)] forThemeAttribute:@"font" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)] forThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)] forThemeAttribute:@"text-shadow-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)] forThemeAttribute:@"text-shadow-offset" inState:CPThemeState(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:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"font" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"text-shadow-color" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"text-shadow-offset" inState:CPThemeState(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:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"font" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"text-shadow-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted, CPThemeStateSelected)] forThemeAttribute:@"text-shadow-offset" inState:CPThemeState(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:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)] forThemeAttribute:@"font" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)] forThemeAttribute:@"text-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)] forThemeAttribute:@"text-shadow-color" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)];
[_textField setValue:[_datePicker valueForThemeAttribute:@"tile-text-shadow-offset" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)] forThemeAttribute:@"text-shadow-offset" inState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)];
[self addSubview:_textField];
@@ -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"]);
+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.subtractThemeStates(themeState, 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] = ThemeState.subtractThemeStates(_themeStates[aSegment], CPThemeStateDisabled);
else
_themeStates[aSegment] |= CPThemeStateDisabled;
_themeStates[aSegment] = CPThemeState(_themeStates[aSegment], 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] = CPThemeState(_themeStates[aSegment], CPThemeStateHighlighted);
else
_themeStates[aSegment] &= ~CPThemeStateHighlighted;
_themeStates[aSegment] = ThemeState.subtractThemeStates(_themeStates[aSegment], 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 ? CPThemeState(themeState, 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 ? CPThemeState(themeState, 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 ? CPThemeState(themeState, 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 = CPThemeState(_themeStates[i], _themeStates[i + 1]);
borderState = (borderState & CPThemeStateSelected & ~CPThemeStateHighlighted) ? CPThemeStateSelected : CPThemeStateNormal;
borderState = (borderState.hasThemeState(CPThemeStateSelected) && !borderState.hasThemeState(CPThemeStateHighlighted)) ? CPThemeStateSelected : CPThemeStateNormal;
borderState |= _themeState & CPThemeStateDisabled;
borderState = isDisabled ? CPThemeState(borderState, 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) ? CPThemeState(_themeStates[aSegment], 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:CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)] forThemeAttribute:@"bezel-color" inState:CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)];
[_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)] forThemeAttribute:@"bezel-color" inState:CPThemeState(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:CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)] forThemeAttribute:@"bezel-color" inState:CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)];
[_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)] forThemeAttribute:@"bezel-color" inState:CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)];
}
- (void)_sizeToFit
+172 -130
View File
@@ -314,6 +314,156 @@ 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 === undefined || aState === nil || aState._stateNames === undefined)
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 (key in this._stateNames)
{
if (!this._stateNames.hasOwnProperty(key))
continue;
if (!aState._stateNames[key])
return false;
}
return true;
}
ThemeState.subtractThemeStates = function(aState1, aState2)
{
if (aState2 === undefined || aState2 === nil || aState2 === [CPNull null])
return aState1;
var newStates = {};
for (var stateName in aState1._stateNames)
{
if (!aState1._stateNames.hasOwnProperty(stateName))
continue;
if (!aState2._stateNames[stateName])
newStates[stateName] = true;
}
return ThemeState._cacheThemeState(new ThemeState(newStates));
}
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;
}
var CPThemeStates = {};
/*!
* 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] === nil || arguments[argIndex] === undefined)
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 +491,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 +550,6 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
return [_values count] > 0;
}
- (BOOL)isTrivial
{
return ([_values count] === 1) && (Number([_values allKeys][0]) === CPThemeStateNormal);
}
- (void)setValue:(id)aValue
{
_cache = {};
@@ -496,42 +577,32 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
- (id)valueForState:(CPThemeState)aState
{
var value = _cache[aState];
var stateName = String(aState);
var 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 +625,7 @@ CPThemeStateKeyWindow = CPThemeState("keyWindow");
value = nil;
}
_cache[aState] = value;
_cache[stateName] = value;
return value;
}
@@ -596,10 +667,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 +684,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 +704,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 +717,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 +726,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 +736,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];
+2 -2
View File
@@ -1394,7 +1394,7 @@ CPTokenFieldDeleteButtonType = 1;
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];
@@ -1408,7 +1408,7 @@ CPTokenFieldDeleteButtonType = 1;
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];
+7 -15
View File
@@ -2889,21 +2889,15 @@ setBoundsOrigin:
- (BOOL)hasThemeState:(CPThemeState)aState
{
// Because CPThemeStateNormal is defined as 0 we need to check for it explicitly here
if (aState === CPThemeStateNormal && _themeState === CPThemeStateNormal)
return YES;
return !!(_themeState & ((typeof aState === "string") ? CPThemeState(aState) : aState));
return _themeState.hasThemeState(aState);
}
- (BOOL)setThemeState:(CPThemeState)aState
{
var newState = (typeof aState === "string") ? CPThemeState(aState) : aState;
if (_themeState & newState)
if (_themeState.hasThemeState(aState))
return NO;
_themeState |= newState;
_themeState = CPThemeState(_themeState, aState);
[self setNeedsLayout];
[self setNeedsDisplay:YES];
@@ -2913,12 +2907,10 @@ setBoundsOrigin:
- (BOOL)unsetThemeState:(CPThemeState)aState
{
var newState = ((typeof aState === "string") ? CPThemeState(aState) : aState);
if (!(_themeState & newState))
if (!_themeState.hasThemeState(aState))
return NO;
_themeState &= ~newState;
_themeState = ThemeState.subtractThemeStates(_themeState, aState);
[self setNeedsLayout];
[self setNeedsDisplay:YES];
@@ -3361,7 +3353,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 +3444,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], CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)],
[@"bezel-color", disabledBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color", defaultBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateDefault)],
[@"bezel-color", defaultHighlightedBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault)],
[@"bezel-color", defaultDisabledBezelColor, CPThemeState(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, CPThemeState(CPThemeStateBordered, CPButtonStateBezelStyleRounded)],
[@"bezel-color", roundedHighlightedBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPButtonStateBezelStyleRounded)],
[@"bezel-color", roundedDisabledBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled, CPButtonStateBezelStyleRounded)],
[@"bezel-color", defaultRoundedBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateDefault, CPButtonStateBezelStyleRounded)],
[@"bezel-color", defaultRoundedHighlightedBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault, CPButtonStateBezelStyleRounded)],
[@"bezel-color", defaultRoundedDisabledBezelColor, CPThemeState(CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled, CPButtonStateBezelStyleRounded)],
[@"content-inset", CGInsetMake(0.0, 10.0, 0.0, 10.0), CPThemeState(CPThemeStateBordered, CPButtonStateBezelStyleRounded)],
[@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], CPThemeStateDisabled],
[@"text-color", defaultTextColor, CPThemeStateDefault],
[@"text-color", defaultDisabledTextColor, CPThemeStateDefault | CPThemeStateDisabled],
[@"text-color", defaultDisabledTextColor, CPThemeState(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, CPThemeState(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], CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6], CPThemeState(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, CPThemeState(CPPopUpButtonStatePullsDown, CPThemeStateBordered)],
[@"bezel-color", disabledColor, CPThemeState(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], CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6], CPThemeState(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, CPThemeState(CPThemeStateVertical, CPThemeStateSelected)],
[@"knob-slot-color", trackColorLight, CPThemeState(CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColorDark, CPThemeState(CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobDark)],
[@"knob-color", knobColor, CPThemeStateVertical],
[@"knob-color", knobColorLight, CPThemeStateVertical | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorDark, CPThemeStateVertical | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColorLight, CPThemeState(CPThemeStateVertical, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorDark, CPThemeState(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, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"track-border-overlay", 0.0, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobDark)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark)],
[@"increment-line-color", incrementColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"decrement-line-color", decrementColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"decrement-line-size", CGSizeMake(14.0, 11.0), CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"increment-line-size", CGSizeMake(14.0, 11.0), CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColorDark, CPThemeState(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, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateSelected)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark)],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorLegacy, CPThemeState(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, CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-color", bezelDisabledColor, CPThemeState(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, CPThemeState(CPThemeStateBezeled, CPThemeStateDisabled)],
[@"text-color", placeholderColor, CPTextFieldStatePlaceholder],
[@"text-color", placeholderColor, CPTextFieldStatePlaceholder | CPThemeStateDisabled],
[@"text-color", placeholderColor, CPThemeState(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], CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)],
[@"text-color", [CPColor blackColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateEditable)],
[@"text-color", [CPColor blackColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateEditing)],
[@"text-color", [CPColor blackColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateBezeled)],
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 5.0), CPThemeState(CPThemeStateTableDataView, CPThemeStateEditing)],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeState(CPThemeStateTableDataView, CPThemeStateEditing)],
[@"bezel-inset", CGInsetMake(-1.0, -1.0, -1.0, -1.0), CPThemeState(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], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)],
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView)],
[@"text-shadow-color", [CPColor whiteColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)],
[@"text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView)],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeState(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, CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"bezel-color", bezelFocusedColor, CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-color", bezelDisabledColor, CPThemeState(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), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"content-inset", CGInsetMake(8.0, 13.0, 7.0, 14.0), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"text-color", textDisabledColor, CPTextFieldStateRounded | CPThemeStateDisabled],
[@"text-color", placeholderColor, CPTextFieldStateRounded | CPTextFieldStatePlaceholder],
[@"text-color", textDisabledColor, CPThemeState(CPTextFieldStateRounded, CPThemeStateDisabled)],
[@"text-color", placeholderColor, CPThemeState(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), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"max-size", CGSizeMake(-1.0, 30.0), CPThemeState(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, CPThemeState(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], CPThemeState(CPThemeStateNormal, CPThemeStateDisabled)],
[@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, CPThemeState(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], CPThemeState(CPThemeStateNormal, CPThemeStateDisabled)],
[@"border-color", [CPColor colorWithCalibratedRed:100.0 / 255.0 green:154.0 / 255.0 blue:184.0 / 255.0 alpha:0.5], CPThemeState(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], CPThemeState(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], CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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], CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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], CPThemeState(CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted)],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeState(CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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], CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)],
[@"tile-text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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), CPThemeState(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, CPThemeState(CPThemeStateBezeled, CPThemeStateHighlighted)],
[@"bezel-color", bezelColorDisabled, CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateHovered)],
[@"bezel-color", arrowImageHiglighted, CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateHovered)],
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color", bezelHighlightedColor, CPThemeState(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), CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)],
[@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled],
[@"bezel-color", bezelDisabledColor, CPThemeState(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, CPThemeState(CPThemeStateBezeled, CPComboBoxStateButtonBordered)],
[@"bezel-color", bezelFocusedColor, CPThemeState(CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing)],
[@"bezel-color", bezelDisabledColor, CPThemeState(CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled)],
[@"bezel-color", bezelNoBorderColor, CPThemeStateBezeled],
[@"bezel-color", bezelNoBorderFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelNoBorderDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelNoBorderFocusedColor, CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-color", bezelNoBorderDisabledColor, CPThemeState(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), CPThemeState(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), CPThemeState(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), CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"popup-button-size", CGSizeMake(21.0, 23.0), CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"popup-button-size", CGSizeMake(21.0, 23.0), CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateHighlighted)],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateHighlighted)],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeState(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, CPThemeState(CPButtonStateMixed, CPThemeStateHighlighted)],
[@"image", mixedDisabledImage, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"divider-bezel-color", dividerBezelColor, CPThemeStateNormal],
[@"divider-bezel-color", inactiveDividerBezelColor, CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateCircular, CPThemeStateHighlighted)],
[@"knob-color", knobDisabledColor, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color-down-button", bezelDownDisabled, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color-up-button", bezelUpHighlighted, CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)],
[@"bezel-color-down-button", bezelDownHighlighted, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateDefault)],
[@"text-color", defaultTextColor, CPThemeStateDefault],
[@"text-shadow-color", defaultTextShadowColor, CPThemeStateBordered | CPThemeStateDefault],
[@"text-shadow-color", defaultTextShadowColor, CPThemeState(CPThemeStateBordered, CPThemeStateDefault)],
[@"text-color", defaultDisabledTextColor, CPThemeStateDefault | CPThemeStateDisabled],
[@"text-shadow-color", defaultDisabledTextShadowColor, CPThemeStateDefault | CPThemeStateDisabled],
[@"text-color", defaultDisabledTextColor, CPThemeState(CPThemeStateDefault, CPThemeStateDisabled)],
[@"text-shadow-color", defaultDisabledTextShadowColor, CPThemeState(CPThemeStateDefault, CPThemeStateDisabled)],
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), CPThemeStateDefault | CPThemeStateDisabled],
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), CPThemeState(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],
CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)],
[@"bezel-color",
bezelColor["@"]["disabled"],
CPThemeStateBordered | CPThemeStateDisabled],
CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color",
bezelColor["default"]["@"],
CPThemeStateBordered | CPThemeStateDefault],
CPThemeState(CPThemeStateBordered, CPThemeStateDefault)],
[@"bezel-color",
bezelColor["default"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted | CPThemeStateDefault],
CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault)],
[@"bezel-color",
bezelColor["default"]["disabled"],
CPThemeStateBordered | CPThemeStateDefault | CPThemeStateDisabled],
CPThemeState(CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled)],
[@"content-inset", CGInsetMake(0.0, 7.0, 0.0, 7.0), CPThemeStateBordered],
[@"bezel-color",
roundedBezelColor["@"]["@"],
CPThemeStateBordered | CPButtonStateBezelStyleRounded],
CPThemeState(CPThemeStateBordered, CPButtonStateBezelStyleRounded)],
[@"bezel-color",
roundedBezelColor["@"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted | CPButtonStateBezelStyleRounded],
CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPButtonStateBezelStyleRounded)],
[@"bezel-color",
roundedBezelColor["@"]["disabled"],
CPThemeStateBordered | CPThemeStateDisabled | CPButtonStateBezelStyleRounded],
CPThemeState(CPThemeStateBordered, CPThemeStateDisabled, CPButtonStateBezelStyleRounded)],
[@"bezel-color",
roundedBezelColor["default"]["@"],
CPThemeStateBordered | CPThemeStateDefault | CPButtonStateBezelStyleRounded],
CPThemeState(CPThemeStateBordered, CPThemeStateDefault, CPButtonStateBezelStyleRounded)],
[@"bezel-color",
roundedBezelColor["default"]["highlighted"],
CPThemeStateBordered | CPThemeStateHighlighted | CPThemeStateDefault | CPButtonStateBezelStyleRounded],
CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault, CPButtonStateBezelStyleRounded)],
[@"bezel-color",
roundedBezelColor["default"]["disabled"],
CPThemeStateBordered | CPThemeStateDefault | CPThemeStateDisabled | CPButtonStateBezelStyleRounded],
CPThemeState(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), CPThemeState(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:CPThemeState(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"], CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeState(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["@"], CPThemeState(CPPopUpButtonStatePullsDown, CPThemeStateBordered)],
[@"bezel-color", color["disabled"], CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeState(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["@"], CPThemeState(CPThemeStateVertical, CPThemeStateSelected)],
[@"knob-slot-color", trackColor["light"], CPThemeState(CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColor["dark"], CPThemeState(CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobDark)],
[@"knob-color", knobColor["@"], CPThemeStateVertical],
[@"knob-color", knobColor["light"], CPThemeStateVertical | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColor["dark"], CPThemeStateVertical | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColor["light"], CPThemeState(CPThemeStateVertical, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColor["dark"], CPThemeState(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, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"track-border-overlay", 0.0, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobDark)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark)],
[@"increment-line-color", incrementColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"decrement-line-color", decrementColorLegacy, CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"decrement-line-size", CGSizeMake(14.0, 11.0), CPThemeState(CPThemeStateVertical, CPThemeStateScrollViewLegacy)],
[@"increment-line-size", CGSizeMake(14.0, 11.0), CPThemeState(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"], CPThemeState(CPThemeStateSelected, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColor["dark"], CPThemeState(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, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateSelected)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-slot-color", trackColorLegacy, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark)],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobLight],
[@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark],
[@"knob-color", knobColorLegacy, CPThemeState(CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight)],
[@"knob-color", knobColorLegacy, CPThemeState(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, CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-color", bezelColor["disabled"], CPThemeState(CPThemeStateBezeled, CPThemeStateDisabled)],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled],
[@"text-color", regularDisabledTextColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-color", regularDisabledTextColor, CPThemeState(CPThemeStateBezeled, CPThemeStateDisabled)],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeState(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), CPThemeState(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), CPThemeState(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], CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)],
[@"text-color", [CPColor blackColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateEditing)],
[@"text-color", [CPColor blackColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateEditable)],
[@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 10.0), CPThemeState(CPThemeStateTableDataView, CPThemeStateEditable)],
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeState(CPThemeStateTableDataView, CPThemeStateEditing)],
[@"bezel-inset", CGInsetMake(-2.0, -2.0, -2.0, -2.0), CPThemeState(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], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)],
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView)],
[@"text-shadow-color", [CPColor whiteColor], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)],
[@"text-shadow-offset", CGSizeMake(0, 1), CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)],
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView)],
[@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeState(CPThemeStateTableDataView, CPThemeStateGroupRow)]
];
[self registerThemeValues:themedTextFieldValues forView:textfield];
@@ -610,25 +610,25 @@ var themedButtonValues = nil,
themedRoundedTextFieldValues =
[
[@"bezel-color",
bezelColor["@"], CPTextFieldStateRounded | CPThemeStateBezeled],
bezelColor["@"], CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"bezel-color",
bezelFocusedColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateEditing],
bezelFocusedColor, CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-color",
bezelColor["disabled"], CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
bezelColor["disabled"], CPThemeState(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), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), CPThemeState(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), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing)],
[@"text-color", placeholderColor, CPTextFieldStateRounded | CPTextFieldStatePlaceholder],
[@"text-color", regularDisabledTextColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-shadow-color", regularDisabledTextShadowColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled],
[@"text-color", placeholderColor, CPThemeState(CPTextFieldStateRounded, CPTextFieldStatePlaceholder)],
[@"text-color", regularDisabledTextColor, CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled)],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeState(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), CPThemeState(CPTextFieldStateRounded, CPThemeStateBezeled)],
[@"max-size", CGSizeMake(-1.0, 29.0), CPThemeState(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"], CPThemeState(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], CPThemeState(CPThemeStateNormal, CPThemeStateDisabled)],
[@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeState(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], CPThemeState(CPThemeStateNormal, CPThemeStateDisabled)],
[@"border-color", [CPColor colorWithCalibratedRed:68.0 / 255.0 green:109.0 / 255.0 blue:198.0 / 255.0 alpha:0.5], CPThemeState(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], CPThemeState(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], CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)],
[@"tile-text-shadow-color", [CPColor whiteColor], CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateHighlighted, CPThemeStateDisabled)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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], CPThemeState(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], CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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], CPThemeState(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], CPThemeState(CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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], CPThemeState(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], CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)],
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)],
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeState(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), CPThemeState(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), CPThemeState(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"], CPThemeState(CPThemeStateBezeled, CPThemeStateHighlighted)],
[@"bezel-color", bezelColor["disabled"], CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateHovered)],
[@"bezel-color", arrowImageHiglighted, CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateHovered)],
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color", bezelHighlightedColor, CPThemeState(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), CPThemeState(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["@"], CPThemeState(CPThemeStateBezeled, CPComboBoxStateButtonBordered)],
[@"bezel-color", bezelFocusedColor, CPThemeState(CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing)],
[@"bezel-color", bezelColor["disabled"], CPThemeState(CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled)],
[@"bezel-color", bezelNoBorderColor["@"], CPThemeStateBezeled],
[@"bezel-color", bezelNoBorderFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
[@"bezel-color", bezelNoBorderColor["disabled"], CPThemeStateBezeled | CPThemeStateDisabled],
[@"bezel-color", bezelNoBorderFocusedColor, CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-color", bezelNoBorderColor["disabled"], CPThemeState(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), CPThemeState(CPThemeStateBezeled, CPThemeStateEditing, CPComboBoxStateButtonBordered)],
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeState(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), CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"bezel-inset", CGInsetMake(3.0, 5.0, 3.0, 4.0), CPThemeState(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), CPThemeState(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), CPThemeState(CPThemeStateBezeled, CPThemeStateEditing)],
[@"popup-button-size", CGSizeMake(21.0, 23.0), CPThemeStateBezeled | CPComboBoxStateButtonBordered],
[@"popup-button-size", CGSizeMake(21.0, 23.0), CPThemeState(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, CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateHighlighted)],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateHighlighted)],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeState(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, CPThemeState(CPButtonStateMixed, CPThemeStateHighlighted)],
[@"image", mixedDisabledImage, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateHighlighted, CPThemeStateSelected)],
[@"divider-bezel-color", dividerBezelColor, CPThemeStateNormal],
[@"divider-bezel-color", inactiveDividerBezelColor, CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, CPThemeStateSelected | CPThemeStateDisabled],
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateDisabled, CPThemeStateSelected)],
[@"text-shadow-color", regularTextShadowColor],
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateDisabled],
[@"text-shadow-color", defaultDisabledTextShadowColor, CPThemeStateDisabled | CPThemeStateSelected],
[@"text-shadow-color", defaultDisabledTextShadowColor, CPThemeState(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), CPThemeState(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, CPThemeState(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, CPThemeState(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, CPThemeState(CPThemeStateCircular, CPThemeStateHighlighted)],
[@"knob-color", knobDisabledColor, CPThemeState(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, CPThemeState(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"], CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color-down-button", bezelDown["disabled"], CPThemeState(CPThemeStateBordered, CPThemeStateDisabled)],
[@"bezel-color-up-button", bezelUp["highlighted"], CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)],
[@"bezel-color-down-button", bezelDown["highlighted"], CPThemeState(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"], CPThemeState(CPThemeStateBordered, CPThemeStateHighlighted)],
[@"bezel-color", bezelColor["disabled"], CPThemeStateBordered | CPThemeStateDisabled]
[@"bezel-color", bezelColor["disabled"], CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateHighlighted)],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeState(CPThemeStateSelected, CPThemeStateDisabled)],
[@"image", mixedImage, CPButtonStateMixed],
[@"image", mixedHighlightedImage, CPButtonStateMixed | CPThemeStateHighlighted],
[@"image", mixedDisabledImage, CPButtonStateMixed | CPThemeStateDisabled]
[@"image", mixedHighlightedImage, CPThemeState(CPButtonStateMixed, CPThemeStateHighlighted)],
[@"image", mixedDisabledImage, CPThemeState(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, CPThemeState(CPThemeStateSelected, CPThemeStateHighlighted)],
[@"image", imageHighlighted, CPThemeStateHighlighted],
[@"image", imageDisabled, CPThemeStateDisabled],
[@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled]
[@"image", imageSelectedDisabled, CPThemeState(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:CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)],
contentInsetNormal = [dataView valueForThemeAttribute:@"content-inset" inState:CPThemeStateTableDataView],
contentInsetSelected = [dataView valueForThemeAttribute:@"content-inset" inState:CPThemeStateTableDataView | CPThemeStateSelectedDataView];
contentInsetSelected = [dataView valueForThemeAttribute:@"content-inset" inState:CPThemeState(CPThemeStateTableDataView, CPThemeStateSelectedDataView)];
var mergedString = contentArray.join("\n");
+65
View File
@@ -0,0 +1,65 @@
@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."];
}
- (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
+34 -2
View File
@@ -42,10 +42,21 @@
[self assert:undefined same:[_CPDisplayServer run]];
}
- (void)testHasThemeState
{
[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 assertFalse:[view hasThemeState:CPThemeState(CPThemeStateNormal)] message:@"CPView should not be in CPThemeStateNormal"];
}
- (void)testThemeState
{
[self assertTrue:[view hasThemeState:CPThemeStateNormal] message:@"CPView should initialy have CPThemeStateNormal"];
[self assertFalse:[view hasThemeState:CPThemeStateDisabled] message:@"view should be disabled"];
[self assertFalse:[view hasThemeState:CPThemeStateDisabled] message:@"view should not be disabled"];
[view setThemeState:CPThemeStateDisabled];
[self assertTrue:[view hasThemeState:CPThemeStateDisabled] message:@"The view should be CPThemeStateDisabled"];
@@ -53,9 +64,30 @@
[view setThemeState:CPThemeStateHighlighted];
[self assertTrue:[view hasThemeState:CPThemeStateHighlighted] message:@"Theme state should be CPThemeStateHighlighted"];
[view setThemeState:CPThemeStateNormal | CPThemeStateHighlighted];
[view setThemeState:CPThemeState(CPThemeStateNormal, CPThemeStateHighlighted)];
[self assertFalse:[view hasThemeState:CPThemeStateNormal] message:@"CPThemeStateNormal cannot exist as part of a compound state"];
[self assertTrue:[view hasThemeState: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 assertTrue:[view hasThemeState:CPThemeState(CPThemeStateDisabled, CPThemeStateHighlighted)] message:@"The view should be in the combined state of CPThemeStateDisabled and CPThemeStateHighlighted"];
}
- (void)testUnsetThemeState
{
[self assertTrue:[view hasThemeState:CPThemeStateNormal] message:@"CPView should initialy have CPThemeStateNormal"];
[view unsetThemeState:CPThemeStateNormal];
[self assertTrue:[view hasThemeState:CPThemeStateNormal] message:@"CPView always be in CPThemeStateNormal even if you try to unset it"];
[view setThemeState:CPThemeStateDisabled];
[view unsetThemeState:CPThemeStateDisabled];
[self assertTrue:[view hasThemeState:CPThemeStateNormal] 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 assertTrue:[view hasThemeState:CPThemeStateHighlighted] 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 assertTrue:[view hasThemeState:CPThemeStateNormal] message:@"CPView should be able to unset a combined theme state"];
}
- (void)testThemeAttributes
+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];
}
+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;