WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
User interface having click-through tools that can be composed with other tools    
United States Patent5617114   
Link to this pagehttp://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)
AbstractA 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5617114
User interface having click-through tools that can be composed with

     other tools - US Patent 5617114 Drawing
User interface having click-through tools that can be composed with other tools
Inventor     Bier; Eric A. (Mountain View, CA); Buxton; William A. S. (Toronto, CA); Stone; Maureen C. (Los Altos, CA)
Owner/Assignee     Xerox Corporation (Stamford, CT)
Patent assignment
All assignments
Publication Date     April 1, 1997
Application Number     08/449,584
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 24, 1995
US Classification    
Int'l Classification    
Examiner     Hjerpe; Richard
Assistant Examiner     Liang; Regina
Attorney/Law Firm     Townsend and Townsend and Crew
Address
Parent Case     This is a Continuation of application Ser. No. 08/095,445, filed Jul. 21, 1993, now abandoned.
Priority Data    
USPTO Field of Search    
Patent Tags     user interface click-through tools can be composed with other tools
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5381158
Takahara
345/156
Jan,1995

[0 after 0 votes]
5341466
Perlin
345/668
Aug,1994

[0 after 0 votes]
5287417
Eller
382/276
Feb,1994

[0 after 0 votes]
5283560
Bartlett
715/729
Feb,1994

[0 after 0 votes]
5276797
Bateman
715/823
Jan,1994

[0 after 0 votes]
5250929
Hoffman
715/823
Oct,1993

[0 after 0 votes]
5204947
Bernstein
715/854
Apr,1993

[0 after 0 votes]
5157384
Greanias
345/156
Oct,1992

[0 after 0 votes]
4982343
Hourvitz
345/592
Jan,1991

[0 after 0 votes]
4931783
Atkinson
345/163
Jun,1990

[0 after 0 votes]
4917516
Retter
400/489
Apr,1990

[0 after 0 votes]
4910683
Bishop
345/427
Mar,1990

[0 after 0 votes]
4896291
Gest
715/841
Jan,1990

[0 after 0 votes]
4827253
Maltz
345/640
May,1989

[0 after 0 votes]
4788538
Klein
345/418
Nov,1988

[0 after 0 votes]
4748441
Brzezinski
345/161
May,1988

[0 after 0 votes]
4686522
Hernandez
345/160
Aug,1987

[0 after 0 votes]
4622545
Atkinson
345/562
Nov,1986

[0 after 0 votes]
4555775
Pike
715/790
Nov,1985

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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