# Patent

## Title
Computer controlled user interactive display interface for accessing graphic tools with a minimum of display pointer movement

## Abstract

A computer controlled graphical user interface implementation comprising displaying a set of graphic tools in a primary container location on the display in combination with an implement for using a selected tool to create a graphic object at a selected display location that is changeable as the object is being created in which there are provided functions responsive to the creation of the graphic object for displaying a secondary container containing a duplicate of the selected tool proximate the location of the graphic object, the secondary container being dynamically moveable responsive to the graphics object creation.

## Background
TECHNICAL FIELD
The present invention relates to the graphics implemented on interactive computer controlled displays and particularly to display graphics constructed using any conventional graphics tool palette.
BACKGROUND OF RELATED ART
Computers and their application programs are used in all aspects of business, industry and academic endeavors. In recent years, there has been a technological revolution driven by the convergence of the data processing industry with the consumer electronics industry. This advance has been even further accelerated by the extensive consumer and business involvement in the Internet. As a result of these changes, it seems as if virtually all aspects of human productivity in the industrialized world require human/computer interaction. The computer industry has been a force for bringing about great increases in business and industrial productivity.
In addition, the computer and computer related industries have benefited from a rapidly increasing availability of data processing functions. Such increased data processing functions have made complex text processing functions and a wide variety of accounting and business tracking functions easy to use by even unsophisticated or novice computer users. Ease of use in the creation of computer generated graphics has been advancing at a somewhat slower pace insofar as unsophisticated users are concerned. The present invention is concerned with ease of use in computer generated graphics, and is particularly concerned with making the tools used to create computer graphics readily available so that the users may easily and intuitively use such tools for their best purpose.
By way of background, conventional graphical user interfaces include word processors, Integrated Development Environments (IDEs), presentation tools, such as Microsoft(TM) PowerPoint(TM), spreadsheets and drawing tools. These tool systems conventionally involve a work area where the graphic object is constructed and modified, as well as at least one container or palette that contains the tools, usually in the form of text items or icons. The construction of the graphic object conventionally consists of a sequence of operations by the user constructing the graphic object that may be summarized as follows: the user picks a tool from the container or palette; the tool is moved to the location of the graphic object being constructed; graphic construction work using the tool; and finally release of the tool. The user may, at this point, pick another tool and continue construction or construct another graphic object at another location. Accordingly, the construction process is continued with the locus of interaction changing from one location to another within the work area.
The present invention is concerned with the problems presented in moving a selected tool so that it is readily and easily available to the location of the graphic object construction. The effectiveness of this move operation is dependent upon two factors: 1) minimizing the distance between the selectable tools, while 2) not obscuring or interfering with the graphic objects being constructed.
Currently available graphic object construction methods try to address these factors. One approach is to enable the user to present the tool palette as a pop-up menu. These pop-up menus satisfy the proximity need as they may be brought up close to the graphic object construction. They also satisfy the need not to obscure the object under construction as the menus remain invisible until invoked. However, since these menus remain invisible they lack the prompting capability of visible tool palettes. User positional palettes or tool bars that can be moved into proximity with the object construction are also available. However, in order to maintain the proximity of the tool palette without obscuring the construction, the user must continually relocate the moveable tool palette in order to avoid interference with the dynamically changeable graphic object being constructed.
SUMMARY OF THE PRESENT INVENTION
The present invention offers a solution in the combination of: 1) minimizing the distance between the selectable tools, while 2) not obscuring or interfering with the graphic objects being constructed that avoids the problems of the prior art pop-up menus and moveable tool palettes.
In accordance with the present invention, a computer controlled graphical user interface is implemented comprising means for displaying a set of graphic tools in a primary container location on the display in combination with means for using a selected tool to create a graphic object at a selected display location that is changeable as the object is being created, and in which there is provided means responsive to the creation of the graphic object for displaying a secondary container containing a duplicate of the selected tool proximate the location of the graphic object, the secondary container being dynamically moveable responsive to said graphics object creation.
There are further means for determining the center of activity of said creation of the graphic object so that the changeable display location of the graphic object is determined by the center of activity of the creation of the graphic object. Preferably, the means for determining said center of activity includes means for tracking the sequence of display locations of the most recent movement of the display pointer.
There are also means for establishing an exclusion perimeter enclosing the graphic object being created, and means for preventing the secondary container containing the duplicate of the selected tool from crossing the perimeter, whereby the secondary container does not encroach upon the object being created.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be better understood and its numerous objects and advantages will become more apparent to those skilled in the art by reference to the following drawings, in conjunction with the accompanying specification, in which:
FIG. 1 is a block diagram of an interactive data processing display system including a central processing unit that is capable of displaying and implementing the method of the present invention for creating graphic objects with a minimum of display pointer movement;
FIG. 2 is a diagrammatic view of a display screen illustrating an initial state wherein a graphic tool has been selected, and the original or starting graphic object under construction is shown;
FIG. 3 is the view of the object under construction of FIG. 2 at a next stage when a secondary palette containing a duplicate of the selected tool is provided nearer to the object under construction;
FIG. 4 is the view of the object under construction of, FIG. 3 at a later stage when, as the construction of the graphic object continues, the center of activity shifts and the secondary palette containing a duplicate of the selected tool also moves in response to the shift;
FIG. 5 is the view of the object under construction of FIG. 4 at a later stage when, as the construction of the graphic object continues, an additional new graphics tool is selected;
FIG. 6 is the view of the object under construction of FIG. 5 at a next stage when a secondary palette containing a duplicate of the selected additional tool is provided nearer to the object under construction;
FIG. 7 is an illustrative flowchart describing the setting up of the elements of a program according to the present invention for creating graphic objects with a minimum of display pointer movement; and
FIG. 8 is a flowchart of an illustrative run of the program set up in FIG. 7.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring to FIG. 1, a typical data processing computer controlled display is shown that may function as a basic computer controlled Web receiving terminal used in implementing the present invention for displaying and manipulating stacked area line graphs. A central processing unit (CPU) 10, such as one of the PC microprocessors or workstations, e.g. RISC System/6000TM series available from International Business Machines Corporation (IBM), or Dell PC microprocessors, is provided and interconnected to various other components by system bus 12. An operating system 41 runs on CPU 10, provides control and is used to coordinate the function of the various components of FIG. 1. Operating system 41 may be one of the commercially available operating systems, such as IBM's AIX 6000TM operating system or Microsoft's WindowsXPTM or Windows2000TM, as well as UNIX and other IBM AIX operating systems. Application programs 40, controlled by the system, are moved into and out of the main memory Random Access Memory (RAM) 14. These programs include the programs of the present invention for creating graphic objects with a minimum of display pointer movement that will be described hereinafter. A Read Only Memory (ROM) 16 is connected to CPU 10 via bus 12 and includes the Basic Input/Output System (BIOS) that controls the basic computer functions. RAM 14, I/O adapter 18 and communications adapter 34 are also interconnected to system bus 12. I/O adapter 18 may be a Small Computer System Interface (SCSI) adapter that communicates with the disk storage device 20. Communications adapter 34 interconnects bus 12 with an outside Internet or Web network. I/O devices are also connected to system bus 12 via user interface adapter 22 and display adapter 36. Keyboard 24 and mouse 26 are all interconnected to bus 12 through user interface adapter 22. It is through such input devices that the user may interactively relate to the programs of this invention. Display adapter 36 includes a frame buffer 39 that is a storage device that holds a representation of each pixel on the display screen 38. Images may be stored in frame buffer 39 for display on monitor 38 through various components, such as a digital to analog converter (not shown) and the like. By using the aforementioned I/O devices, a user is capable of inputting information to the system through keyboard 24 or mouse 26 and receiving output information from the system via display 38.
Now with reference to FIGS. 2 through 6, the system of the present invention will be described. The sequence of illustrative windows shown in FIGS. 2 through 6 are generated using the data processing system described in FIG. 1 in which is provided an operating system with a conventional graphics engine, e.g. the graphics/text functions of WindowsXPTM. From tool container or palette 59, tool icon 46, a rectangle forming tool is selected and used to begin the construction of the graphic object 43 under user control by the manipulation of mouse directed pointer 44. Based upon the sequence of display screen 45 coordinates through which mouse pointer 44 is moved in the initial creation of rectangular object 43, there is determined, FIG. 3, a center of activity 49, and there is created a duplicate tool 48 of selected tool 46 within a secondary container 47 that is positioned closer, e.g. about halfway between the position of selected tool 46 and the center of activity 49. In addition, so that secondary container 47 does not encroach or intrude upon the construction of graphics object 43 under construction, there is automatically calculated, using a routine that will be described hereinafter, an exclusion perimeter 51 at a predetermined distance from the actual perimeter of the graphic object under construction. Then, as the construction of the graphic object continues, FIG. 4, and an additional rectangle 53 is added to the graphic object, a new center of activity 52 is determined, and container 47 with duplicate tool 48 is moved from its previous position closer to this new center. Of course, it does not encroach upon exclusion perimeter 51 that has been automatically recalculated based upon the changes made in FIG. 4. At this stage, FIG. 5, in the illustrated construction of the graphic object, a new tool, paint tool 55, is selected using pointer 44. Accordingly, FIG. 6, a new secondary palette 47 containing a duplicate 58 of the selected paint tool 55 is created at a position about halfway to the newly recalculated center of activity. Construction, e.g. painting of the graphic object, will continue in this manner wherein a duplicate of the selected tool in a secondary container or palette will be positioned so that the selected tool is available at a position close to the center of activity that does not encroach upon the exclusion perimeter.
Now, with reference to FIG. 7, we will describe a process implemented by a program according to the present invention for creating graphic objects with a minimum of display pointer movement. The program routines that are created by the process of FIG. 7 implement the operations described with respect to FIGS. 2 through 6. In a computer controlled display terminal as described in FIG. 1, there is provided an operating system with a graphics engine, e.g. the graphics/text functions of Windows 2000XP, which, in turn, translates the cursor movements and tool selections into dynamic pixel arrays providing the graphic object construction of this invention, step 71. Accordingly, there is provided a displayed set of graphic tools in a conventional primary container or palette section, usually at a border of the display screen, step 72. There is provision for the selection, movement and use of a graphic tool via a pointer, such as a mouse controlled pointer to construct a graphic object at a selected location on the display screen, step 73. Provision is made, step 74, for the dynamic calculation of the center of activity of the construction being done in step 73. Provision is made for the display of a secondary container containing a duplicate of the selected graphic tool being used located close to the location of the construction, the location of the secondary container being determined by the center of activity, step 75. Provision is also made for the calculation of an exclusion perimeter enclosing the construction location of the graphic object under construction, step 76. Provision is made for the tracking of the center of activity as the center changes with the construction of the graphic object, step 77. For example, when a pointer is moved by the user controlling the mouse, the coordinates of five or six points passed through by the movement may be calculated, and any changes in the center of activity recorded and dynamically implemented on the display screen. Finally, in response to the tracking of the center of activity in step 77, there is provided dynamic movement of the secondary container that approaches the center of activity so that the secondary container including the duplicate tool is close to the center but outside of the perimeter, step 78
The running of the process set up in FIG. 7 and described in connection with FIGS. 2 through 6 will now be described with respect to the flowchart of FIG. 8. First, a determination is made, step 81, as to whether the user has selected an initial tool so as to begin the construction of an graphic object. If Yes, the movements of the cursor carrying out the selected tool function are tracked in order to locate the center of activity, step 82. Then the exclusion perimeter of the object under construction is calculated, step 83, and the secondary container containing a duplicate of the selected tool is created, step 84. This secondary container is moved close to the center of activity but outside of the exclusion perimeter, step 85. Next, a determination is made continuously as to whether the center of activity has moved during the object construction, step 86. If Yes, the process is returned to step 85 that is repeated. If No, a further determination is made as to whether the user has selected another tool, step 87. If Yes, the process is returned to step 82, and continued from there. If No, it may be conveniently determined whether the session is to be ended, step 88. If Yes, the session may be exited; if No, the process is returned to step 86.
Although certain preferred embodiments have been shown and described, it will be understood that many changes and modifications may be made therein without departing from the scope and intent of the appended claims.

