Yeah I could go either way here.  The one thing I like about having it be CPThemeState(x, y, z) is that this is explicit that the combination of x/y/z is itself a ThemeState.  It makes it so the user is only ever dealing with one kind of object (a ThemeState).  I know this is probably not a real issue, but this is the one criticism I have for [self unsetThemeStates:@[CPThemeStateSelected, CPButtonStateMixed, CPThemeStateHighlighted]] -- it implies to the user that the array (CPThemeStateSelected, CPButtonStateMixed, CPThemeStateHighlighted) can be treated like a ThemeState, but a ThemeState and an array are not, in actuality, interchangeable.  But I don't feel strongly enough either way here and would be happy to change it if you think I should.