DeskTopsDoc.tioga
Russ Atkinson (RRA) August 19, 1985 8:36:51 pm PDT
Peter Kessler May 15, 1986 11:12:59 am PDT
Bill Jackson (bj) December 17, 1986 3:45:43 pm PST
DESK TOPS
CEDAR 6.1 — FOR INTERNAL XEROX USE ONLY
Desk Tops
-- multiple virtual desk tops
Russ Atkinson
© Copyright 1985, 1986 Xerox Corporation. All rights reserved.
Abstract: DeskTops are a means for creating several "virtual desktops," each of which appears to be the normal desktop provided by Viewers. DeskTops also provide the Clean button, which cleans off excess icons into a Most Recently Used list. DeskTops formerly resided as part of the Viewers package in the Cedar release. The additional commander operations of ReadDesktop & WriteDesktop are provided for having desktops be persistent in the face of boot/rollback cycles.
Created by: Russ Atkinson & Peter Kessler
Maintained by: Peter Kessler <PeterKessler.pa>
Keywords: virtual desktops, Viewers
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
Multiple Desktops
Users can save configurations of viewers in a special viewer called a desktop. The user can then move back and forth between different configurations of viewers with a simple command. There is always one desktop which represents the configuration of viewers currently on the screen. This desktop (called the current desktop) is indicated on its icon by having its name inverted. The user can "fly" to another desktop by middle clicking the desktop icon while holding down the control key. The viewers and icons on the screen will be stuffed into the current desktop, to be replaced by the viewers and icons in the new desktop. The new desktop then becomes current.
To get a new desktop, type "Desktop name"to the executive. This will create an icon that looks like a minature screen. The first desktop created becomes the current one. A second desktop must be created before you can move to a new desktop. When you fly to the new desktop, only desktops and the UserExec will go with you, all other viewers will be stored in hyperspace. Viewers can be brought over one by one as described below.
To move a viewer from another desktop to the screen, open the desktop icon and left-click the button representing the viewer. This will move the viewer from that desktop onto the screen. If the viewer is already on the screen but iconic, clicking the button will open the viewer. Clicking the button with the shift key down causes the viewer to grow to full column. Viewers can be added to a desktop by selecting the viewer and clicking "AddSelected" in the desktop's menu. This will cause the viewer to be removed from the screen.
To move an individual viewer from the screen onto a particular desktop, open the desktop icon, select the viewer and left-click "AddSelected" in the menu of the desktop. The viewer will then disappear from the screen. You can remove a viewer from a desktop by clicking its button with control held down. If this was the last reference to the viewer, it will automatically be moved back onto the screen. Destroying a desktop viewer may also cause hidden viewers to appear on the screen.
Although some viewers may be inaccessible to the user because they are on different desktops, all viewers are accessible to client programs via ViewerOps.EnumerateViewers. This means that programs don't have to enumerate desktops to see all of the viewers. The bit "offDesktop" will tell the client program whether the viewer is currently accessible to the user. Opening, closing, repositioning, or blinking a viewer will automatically move it onto the screen, whether or not it was on the screen before. Painting a viewer will not. If the client program wants to manually move a viewer onto the screen, it can do so with ViewerOps.ChangeColumn[viewer, {left, right, color}]. All viewers are stored off the screen as icons, therefore a program should only have to worry about manually moving viewers onto the screen if it wants the user to see it repaint an icon.
The operations ReadDesktop & WriteDesktop allow retention of desktops beyond the current session (across boot/rollback). Desktops are represented as text files and may be edited (with sufficient care since error detection is minimal). Both operations append the suffix ".desktop" to filenames that do not contain dots as a convienence. Comprehension of this mechanism is left as an exercise to avid source code/desktop file readers.