Squeakers,
I'm on a crossroad about bringing portability to Cheese:
Possibility 1) maintain parallel hierarchies like in Cheese4 where ViewManager uses PmWindow. In Cheese5, ViewManager becomes Window, the protocol for Window is portable but the implementation is not. Platform-dependent implementation can be managed in a variety of ways, the first which comes to my mind is "subsystems" (similar to "Applications" in VA). Possibility 2) maintain parallel hierarchies again but now use the "Abstract Factory" DP. Thus Window _implementation_ becomes portable, too, but I can't immediately see whether this buys us anything.
Just thoughts...
Regards,
Boris
I may well ahve mentioned this paper before, but take look at: 'Creating Host Compliance in a Portable Framework: A Study in the use of Existing Design Patterns' P.M.Yelland, pp18-30, OOPSLA'96 Conference Proceedings, ACM SIGPLAN Notices Vøl.31, Number 10, ISBN 0-201-92109-X which is a pretty good paper on how this was tackled by the VanGogh project at ParcPlace. Lots of useful ideas and possibly some warnings on what not to do. Basically describes a three layer structure:- portable window code (protocol and implemetation) bridge code (portale api, platform specific implementation) system call code (platform specific all the way) and the ways of swapping layers in and out, where state has to go etc.
Of course, if you can find another paper on the same area, then it becomes research rather than any sort of plaigarism :-)
tim
squeak-dev@lists.squeakfoundation.org