Abstract
Reno is a proof of concept prototype produced by the
Advanced User Interface Group of Microsoft. It illustrates
the power and simplicity of object-orientation for the end
user when applied completely and uniformly throughout the
entire user interface. Its minimalist design is based on a
small set of widely applicable object types and commands
which are combined into more sophisticated constructions
that accommodate the functionality of shells and
applications of today, yet with greater integration,
consistency, and simplicity.
Keywords
Object-oriented user interface, direct manipulation,
constraints, constructionism, user programming, document-
centric user interface.
Introduction
The objective of the Reno project is to illustrate and
measure the end-user benefits of a purely object-oriented
interface for a wide range of office related tasks. The Reno
design is intended to:
- Encompass existing functionality found in applications
and shells today.
- Allow users to perform office related tasks with less
learning time, greater simplicity, and more flexibility
than current application-based software.
- Provide for maximum pervasiveness/leverage of
functionality across the interface.
- Provide a rich foundation for incorporating new
functionality.
What distinguishes Reno is how pervasively the principles
of object-orientation are applied throughout the interface.
Reno is not only "objects all the way through" but also
"composition all the way through", that is, virtually
everything that a user encounters in the interface (a sales
report, a chart, or the desktop itself) behaves as a
composition of smaller and simpler pieces. The user may
disassemble and reassemble these compositions to serve
new purposes using consistent composition and relational
operations.
OBJECTS
Every entity in Reno behaves as an autonomous object
exhibiting properties that can be changed by the user,
operations which may be invoked through commands, and
relationships which may be established with other objects.
Objects belong to a specific class which determines the
nature of their properties and commands. These classes
share many common characteristics through Reno's narrow
and deep class inheritance hierarchy making the objects
behave in a consistent fashion for the user. The state of
every object is maintained through automatic persistence -
there is no explicit commit or discard action on the users
part, although operations may be undone.
Composition
Objects such as simple graphic shapes and alphanumeric
characters are considered primitives in Reno since they are
atomic elements and cannot be decomposed further into
constituent elements. One of the most common forms of
composition is containment. The notion of containment is
taken literally in Reno as every object resides in a unique
place, i.e., another object called its container. The role of a
container is to both contain and arrange its elements in a
meaningful presentation. The basic container types (called
frames here because of their rectangular and finite shape)
include:
- Z frame - arranges elements at a x, y point and z-layer.
- Stream frame - arranges elements sequentially in word-
wrapping lines.
- Table frame - arranges elements in a 2D grid.
Since a frame itself can be an element of another frame, the
user may nest elements to arbitrary levels. For example, it
is trivial to insert a Z frame drawing into the cell of a table
frame which itself in an element of a larger text stream
frame.
Documents, Folders, and Workspaces
Reno uses the common Z frame container as the basis of
documents, folders, and workspace. A document is simply
a Z frame that arranges its elements in a z-layer on a page,
but by virtue that it contains document sorts of things (i.e.,
text, illustrations, charts) it takes on the role of being a
document to the user. Folders are similarly Z frames that
are normally used to store documents and other folders, but
they are capable of containing other kinds of elements like
graphics or text. This flexibility permits a folder to contain
a disclaimer paragraph about its contents right at the top
level of folder. A workspace, in addition to being a
container, is conceptually a "place" where a user organizes
tasks, including items such as opened documents or folders.
"Entering" a workspace causes its view to occupy the entire
display. Because documents, folders, and workspaces are
fundamentally Z frames, their selection and manipulation of
elements behave consistently from the user's point of view.
Windows, Views, and Links
The contents of a container are viewed by the user through a
window object - a rectangular frame that provides a
scrollable view of the content of a container. How the
content is actually rendered in the window is a function of
the view the user has chosen (i.e., page layout, outline). A
Reno link is an icon which provides alternate access to a
container. The link maintains its own independent view
state on the container which permits numerous windows
(even numerous users) to see the same container
simultaneously.
OPERATIONS
Reno strives to keep the number of operations that a user
must learn to a minimum. A small number of widely
applicable commands (i.e., copy, delete, move, link,
properties) are used in combination to achieve more
sophisticated actions. The interaction style of Reno is
noun-verb: the user makes a selection then acts upon it.
The selection may be single/multiple, contiguous/disjoint,
and is visualized by an universal animated marquee in all
container types. The right mouse button displays a pop-up
menu of commands which the selection is capable of
responding to, either individually or cooperatively as a set.
The container of the selection may add commands to this
menu which it is willing to perform on the selection's behalf
(i.e., To Front and To Back in a Z frame). The selection
may also display handles (i.e. resizing) for direct
manipulation.
Transfer Model
Objects are transferred from one place to another using drag
and drop. There is no clipboard method per se, but since
the workspace is capable of holding any kind of object, the
user may temporarily park an object en route on the
workspace until the destination is available. Dragging with
the right mouse button displays a pop-up menu of all the
possible transfer options at the destination (i.e., move, copy,
link). Dragging with the left button will automatically
perform the default option at the destination.
Properties
Every object has a set of properties which control its
appearance and behavior. These properties are manifest to
the user for editing through a property sheet. Property
sheets not only inspect a particular instance but may also
track the properties of the current selection acting as a
browsing toolbar. Individual properties of different objects
may be one- or two-way linked together permitting the user
to specify constraints among a set of objects. With a single
command, a style or filter sheet can be generated from an
existing property sheet. Applying a style sheet to an object
transfers the property values to appropriate properties of
that object. Subsequently altering the style sheet will
propagate the changes to all the stylized objects. A filter,
on the other hand, when applied to a window will hide
objects that do not match the filter criteria. Reno enables
the user to create styles and filters by example since they
are derived from any object's property sheet.
Scripts
The user may extend the behavior of Reno objects and
automate repetitive tasks by writing scripts that are
triggered upon certain events. All objects announce certain
events such as deletion, change in appearance, and change
in size. The user may write a segment of code to be
invoked when one of these events occur in an object. The
script may perform any action on any Reno object,
referencing it by its globally unique name.
APPLICATION
To illustrate how all of these basic objects and operations
combine together, the Reno demonstration portrays how a
travel agency might use such an interface. The agency's
"travel desk" is a workspace that contains travel catalogs of
compound documents written for travel destinations. These
documents include video and sound clips, travel tips, maps,
and photographs. Client profiles are fashioned from
documents containing text fields and form controls to
document travel preferences. So-called mail is routed via
Reno's generic drag and drop transfer allowing clients to
receive the latest travel information from the agency. The
scenario covers a broad range of system and application-
level functionality, yet is performed with fewer items and
commands than would be required in an application-centric
design.
INFORMATION AND QUESTIONS
You many contact Microsoft's Advanced User Interface
Group at ui@microsoft.com.
References
- Goldberg, Adele and Robson, David. Smalltalk-80, The
Language. (Reading, MA, 1989), Addison Wesley.
- Smalltalk/V Windows, (Los Angeles, 1991), Digitalk.
- ollins, Dave. Object-Oriented User Interfaces Tutorial
at OOPSLA ‘92 (Vancouver, BC), ACM
- Booch, Grady. Object Oriented Design with
Applications. (Redwood City, CA, 1991), Benjamin
Cummings Publishing Co