Spotlight cursor

An apparatus and method is disclosed for displaying a secondary layer of information in a graphical user interface where the second layer of information is revealed when a point on the circumference defined by radius “r” originating at the x,y coordinates of the cursor covers a point in a secondary content of the second layer. The circumference may be set to trigger appearance of secondary content gradually, all at once or to trigger the appearance of all secondary content in a predefined zone.

FIELD OF THE INVENTION

The present invention relates to an apparatus and method for eliminating clutter in a graphical user interface by revealing secondary content in response to movement of the cursor.

BACKGROUND OF THE INVENTION

In complex graphical user interface design, a challenge exists to strike a proper balance between functionality and screen clutter that impedes ease of use. Controls and annotation essential for the user to accomplish a task are primary content. Graphical User Interfaces (GUI's) often contain controls and annotations not critical for task completion. These controls and annotations are typically designed to supplement and explain the operation of the interface. Such controls and annotations are designated as secondary content. Examples of secondary content are items for context help popups, textual explanations and other non-critical functions. Although intended to enhance ease of use, secondary content often clutters the screen creating more visual “noise” that must be read and prioritized by the user in order for the user to progress through the task.

A need exists for a way to make secondary content “invisible” and to reveal the secondary content only when it might be needed and where the user is placed in control of the breadth of the exposure of the secondary content. Therefore a further need exists for a way to reveal items of secondary content based on actions taken by the user such as movement of the cursor.

U.S. Pat. No. 6,018,345 discloses movement and presentation of the cursor used to indicate the presence of links and means of traversing the links. The cursor is presented in a first manner while the cursor is over non-link elements in the first page. As the cursor is moved over the links, the cursor is presented in a second manner indicating to the user how to traverse to the second page. U.S. Pat. No. 5,526,478 discloses a computer implemented method of annotating a geometric figure displayed and manipulable in three-dimensional representation on a display of a computer system with a pointer. The pointer is also displayed and manipulable in three dimensional representation on the display. The particular view orientation of the geometric figure with the pointer can be preserved such that the particular view orientation of the geometric figure with the pointer can later be retrieved. When the pointer is activated, the pointer can be associated with a multimedia function such that when the pointer is again activated, the multi-media function is executed. U.S. Pat. No. 5,488,685 discloses an object oriented graphic user interface (GUI) having overlapping windows and an access window having topics, index and “look for” button functions for selection by a user. Selection of one of the button functions results in the generation and display of entries in a predefined area of the access window. Visual cues in the form of coach marks are generated for identifying features on the display. The coach marks encircle, point to, and/or underline objects, features, icons, folders and other display elements to assist the user in operating the computer.

What is needed beyond the prior art is a simple and effective way to cause secondary content to be revealed based on user actions.

SUMMARY OF THE INVENTION

The invention which meets the needs identified above is an apparatus and method for displaying a secondary layer of information in a graphical user interface where the second layer of information is revealed when a point on the circumference defined by radius “r” originating at the x,y coordinates of the cursor covers a point in a secondary content of the second layer. The circumference may be set to trigger appearance of secondary content gradually, all at once or to trigger the appearance of all secondary content in a predefined zone.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1depicts a pictorial representation of a distributed data processing system in which the present invention may be implemented and is intended as an example, and not as an architectural limitation, for the processes of the present invention. Distributed data processing system100is a network of computers which contains a network102, which is the medium used to provide communications links between various devices and computers connected together within distributed data processing system100. Network102may include permanent connections, such as wire or fiber optic cables, or temporary connections made through telephone connections, personal computers, or network computers. Distributed data processing system100may include additional servers, clients, and other devices not shown. In the depicted example, distributed data processing system100is the Internet with network102representing a worldwide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. Computers104,106,108,110, and112are all connected to network102. Distributed data processing system100may also be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).

