On Feb 16, 2012, at 12:52 PM, Igor Stasenko wrote:

Can't say that i like this "pulling" model, querying theme over and over again..
I think it would be much nicer to actually use push model, i.e. let
theme push a props to widget,

IIRC from what Gary has posted, it was done that way to easily:
1) have morphs respond to a theme change. (since they fetch values from the theme each draw cycle)
2) not have to hold the state in each individual morph. 

Now:
1) should be much easier/cleaner to do using Announcements.
2) is still an issue. However, since most calls create new objects (the different Theme colors are usually created from scratch each call, for instance), and writing it to include caching also leads to ugly code, it might not be as bad.

As for adding values for new widgets
- Why do you need a specific label color for growl rather than use the default theme label color?
- If you really do, why not use one of the base label colors from the theme (as presented by the facade), and then modify it accordingly instead? (#lighter, #darker, etc)

Of course, with the current "query every draw cycle"-scheme, this is wasteful, but if we move to a "locally-managed/responding to Theme changes" the overhead would be negligible. It's still quite a lot of work though.

Cheers,
Henry