Squeak X11 Display Morph
From OpenslateWiki
Eventually, all Slate user requirements should be met with native Squeak apps, but until that is achieved X11DisplayMorph will fill the gap.
Contents |
Portability
Squeak has always tried to be portable across most popular operating systems. The closer a Smalltalk class gets to the host OS, the more difficult it is to retain portability for that class. The X11DisplayMorph will begin targeted specifically at X.org running on FreeBSD and Gnome, the selected OS environment for our Slate. In the future it may be possible to create a more generalized class with host environment specific sub-classes for, say, X.org, Microsoft Windows, and OS X.
Data Interchange
A modern GUI offers at least two methods for simple data interchange, the clipboard and drag-and-drop. Implementing these features in X11DisplayMorph will be a challenge. One possible model to consider for drag-and-drop is to create a virtual border at the edge of the client area, and track mouse pointer movements across the border. This will require X11DisplayMorph to convert Gnome drag-and-drop events to and from Squeak events.
Mouse Actions
In Gnome, all mouse button events are processed through X. Gnome provides a standard set of responses, such as optional, programmer furnished pop-up menus that respond to a right button click. Squeak has its own unique set of responses to mouse clicks that are for the most part incompatible with Gnome. A possible way to deal with this will be to respond to mouse events the Squeak way when the mouse pointer is over the window title bar, and when the mouse is over the client area, use the Gnome way. Imagine the client area as an empty hole that looks through Squeak to the underlying host GUI, which in our case is Gnome. Squeak does not need to know anything about the events taking place inside that rectangle.
The Case for Clouds
Lately it has become fashionable to shift applications to web services -- popularly described as cloud computing. All that is required to participate in cloud computing is a web browser. Scamper, Squeak's native web browser, lacks the features required to participate in cloud computing. X11DisplayMorph will provide access to web-based applications, such as Google Docs by allowing a full-featured browser such as Epiphany to run inside a window on the Squeak desktop.
While X11DisplayMorph will provide a general and useful solution, a better solution for a web browser may be within easy reach. Web browsers are now arranged as building blocks. The http rendering engine is separate from the visible GUI. In Gnome this allows Epiphany to have a Gnome look and feel UI while all of the heavy lifting is done with the Mozilla rendering engine. It should be possible to do in Squeak what Epiphany does, to provide a Squeak-like container for a full-featured HTML engine.