## Claims

1. In a computer controlled user interactive display system, a display interface implementation for accessing graphic tools for creating graphic objects with minimal display pointer movement comprising:
means for displaying a set of graphic tools in a primary container location on the display;
means responsive to the creation of said graphic object providing a secondary container containing a duplicate of said selected tool proximate the location of the graphic object, said secondary container being displayed during the creation of said graphic object and dynamically moveable responsive to said graphic object creation;
means for determining the center of activity of said creation of said graphic object;
said changeable display location of said graphic object is determined by the center of activity of said creation of said graphic object;
means for establishing an exclusion perimeter enclosing the graphic object being created; and
means for preventing said secondary container containing the duplicate of said selected tool from crossing said perimeter, whereby said secondary container does not encroach upon said object being created.

2. The display interface implementation of claim 1 wherein said means for determining said center of activity includes means for tracking the sequence of display locations of the most recent movement of said display pointer.

3. The display interface implementation of claim 1 further including means responsive to the creation of said graphic object providing at least one additional secondary container containing a duplicate of at least one additional selected tool for creating said graphic object proximate the location of the graphic object, said at least one additional secondary container being dynamically moveable responsive to said graphics object creation.

4. The display interface implementation of claim 3 wherein said means for determining said center of activity includes means for tracking the sequence of display locations of the most recent movement of said display pointer in the activity of said at least one additional graphic tool in the creation of said graphic object.

