WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for resizing an input position indicator for a user interface of a computer system    
United States Patent6023275   
Link to this pagehttp://www.wikipatents.com/6023275.html
Inventor(s)Horvitz; Eric J. (Kirkland, WA), Markley; Michael E. (Redmond, WA), Sonntag; Martin L. (Kirkland, WA)
AbstractTransforming the size of an input position indicator, such as a cursor, within a window presented by a display screen of a computer system. The window typically includes borders defining an enclosed presentation area for displaying information on the display screen. In response to determining the position of the input position indicator within the window, the size of the input position indicator can be transformed based upon that position determination.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Horvitz; Eric J. (Kirkland, WA) , Markley; Michael E. (Redmond, WA) , Sonntag; Martin L. (Kirkland, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     February 8, 2000
Application Number     09/261,988
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 4, 1999
US Classification     715/700
Int'l Classification    
Examiner     Sax; Steven
Assistant Examiner    
Attorney/Law Firm     Jones & Askew, LLP
Address
Parent Case     STATEMENT REGARDING RELATED APPLICATIONS This is a divisional of U.S. patent application Ser. No. 08/649,828, now U.S. Pat. No. 5,880,773, entitled "Display System and Method for Displaying Windows of an Operating System to Provide a Three-Dimensional Workspace for a Computer System," filed Apr. 30, 1996, and currently pending.
Priority Data    
USPTO Field of Search     345/342 345/145 345/146 345/340 345/341 345/739 345/145 345/146 345/145 345/146 345/145 345/146 345/145 345/146 345/115
Patent Tags     resizing input position indicator user interface computer
   
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
5912666
Watson et al.

Jun,1999

[0 after 0 votes]
5874963
Johnson et al.

Feb,1999

[0 after 0 votes]
5872558
Hidaka

Feb,1999

[0 after 0 votes]
5801204
Oohara et al.

Sep,1998

[0 after 0 votes]
5815138
Tsubaki et al.

Sep,1998

[0 after 0 votes]
5808604
Robin

Sep,1998

[0 after 0 votes]
5798752
Buxton et al.

Aug,1998

[0 after 0 votes]
5790713
Kamadar et al.

Aug,1998

[0 after 0 votes]
5786820
Robertson

Jul,1998

[0 after 0 votes]
5774111
Lecland et al.

Jun,1998

[0 after 0 votes]
5771037
Jackson

Jun,1998

[0 after 0 votes]
5724492
Matthews, III et al.

Mar,1998

[0 after 0 votes]
5670984
Robertson et al.

Sep,1997

[0 after 0 votes]
5671381
Strasnick et al.

Sep,1997

[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
 


We claim:

1. In a computer system operative to display computer application data in windows on a display monitor, said windows having borders defining an enclosed area for presenting said data on said display monitor, said computer system characterized by resources including a central processing unit (CPU), a memory, and display monitor said resources communicating via a system bus, said CPU operative to control processes for defining the size and shape of displayed windows, a method for resizing a cursor on a display screen comprising:

defining an isometric workspace on said display screen;

determining the position of said cursor on said display screen; and

resizing the cursor based upon the location of said cursor on said display screen to provide a three-dimensional transformed cursor to reflect depth in said isometric work space.

2. The method of claim 1 wherein resizing said cursor occurs when said cursor crosses a border of a window.

3. The method of claim 1 wherein resizing occurs based upon the cursor location on a window.

4. The method of claim 1 wherein resizing causes said cursor to decrease in size as said cursor is positioned nearer to a selected position on said display monitor.

5. The method of claim 1 wherein said computer system further comprises an operating system operative to define said isometric work space on said computer monitor for providing depth cues to information displayed on said monitor and wherein the size of said cursor changes relative to the cursor location in said isometric work space thereby reflecting the depth of said cursor in said isometric work space.

6. In a computer system operative to display computer application data in three-dimensional transformed windows on a display monitor, said three-dimensional transformed windows having borders defining an isometric space presenting said data on said display monitor, said computer system characterized by resources including a central processing unit (CPU), a memory, and display monitor said resources communicating via a system bus, said CPU operative to control processes for defining the size and shape of said displayed three-dimensional transformed windows, a method for resizing a cursor on a display screen comprising:

determining the position of said cursor on said display screen within the isometric space relative to the three-dimensional transformed windows; and

dynamically sizing the cursor based upon the location of said cursor on said display screen such that said cursor reflects a depth of the location of said cursor in the isometric space.

7. The method of claim 6, further comprising:

varying a speed of movement of said cursor depending on a relative distance between three-dimensional transformed windows to provide depth perception.

8. The method of claim 6, further comprising:

generating sounds dependent on relative movement of said cursor within the isometric space to provide depth perception.

9. The method of claim 6, wherein dynamically sizing said cursor occurs when said cursor crosses a border of a three-dimensional transformed window.

10. The method of claim 6, wherein dynamically sizing said cursor occurs base upon the cursor location on a three-dimensional transformed window.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates generally to a display system for managing and manipulating information on a computer display screen operating in a window display environment, and more particularly, relates to a display system for managing and manipulating the displayed windows of the operating system to provide a virtual three-dimensional workspace for the computer system.

BACKGROUND OF THE INVENTION

In a physical environment, such as on a desk or table, an individual may utilize certain areas for placement of documents for convenient viewing. The surface area on the desk used to support the documents for viewing may be termed a workspace. Because the physical space on a desk for working is limited multiple documents may be spread out or arranged in some systematic manner within the workspace. When multiple documents require more surface area than the available area of the workspace, documents may be stacked, within the workspace, with identifying portions being visible.

In a computer system, the workspace for viewing documents or applications is the display screen or monitor of the computer system. The operating system of the computer system generally manages or controls the documents or applications displayed on the monitor. Early computer systems displayed only one document or application on the display screen at a time, therefore limiting the effective computer workspace. In order to switch among multiple applications or documents, the user had to close the application or document being displayed and open a different application or document. Such a computer system was cumbersome. With the introduction of multi-tasking and graphical interfaces, the display screen was divided into multiple portions generally referred to as windows. A window is a portion of the display screen that may contain its own document or message.

In window-based programs, the screen can be divided into several windows, each of which has its own boundaries and can contain a different document. The operating system controls these specially delineated window areas of the screen. Each window can act independently, as if it were a virtual display device. In window display environments, the windows may be resized and moved around on the display screen. Thus, with the advent of window-based programs, the computer screen workspace became more flexible. The ability to resize and move windows as well as to overlay or stack windows on top of each other essentially provided the same type of workspace available on a physical two-dimensional tabletop workspace except on a smaller scale.

Present day computer systems often employ "object-oriented" displays with windows, icons, pictures, text, pop-up or drop-down menus, dialog boxes, and other graphical items or objects in what is known as a "Graphical User Interface" ("GUI"). In such systems, various combinations of graphical items or objects are utilized to convey information to users via the monitor or display. Users interact with the computer system by activating graphical items or objects on the display. The graphical items or objects are often activated by pointing at them with a cursor controlled by a mouse or pen and clicking a control button on the mouse or pen.

An example of a computer graphical user interface that uses icons and windows is the Microsoft "WINDOWS".TM. operating system manufactured and sold by the assignee of the present invention, Microsoft Corporation. Common user interfaces such as those found in the Microsoft "WINDOWS" operating system and other GUI-based computer systems typically rely on a keyboard and a pointing device with buttons such as a mouse or trackball for user interaction. The user points to a location on the screen where an action is desired, and invokes a command by pressing a button on the pointing device or entering a keyboard command.

Just as a physical desktop table can become cluttered when multiple documents are being viewed, a computer screen workspace can become cluttered when multiple documents are displayed in multiple windows. With limited working space or viewing area on a computer screen, the computer screen workspace can quickly become cluttered if several applications or windows are opened at the same time. A number of techniques have been used for overcoming the small-screen problem presented when using computer displays.

Four general categories of computer screen workspace enhancement techniques are: (1) alternating screen uses, (2) distorted views, (3) large virtual workspaces, and (4) multiple virtual workspaces. Alternating-screen use is similar to windows in that the user can switch or change the allocation of screen space from one application to another. Some early alternating screens use techniques only allowed one application to be visible on a screen at a time. With distorted views, documents or applications appearing on the screen may be distorted to small icons. Here, applications are reduced to small pictures or icons that remind the user of the original window. Overlapping or stacked windows may also be considered a distorting technique. As noted above, when many windows overlap the appearance on a display screen may become cluttered.

With large virtual workspaces, the set of objects, the documents, or applications are organized as a large virtual workspace which cannot all be viewed on a display screen simultaneously. In one example application, the data is arranged in two dimensions, and the user has three screens, one for an overview of the whole space, one for a detailed view of some portion of the space, and one touch screen for control. Head-mounted displays, which monitor user head and body movements to give the user a complete simulated three-dimensional space view, are forms of large virtual workspaces. A problem with a single large workspace is that only a limited number of things can be adjacent to any object. The space required for the objects and their shapes constrains the manner in which the space may be arranged and how densely packed documents or data can be presented. Multiple virtual workspaces provide geometrically-oriented workspaces linked together in which a project may contain a number of views and, when active, covers the entire screen. For example, when a user maneuvers close enough to a port, the user is swept into another workspace or subworkspace.

The above techniques are examples of display systems which try to overcome the limited workspace inherent with computers that display multiple applications or documents on a two-dimensional display screen. However, these display systems do not provide a method for displaying multiple applications presented by an operating system in three dimensions. Thus, there is a need in the art for a display system which provides an enhanced system for displaying multiple applications or windows as simulated three-dimensional objects on a computer display screen.

SUMMARY OF THE INVENTION

Generally described, the present invention provides a three-dimensional virtual workspace for a window based display system. The display system of the present invention is an isometric display system for an operating system. The isometric display system provides a display with monocular depth cues by making automatic sizing and geometric transformations on two dimensional rectangles that define traditional windows.

The isometric display system performs geometric transformation operations on rectangular windows to convey the impression to the user that the windows are positioned in a three-dimensional space. The impression of depth and of working in a three-dimensional space are created by transforming two-dimensional windows to appear as if the two-dimensional windows are embedded at orientations and positions in a three-dimensional isometric space. The isometric display system responds to user activation of control buttons by transforming the shape and orientation of windows consistent with the defined three-dimensional space.

More particularly described, the present invention provides a method of utilizing left, right, front, back, upper, and lower planes. These planes define a polyhedron and these planes may be referred to as "boundary planes". The polyhedron surrounds a three-dimensional space used by the isometric display system to manage the configuration and position of windows containing data from applications. The boundary planes of the virtual space are preferably organized into a rectangular prism defining left, right, front, and back walls, a ceiling, and a floor of a four-sided room as seen when viewing the room from the outside through a selected wall or user viewpoint.

Boundary planes may be explicitly displayed with shaded solid surfaces or simply as lines defining the intersection of planes. However, the planes are preferably not visible. The front boundary plane is typically assumed to be the front surface of the display, closer to the user than the rear boundary plane. When the boundary planes are made visible, the left and right walls, and the ceiling and floor defined by the planes narrow in dimension as viewed from the front to back of the space defined on the display screen. Windows may be oriented and displayed in the boundary planes.

Windows oriented in the front boundary plane are displayed without transformation, and appear as standard rectangular window, as in traditional windowing systems. When a transformation command is entered by a user or from a program, a window is transformed and moved to the selected plane of the display system to create the perception of depth. A window selected for display on the rear plane appears as a rectangular window that has been pushed back in the three-dimensional space. A window designated for another plane is rotated 90 degrees and appears pushed flat against the designated plane.

For generating the illusion of moving the windows away from the user in the three-dimensional space, the display system decreases the size of the window and its contents equivalently in the x and y dimensions, as a function of its assigned distance from the user in the three-dimensional space. The display system moves the window towards the center of the space based on the relative distance between the front and the rear boundary planes. When a window on the front plane is moved toward the rear plane, the window can snap immediately to the rear plane and appear in a reduced size or the window may move incrementally to an intermediate plane or planes between the front and rear plane. Additionally, a window moved toward the rear plane may continuously decrease in size as the window approaches the rear plane.

User or system accessible controls are used for displaying or hanging an untransformed window on a left, right, rear, upper, or lower boundary plane. For example, when a user invokes the "perspective-transform right" command, the display system applies a perspective transform on the rectangular window and its contents and redisplays the rectangular window as an appropriately sized and shaped trapezoid. The window as displayed appears to be rotated 90 degrees form its initial position and appears to be repositioned to fit within the right boundary plane. When a window is moved along or to a boundary plane, the window may be continuously resized based on its position in the three-dimensional space or the window may snap to predefined locations.

When the intended destination of a selected window is a boundary plane already containing a transformed window, the selected window is placed on an adjacent plane to the boundary plane that is closest to the boundary plane. Adjacent planes refer to planes that are parallel (in the three-dimensional space) to the boundary plane but that are positioned at selected increments away from the boundary plane along the normal vector from the plane towards the center of the virtual space. Windows selected for display on a designated plane are displayed on the closest available adjacent plane. This provides an ordering of displayed windows from the center of the three-dimensional space to the boundary plane for all transformed windows on the boundary plane. The contents of displayed windows may be generally viewed in full when the windows are hung on different planes. Also, the windows may have focus or be operated on when displayed or hung on a plane.

Three primary controls may be used to position a window hung on a plane: push back, perspective-transform right, and perspective-transform left. Push back causes a window to be transformed or pushed to the foreground or background of the display system. Perspective-transform right generally causes a window to be displayed on the right plane and perspective-transform left generally causes a window to be displayed on the left plane. Alternatively, a single transformation control for transforming windows to the various planes may be implemented. Upon selection of the single transformation control, the display system provides a pointer to a selected plane. The pointer may be operative to point to a plurality of predefined planes. The pointer may be a direction arrow. Generally, the pointer is provided when the cursor control is activated or pulled in the direction of a predefined plane while the cursor is positioned on the transformation control. The user may release the cursor control to initiate the transfer or transformation of the window.

The operating system utilized in connection with the present invention receives data from an operating system, an application or other source for display in a window. The data may be stored by the operating system in the same manner as in rectangular windows. Before displaying the data in a window on the display screen, the operating system scales the shape of the window to fit the selected plane and the data presented in the window. The scaling of the window's shape and the scaling of the data presented in pixel coordinates within the window creates a three-dimensional appearance on the display screen.

Transformation matrices may be used in the operating system to transform or scale a window to the selected plane. When a user indicates that a window should be displayed on a particular plane, both the coordinates of the window and data contained in the window are multiplied by a transformation matrix to fit the window in the area defined by the selected plane and transform the data content of the window. By transforming the window and data, depth perception for the window is created.

The present invention may also provide a method of dynamically sizing the cursor as a function of the location of the cursor on the display screen. The present invention may determine the position of the cursor on the display screen, and resize the cursor based upon the location of the cursor on the display screen. The size of the cursor may change when the cursor crosses over a border of a window. The size of the cursor may specifically change relative to the cursor location on a window to reflect the depth of that location in three-dimensional space defined by the transformed windows. This serves to give feedback to the user about the location of the cursor in three-dimensional space by generating the perception that the cursor resides on or jumps to planes defined by the transformed windows.

Thus, it is an object of the present invention to provide an enhanced display system for displaying applications and documents in a computer system.

It is another object of the present invention to manipulate the displayed windows to create a virtual three-dimensional workspace on the monitor of the computer system.

It is another object of the present invention to provide a display system for simultaneously displaying multiple applications and objects managed by the operating system as a consistent three-dimensional operating environment.

It is another object of the present invention to transform the shapes and contents of a displayed window to create a perspective view of the window and its contents.

It is another object of the present invention to partition the display screen of a display monitor into multiple planes for displaying selected windows in a preselected form.

It is another object of the present invention to dynamically size a cursor relative to the location of the cursor on the display screen.

These and other objects, features, and advantages of the present invention will become apparent from reading the following description in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing the basic components of a computer system used in connection with the preferred embodiment of the present invention.

FIG. 2 is a block diagram showing the basic components of the computer system used in connection with the preferred embodiment of the present invention.

FIG. 3 illustrates a detailed view of the display screen generated in accordance with the present invention.

FIG. 4a, 4b, and 4c illustrate a manipulation of displayed windows in accordance with the present invention.

FIG. 5a, 5b, and 5c illustrate another manipulation of displayed windows in accordance with the present invention.

FIG. 6a, 6b, and 6c illustrate another manipulation of displayed windows in accordance with the present invention.

FIG. 7a, 7b, 7c, and 7d illustrate an alternate embodiment of a control mechanism for manipulation of displayed windows in accordance with the present invention.

FIG. 8a, 8b, 8c, and 8d illustrate an alternate embodiment of a control mechanism for manipulation of displayed windows in accordance with the present invention.

FIG. 9a and 9b illustrate an alternate embodiment of a control mechanism for manipulation of displayed windows in accordance with the present invention.

FIG. 10a and 10b illustrate alternate embodiment of a control mechanism for manipulation of displayed windows in accordance with the present invention.

FIG. 11 illustrates lines demarcating areas for display of windows in accordance with the preferred embodiment of the present invention.

FIG. 12 illustrates a non-planar bounding surface for defining a three-dimensional workspace.

FIG. 13 illustrates multiple isometric spaces constructed according to an embodiment of the invention.

FIG. 14 illustrates an alternate view of the multiple isometric spaces.

FIG. 15 illustrates the method of dynamically sizing the cursor of the present invention.

FIGS. 16a and 16b are flow diagrams showing the steps implemented in the preferred embodiment of the present invention.

DETAILED DESCRIPTION

Referring now to the drawings, in which like numerals illustrate like elements throughout the several views, FIG. 1 illustrates the basic components of a computer system 10 used in connection with the preferred embodiment of the present invention. FIG. 1 illustrates a graphical user interface 12 on a computer display screen 15 of a display monitor 14 of the computer system 10. The graphical user interface of the display system is preferably implemented as part of the operating system to provide a three-dimensional environment for displaying and managing the window objects of the operating system. The present invention enables cutting and pasting, moving objects, and other functions as generally performed by an operating system while providing visual depth cues displayed by the operating system consistent with the orientation and position of the object within predefined boundaries defining a space for providing the depth cues. Additionally, sounds such as beeps and warning signals, generally associated with the interaction of a user with a computer system, may appear, using stereo sound, to emanate from the window upon which a user is operating in the three-dimensional space. By varying the level of the sound and/or direction from which the sounds emanates, the sound may appear to emanate from a selected window. Although the present invention is described in conjunction with a conventional desktop computer, it will be appreciated that the present invention may be utilized in other types of computer systems that use a window based display system. The graphical user interface system 12 is implemented with a computer 16 connected to the display monitor 14. The computer 16 receives input data from a conventional keyboard 20 via an input line 18. Cursor keys on the keyboard 20, a mouse 21, trackball, or other pointing device may be used to move a cursor 23 on the display screen 15 for selection of various options. It should be appreciated by those skilled in the art that text entry or command input also may be accomplished by using a touch-sensitive pad or handwriting recognition device in conjunction with software for recognizing the corresponding input signals as selection signals.

Referring to FIG. 2, the hardware components of the computer 16 are illustrated. For simplicity of the drawings, many components of a standard computer system have not been illustrated such as address buffers, memory buffers and other standard control circuits because these elements are well known and illustrated in the prior art and are not necessary for the understanding of the present invention. A computer program used to implement the various steps of the present invention is generally located in the memory unit 20, and the processes of the present invention are carried out through the use of a central processing unit (CPU) 22. Those skilled in the art will appreciate that the memory unit 20 is representative of both read-only memory and random access memory. The CPU 22 is typically implemented as a single-chip microprocessor, such as the models 80386 or 80486 that are available from Intel Corporation, Santa Clara, Calif. The CPU 22, in combination with computer software, such as an operating system 25 and application programs 27, controls the operations of the computer system 10. The operating system software 25, in conjunction with application programs 27, controls the allocation and usage of hardware and software resources such as memory, CPU time, disk space, and peripheral devices. It should be appreciated that many window based operating systems exist such as Microsoft "WINDOWS", a UNIX (e.g. X-windows) operating system, or a Macintosh operating system. The display routines are encoded in a graphical user interface display layer in the operating system. The system bus 24 supports communications of control, address, and data signals between the CPU 22 and the remaining components of the computer system 10. The memory unit 20 and the CPU 22 are connected by a computer system bus 24 designed to provide an electrical interface between computer system components. The processes implemented by the CPU 22 may be communicated as electrical signals along the computer system bus 24 to an input/output device 26, such as display monitor 14. The display monitor 14 provides a visual display of computer generated graphics originating from the processes implemented by the CPU 22.

In this detailed description, numerous details are provided such as computer display system elements, object definitions, display formats, sample data, etc., in order to provide an understanding of the invention. However, those skilled in the art will understand that the present invention may be practiced without the specific details. Well-known circuits, programming methodologies, and structures are utilized in the present invention but are not described in detail in order not to obscure the present invention.

Certain of the descriptions which follow are presented in terms of display images, processes, and symbolic representations of operations of data bits within the computer's memory. As will be known to those skilled in the programming arts, these process descriptions, class descriptions, messages, notification descriptions, and graphic displays are the means used by those skilled in the art of computer programming and computer construction to convey teachings and discoveries to others skilled in the art.

For purposes of this discussion, a process or method is generally a sequence of computer-executed steps leading to a desired result. These steps require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, or optical signals that are capable of being stored, transferred, combined, compared, or otherwise manipulated. It is conventional for those skilled in the art to refer to these signals as bits, data, values, elements, symbols, characters, images, terms, numbers, or the like. It should be kept in mind, however, that these and similar terms should be associated with appropriate physical quantities inside the computer and that these are merely convenient labels applied to these physical quantities that exist within the computer.

It should also be understood that manipulations within the computer are often referred to in terms such as adding, comparing, moving, etc., which are often associated with mental operations performed by a human operator. It must be understood that involvement of a human operator is not necessary in the present invention because the operations described herein are machine operations performed in conjunction with a human operator or user that interacts with the computer. The machines used for performing the operation of the present invention include general purpose digital computers or other similar computing devices.

The present invention relates to methods, steps, or operations for a computer which processes electrical or other physical signals to generate desired physical signals and display results and interactions. As illustrated in FIG. 1, the present invention also relates to apparatus 10 for performing these operations. This apparatus 10 may be especially constructed for the described purposes.

Furthermore, it should be understood that the programs, processes, objects, etc., described herein are not related or limited to any particular computer or apparatus. Rather, various types of general purpose machines may be used with programs constructed in accordance with the teachings herein. Similarly, it may prove advantageous to construct specialized apparatus to perform the method steps described herein by way of dedicated computer systems with hard-wired logic or programs stored in nonvolatile memory such as read only memory.

Referring again to FIG. 1, the programming techniques and manner of handling windows in a computer system will be discussed. Those skilled in the art will understand and appreciate that operating systems for displaying and utilizing windows may be implemented by using object-oriented programming languages and techniques. Object-oriented programming techniques are utilized by those skilled in the art of computer programming because they provide a powerful way to view the interaction of a user with a computer system. For example, one particular "object" that people often work with on computer screens is called a window. Referring to FIG. 1, a window 30, as discussed above, is a rectangular area on the display screen 15 that is used to display information or receive commands or data from the user. The display screen 15 itself may be considered a window into the computer 16. The window 30 receives user input from a keyboard 20, mouse 21, or pen, and displays graphical output upon which a user may interact. The display screen 15 thereby serves as the workspace for the computer. A computer program is responsible for generating the window 30 and for responding to user interactions with the window 30. The window 30 often contains the computer program's title bar 32 across the top of the window 30, menus, sizing borders, and perhaps other objects.

The window 30 may contain additional, smaller windows called "child windows", which are subspecies or subclasses of windows. Child windows may take the form of push buttons, radio buttons, check boxes, text entry fields, list boxes, and scroll bars, and the like. These objects when displayed on the computer screen may be pressed or clicked or scrolled. A user sees a window as an object on the screen, and interacts directly with the object by pushing buttons 34, or scrolling a scroll bar, or tapping a handle displayed in the window 30. Buttons 34 may control a function for the particular window.

A window generated by a computer program receives user input in the form of messages to the window. The messages are generated by an event handling routine that is responsive to user input such as tapping, clicking, or dragging a cursor with a stylus or mouse.

The following is a brief example of an object-oriented programming methodology for resizing a window utilized in the Microsoft "WINDOWS" graphical user interface operating system. Consider a word processor application computer program that displays text in a window. The window may include a "size box", which is a control located at the lower right-hand corner of the window. If selected and dragged, the size box causes the size of the window on the display screen to become larger or smaller. If the program's window is resized, the word processing program application program will reformat and move the text on the display screen to fit within the window when the window is resized.

The computer's operating system program generally handles the details of resizing the window, and the application program running under control of the operating system program responds to the system function of resizing the window. The word processing program "knows" when its window is resized because a message is passed to it indicating a resizing operation, and the application program r