what is the status of multi window

John M McIntosh johnmci at smalltalkconsulting.com
Sun Oct 15 19:13:22 UTC 2006

Ya, please take it , the mac vm for *years* now has been compiled to  
support this feature, plus mac menu bars.

A good chunk of the code there was designed to interface the tweak  
logic to the Ffenestri logic. A Ffenestri aware VM tags each UI event  
with a window number
since if one thinks about it mouse clicks, moves, etc, window open/ 
close,  all have a target window which is their target action.    
Historical Squeak I'm afraid only
has a Display which has no knowledge of that there might be more than  
one Display since it's a global and used oh in a  million places  
without context  it's a bit hard to *tweak* heh.

However Tweak makes Display an instance variable, the same for the UI  
event queue. Thus the code takes the upcoming events, and deposits  
the event onto the
event queue for the Tweak World that is managing the UI events and  
Display for that window, and of course when a Tweak world draws it's  
drawing to a display surface
for a particular world. The VM logic then maps to/from a window index  
value to the internal host window.

Mind I'm afraid due to lack of interest and I'm afraid the Sophie  
team has been busy working on other more important infrastucture  
things we've not kept the  Ffenestri logic up to date. Mind it could  
be construed that it should be bundled into Tweak as a feature versus  
an addon.

As for the quicktime plugin, that lurks in the Mac VM as a plugin for  
the last 6 months or so, the code is available via the SVN source  
tree for the Slang side (I hope). The majority of the code is in FFI  
and found in the Sophie respository. Basically the Sophie MoviePlayer  
takes a URI, where the URI can be local or remote,  and provides a  
hierarchy to playback media using the quicktime plugin & FFI,  or  
straight quicktime via FFI ,  or the mpeg plugin, or the various  
sound playback logic in Squeak AIFF for example, or failure.

The quicktime plugin only adds the feature of rending a frame to a  
Squeak display surface, and signalling a semaphore when the frame is  
rendered. This removes one frame render step and provides better  
synchronization to frame drawing. If the plugin does not exist we  
poll quicktime for frames and copy to a squeak form and render. That  
of course takes much more CPU.

On 15-Oct-06, at 4:06 AM, Bert Freudenberg wrote:

> Am 15.10.2006 um 09:46 schrieb stephane ducasse:
>> Hi tim
>> I was asked what was the status of "Fnestrai" what is its status.  
>> Do we have a chance to get it for squeak?
> What do you mean by "get it"? Take it ;)
> "Areithfa Ffenestri" support is in the Mac and Windows VMs. You  
> just need to install the image code. The only download location I  
> know is Ffenestri-b1.sar in John's iDisk (http://homepage.mac.com/ 
> johnmci/FileSharing.html) under experimental/TweakFfenestri
> Some of the code might be specific to Tweak, but the plugin  
> certainly is not. You should at least be able to call the  
> primitives to open windows, display a form etc.
> - Bert -

John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com

More information about the Squeak-dev mailing list