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