I am not sure I understand, so let's get more specific. We talk about one package which contains one Morph.
I thought the purpose of UITheme is to encapsulate all decisions related to how a morph gets rendered. It's like a strategy.
For example, we have UITheme>>plainGroupPanelBorderStyleFor: and this is called by the PlainGroupboxMorph.
In the same style, I have: UITheme>>growlLabelColorFor: aGrowlMorph ^ Color white GrowlMorph>>labelColor ^ self theme growlLabelColorFor: self
Is this not the intended way?
I do not know :) Because if we generalize that to all the widgets UITheme will explode. And you cannot use a widget without a theme. Then you always asks the theme. I do not like that - Do we want UITheme to be a facade? - Is UITheme our new preference class? - I would prefer to get something like setting - GrowlMorph has a class Var for its labelColor - and somehow The UITheme push its value inside may be the GrowlMorph initialize ask the theme or something like that. - may each UI could register to the UItheme and the UItheme propagate its changes by saying to the widgets I changed ask me what you need. and the widget say I need these values. Now I do not see how Uitheme defining the logic of a widget can scale. Now I'm trying to understand the flow and architecture that the system could have. So we should get some more exercises to see. Stef