[MUSIC PLAYING]
Hello.
I'm Brad Myers, and I'm going to be presenting the User
Interface for Sapphire, A window manager for the PERC
personal workstation.
The PERC has special hardware to make graphics run quickly
on its high resolution bitmap screen.
This is a typical Sapphire screen.
First, I will present how the windows
are displayed in Sapphire.
And next, I'll be talking about how the user can give commands
to manipulate the windows.
As you can see, there are multiple windows here,
and they can overlap.
The parts that are covered do not show through.
I'll be explaining later some commands
that you can use for displaying the parts that are covered.
Windows can be partially or totally off screen.
You can see that this window is off screen to the left,
and I can move it so it'll be off screen to the top.
This is useful if it contains information
that you're not particularly interested in right now.
The windows have title lines, which
display state information such as the current directory
or the program being run, et cetera.
There are a number of windows here,
but there's only one keyboard on the PERC.
Therefore, we have to identify, which window is getting
typing from the keyboard.
Some systems call this the "active window."
But since we have many windows actively displaying
at the same time, we have coined a different term.
We call it the "listener," since it's listening to the keyboard.
Each window is associated with one icon.
The icons provide more information
than just a cute picture, although arbitrary application
to find pictures are certainly allowed.
The typical icon in Sapphire therefore
provides eight pieces of process and window state information.
I will expand this icon so that we can look at what this is.
The border of the icon is shown in gray, the same as the window
if it corresponds to the listener.
This bug appears if there's been an error in the process.
The keyboard appears if the process
is waiting for some kind of user interaction.
And the exclamation point appears
if the application wants user's attention for some reason.
For example, the mail program exhibits the exclamation point
when new mail arrives.
The actual pictures used can be specified by the application
program.
Underneath is the name of the process being run.
Here we see that the editor has used this space
to also show the name of the file being processed.
Underneath are 2% on progress pass.
These are used to show what percent of the job
has been completed.
For example, down here, we can see
that this represents the compiler about 40% done
on the file sketch.
The second bar is used for aggregates,
such as command files.
This tells you what percent of the entire job
has been completed.
Most application programs will be
able to tell what percent of the job they have completed,
but if not, we provide random progress.
We feel that this will make it--
the users feel much better about the system
since they'll be able to tell when their programs are running
and that they haven't crashed.
And also they can plan their time much more effectively
by using the information about when jobs will be completed.
The final piece of information in the icon
is this ellipsis, which shows whether the window has
been sent off screen or not.
Since the icon provide so much useful information,
we'd like them to be displayed all the time
and not just when the window is invisible like in most systems.
Therefore, icons are associated with windows and Sapphire
rather than being an alternative representation for windows.
The next important part of the user interface of Sapphire
is the commands that the user can
give to manipulate the windows.
The goal in designing these commands
was to provide a good user interface without restricting
application programs.
The PERC comes with a variety of pointing devices.
This one being the most typical.
Each of these devices has a different number of buttons,
and we didn't want to reserve any
of the buttons for Sapphire.
So application programs when they are the listener
can use all buttons.
To give window manager commands, you
press in a window that's not the listener.
Or you press in a title line of a window.
In order to change the listener for example,
you press down on a window that's not the listener.
The cursor changes to show a keyboard.
When you let up, the command is executed.
In conclusion, Sapphire provides a number
of innovations in window management and user interface
design.
Icons are used in a novel way to enhance the user's productivity
when multitasking.
The icons present eight pieces of process and window state
information to help the user more effectively monitor
and control multiple processes running at the same time.
The user interface to Sapphire is flexible and powerful
for both novices and experts.
All commands are available from pop-up menus,
but accelerators allow the experts to give commands
with a single button press or with a few keyboard keys.
The picture and the tracking symbol
changes to show which command is going
to be given next providing appropriate feedback.
The interface to Sapphire promotes experimentation
because of this feedback and because it's always
easy to abort commands.
This flexibility has been provided
without restricting application programs
to one style of interaction or to a predefined analogical view
of the system.
Thank you.
[MUSIC PLAYING]