diff --git a/AppKit/CPBrowser.j b/AppKit/CPBrowser.j index a6a16306d..1dcdea712 100644 --- a/AppKit/CPBrowser.j +++ b/AppKit/CPBrowser.j @@ -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]; diff --git a/AppKit/CPButton.j b/AppKit/CPButton.j index 213fc6ed0..99d3ca36b 100644 --- a/AppKit/CPButton.j +++ b/AppKit/CPButton.j @@ -268,7 +268,7 @@ CPButtonImageOffset = 3.0; break; case CPOffState: - [self unsetThemeState:CPThemeStateSelected | CPButtonStateMixed | CPThemeStateHighlighted]; + [self unsetThemeState:CPThemeState(CPThemeStateSelected, CPButtonStateMixed, CPThemeStateHighlighted)]; } } diff --git a/AppKit/CPButtonBar.j b/AppKit/CPButtonBar.j index 8efe075b4..9de237609 100644 --- a/AppKit/CPButtonBar.j +++ b/AppKit/CPButtonBar.j @@ -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]; } diff --git a/AppKit/CPDatePicker/_CPDatePickerCalendar.j b/AppKit/CPDatePicker/_CPDatePickerCalendar.j index a7d713585..63dd02be9 100644 --- a/AppKit/CPDatePicker/_CPDatePickerCalendar.j +++ b/AppKit/CPDatePicker/_CPDatePickerCalendar.j @@ -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"]); diff --git a/AppKit/CPScroller.j b/AppKit/CPScroller.j index 6561af112..f19ee083d 100644 --- a/AppKit/CPScroller.j +++ b/AppKit/CPScroller.j @@ -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]; } diff --git a/AppKit/CPSegmentedControl.j b/AppKit/CPSegmentedControl.j index 3bf94a0c2..53173dd77 100644 --- a/AppKit/CPSegmentedControl.j +++ b/AppKit/CPSegmentedControl.j @@ -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); diff --git a/AppKit/CPStepper.j b/AppKit/CPStepper.j index ba5da1462..f39e37fab 100644 --- a/AppKit/CPStepper.j +++ b/AppKit/CPStepper.j @@ -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 diff --git a/AppKit/CPTheme.j b/AppKit/CPTheme.j index dac337fd3..e4b570cfb 100644 --- a/AppKit/CPTheme.j +++ b/AppKit/CPTheme.j @@ -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]; diff --git a/AppKit/CPTokenField.j b/AppKit/CPTokenField.j index 05fa8e13d..ebfb0cf7b 100644 --- a/AppKit/CPTokenField.j +++ b/AppKit/CPTokenField.j @@ -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]; diff --git a/AppKit/CPView.j b/AppKit/CPView.j index 7eb044c58..eb81fab1f 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -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)) diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index c37ed8181..a5524d16a 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -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 diff --git a/AppKit/Themes/Aristo2/ThemeDescriptors.j b/AppKit/Themes/Aristo2/ThemeDescriptors.j index 4b4bbf13b..be515268b 100644 --- a/AppKit/Themes/Aristo2/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo2/ThemeDescriptors.j @@ -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]; diff --git a/AppKit/_CPAutocompleteMenu.j b/AppKit/_CPAutocompleteMenu.j index 5dc6121f9..753e75f45 100644 --- a/AppKit/_CPAutocompleteMenu.j +++ b/AppKit/_CPAutocompleteMenu.j @@ -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"); diff --git a/Tests/AppKit/CPThemeTest.j b/Tests/AppKit/CPThemeTest.j new file mode 100644 index 000000000..1803c6619 --- /dev/null +++ b/Tests/AppKit/CPThemeTest.j @@ -0,0 +1,65 @@ +@import + +@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 diff --git a/Tests/AppKit/CPViewTest.j b/Tests/AppKit/CPViewTest.j index bc44eccb3..6679e89a3 100644 --- a/Tests/AppKit/CPViewTest.j +++ b/Tests/AppKit/CPViewTest.j @@ -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 diff --git a/Tests/Manual/ThemeBrowser/AppController.j b/Tests/Manual/ThemeBrowser/AppController.j index f60e077d3..445b3bce4 100644 --- a/Tests/Manual/ThemeBrowser/AppController.j +++ b/Tests/Manual/ThemeBrowser/AppController.j @@ -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]; } diff --git a/Tools/dump_theme/dump_theme b/Tools/dump_theme/dump_theme index 379b5c6fa..14db96b9f 100755 --- a/Tools/dump_theme/dump_theme +++ b/Tools/dump_theme/dump_theme @@ -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"); } } diff --git a/Tools/nib2cib/NSTableColumn.j b/Tools/nib2cib/NSTableColumn.j index cd53c1827..2a55492f6 100644 --- a/Tools/nib2cib/NSTableColumn.j +++ b/Tools/nib2cib/NSTableColumn.j @@ -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)]; } } diff --git a/Tools/nib2cib/_NSCornerView.j b/Tools/nib2cib/_NSCornerView.j index 83e667d50..541b3acb5 100644 --- a/Tools/nib2cib/_NSCornerView.j +++ b/Tools/nib2cib/_NSCornerView.j @@ -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;