|
|
|
| United States Patent | 5041992 |
| Link to this page | http://www.wikipatents.com/5041992.html |
| Inventor(s) | Cunningham; Robert E. (Palo Alto, CA);
Bonar; Jeffery G. (Pttsburgh, PA);
Corbett; John D. (Pittsburgh, PA) |
| Abstract | A system and method for interactive design of user manipulable graphic
elements. A computer has display and stored tasks wherein the appearance
of graphic elements and methods for their manipulation are defined. Each
graphic element is defined by at least one figure specification, one mask
specification and one map specification. An interactive display editor
program defines specifications of said graphic elements. An interactive
program editor program defines programming data and methods associated
with said graphic elements. A display program uses the figure, map and
mask specifications for assembling graphic elements upon the display and
enabling user manipulation of said graphic elements. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5041992 |
|
|
Interactive method of developing software interfaces |
|
|
|
|
|
| Publication Date |
August 20, 1991 |
|
|
|
|
|
| Filing Date |
October 24, 1988 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
We claim:
1. A system for the interactive design of user manipulable graphic
elements, comprising
a) a computer having a display and stored tasks wherein the appearance of
said graphic elements and methods for their manipulation are defined, each
said graphic element being defined by at least one figure specification
defining the appearance of said graphic element and at least one other
type specification defining one or more areal properties of one or more
portions of said graphic element,
b) an interactive display editor program for defining the figure
specification and said other type specifications of said graphic elements,
c) an interactive program editor program for programming data and said
methods associated with said graphic elements, and
d) program means using the figure specification and said other type
specifications for assembling said graphic elements upon the display and
enabling user manipulation of said graphic elements.
2. Systems according to claim 1 wherein said display editor has means for
copying said figure specification and said other type specifications to
form copied specifications and for modifying said copied specifications
for creating additional other type specifications.
3. A system for the interactive design of user manipulable graphic
elements, comprising
a) a computer having a bit mapped display and stored tasks comprising an
object oriented programming environment wherein the appearance of said
graphic elements and methods for their manipulation are defined by display
objects, each said display object comprising at least one bit mapped
figure specification instance variable defining the appearance of said
display object and at least one other bit mapped type specification
instance variable defining one or more areal properties of one or more
portions of said display object,
b) an interactive display editor program for defining said bit mapped
figure specification instance variables and said other bit mapped type
specification instance variables of said display objects,
c) an interactive program editor program for programming data and said
methods associated with said display objects and other objects of said
programming environment, and
d) program means using said bit mapped figure specification instance
variables and said other bit mapped type specification instance variables
for assembling said graphic elements upon the display and enabling user
manipulation of said graphic elements.
4. A system for the interactive design of user manipulable graphic
elements, comprising
a) a computer having a bit mapped display and stored tasks comprising an
object oriented programming environment wherein the appearance of said
graphic elements and methods for their manipulation are defined by display
objects, each said display object comprising at least one bit mapped
figure specification instance variable defining the appearance of said
display object and at least one bit mapped mask specification instance
variable,
b) an interactive display editor program for defining said bit mapped
figure specification instance variables and said bit mapped mask
specification instance variables of said display objects,
c) an interactive program editor program for programming data and said
methods associated with said display objects and other objects of said
programming environment, and
d) program means using said bit mapped figure specification instance
variable and said bit mapped mask specification instance variables for
assembling said graphic elements upon the display and enabling
manipulation of said graphic elements,
said mask specification instance variables defining nontransparent portions
of said graphic elements, said display editor program having means for
establishing and maintaining a list defining occlusion priorities of said
graphic elements, said program means for assembling said graphic elements
upon the display comprising means for defining one or more collections of
overlaid graphic elements, each of said collections being formed by moving
one or more of said graphic elements to a position in which said moved
graphic elements geometrically overlap one or more other of said graphic
elements to create overlaid portions and a second program means for
controlling the display such that said nontransparent portions of said
graphic elements of each said collection having higher occlusion
priorities mask all said overlaid portions of graphic elements having
lower occlusion priorities.
5. A system for the interactive design of user manipulable graphic elements
displayed upon a computer display, comprising
a) a computer having a bit mapped display, a mouse for input, said mouse
having one or more mouse buttons, a keyboard input capability and stored
tasks comprising an object oriented programming environment wherein the
appearance of said graphic elements and methods for their manipulation are
defined by display objects, said display object comprising at least one
bit mapped figure specification instance variable defining the appearance
of said display object and at least one bit mapped map specification
instance variable,
b) an interactive display editor program for defining said bit mapped
figure specification instance variables and said bit mapped map
specification instance variables of said display objects,
c) an interactive program editor program for programming data and said
methods associated with said display objects and other objects of said
programming environment, and
d) program means using said bit mapped figure specification instance
variables for assembling said graphic elements upon the display and for
displaying a mouse cursor within said display,
said map specification instance variables defining mouse sensitive portions
of said graphic element as a tagged list or list tree of bit maps, said
program editor program having means for defining one or more of said
methods to be activated when the mouse is used to bring the mouse cursor
over said mouse sensitive areas of said graphic element and one of said
mouse buttons has been pushed while the mouse cursor is within a mouse
sensitive area.
6. A system for the interactive design of user manipulable graphic elements
displayed upon a computer display, comprising
a) a computer having a bit mapped display, a mouse input, said mouse having
one or more mouse buttons, a keyboard input capability and stored tasks
comprising an object oriented programming environment allowing messages to
be exchanged between objects and wherein the appearance of said graphic
elements and methods for their manipulation are defined by display
objects, each said display object comprising at least one bit mapped
figure specification instance variable defining the appearance of said
display object, at least one bit mapped mask specification instance
variable and at least one bit mapped map specification instance variable,
b) a display editor program for defining said bit mapped figure, mask and
map specification instance variables of said display objects,
c) a program editor program for programming data and said methods assigned
to said display objects and other objects of said programming environment,
and
d) a program means using said bit mapped figure, mask and map specification
instance variables for assembling said graphic elements upon the display
and for displaying a mouse cursor within said display,
said mask specification instance variables defining nontransparent portions
of said graphic element, said display editor program or said program
editor program having means for assigning occlusion priorities to each
said graphic element, said program means further having means for defining
one or more collections of overlaid graphic elements, each of said
collections being formed by moving one or more of said graphic elements to
a position in which said moved graphic elements geometrically overlap one
or more other of said graphic elements to create overlaid portions, and a
second program means for controlling the display such that said
nontransparent portions of said graphic elements of each said collection
having higher occlusion priorities mask all said overlaid portions of
graphic elements having lower occlusion priorities, said map
specifications defining mouse sensitive portions of at least one said
graphic element, said program editor having means for defining one or more
of said methods or messages to be activated when the mouse is used to
bring the mouse cursor over said mouse sensitive areas of said graphic
element and one of said mouse buttons is pushed.
7. Systems according to any one of claims 3 to 6 wherein said display
editor has means for creating multiple sets of bit mapped specification
instance variables associated with a given display object which sets of
specification instance variables are selectable by messages sent to the
display object.
8. Systems according to any one of claims 3 to 6 wherein said display
editor has means for copying said bit mapped specification instance
variables to yield copied specification instance variables and modifying
said copied specification instance variables for creating additional bit
mapped type specification instance variables.
9. A computer assisted process for the interactive design of user
manipulable graphic elements displayed on a computer display, said method
requiring a computer having tasks wherein the appearance of said graphic
elements and methods for their manipulation are defined, each said graphic
element bring defined by at least one figure specification defining the
appearance of said graphic element and at least one other type
specification defining one or more areal properties of one or more
portions of said graphic element, an interactive display editor program
for defining the figure specification and said other type specifications
of said graphic elements, a program editor program for programming data
and said methods associated with said graphic elements, and a program
means for assembling said graphic elements upon the display and enabling
the manipulation of said graphic elements, comprising the steps of
a) using the display editor program to interactively define said figure
specification of a new graphic element, and
b) using the display editor program to interactively define at least one of
said other type specifications of said new graphic element.
10. A process according to claim 9 wherein figure specifications are copied
and modified to define specifications of new display objects.
11. A computer assisted process for the interactive design of user
manipulable graphic elements displayed upon a computer display, said
method requiring a computer having an object oriented programming
environment wherein the appearance of said graphic elements and methods
for their manipulation are defined, each said graphic element being
defined by display objects, each said display object comprising at least
one bit mapped figure specification instance variable defining the
appearance of said graphic element and at least one other bit mapped type
specification instance variable defining one or more areal properties of
one or more portions of said graphic element, an interactive display
editor program for defining the figure specification instance variables
and said other bit mapped type specification instance variables of said
display objects, a program editor program for programming data and said
methods assigned to said display objects and other objects of said
programming environment, and a program means for assembling said graphic
elements upon the display and enabling the manipulation of said graphic
elements, comprising the steps of
a) using the display editor program to interactively define the bit mapped
figure specification instance variables of a new graphic element, the data
for which figure specification instance variables are associated with a
display object corresponding to said new graphic element, and
b) using the display editor program to interactively define at least one
other bit mapped type specification instance variables of said new graphic
element, the data for which other type specification instance variables
are associated with a display object corresponding to said new graphic
element.
12. A computer assisted process for the interactive design of user
manipulable graphic elements displayed upon a computer display, said
method requiring a computer having a bit mapped display and an object
oriented programming environment wherein the appearance of said graphic
elements and methods for their manipulation are defined by display
objects, each said display object comprising at least one bit mapped
figure specification instance variable defining the appearance of said
graphic element and at least bit mapped mask specification instance
variable defining nontransparent portions of said graphic element, an
interactive display editor program for defining the bit mapped figure and
mask specification instance variables of said display objects, a program
editor program for programming data and said methods assigned to said
display objects and other objects of said programming environment, and a
display program means, said display program means supporting windows, for
assembling said graphic elements upon the display and enabling the
interactive positioning and repositioning of said graphic elements at
locations within one or more of said windows, comprising the steps of
a) using the display editor program to interactively define the bit mapped
figure specification instance variables of a new graphic element, the data
for which figure specification instance variables are associated with a
display object corresponding to said new graphic element,
b) using the display editor program to interactively define the bit mapped
mask specification instance variables defining transparent and
nontransparent portions of said new graphic element, the data for which
map specification instance variables are associated with a display object
corresponding to said new graphic element,
c) repeating steps a) and b) one or more times to define a plurality of
display objects, and
d) using either the display editor program or the program editor program
for assigning occlusion priorities to each display object such that when
the display program means is invoked to move one or more of said new
graphic elements to a position in which said moved graphic elements
geometrically overlap one or more of other said graphic elements to
created overlaid portions, said nontransparent portions of said graphic
elements having higher occlusion priorities mask all said overlaid
portions of graphic elements having lower occlusion priorities.
13. A computer assisted process for the interactive design for user
manipulable graphic elements displayed upon a computer display, said
method requiring a computer having a bit mapped display, a mouse for
input, said mouse having one or more mouse buttons, a keyboard input
capability and an object oriented programming environment allowing
messages to be exchanged between objects and wherein the appearance of
said graphic elements and methods for their manipulation are defined by
display objects, each said display object comprising at least one bit
mapped figure specification instance variable defining the appearance of
said graphic element and at least one other bit mapped type specification
instance variable defining one or more areal properties of one or more
portions of said graphic element, an interactive display editor program
for defining the bit mapped figure specification instance variables and
said other bit mapped type specification instance variables of said
display objects, a program editor program for programming data and said
methods assigned to said display objects and other objects of said
programming environment, and a display program means for assembling
graphic elements upon the display and displaying a mouse cursor,
comprising the steps of
a) using the display editor program to interactively define the bit mapped
figure specification instance variables of a new graphic element, the data
for which figure specification instance variables are associated with a
display object corresponding to said graphic element,
b) using the display editor program and the program editor program to
interactively define the bit mapped map specification instance variables
defining mouse sensitive portions of at least one said new graphic
element, the data for which map specification instance variables are
associated with a display object corresponding to said graphic element,
and
c) using the program editor program to define one or more of said methods
or messages to be activated when the mouse is used to bring the mouse
cursor over said mouse sensitive areas of said graphic element and one of
said mouse buttons is pushed.
14. A computer assisted process for the interactive design of user
manipulable graphic elements displayed upon a bit mapped computer display,
said graphic elements being comprised of at least bit mapped figure
specification instance variables defining the appearance of said graphic
elements, bit mapped mask specification instance variables defining the
transparent and nontransparent portions of said graphic elements, and bit
mapped map specification instance variables defining mouse sensitive
portions of said graphic elements, said process requiring a computer
having a mouse for input, said mouse having one or more mouse buttons, a
keyboard input capability and having an object oriented programming
environment with an interactive display editor program for defining
elements of display objects representing said graphic elements, a program
editor program for programming data and methods for manipulating objects
assigned to said display objects and to other objects of said programming
environment, and a display program means, said display program means
supporting windows, for assembling said graphic elements within at least
one of said windows defined upon the display and enabling the interactive
positioning and repositioning of said graphic elements at locations within
one or more of said windows, comprising the steps of
a) using the display editor program to interactively define bit mapped
figure specification instance variables of a new graphic element, the data
for which figure specification instance variables are associated with a
display object corresponding to said new graphic element,
b) using the display editor program to interactively define bit mapped mask
specification instance variables defining transparent and nontransparent
portions of said new graphic element, the data for which mask
specification instance variables are associated with a display object
corresponding to said new graphic element,
c) repeating steps a) and b) one or more times to define a plurality of
display objects,
d) using either the display editor program or the program editor program
for assigning occlusion priorities to each of said new graphic elements by
storing data in at least one of said instance variables associated with
each display object such that when the display program means is invoked to
move one or more of said graphic elements to a position in which said
moved graphic elements geometrically overlap one or more of other said
graphic elements to created overlaid portions, said nontransparent
portions of said graphic elements having higher occlusion priorities mask
all said overlaid portions of graphic elements having lower occlusion
priorities,
e) using the display editor program and the program editor program to
interactively define one or more of said map specification instance
variables of at least one said new graphic element, the data for which map
specification instance variables are associated with a display object
corresponding to said new graphic element, and
f) using the program editor program to define one or more of said methods
or messages to be activated when the mouse is used to bring the mouse
cursor over said mouse sensitive areas of said graphic element and one of
said mouse buttons is pushed, said methods and messages being associated
with a display object corresponding to said graphic element.
15. A computer assisted process for the interactive design of user
manipulable graphic elements associated with an application domain and
displayed upon a bit mapped computer display, said graphic elements being
comprised of at least bit mapped figure specification instance variables
defining the appearance of said graphic elements, bit mapped mask
specification instance variables defining the transparent and
nontransparent portions of said graphic elements, and bit mapped map
specification instance variables defining mouse sensitive portions of said
graphic elements, said graphic elements comprising the visual
representations of programming items, said process requiring a computer
having a mouse for input, said mouse having one or more mouse buttons, a
keyboard input capability and having an object oriented programming
environment with an interactive display editor program for defining
elements of display objects representing said graphic elements, a program
editor program for programming data and methods for manipulating objects
assigned to said display objects and to other objects of said programming
environment, and a display program means, said display program means
supporting windows, for assembling said graphic elements within at least
one of said windows defined upon the display and enabling the interactive
positioning and repositioning of said graphic elements at locations within
one or more of said windows, comprising the steps of
a) using the display editor program to interactively define bit mapped
figure specification instance variables of a new graphic element, the data
for which figure specification instance variables are associated with a
display object corresponding to said new graphic element,
b) using the display editor program to interactively define bit mapped mask
specification instance variables, the data for which mask specification
instance variables are associated with a display object corresponding to
said new graphic element,
c) repeating steps a) and b) one or more times to define a plurality of
display objects,
d) using either the display editor program or the program editor program
for assigning occlusion priorities to each of said new graphic elements by
storing data in at least one of said instance variables associated with
each display object such that when the display program means is invoked to
move one or more of said graphic elements to a position in which said
moved graphic elements geometrically overlap one another or more of other
said graphic elements to created overlaid portions, said nontransparent
portions of said graphic elements having higher occlusion priorities mask
all said overlaid portions of graphic elements having lower occlusion
priorities,
e) using the display editor program and the program editor program to
interactively define one or more of said map specification instance
variables of at least one said new graphic element, the data for which map
specification instance variables are associated with a display object
corresponding to said new graphic element,
f) using the program editor program to define one or more of said methods
or messages to be activated when the mouse is used to bring the mouse
cursor over said mouse sensitive areas of said graphic element and one of
said mouse buttons is pushed, said methods and messages being stored at
instance variables associated with the display object corresponding to
said graphic element, and
g) using the program editor program to define methods for domain objects,
said domain objects representing objects from said application domain and
said methods specifying the function of said programming items and for
exchanging messages with a display object defining the visual
representation of said programming items.
16. A process according to any one of claims 11 to 15 wherein each display
object may have multiple sets of figure specification instance variables
associated therewith, said sets being selectable by messages sent to the
display object.
17. A process according to any one of claims 11 to 15 wherein sets of
figure specification instance variables are copied and modified to define
specification instance variables of new display objects. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
This application relates to systems and methods for design of interactive
interfaces for computer programs.
Computer programs are a series of instructions that direct the operation of
a computer. They are written by computer programmers to achieve a desired
purpose. The instructions, taken as a whole, may define a computer
application such as a word processing system, an accounting system, an
inventory system or an arcade game. Most programs require interaction with
the user of the computer program. In the case of a word processing
program, the user keys text, formats and prints documents. In the case of
an accounting program, the user enters the desired debits and credits and
appropriate documentation, posts and selects reports. The schemes used to
prompt the computer user to input data and to output information generated
by the computer program to the computer user are known as human/computer
interfaces.
This application relates to systems and methods that facilitate the
computer programmer's task of writing programs with human/computer
interfaces that are readily understandable and easy to use.
More and more, human/computer interfaces (whatever the application) make
use of certain devices such as menus, windows, scroll bars, graphical
displays, in addition to the traditional and still essential keypad and
keyboard. Especially popular are direct manipulation interfaces (DMI)
which are human/computer interfaces that allow the user to command the
computer by selecting and manipulating pictures (sometimes called icons),
usually with a pointing device such as a mouse. (A mouse is simply an
input device which, when moved over a surface, "drags" a mouse pointer
over the computer display. Typically, a mouse has several buttons which
when pressed, initiate an input relating the button pusher and the
location of the mouse cursor upon the computer display. The pressing or
releasing of a mouse button is often referred to as a "mouse event".) The
pictures of a DMI are designed to behave somewhat like the objects they
represent. The Apple Macintosh employs direct manipulation extensively and
is widely considered one of the easiest computers to use for people who
are not necessarily computer specialists. The advantages of direct
manipulation are widely recognized.
Unfortunately, direct manipulation interfaces are difficult to construct
and difficult to modify once they are constructed. The programmer needs to
write programs to create the pictures, move the pictures around the
screen, determine what pictures the mouse is pointing to, what the
pictures on the screen represent, what to do when a picture is selected
and so forth. Although some programming languages and tools provide
commands for drawing geometric figures and ways of sensing the mouse
events, these basic capabilities are only the beginnings of a direct
manipulation interface. Traditional programming languages leave the
programmer to construct more sophisticated objects, such as menus. This is
time consuming and often leads to complex and idiosyncratic interfaces.
User interface management systems are known which are computer programs
that provide a collection of interface elements such as menus and dialog
boxes and often include interactive tools for building prototype
interfaces. See, for example, "Software Frameworks" Byte December 1984,
describing Apple Computers Toolkit/32; "Macapp: An Application Framework",
Byte August 1986; and "Objects, Icons and Software-ICS", Byte August 1986.
If a user interface management system has an interactive interface itself,
it may be possible to create entire application interfaces without
programming. For some applications, a good user interface management
system may be sufficient. However, it is not always clear what interface
elements and interactive tools will be needed and the interface elements
and tools may not be readily modified or modified at all to suit the
specific application.
Current estimates indicate that interface design can consume 50 percent of
the time on a large programming project. Interfaces produced are usually
difficult to debug and modify. Even though carefully thought out,
interfaces are likely to need to be redesigned when tried with real users.
SUMMARY OF THE INVENTION to simplify the development of sophisticated
interfaces.
It is a further advantage to cut the time needed to implement an interface
by as much as a factor of 10.
It is yet another advantage to allow interfaces to be quickly and easily
designed, thoroughly tested and then discarded for more effective
redesigns.
It is an advantage according to this invention that graphic elements on
computer displays can be created, displayed and manipulated directly. The
displays comprising the interface can be simply saved and restored.
It is an advantage according to this invention to allow the programmer to
treat an interface as an object for inspection, manipulation and design.
According to this invention, the programmer uses graphic editors to mock up
interface designs by drawing and arranging objects that appear on the
computer display. The application underneath the interface is created by
"building inward" from this mock-up. Typically, the programmer is building
a direct manipulation interface which allows the user to command the
computer by moving and selecting icons designed to behave like the objects
they represent.
Briefly, according to this invention, there is provided a system for the
interactive design of user manipulable graphic elements. The system
comprises a computer having a bit and stored tasks. The appearance or
sensitivity of graphic elements are defined by at least one figure
specification and one other type specification, such as a mask
specification or a map specification. Figure specifications define the
outline and shading of graphic elements. Mask specifications define the
transparent and nontransparent portions of graphic elements. Map
specifications define the sensitive, for example, mouse pointer sensitive
areas of graphic elements. An interactive display editor program is
provided for defining the specifications of said graphic elements. An
interactive program editor program is provided for programming data and
methods associated with said graphic elements. A display program using the
figure specifications and the other type specifications is provided for
assembling graphic elements upon the display and enabling user
manipulation of said graphic elements. Preferably, the figure, map and
mask specifications are bit mapped specifications.
It is most preferred, according to this invention, that the display editor
be capable of copying specifications of one type for use in generating
specifications of another type. In other words, once the figure
specification has been generated, the mask and map specifications can be
generated by copying and modifying the figure specification. This results
in rapid programming and insures alignment of the various specifications.
According to one embodiment of this invention, multiple sets of figure, map
and mask specifications are generated. The copying feature of the display
editor enables the generation of alternate sets of specifications where
they have common features and require alignment.
In one preferred embodiment according to this invention, the computer has
stored tasks comprising an object oriented programming environment wherein
the appearance of said graphic elements and methods for their manipulation
are defined by display objects, each said display object comprising at
least one figure specification instance variable and one other type
specification instance variable.
Where the other type specification is a mask specification defining the
nontransparent portions of said graphic element, the display editor or
said program editor is used to establish a list defining occlusion
priorities of graphic elements. The display program for assembling graphic
elements upon the display comprises an algorithm for controlling the
display such that the masked portions of graphic elements with a higher
occlusion priority mask the overlaid portions of a graphic elements with a
lower occlusion priority.
Where the other type specification comprises map specifications defining
mouse sensitive portions of said graphic element, it may comprise a
plurality of specifications organized as a tagged list or list tree of bit
maps. The program editor is used for defining methods activated when the
mouse is used to bring the mouse cursor over the mouse sensitive areas of
the graphics element and a mouse button is pushed. The display program has
algorithms for recognizing when a mouse button has been pushed while the
mouse cursor is within a mouse sensitive area. The algorithm preferably
comprises a depth first search of the tagged list tree.
There is also provided, according to this invention, a computer assisted
process for the interactive design of user manipulable graphic elements
displayed upon a computer display. The method requires an interactive
display editor program for defining specifications of graphic elements, a
program editor for programming data and methods associated with graphic
elements, and a display program for assembling graphic elements upon the
display and enabling the manipulation of graphic elements. The method
comprises a first step of using the display editor to interactively define
the figure specification of a graphic element and a subsequent step of the
display editor to interactively define at least one other type
specification. According to a preferred embodiment, the method requires a
computer having an object oriented programming environment wherein the
appearance of said graphic elements and methods for their manipulation are
defined by display objects, an interactive display editor program for
defining specifications of display objects, a program editor program for
programming data and methods assigned to display objects and other program
objects, and a display program for assembling graphic elements upon the
display and enabling the interactive positioning and repositioning of
graphic elements at locations within a window. The method comprises the
step of invoking the display editor to interactively define the figure
specification of a graphic element, the data for which is stored in at
least one instance variable associated with a display object, the step of
using the display editor to interactively define a mask specification
defining the transparent and nontransparent portions of said graphic
element, or to interactively define a map specification defining sensitive
areas, the data for which is stored in at least one instance variable
associated with said display object, and repeating prior steps to define a
plurality of display objects.
An additional step may comprise using either the display editor or the
program editor to assign occlusion priorities to each display object such
that when the display program is invoked to move one graphic element to
the same position as another, the masked portions of a graphic element
with a higher occlusion priority mask the overlaid portions of the graphic
elements with a lower occlusion priority.
Yet another additional step may comprise invoking the program editor to
define methods or messages activated when the mouse is used to bring the
mouse cursor over the mouse sensitive areas of the graphic element and a
mouse button is pushed.
In an especially preferred method, the display editor is used to copy an
existing specification for generating another specification by the
modification thereof.
BRIEF DESCRIPTION OF THE DRAWINGS
Further features and other objects and advantages will become apparent from
the following description made with reference to the drawings in which:
FIGS. 1(a) and 1(b), respectively, illustrate figure and mask
specifications;
FIGS. 2(a), 2(b) and 2(c) illustrate the process of erasing a mask and
painting a figure;
FIG. 3(a) illustrates a figure specification and FIGS. 3(b), 3(c), 3(d) and
3(e) illustrate possible map specifications corresponding to FIG. 3(a);
FIG. 4 illustrates the tree structure of the map specification; and
FIG. 5 illustrates three icons assembled upon a computer display
illustrating the appearance of three dimensions.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
While not entirely essential to the implementation of the applicants'
invention, it is most easily implemented in object oriented programming
environments. The nature of object oriented programming has been explained
in detail in the literature. For example, SmallTalk 80: The Language and
its Implementation, Goldberg and Robeson, 1983; numerous articles in the
August 1981 and August 1986 issues of Byte; "Object-Oriented programming:
Themes and Variations", Stefik and Bobrow, The AI Magazine, Winter 1986.
In an object oriented programming language, the fundamental data structures
of the language are objects, programming elements that contain a
specification of both data and actions. Data are specified in local
variables referred to as instance variable (or IVs, for short) contained
within the object. Actions or methods are subprograms that operate on the
variables. Methods are invoked by messages sent from one object to itself
or other objects.
There are two fundamental kinds of objects: classes and instances. Classes
define a set of variables and methods and can be thought of as templates
for object types. Instances are particular instantiations of a class. An
instance provides storage for variables defined in its class. Each
instance has its own version of those variables. When a message is sent to
an instance, the instance looks to methods defined in its class to specify
how the message is to be executed.
Classes are defined in terms of class hierarchy. A class inherits all
variables and methods from classes referred to as superclasses. The
variables and methods inherited from a superclass are available to the
inheriting class as if they were defined within the inheriting class. A
class can be referred to as a subclass or a child class of its
superclasses. Note, that if a subclass has multiple superclasses, all the
variables and methods from each superclass are inherited. This is often
referred to as multiple inheritance.
There are two kinds of variables that can be defined within a class. Class
variables, which are referred to as CVs, define variables whose storage is
shared by all instances of the defining class. Class variables are
typically used for coordination between classes instances. Instance
variables (IVs define variables where a separate storage space is
allocated for each instance. All instances have their own copy of instance
variables.
Methods specify the action to be performed when a message is sent to an
object. When the message is sent to an object, the message name is matched
against method names defined for that object. The method actually executed
is the method with the same name as the message that is defined lowest in
that object's class hierarchy.
Messages can have parameters. When a message is sent, all actual parameters
are fully evaluated before a method is located for that message. Methods
have formal parameters, corresponding to the actual parameters in the
message, and temporary variables. Temporary variables may be created when
a message is executed, are available only within the scope of that method
while the method is executing.
Programs perform by sending messages to objects which invoke a method in an
object's class. Often methods send messages to other objects invoking
other methods. Each method returns a result to the sender. At the heart of
many languages and especially an object oriented language is a program
segment for interpreting and evaluating messages and keeping track of
where to return when messages call other messages. The applicants,
invention does not reside in the particular implementation of this program
segment.
Object oriented programming can be implemented with any number of
programming languages. Object oriented programming environments have been
implemented in the LISP language, in the C language and in others. For
example, Interlisp-D has been extended to provide the LOOPS programming
environment. See "Object-Oriented Programming: Themes and Variations",
Stefik and Bobrow, The AI Magazine, Winter 1986 and The LOOPS Manual,
Bobrow and Stefik, Xerox Corporation 1983.
Interlisp-D/LOOPS runs on a Xerox 1100 Series Work station. A work station
is simply a single user computer with a large graphics display, several
megabytes of memory, a high speed processor and a device for pointing to
objects on the display, such as a mouse. Work stations have bit mapped
displays. In a bit mapped display, a portion of the computers memory is
dedicated to storing the screen bit map. Each pixel on the display
corresponds to at least one bit of memory in the screen bit map. In the
case of a CRT display, as the raster is scanned, the video signal for any
given pixel is controlled by the corresponding bit or bits in the screen
bit map. Programs and apparatus for reading the screen bit map and feeding
the information therein to the video input of the CRT in synchronism with
the horizontal and video scanning signals are well known and form no part
of this invention.
Systems software for work stations typically comprises a number of
operations for transferring scratch bit maps to the screen bit map and for
combining scratch bit maps. A popular tool for manipulating bit maps is
BITBLT also known as RasterOp. BITBLT is a general purpose procedure for
copying, moving and combining portions of bit maps. It is described in
Principles of Interactive Computer Graphics, Newman and Sproull, McGraw
Hill 1979. See also "The SmallTalk Graphics Kern", Byte Magazine August
1981, and "Raster Operations", Byte Magazine, November 1985.
Bit maps may be generated directly with bit map editors that display a
large pixel representation of the bit map upon a display screen and allow
the programmer to black in or clear individual pixels. Use of such a bit
map editor is obviously tedious. Another form of graphics editor is known
as a object graphics editor. Object graphics editors respond to commands
to draw and erase lines and circles and other shapes and to fill and clear
specified areas. The graphics editor builds a list of commands for
describing an image. Before the object graphics generated image can be
displayed on a bit mapped display, it must be converted to a bit map.
Object graphics editors often include such a utility. An object graphics
editor known as "Sketch" is available as a drawing program for the
Interlisp-D environment. It enables the interactive construction of
figures from a combination of text and graphics. A sketch created by the
"Sketch" program consists of elements such as text, lines and curves,
boxes, circles and ellipses. Each element has one or more positions that
determine the location and shape and a set of properties that determine
how it looks. Sketch is an interactive graphics editor in that locations
upon the display may be designated by use of a mouse cursor and mouse
events. Object graphics editors are known in the art. "Sketch" is
described in A Users Guide To Sketch-The Interlisp Drawing System, Xerox
Corporation, 1985. "McDraw" is an object graphics editor widely known to
Apple Macintosh users.
Common to most object oriented programming environments are commands that
may be issued from the keyboard or with the mouse pointer for creating and
modifying classes and specializing classes to create new objects. "Systems
classes" define how objects, instances, instance variables (IVs), classes,
class variables (CVs) and messages can be created, destroyed, edited or
manipulated. For example, the highest level of class may be named "Object"
having no parent | | |