5. A method for accessing graphic tools with minimal display pointer movement on an interactive display interface for creating graphic objects comprising:
displaying a set of graphic tools in a primary container location on the display;
using a selected tool to create a graphic object at a selected display location that is changeable as the object is being created; and
in response to the creation of said graphic object, providing a secondary container containing a duplicate of said selected tool proximate the location of the graphic object, said secondary container being dynamically moveable responsive to said graphics object creation;
determining the center of activity of said creation of said graphic object;
said changeable display location of said graphic object is determined by the center of activity of said creation of said graphic object;
establishing an exclusion perimeter enclosing the graphic object being created; and
preventing said secondary container containing the duplicate of said selected tool from crossing said perimeter, whereby said secondary container does not encroach upon said object being created.

6. The display interface implementation of claim 5 wherein said center of activity is determined by tracking the sequence of display locations of the most recent movement of said display pointer.

7. The method of claim 5 further including providing responsive to the creation of said graphic object, at least one additional secondary container containing a duplicate of at least one additional selected tool for creating said graphic object proximate the location of the graphic object, said at least one additional secondary container being dynamically moveable responsive to said graphics object creation.

8. The method of claim 7 wherein said determining said center of activity includes tracking the sequence of display locations of the most recent movement of said display pointer in the activity of said at least one additional graphic tool in the creation of said graphic object.

