[squeak-dev] Abusing #userInterfaceTheme

Stéphane Rollandin lecteur at zogotounga.net
Tue Sep 19 13:32:25 UTC 2017


> You do not know in advance how the object stored in a theme will be used 
> by the client. It is not always a simple instVar write.
> 
> Consider this example:
> 
> slider borderColor: ((self userInterfaceTheme borderColorModifier
> ifNil: [ [:c | c adjustBrightness: -0.3] ]) value: aColor).


This can easily be folded back into the getter/setter pattern:

	BorderedMorph>>borderColorModifier: aBlock
	    self borderColor: (aBlock value: self borderColor)

and then

	self borderColor: aColor.
	self getThemed: #borderColorModifier
		ifNone: [:c | c adjustBrightness: -0.3]


So I guess it's down to a design choice. I would vote for consistency of 
pattern, and having everything written in getter/setter pairs.


Best,


Stef


More information about the Squeak-dev mailing list