A cleaner Morphic for 3.5 (was: Re: Re-doing Morphic ( Was:Re:Traits prototype image ))

Richard A. O'Keefe ok at cs.otago.ac.nz
Wed Feb 12 01:22:16 UTC 2003

I asked about picking up colours.
Bill Spight <bspight at pacbell.net> replied:

	This one I stumbled upon.  Click the eye dropper on the purple
	section of the left arrow.
Slaps forehead. It's so obvious!
The fact that the palette always comes up at the same time
somehow made me think I _had_ to chose from the palette
(something that would be much easier if it were larger).
So I did what I should originally have done.
1.  Note the balloon help that pops up.
2.  'Change color' <method strings with it>.
3.  Moprh balloonHelpTextForHandle: <select>
4.  doRecolor:with:<select>

Gosh.  It turns out that if you hold down the shift key while
clicking on the eyedropper halo handle, you get a _different_
set of options, where you can change a whole lot of things:
rounded corners, sticky, lock, colour, border colour, border
style, border width, gradient fill, drop shadow colour.

If it had ever occurred to me to try shift-clicking on halo handles,
I might have discovered this ages ago.

5.  changeColor<implementors of it>
6.  Morph changeColor<select>

This calls ColorPickerMorph new choseModalityFromPreference

7.  ColorPickerMorph<browse it>
8.  <select class comment> CURSE no such luck, no comment.
9.  Poke around a bit.  AH HAH!
    ColorPickerMorph class>>initialize
	ColorChart := Color colorPaletteForDepth: 16 extent: 190 at 60.

10. Double those numbers.
11. <accept>
12. In a Workspace, ColorPickerMorph initialize<do it>

HOORAY!  A palette that is almost big enough!

The method comment of ColorPickerMorph>>initialize is rather apropos
for the thread about Morphic:
    "... for the moment, in grand Morphic fashion,
     this is rather inflexibly all housed right here"

13. Looks as though things happen in #pickColorAt:.
14. Notice comment "pick up color, either inside or outside this world".
    pickedCOlor := Display colorAt: aGlobalPoint

How embarrassing.  I had said to myself "I can't do this in Squeak."
If only I had said "There MUST be a way to do this in Squeak, shovel
out, start DIGGING boyo." I'd have got there unaided.

Mind you, this is linked up with the #modalColorPickers preference,
which really wants to be false for this kind of "pick up any colour
anywhere" use, and I had it set to true.  In that case, clicking outside
the palette doesn't work so well.

More information about the Squeak-dev mailing list