9. A computer usable medium having stored thereon, a computer program for accessing graphic tools with minimal display pointer movement on an interactive display interface for creating graphic objects, wherein the computer program when executed on a computer causes the computer to:
display a set of graphic tools in a primary container location on the display;
use a selected tool to create a graphic object at a selected display location that is changeable as the object is being created; and
In response to the creation of said graphic object, provide a secondary container containing a duplicate of said selected tool proximate the location of the graphic object, said secondary container being displayed during the creation of said graphic object and dynamically moveable responsive to said graphics object creation;
said computer program when executed further causes the computer to determine the center of activity of said creation of said graphic object;
wherein said computer program when executed causes the computer to determine said changeable display location of said graphic object by the center of activity of said creation of said graphic object;
wherein said computer program when executed further causes the computer to: establish an exclusion perimeter enclosing the graphic object being created; and
prevent said secondary container containing the duplicate of said selected tool from crossing said perimeter, wherein said secondary container does not encroach upon said object being created.

10. The computer usable medium of claim 9 wherein said computer program when executed causes the computer to determine said center of activity by tracking the sequence of display locations of the most recent movement of said display pointer.

11. The computer usable medium of claim 9 wherein said computer program when executed further causes the computer to: in response to the creation of said graphic object, provide at least one additional secondary container containing a duplicate of at least one additional selected tool for creating said graphic object proximate the location of the graphic object, said at least one additional secondary container being dynamically moveable responsive to said graphics object creation.