> The tradeoff here is that you drastically reduce API (just 4 new
> methods, vs 4 new methods per display property), but lose the explicit
> nature of before. For example, the docs would never show
> setBezelColor:forControlState:, they'd just have to mention that
> CPButton adds the "bezel-color" key. Anyone have preferences in this
> regard?
I'd prefer the latter with keys for the properties. It just seems less
wordy to develop with, and easier to extend. Also, I don't think that
an API like that would be *too* generic, it's already pretty
specialized in that it deals with control states.
It would make sense to find the CPBezelColor key in the API docs,
then. Each control could have a table with all its property keys and
their possible states. For each key, I'd like to know the accepted
class as well (CPTextField may be in the following states: ... For
each of these states, you may set these properties: CPTextColor
(CPColor), CPBackgroundColor (CPColor), ... ).
> // THEMES
> By default, views use [CPTheme defaultTheme], which you can set with
> setDefaultTheme:. You can "extract" themes from views by calling -
> themedValues on them. So, if you've created an application with lots
> of themed views, you can use steam build-theme to "extract" a theme
> from it. Theme files are full-fledged bundles, which means they
> include all their images and any other resource you might want
> (sounds, cibs, etc). The default theme is "inlined" into AppKit so as
> to not require a separate download.
Sounds great. As long as I can ignore themes and only need to
acknowledge their existence when I want to use them, I'm fine. A
section on cappuccino.org with a few nice and complete themes would
seem nice then.
-- Leif