[MCP]Worlds-in-Worlds and MCP

Jason Varner jvarner at ucf.edu
Thu May 22 00:57:07 UTC 2003


While poking around in the Browser today, I ran into some interesting 
legacy code - WiWPasteUpMorph and its wrapper WorldWindow (in category 
Morphic-Worlds). Seems that at some time in the past functionality was 
present for running multiple worlds in a single project, with some 
provisions for bringing the subworld up as the full-screen world. 
However, the code is only partly functional, if that, today. I've been 
informed that it hasn't been touched since Squeak 2.6. It seems like 
this could be a candidate for cleanup, since that functionality can be 
recreated using PasteUpMorphs, it seems. Bob Arning (its creator) 
stated that this code is more or less deprecated at this point.

For those wanting to play around with this 'active world' concept, 
there are a couple of ways to go about it. It is possible to make an 
active miniature of an existing project by bringing up a yellow-button 
menu on a Project View. The 'ENTER ACTIVE' option will bring up an 
embedded active project, into which you can actually drop morphs.

The following code snippet (culled and modified from 
Morph>>embedInWindow) should create a 640x480 World within a 
SystemWindow:
-=-
mworld _ PasteUpMorph newWorldForProject: nil
mworld extent: 640 at 480
mworld viewBox: (0 at 0 extent: 640 at 480)

kyle _ SystemWindow new extent: 640 at 480
kyle openInWorld
kyle extent: 640 at 480
kyle addMorph: mworld frame: (0 at 0 extent: 1 at 1)
kyle activate
-=-
('kyle' is my metasyntactic variable of choice within Squeak.)

There's a couple of issues with this, of course. Chief among them is 
that the SystemWindow never passes any blue-clicks (halos) to its 
immediate submorph, so no red-halo handle menu for the miniWorld. Also, 
and probably related, windows within the SystemWindow are extremely 
difficult to work with at times. I had extreme difficulty working with 
File Lists, for instance.

I can see several uses for this - establishing a collaborative subspace 
(using Nebraska) within a single project comes to mind. So I guess my 
question is, should this code be considered a candidate for MCP, and 
would my working on making WiW functional again be of use to anyone?

Jason Varner



More information about the Squeak-dev mailing list