For those who might possibly be interested, an _informal, non-official,
non-Apple-sanctioned_ discussion about the design of a new graphical user
interface and windowing system for the next generation of Macintosh
operating system is talking place on the GX dev mailing list and the
AIMED-talk mailing list [see sig for subscription info].
Background:
Apple Computer's attempts to create a transitional operating system have
failed, at least partly due to a lack of a pre-emptive multitasking-enabled
graphical user interface and windowing system in their transitional OS
design.
The design of Apple's original graphics library [QuickDraw] didn't allow
for a simple transition to PMT, and the shipment date for their
transitional OS slipped beyond commercial viability. To make matters worse,
former management didn't have a fully-PMT GUI waiting in the wings, so now
Apple is without a transitional OS *or* a full-featured OS.
Fortunately, Apple has available the most powerful 2D graphs library ever
implemented on a desktop system: QuickDraw GX.
[before you flame, look through the programming manuals via the GX Fan
Club GXDev page listed below]
GX was designed to be a PMT-able graphics API. It is an object-based,
vector-based graphics library with very robust features. It was designed
from scratch with desktop publishing for 2-byte languages in mind. It was
designed from scratch to be a cross-platform library (at Comdex, Apple
demoed a Netscape plug-in that displays GX graphics under Windows 95). With
GX, all graphical objects are called shapes. Shapes can be collected in
larger groups called pictures. All operations available for shapes are
available for pictures. Even text is considred a kind of shape, and all
shapes can be used for masking and other special effects purposes.
Proposal:
A number of us have noted these useful qualities of GX and have decided to
try to design a next-generation GUI for the Macintosh based on QuickDraw
GX. Due to the object-based nature of GX graphics, GX GUI elements would be
remarkably powerful:
*Any GX graphical objects or set of objects can be transformed using a
3x3 transformation matrix.
*Transparency and coloring issues are resolved using powerful attributes
found in "ink objects."
*In-place editing of text that follows an arbitrary curve
(rotated/skewed/etc is optional) is only two or three steps of complexity
beyond the standard "Hello World" program when using GX calls.
*Transforming a GUI element from one type to another would be trivial using
the GX library since any shape object can store arbitrary data in "Tags,"
which could be used to store GUI-specific data.
*Menus could become docking stations for any arbitrary GUI element,
including another menu, merely by using the already existing GX API.
*WIndows could be skewed or rotated or given a 3D perspective and rotated
*into* the screen or merely scaled [allowing full view of 2 or more
windows' contents as they are updated] using a simple 3x3 transform matrix.
*OS language localization issues are relatively trivial because the GX font
model was designed from scratch to handle single and double-byte languages
desktop publishing issues.
*Because GX was designed with PMT in mind, the issues that Apple faces to
implement GX with full pre-emption are likely to be far less costly and
time-consuming than any other options available for them to create the
next-generation MacOS GUI.
*Because GX is available already, a "shell" could be created to allow
Macintosh developers to share a common code base between the current System
7 and the not-yet-released MacOS 8. THis would provide a MUCH larger
customer base than would be available according to current rumors of an
entirely new API with no backwards compatibility.
*An Windows Manager and GUI API based on GX could be designed to be as
robust and simple to use as the Mac's user interface itself.
*Because GX was designed to be cross-platform, in theory a GX-based GUI
could be ported to any platform, including the Internet.
The discussion of how to implement a GX-based GUI and Windowing system is
taking place primarily on two mailing lists: GX Dev and AIMED-talk.
Subscription info can be found in my sig.
Anyone interested in discussing issues related to implementing a GUI and
Windowing system based on the most powerful 2D graphics library available
on any platform
[yes, I know about Display PostScript]
should consider monitoring and contributing to these discussions on the
AIMED-talk and GX Dev mailing lists. We believe that a GX-based GUI is
viable and the best solution for Apple's immediate OS problem. Apple
engineers are known to be monitoring this discussion, so it is conceivable
that the ideas generated may actually be used in the next-generation Mac
OS. At the least, the discussion should generate some interesting ideas
concerning cutting edge user interfaces and PMT-aware windowing systems
when using vector-based, object-based graphics.
I don't read most of the newsgroups that I'm posting this to, so any
feedback/questions/flames will have to be sent via e-mail.
Thanks for your time.
++++++++++++++++++
To find out more about QuickDraw GX, go to:
(http://www.gxfanclub.com/)
To find out more about programming GX, or to subscribe to the GXdev mailing
list, go to
(http://www.gxfanclub.com/gxdev.html)
++++++++++++++
HOW DO I SUBSCRIBE TO AIMED-TALK?
-------------------------------------
To subscribe to AIMED-TALK proceed as follows:
Send E-mail to:
(aimed-talk-request@aimed.org)
with a blank subject line and the following command as the
first (and only) line of the message body:
SUBSCRIBE
++++++++++++++++++