[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
|