Hi Stef,




On Mon, Jan 6, 2014 at 5:54 PM, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:
Ok I read


UITheme would act as a theme factory.
and each widget delegate to the Themer associated to themselve and the current theme

So subclasse of UITheme can propose different themer for the same widget.

Exactly.
�
Now since the themer is a separate class (from the morph it means that you must have all the hooks to customise it).
So why not.
I was also thinking that a widget could be an �abstract� class whose subclasses implement the themes.

Then you would create a widget like that


SpolightItemMorph forThemer: UITheme blue
and it would create an instance of a subclas SpotligherBluerItemMorph.

Did you try this design?

I think this is too convoluted because, like Estaban says, you want to keep the theming orthogonal with widget definition.

But, you gave me an idea:

If we implement in Morph the followings:

Morph>>themer
� � ^ themer ifNil: [self themerFor: self theme]

Morph>>themerFor: aTheme
� � ^ self subclassResponsibility

And then in a morph we would have something like this:

SpotlightItemMorph>>themerFor: aTheme
� � ^ aTheme�spotterThemer

SpotlightItemMorph>>onSelected
self themer configureSelectedItemMorph: self
�

Then we could simply do pretty much what you want:

SpotlightItemMorph new themer: MySpotterThemer new.

I like this idea. What do you think?

Doru


Stef



--
www.tudorgirba.com

"Every thing has its own flow"