Hi Marcel, Hi All,
at one point I had implemented custom window colors for the VM simulator window thusly:
InterpreterPrimitives class>>initialize "Initialize the window color. This is probably Squeak-specific, so..." [Preferences setWindowColorFor: #cogVirtualMachineSimulatorWindowColor to: (Color colorFrom: InterpreterPrimitives windowColorSpecification brightColor)] on: Error do: [:ex| Transcript show: 'Failed to set window color preference in ', thisContext method methodReference asString]
SimulatorMorphicModel class>>registerWindowColor (Preferences windowColorFor: self name) = Color white ifTrue: [ Preferences setWindowColorFor: self name to: (Color colorFrom: self windowColorSpecification brightColor) ].
This approach is now deprecated, causing the load script to protest. But the deprecation message isn't helpful. The setter setWindowColorFor:to: just says the method is deprecated, not suggesting any alternative. The getter Preferences class>>#windowColorFor: just says 'Use Model >> #customWindowColor', but the method isn't implemented in any class.
Where's an example of the right way to do it? Could the deprecation warnings be more informative?
thanks _,,,^..^,,,_ best, Eliot
Hi Eliot,
just implement #defaultWindowColor in your model class. Unless overwritten bei the UI theme, that color will be used. See Model >> #windowColorToUse for reference. If you fancy, you can also overwrite #uniformWindowColor for your model class. :)
Sorry, #customWindowColor got renamed to #defaultWindowColor. I forgot to update that deprecation comment.
Best, Marcel
-- View this message in context: http://forum.world.st/How-should-one-implement-a-custom-window-color-for-a-c... Sent from the Squeak - Dev mailing list archive at Nabble.com.
squeak-dev@lists.squeakfoundation.org