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