|
|
|
| United States Patent | 5617114 |
| Link to this page | http://www.wikipatents.com/5617114.html |
| Inventor(s) | Bier; Eric A. (Mountain View, CA); Buxton; William A. S. (Toronto, CA); Stone; Maureen C. (Los Altos, CA) |
| Abstract | A user interface technique operates in the environment of a
processor-controlled machine for executing a program that operates on a
set of underlying data and displays a visible representation thereof. The
system further provides a visual depiction of a set of tools. The tools
include click-through tools that can be combined with other tools
(including other click-through tools) to provide composite tools. A
click-through tool includes a generally transparent delineated active area
that is movable so that it can be placed over a desired portion of the
visible representation. When the user interacts with the visible
representation through the active area, the action takes on an attribute
of the particular click-through tool. A click-through tool can be
superimposed on another click-through tool, whereupon an action taken
through the two click-through tools onto the visible representation takes
on attributes of both tools. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5617114 |
|
|
User interface having click-through tools that can be composed with
other tools |
|
|
|
|
|
| Publication Date |
April 1, 1997 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This is a Continuation of application Ser. No. 08/095,445, filed Jul. 21,
1993, now abandoned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5381158 Takahara 345/156 Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5341466 Perlin 345/668 Aug,1994 |      Your vote accepted [0 after 0 votes] | | 5287417 Eller 382/276 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5283560 Bartlett 715/729 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5276797 Bateman 715/823 Jan,1994 |      Your vote accepted [0 after 0 votes] | | 5250929 Hoffman 715/823 Oct,1993 |      Your vote accepted [0 after 0 votes] | | 5204947 Bernstein 715/854 Apr,1993 |      Your vote accepted [0 after 0 votes] | | 5157384 Greanias 345/156 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 4982343 Hourvitz 345/592 Jan,1991 |      Your vote accepted [0 after 0 votes] | | 4931783 Atkinson 345/163 Jun,1990 |      Your vote accepted [0 after 0 votes] | | 4917516 Retter 400/489 Apr,1990 |      Your vote accepted [0 after 0 votes] | | 4910683 Bishop 345/427 Mar,1990 |      Your vote accepted [0 after 0 votes] | | 4896291 Gest 715/841 Jan,1990 |      Your vote accepted [0 after 0 votes] | | 4827253 Maltz 345/640 May,1989 |      Your vote accepted [0 after 0 votes] | | 4788538 Klein 345/418 Nov,1988 |      Your vote accepted [0 after 0 votes] | | 4748441 Brzezinski 345/161 May,1988 |      Your vote accepted [0 after 0 votes] | | 4686522 Hernandez 345/160 Aug,1987 |      Your vote accepted [0 after 0 votes] | | 4622545 Atkinson 345/562 Nov,1986 |      Your vote accepted [0 after 0 votes] | | 4555775 Pike 715/790 Nov,1985 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
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  |
|
|
What is claimed is:
1. A method of operating a computer system where a program displays a representation of data and a user interacts with the data through the use of displayed tools and a
displayed cursor, the user activating a particular tool by positioning the cursor within a tool-defining region associated with the particular tool and generating an event with the cursor so positioned, the method comprising the steps of:
displaying first and second click-through tools, each click-through tool having the property that when the event occurs within the click-through tool at a given location relative to the click-through tool, the result of an operation on the data
depends on the location of the event relative to the displayed representation of the data; and
positioning the second click-through tool so as to at least partially overlap the first click-through tool; and
generating a particular event within a region of overlap of the first and second click-through tools; and
in response to the particular event, performing a composite operation that is specified at least in part by the first and second click-through tools.
2. The method of claim 1 wherein at least one of the tool-defining regions is displayed as a transparent region.
3. A method of operating a processor-based machine, the machine including
a user input facility,
a display device,
a processor coupled to the user input facility and the display device,
a storage system for storing information including instructions defining at least one program to be executed by the processor and a set of associated data,
the method comprising operating the processor-based machine to perform the steps of:
executing the program to operate on the data and display a visible representation thereof on the display device;
displaying on the display device a visual depiction of first and second tool-defining regions, each tool-defining region specifying at least in part a respective operation that is performed in response to an event within the tool-defining region,
each tool-defining region and its respective specified operation being referred to as a tool;
each respective one of the first and second tools having the further property that when the event occurs within the respective tool-defining region at a given location relative to the respective tool-defining region, the result of the respective
tool's specified operation depends on the location of the event relative to the visible representation, each of the respective tools being referred to as a click-through tool due to its having such further property;
positioning at least one of the first and second tool-defining regions so that there is a region of overlap between the first and second tool-defining regions;
generating a particular event within the region of overlap in response to a set of signals from the user input facility; and
in response to the particular event within the region of overlap, performing an operation, referred to as a composite operation, that is specified at least in part by the first and second tool-defining regions.
4. The method of claim 3 wherein:
at least one of the first and second tool-defining regions includes at least a portion that is transparent.
5. The method of claim 3 wherein:
the first tool specifies an object property;
the second tool specifies the creation of a particular type of object; and
said step of performing a composite operation includes creating an object of the type specified by the second tool with the object having the property specified by the first tool.
6. The method of claim 3 wherein:
the first tool specifies a first object property;
the second tool specifies a second object property;
the particular event in the region of overlap is characterized by position information that specifies a particular existing object; and
said step of performing a composite operation includes applying to the particular existing object the first property specified by the first tool and the second property specified by the second tool.
7. The method of claim 3 wherein the user input facility includes an indirect pointing device, and further comprising the step of displaying a cursor on the display device so as to provide the user with a visual indication of positions specified
by the pointing device.
8. The method of claim 3 wherein:
the operation of each of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation; and
said step of performing a composite operation includes issuing a command list that includes a concatenation of the command lists issued by the first and second tools.
9. The method of claim 3 wherein:
the operation of one of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation;
the other tool specifies the modification of an incoming command list;
said step of performing a composite operation includes issuing a command list that includes the command list of the one tool, as modified by the other tool.
10. A method of operating a processor-based machine, the machine including
a user input facility,
a display device,
a processor coupled to the user input facility and the display device,
a storage system for storing information including instructions defining at least one program to be executed by the processor and a set of associated data,
the method comprising operating the processor-based machine to perform the steps of:
executing the program to operate on the data and display a visible representation thereof on the display device;
displaying on the display device a visual depiction of first and second tool-defining regions, each tool-defining region specifying at least in part a respective operation that is performed in response to an event within the tool-defining region,
each tool-defining region and its respective specified operation being referred to as a tool;
wherein the first tool is a modal tool whose specified operation is initiating a mode wherein a subsequent event at a location outside the first tool results in the creation of a particular type of object;
wherein the second tool is a click-through tool whose specified operation is applying a particular object property to a particular object when the second tool is superimposed on the particular object and an event is generated at a location within
the second tool, which location further specifies selection of the particular object;
positioning the second tool so as to at least partially overlap the first tool;
generating a particular event within a region of overlap of the first and second tools in response to a set of signals from the user input facility; and
in response to the particular event within the region of overlap, performing a composite operation that includes initiating a mode wherein the subsequent event results in the creation of an object of the type specified by the first tool with the
object having the property specified by the second tool.
11. In an interactive computing environment including
a processor coupled to a display screen and to an input facility suitable for positioning an object with respect to the display screen and further suitable for generating a signal specifying an event at a given position, and
user interface software that the processor executes, that controls at least a portion of the display screen, and that is responsive to the input device,
a method of operating the processor to execute the user interface software comprising the steps of:
displaying a window whose contents include a workpiece;
displaying a first transparent object that represents a first tool having a first object-altering property and a second transparent object that represents a second tool having a second object-altering property, the second tool at least partially
overlapping the first tool;
positioning a region of overlap of the tools over the workpiece; and
altering of the workpiece in response to a signal from the input facility specifying an event at a position on the workpiece and within the region of overlap, the nature of the alteration being determined at least in part by the first and second
object-altering properties of the overlapping tools.
12. A method of operating a processor-based machine, the machine including
a user input facility including a device having a button that is subject to being clicked by the user,
a display device,
a processor coupled to the user input facility and the display device,
a storage system for storing information including instructions defining at least one program to be executed by the processor and a set of associated data,
the method comprising operating the processor-based machine to perform the steps of:
operating on the data and displaying a visible representation thereof on the display device;
in response to signals from the user input facility, positioning a cursor relative to the visible representation;
displaying on the display device a visual depiction of a first tool-defining region, the first tool-defining region specifying at least in part a respective operation that is performed in response to the button being clicked while the cursor is
positioned within the first tool-defining region, the first tool-defining region and its respective specified operation being referred to as the first tool;
displaying on the display device a visual depiction of a transparent second tool-defining region, the second tool-defining region specifying at least in part a respective operation that is performed in response to the button being clicked while
the cursor is positioned within the second tool-defining region, the second tool-defining region and its respective specified operation being referred to as the second tool;
each respective one of the first and second tools having the further property that when the cursor is within the respective tool-defining region at a given location relative to the respective tool-defining region, the result of the respective
tool's specified operation in response to the button being clicked depends on the location of the cursor relative to the visible representation when the button is clicked, each of the respective tools being further referred to as a click-through tool due
to its having such further property;
positioning at least one of the first and second tool-defining regions so that there is a region of overlap between the first and second tool-defining regions; and
performing an operation, referred to as a composite operation, that is specified at least in part by the first and second tool-defining regions in response to the button being clicked when the cursor is positioned within the region of overlap.
13. The method of claim 12 wherein:
the first tool specifies an object property;
the second tool specifies the creation of a particular type of object; and
said step of performing a composite operation includes creating an object of the type specified by the second tool with the object having the property specified by the first tool.
14. The method of claim 12 wherein:
the first tool specifies a first object property;
the second tool specifies a second object property;
the cursor location in the region of overlap when the button is clicked specifies a particular existing object; and
said step of performing a composite operation includes applying to the existing object the first property specified by the first tool and the second property specified by the second tool.
15. The method of claim 12 wherein:
the operation of each of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation; and
said step of performing a composite operation includes issuing a command list that includes a concatenation of the command lists issued by the first and second tools.
16. The method of claim 12 wherein:
the operation of one of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation;
the other tool specifies the modification of an incoming command list;
said step of performing a composite operation includes issuing a command list that includes the command list of the one tool, as modified by the other tool.
17. A method of operating a processor-based machine, the machine including
a user input facility including a device having a button that is subject to being clicked by the user,
a display device,
a processor coupled to the user input facility and the display device,
a storage system for storing information including instructions defining at least one program to be executed by the processor and a set of associated data,
the method comprising operating the processor-based machine to perform the steps of:
operating on the data and displaying a visible representation thereof on the display device;
in response to signals from the user input facility, positioning a cursor relative to the visible representation;
displaying on the display device a visual depiction of a first tool-defining region, the first tool-defining region specifying at least in part a respective operation that is performed in response to the button being clicked while the cursor is
positioned within the first tool-defining region, the first tool-defining region and its respective specified operation being referred to as the first tool;
displaying on the display device a visual depiction of a transparent second tool-defining region, the second tool-defining region specifying at least in part a respective operation that is performed in response to the button being clicked while
the cursor is positioned within the second tool-defining region, the second tool-defining region and its respective specified operation being referred to as the second tool;
wherein the first tool is a modal tool whose specified operation is initiating a mode wherein a subsequent event generated by positioning the cursor at a location outside the first tool and manipulating the button results in the creation of a
particular type of object;
wherein the second tool is a click-through tool whose specified operation is applying a particular object property to a particular object when the second tool is superimposed on the particular object and the button is clicked while the cursor is
at a location within the second tool, which location further specifies selection of the particular object;
positioning at least one of the first and second tools so that there is a region of overlap between the first and second tools; and
in response to the button being clicked when the cursor is positioned within the region of overlap, performing a composite operation that includes placing the cursor in a mode wherein the subsequent event results in the creation of an object of
the type specified by the first tool with the object having the property specified by the second tool.
18. A method of operating a processor-based machine, the machine including
a user input facility including at least one device that generates signals specifying position,
a display device,
a processor coupled to the user input facility and the display device,
a storage system for storing information including instructions defining at least one program to be executed by the processor and a set of associated data,
the method comprising operating the processor-based machine to perform the steps of:
executing the program so as to operate on the data and to display a visible representation thereof on the display device, the visible representation including an object;
displaying on the display device a visual depiction of a first tool-defining region, the first tool-defining region specifying at least in part a first operation that is performed in response to an event within the first tool-defining region, the
first tool-defining region and its specified operation being referred to as the first tool;
displaying on the display device a visual depiction of a second tool-defining region, the second tool-defining region specifying at least in part a second operation that is performed in response to an event within the second tool-defining region,
the second tool-defining region and its specified operation being referred to as the second tool;
in response to a first set of signals from the user input facility, positioning at least one of the first and second tool-defining regions so that there is a region of overlap between the first and second tool-defining regions;
in response to a second set of signals from the user input facility, generating a particular event within the second tool-defining region at a position that specifies the object; and
in response to the particular event,
(a) if and only if the particular event is within the region of overlap, performing an operation, referred to as the composite operation, on the object, the composite operation being specified at least in part by the first and second tools, add
(b) otherwise, performing the second operation on the object without performing the first operation.
19. The method of claim 18 wherein:
the first tool specifies a first object property;
the second tool specifies a second object property;
said conditional step of performing the composite operation includes applying the first and second properties to the object; and
said conditional step (b) includes applying the second property but not the first property to the object.
20. The method of claim 18 wherein the user input facility includes an indirect pointing device, and further comprising the step of displaying a cursor on the display device so as to provide the user with a visual indication of positions
specified by the pointing device.
21. The method of claim 18 wherein:
the operation of each of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation; and
said step of performing a composite operation includes issuing a command list that includes a concatenation of the command lists issued by the first and second tools.
22. The method of claim 18 wherein:
the operation of the second tool is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation;
the first tool specifies the modification of the second tool's command list;
said step of performing a composite operation includes issuing a command list that includes the command list of the second tool, as modified by the first tool.
23. A method of operating a processor-based machine, the machine including
a user input facility,
a display device,
a processor coupled to the user input facility and the display device,
a storage system for storing information including instructions defining at least one program to be executed by the processor and a set of associated data,
the method comprising operating the processor-based machine to perform the steps of:
operating on the data and displaying a visible representation thereof on the display device;
displaying on the display device a visual depiction of a first tool-defining region, the first tool-defining region specifying, in response to an event within the first tool-defining region, the operation of initiating a mode wherein a subsequent
event results in the creation of a particular type of object;
displaying on the display device a visual depiction of a transparent second tool-defining region, the second tool-defining region specifying a particular object property that is invoked in response to an event within the second tool-defining
region;
in response to a first particular event within the first tool-defining region, initiating the mode; and
in response to a subsequent second particular event within the second tool-defining region, creating the particular object specified by the first tool-defining region having the particular object property specified by the second tool-defining
region.
24. A method of operating a computer system where a program displays data and a user interacts with the data by activating displayed tools, each tool having an associated tool-defining region and a specified operation, the user activating a
particular tool by designating a position within the particular tool's tool-defining region and initiating an event at the designated position, the method comprising the steps of:
displaying first and second tools, referred to as click-through tools; and
positioning the first and second click-through tools so that each overlaps a desired particular portion of the displayed data;
generating a particular event within a region of overlap of the first and second click-through tools and at a location relative to the displayed data, which location specifies the desired particular portion of the displayed data; and
in response to the particular event, performing a composite operation that is specified at least in part by the first and second click-through tools on the desired particular portion of the displayed data.
25. The method of claim 24 wherein:
at least one of the first and second tool-defining regions includes at least a portion that is transparent.
26. The method of claim 24 wherein:
the first tool specifies a first object property;
the second tool specifies a second object property;
the location of the particular event specifies a particular existing object; and
said step of performing a composite operation includes applying to the existing object the first property specified by the first tool and the second property specified by the second tool.
27. The method of claim 24 wherein:
the operation of each of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation; and
said step of performing a composite operation includes issuing a command list that includes a concatenation of the command lists issued by the first and second tools.
28. The method of claim 24 wherein:
the operation of one of the first and second tools is characterized by the issuance of a command list having at least one command, the command list specifying the tool's respective operation;
the other tool specifies the modification of an incoming command list;
said step of performing a composite operation includes issuing a command list that includes the command list of one tool, as modified by the other tool. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
CROSS REFERENCE TO RELATED
APPLICATIONS
The following three commonly-owned copending applications, including this one, are being filed concurrently and the other two are incorporated by reference into this one:
Eric A. Bier, William A. S. Buxton, entitled "USER INTERFACE HAVING MOVABLE SHEET WITH CLICK-THROUGH TOOLS" U.S. application Ser. No. 08/095,598, now U.S. Pat. No. 5,581,670;
William A. S. Buxton and Eric A. Bier, entitled "USER INTERFACE HAVING SIMULTANEOUSLY MOVABLE TOOLS AND CURSOR" U.S. application Ser. No. 08/095,591; and
Eric A. Bier, William A. S. Buxton, and Maureen C. Stone entitled "USER INTERFACE HAVING CLICK-THROUGH TOOLS THAT CAN BE COMPOSED WITH OTHER TOOLS".
BACKGROUND OF THE INVENTION
The present invention relates generally to processor-controlled machines such as computers and more specifically to user interfaces for allowing a user to interact with the machine.
A frequent use of a processor-controlled machine such as a computer is to communicate information to a user of the machine and accept information from the user, thereby allowing the user to perform a specified task. Depending on the task at
hand, the user will often make use of a task-specific application program such as a word processor (sometimes referred to as a text editor), a spreadsheet, a database, or a drawing program (sometimes referred to as a graphics editor). A reference to a
specific type of program or editor is not intended to imply a stand-alone application program having only the particular functionality, since many programs have more than one type of functionality.
A typical application program consists of a set of instructions (the "application") that are executed in response to input signals to create and modify associated data (sometimes referred to as the underlying data). In many instances, this
associated data is stored on a disk as a data file (sometimes referred to as "the file"), and portions are read into memory during program execution. For at least some applications, the data represents a document that is to be viewed (e.g., printed or
displayed on a screen), and the application allows a user to modify the document.
In many instances, a user provides at least some of the input signals through one or more input devices, often a keyboard and a pointing device such as a mouse. By way of background, a mouse is a device that is moved over a work surface,
typically next to the keyboard, and provides position signals so as to cause a cursor on the screen to move in accordance with the mouse's movements. The cursor is a special symbol that is used by an interactive program as a pointer or
attention-focusing device. The mouse contains one or more pushbutton switches ("buttons") to provide additional input signals, which may be interpreted as part of a cursor event.
A display device, typically a visual display device such as a cathode ray tube (CRT) or a liquid crystal display (LCD), provides the user with information about the application and the underlying data, and allows the user to generate appropriate
input signals and thus control the operation of the machine to produce the intended work product. The combination of input devices, display devices, and the nature of the information that the application provides the user may be thought of as the user
interface to the application.
Although it is in principle possible for every application program to be entirely self-sufficient, it is almost universally the case that the application program executes in conjunction with an operating system ("OS"). The OS is a program that
schedules and controls the machine resources to provide an interface between the application programs and the machine hardware. The OS typically provides the basic housekeeping functions that all application programs are likely to require, such as
maintaining a file system, scheduling the CPU, receiving input from input devices, communicating with storage devices, sending data to display devices, and providing a generic mechanism according to which a user can manage files and cause various
applications to execute. In the world of personal computers ("PCs") and workstations, operating systems are often associated with a particular type of hardware configuration, but this is not necessarily the case. Unix is an example of an OS that has
been ported to run on many types of machine.
One type of operating system that has come into increasing use in recent years provides a graphical user interface ("GUI"). Apple Computer's Macintosh OS, IBM's OS/2, and Microsoft's Windows (actually a GUI shell that runs on top of a
character-based operating system known as DOS) are the best known GUIs in the PC realm. The Macintosh OS has to date been available only on Apple's own Macintosh PCs based on the Motorola 680.times.0 family of microprocessors while OS/2 and Windows have
only been available on so-called IBM-compatible PCs based on the Intel 80.times.86 family of microprocessors. This trend is in the process of changing, with Microsoft's Windows NT having versions capable of running on more than one type of
microprocessor.
One relevant aspect of a GUI is that an open file for a given application is typically given a window, which is a movable and resizable region on the screen. The OS can have its own windows showing directory structures, with files and
applications possibly being represented by icons (small graphical objects representing actions or items). There may be other windows that do not correspond to open files. An advantage of a GUI is that it provides a rather consistent user environment
across applications. Some GUIs allow multiple applications to be open at the same time.
Regardless of the type of OS, the application program, with varying amounts of help from the OS, typically provides the user with a visible representation (sometimes referred to as the "screen image" or the "display image") of the underlying
data. The user acts on the visible representation, and the program translates these actions to operations on the underlying data. As used herein, the term "visible representation" will refer to the visual representation of the underlying data not only
for application programs, but for all kinds of programs, including the OS and various types of utility programs.
For example, in a word-processor, the underlying data consists of text with associated information specifying how the document will look when it is printed out on a printer. The associated information relates to document layout such as
paragraphs and columns, and to text attributes such as font, size, style, and color. Depending on the particular word-processor and the operating system, the screen image may be limited to the text content, or may show the document substantially as it
will appear when printed (WYSIWYG--pronounced "wizzywig," an acronym for "what you see is what you get"). A program designed for a character-based OS such as DOS is likely to provide something approaching the former, one designed for a GUI is likely to
provide something approaching the latter.
A similar range of possible screen images will be found in other types of application programs. For example, in a drawing program, the underlying data will contain a description of each graphical object that will appear on the document. The
description includes what is needed to give the object its intended appearance, including shape, size, line color and thickness, fill color and pattern, relative position in the plane of the document, and stacking order (whether the object is in front of
or behind other objects). The screen image may show only the outlines of the objects (wireframe view) or may be a full WYSIWYG view.
Regardless of the type of application, the user manipulates input devices with reference to the screen image in order to effect desired changes. This is typically done by placing a cursor at a particular position on the screen that corresponds
to the displayed location of an object to be modified, and executing one or more user events such as keystrokes or mouse actions. Mouse actions include button depression, button release, mouse movement, clicks, and drags. A mouse c | | |