FIG. 2depicts computer200. Although the depicted embodiment involves a personal computer, a preferred embodiment of the present invention may be implemented in other types of data processing systems. An exemplary hardware arrangement for computer200follows. Keyboard222and display223are connected to system bus210. Read only memory (ROM)230contains, typically, boot strap routines and a Basic Input/Output System (BIOS) utilized to initialize Central Processing Unit (CPU)220at start up. Random Access Memory (RAM)240represents the main memory utilized for processing data. Drive controller250interfaces one or more disk type drives such as floppy disk drive252, CD ROM254and hard disk drive256. The number and type of drives utilized with a particular system will vary depending upon user requirements. A network interface260permits communications to be sent to and received from a network. Communications port270may be utilized for a dial up connection to one or more networks280while network interface260is a dedicated interface to a particular network. Programs for controlling the apparatus shown inFIG. 2are typically stored on a disk drive and then loaded into RAM for execution during the start-up of the computer.

FIG. 3depicts the appearance of spotlight cursor320. Spotlight cursor320has light314, cursor311and “c”330. Cursor311has tip312. When referring to the coordinates of the cursor, the coordinates are those of tip312. The tip is defined as the most forward point of the arrow displayed as the cursor. Persons skilled in the art are aware that any other point on the cursor could be chosen. Tip312defines the center of light314. Light314is an area defined by a circle with circumference “c”330. Light314has radius “r” (not shown) which is the straight line distance from tip312to “c”330. Circumference Ac@ may appear as a sharp line in contrast to screen310, a broken line in contrast to screen310, a soft line in contrast to screen310or a fuzzy line blending with screen310; however, no matter what appearance is given to the circumference, “c” will be defined mathematically in relation to radius “r” for the purpose of spotlight cursor320. As shown inFIG. 3, spotlight cursor320has not caused any secondary content to appear on screen310. Screen310has “Invert” checkbox340, “Mirror” checkbox350and “Print File Information” checkbox360.

FIG. 4depicts screen310with spotlight cursor320in a new position. The user has moved cursor311to the new position. As cursor311moved, light314, with “c”330and center coinciding with tip312of cursor311, also moved. Secondary content information icons have appeared. Specifically “Invert” checkbox information icon410has appeared adjacent to “Invert” checkbox340, “Mirror” checkbox information icon420has appeared adjacent to “Mirror” checkbox350, and “Print file information” checkbox information icon430has appeared adjacent to “Print file information” checkbox360. As will be explained in further detail below the appearance of “Invert” checkbox information icon410, “Mirror” checkbox information icon420and “Print file information” checkbox information icon430were caused by covering with “c” of spotlight cursor320.

As used herein, “cover” means the act of a point on a secondary content being contacted by a point on “c” (where “c” is the circumference of a circle with radius “r”) or being contained within the boundary of “c” or the coordinates of a point on “c” coinciding or equaling coordinates of a point on a secondary control, or a point on the boundary of a pre-defined zone containing one or more secondary contents. As used herein, secondary content means text, icons, images or controls. The introduction of secondary content in a GUI is done by the application programmer, taking advantage of the capability and availability of the spotlight cursor.

The method for using the spotlight cursor is as follows. The program obtains the x,y coordinates of the cursor. Next, the program applies the pre-selected radius to define a circle of circumference “c” with origin at x,y (tip312ofFIG. 3) and radius “r”. Next the program determines whether or not there are any secondary contents that are within the circumference of the circle. If there is a secondary content within circumference “c” then the secondary content will be activated and revealed in the primary layer of the GUI. If there are no secondary contents within the circumference “c” of the circle, then the program does nothing. The program cycles each time the cursor moves (each time the cursor coordinates change). The program may be incorporated into an operating system, an application, or the program may be a plug-in for adaptation to a pre-existing program. Once the spotlight feature is active, no further action is needed on the user=s part

FIG. 5depicts the flow chart of program500for using spotlight cursor320. Cursor movement activates program500. First, program500starts (510) and determines whether or not the cursor has moved (520). If the cursor has not moved, program500goes to step590. If the cursor has moved, program500determines whether or not the spotlight cursor is on (530). If the spotlight cursor is not turned on, program500will proceed to step590. If the spotlight cursor is turned on, program500will proceed to obtain the coordinates of the cursor (540). Next, program500will use the cursor coordinates and “r” to calculate the location of “c”, where “c” is the circumference of a circle of radius “r” (550). The value of “r” will be set by a configuration program, a default value, or a setting selected by the programmer of the application. Next, program500will determine whether or not “c” has covered secondary content (560). If “c” has not covered a secondary content, program500hides secondary content that has been previously displayed (570) and goes to step590. If “c” has covered a secondary content, the secondary content will be displayed (580). The secondary content will be displayed according to a method of appearance chosen in a configuration program. Program500then stops (590).

