diff --git a/AppKit/CPTheme.j b/AppKit/CPTheme.j index ff37bee69..47c6a05e1 100644 --- a/AppKit/CPTheme.j +++ b/AppKit/CPTheme.j @@ -350,7 +350,7 @@ function CPThemeState(aStateName) if (state === undefined) { if (aStateName.indexOf('+') === -1) - state = 1 << CPThemeStateCount++; + state = 1 << ++CPThemeStateCount; else { var state = 0, @@ -364,7 +364,7 @@ function CPThemeState(aStateName) if (individualState === undefined) { - individualState = 1 << CPThemeStateCount++; + individualState = 1 << ++CPThemeStateCount; CPThemeStates[stateName] = individualState; CPThemeStateNames[individualState] = stateName; } @@ -402,8 +402,8 @@ function CPThemeStateName(aState) return name; } -CPThemeStateNames[0] = "normal"; -CPThemeStateNormal = CPThemeStates["normal"] = 0; +CPThemeStateNames[1] = "normal"; +CPThemeStateNormal = CPThemeStates["normal"] = 1; CPThemeStateDisabled = CPThemeState("disabled"); CPThemeStateHovered = CPThemeState("hovered"); CPThemeStateHighlighted = CPThemeState("highlighted"); diff --git a/Tests/AppKit/CPViewTest.j b/Tests/AppKit/CPViewTest.j index 9425ce9f4..8b6e6f678 100644 --- a/Tests/AppKit/CPViewTest.j +++ b/Tests/AppKit/CPViewTest.j @@ -42,4 +42,19 @@ [self assert:undefined same:[_CPDisplayServer run]]; } +- (void)testThemeState +{ + [self assertTrue:[view hasThemeState:CPThemeStateNormal]]; + + [view setThemeState:CPThemeStateNormal]; + [self assertTrue:[view hasThemeState:CPThemeStateNormal]]; + + [view setThemeState:CPThemeStateHighlighted]; + [self assertTrue:[view hasThemeState:CPThemeStateHighlighted]]; + + [view setThemeState:CPThemeStateNormal | CPThemeStateHighlighted]; + [self assertTrue:[view hasThemeState:CPThemeStateNormal]]; + [self assertTrue:[view hasThemeState:CPThemeStateHighlighted]]; +} + @end