A wish...

Ned Konz ned at bike-nomad.com
Tue Feb 6 07:52:33 UTC 2001


On Monday 05 February 2001 21:21, Dan Ingalls wrote:
> Raymond -
>
> >Ned Konz could update is ConnectorMorph to work in Squeak 3.0,
> >and SqCentral would add it to the main image.  :)
>
> Just wanted you to know we're sympathetic, but also necessarily cautious
> about such pervasive changes.  Please bear with us.

I have to agree with Dan. The work I did was just about enough to show me 
that considerably more work was needed in several areas. Just getting 
connections to work (through the use of their private constraints) was easy, 
but not generally useful.

A *real* constraint framework would be a powerful addition to Morphic.

Of course, it's overkill for simple tasks like connecting Morphs with lines. 
Look at HotDraw, which had a general purpose constraint system added to it 
somewhere along the line, only to have it removed later when it proved to be 
too much extra baggage for what most people were doing with it.

But for doing other things -- physics simulations, intelligent animations, 
etc. -- a constraint framework will enable the kind of exciting new 
applications that the Squeak Central team want to make.

For instance, I recently wanted to make a game like "The Incredible Machine"; 
with Morphic and a general constraint system, this would be pretty easy.

The main problem with moving my code forward was with the editing. As long as 
Morphs decide for themselves (regardless of context) how they're going to 
handle input events, it will continue to be hard to make a general drawing 
tool for connected drawings out of Morphic.

I had AttachmentPointMorphs that were submorphs of their parents. This was 
fragile at best -- it didn't work with Morphs that actively managed 
submorphs, like AlignmentMorphs. With the addition of more submorph 
management code, even more simple Morphs would become confused by having 
foreign morphs added as submorphs.

I was also delayed by the changes to the event handling code. What I finally 
decided I wanted to do -- to have "tools" a la HotDraw that would interpret 
user actions in various ways -- looked like a lot of work when I got back 
into looking into the HandMorph and its event handling. (For fun, try to 
sketch what happens to various mouse clicks and keyboard events, and where 
those decisions happen. It's rather complicated.)

I'd still like to attack the more limited problem of making a general purpose 
drawing framework out of Morphic. I think this can be done without pervasive 
changes to the base system, though.

I envision subclassing the HandMorph with a class that will allow plug-in 
tools for handling user interaction.

Given this, and a simple constraint system and handles, we'd have what we 
needed to make Morphic into more conventional graphical tools. But it would 
look a lot like HotDraw (the one without the full constraint system), not 
what SqC wants to make.

I'm excited about the possibility of a full constraint system in Morphic. But 
I don't want to see it added hastily.

-- 
Ned Konz
currently: Stanwood, WA
email:     ned at bike-nomad.com
homepage:  http://bike-nomad.com





More information about the Squeak-dev mailing list