FIG. 6depicts a flow chart for program600for configuration of the spotlight cursor. Program600begins (610) and displays a menu (612). First, program600determines whether or not the secondary content is to be displayed (614). If the user selects “no”, program600will set “r”=0 (616) and end (656). By setting “r”=0, the spotlight cursor is rendered inoperable as there will be no “c” to cover secondary content. If secondary content is to be displayed, program600will determine whether or not “r” has been selected (618). If the user has not entered “r”, program600will set “r” to a default value (620) and enter the default value for “r” (622). If the user has set “r”, program600will enter the value of “r” (622). Program600will determine whether or not the user has set the intensity (624). If “r” is set to a minimum value “1”, then spotlight cursor320may not be visible at tip312of cursor311. However, spotlight cursor320will have a minimum “c” to effect display of secondary content. The intensity is the brightness of the circle of light within circumference “c”. If the user has not set the intensity, program600will select the default intensity (626) and program600will go to step628and enter the value for the intensity (628). If the user sets the intensity, program600will go to step628and enter the value for the intensity (628). Next, program600will determine whether or not a color has been selected for the area inside “c” (630). If the user does not select a color for the area inside “c”, program600will set the color to the default color (632) and program600will go to step634and enter the color (634). If the user selects a color for the area inside “c”, program600will go to step634and enter the color (634). Next, program600will determine whether a color has been selected for “c” (636). If a color has not been selected for “c”, program600will select the default color for “c” (638) and program600will go to step640and enter the color (640). If the user selects a color for “c” program600will go to step640and enter the color (640). Next, program600will determine whether the configuration of “c” has been selected (642). If the user has not selected a configuration for “c”, program600will set the configuration of “c” to the default configuration (644) and program600will proceed to step646and enter the configuration (646). If the user has selected a configuration for “c”, then program600will enter the configuration for “c” (646). Next, program600will determine the mode of appearance of secondary controls (648). If the user selected a mode of appearance for secondary controls, program600will enter the mode of appearance of secondary controls (652). If the user has not selected a mode of appearance for secondary controls, then program600will go to program700shown onFIG. 7via connection650.

Referring toFIG. 7, program700continues from program600via connection650and will determine whether or not “gradual appearance” has been selected (710). If “gradual appearance” has been selected, program700will set the appearance of secondary content for “gradual appearance” (720) and go to step770which will set the display to reveal appearance when covered by “c” (770). If the user has not selected “gradual” then program700will determine whether or not the user has selected “all at once” (730). If the user has selected “all at once” then program700will set appearance for “all at once” (740) and program700will go to step770which will set the computer to reveal secondary content when covered by “c” (770). Next, program700will determine, whether or not the user has selected “zone” (750). If the user has selected “zone”, then program700will set the appearance for the zone (760) and proceed to step770. If the user has not selected “zone”, then program700will go to step770which will cause the computer to reveal secondary content when covered by “c”. Then program700will return to program600via connector654. Referring again toFIG. 6, program600will then enter the secondary definition (652), and end (656).

FIG. 8depicts circumference “c” gradually revealing a secondary content item. Spotlight cursor320has circumference330and light314. Secondary content item850has outer edge860. When circumference330covers a point on outer edge860, secondary content item850will start to be displayed. InFIG. 8, circumference330has passed over outer edge860and intersecting area840is revealed while remainder area842is not displayed. As circumference330advances and covers additional points of secondary item850intersecting area840will grow and remainder area842will decrease.

FIG. 9depicts circumference “c” revealing secondary content item950all at once. Spotlight cursor320has circumference330and light314. Secondary content item950has outer edge960. When circumference330covers a point on outer edge960, secondary content item950will be fully displayed. There will be no intersecting area or remainder area. No matter what point on outer edge960of secondary content item950is covered by circumference330, all of secondary content item950will be displayed.

FIG. 10depicts circumference “c” revealing a group of secondary content by covering a point in the predetermined zone. Spotlight cursor320has circumference330and light314. Secondary content items1050,1052and1054are positioned within pre-defined zone boundary1060. When circumference330covers a point on zone boundary1060, all three secondary content items1050,1052and1054will appear fully displayed at the same time.