Multiple OS Windows for Squeak?

Tim Rowledge tim at sumeru.stanford.edu
Sat Apr 17 17:25:08 UTC 2004


"Peter William Lount" <peter at ActiveInfo.CA> wrote:

> > To do so would require some changes to the image format and VM...
> > Currently Display is a special object that can be accessed by the
> > platform dependant VM code which then creates a display based on a raw
> > bitmap stored in the image. Many changes would be required to allow one
> > to instantiate Display as you suggest. =\
> Are you saying that the current vm design of the smalltalk level code and/or
> the C level code can only open one os window?

You certainly wouldn't need image _format_ changes for this. Image
_code_ yes; quite a lot. The VM would need changes to stop keeping a
single OS window as a special thing - in VW the window handles are kept
in a broadly similar way to our file handles.

Someone managed to do it for OS/2 several years ago - search for
'Cheese'. IIRC that went quite a lot further than simply having
multiple windows to include using various OS widgets in a manner not
unlike the old PPS 'Van Gogh' project.

One could probably bind DisplayScreen objects to individual OS windows,
change the vm to create them only when requested (RISC OS already does
that for the current single Display) and mess around with the window
updating to dig out the window identifier so as to get the right bits.

A Dire Warning - once you start on this path, be ready for demands for
host OS widgets, fonts, menus, callbacks, transparent OS handles (and
the problems of portability will make you tear your remaining hair out)
followed by complaints that the host widgetry won't let you do a lot of
useful stuff and why not emulate everything like java does, because if
you want to suceed in the market you have to be _just like_
java/c#/c++/vb/perl/whatever.

Aside from that, have fun :-)

tim
--
Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
Oxymorons: Taped live



More information about the Squeak-dev mailing list