[squeak-dev] Abusing #userInterfaceTheme

H. Hirzel hannes.hirzel at gmail.com
Wed Sep 27 09:20:16 UTC 2017

The scope mechanism now seems to be gone through the update The Trunk:

Removes "scope" from UI themes. Encapsulates look-up for properties in
the current theme into short-living a request object.

Thank you Marcel for the update

If I now do the first example of Stephane (initial mail in this thread).

  | m uit |

        m := Morph new.
        uit := m userInterfaceTheme.

 an UserInterfaceThemeRequest

The UserInterfaceThemeRequest object has the following instance variables

1. a properties dictionary (323 entries for the Squeak theme)
2. name (which is 'SqueakTheme')
3. ignoreApply boolean
4. next (which is nil)
5. lastScaleFactor (which is nil).

a) I do not see when and how the properties dictionary is initialized

    UserInterfactTheme just has
	super initialize.
	name := 'unnamed'.
	properties := Dictionary new.

    There is a method SqueakTheme create [1]

b) What are instance variables 3..5 used for?

c) UserInterfaceTheme subclasses  {CommunityTheme . MonokaiTheme .
SolarizedTheme . SqueakTheme . EtoysTheme}

Are there other themes in addition? One like a traditional OS uses?


[1] SqueakTheme create

	"This is the default theme for Squeak.
	self create apply. "
	^ (self named: 'Squeak') in: [:theme |		
		"General morph stuff."
			set: #keyboardFocusColor for: #Morph to: (TranslucentColor r: 0.3
g: 0.5 b: 0.5 alpha: 0.5);
			set: #keyboardFocusWidth for: #Morph to: 3;
			set: #softShadowColor for: #Morph to: (Color black alpha: 0.01);
			set: #softShadowOffset for: #Morph to: (10 at 8 corner: 10 at 12);
			set: #hardShadowColor for: #Morph to: (Color black alpha: 0.5);
			set: #hardShadowOffset for: #Morph to: 1 at 1.
		theme set: #background for: #MorphicProject to: self linenblue.
			addFonts: theme;
			addWindowColors: theme;
			addSyntaxHighlighting: theme;
			addMenusAndDockingBars: theme;
			addDialogs: theme;
			addButtons: theme;
			addScrollables: theme;
			addToolColors: theme;
			addMVC: theme.

On 9/22/17, St├ęphane Rollandin <lecteur at zogotounga.net> wrote:
>> St├ęphane
>> Could you please summarize in one mail which changes to the
>> UserInterface theme mechanism you propose and why you think that
>> should be done?
> I do not have a definite mechanism in mind; I just did some quick
> brainstorming with Marcel...
> I do think we should get rid of the scope mechanism though (see my
> initial post in this thread for details).
> Stef

More information about the Squeak-dev mailing list