1. Field of the Invention
The present invention relates generally to graphical user interfaces, and more particularly to a method and apparatus for allowing a user to select from a plurality of options arranged in a hierarchical manner.
2. State of the Art
Most modern computers that receive input from a user employ some type of graphical user interface (GUI). A GUI creates various visual objects or controls such as input boxes, icons, menus, toolbars, dialog boxes, buttons, and the like. The user may interact with the various visual objects by operating one or more input devices such as a keyboard, mouse, trackball, tablet, light pen, and touch sensitive screen. These visual objects may typically be pointed to and selected by using one or more of these input devices as a pointing device.
For example, by moving a mouse a user may cause a position indicator, such as a cursor, on the screen displaying the GUI to move in a manner corresponding to the mouse movement. Buttons on the mouse may correspond to different actions that the computer may perform depending on where the position indicator is located at the time a mouse button is pushed.
Different types of objects or controls may be used for different types of user input. For example, check boxes may be used to indicate a binary selection (i.e. yes/no, true/false) of a specific item or option. A text box may be used to allow a user to input a text string, perhaps from a keyboard or voice recognition. A menu item may be used to allow a user to select from a predefined set of commands to be performed. A combo box may be used to allow a user to select from a predefined set of options or to set parameters.
An embodiment of the present invention comprises a method of selecting options arranged in a hierarchy including a first level and at least one additional level. The method includes displaying a hierarchical-selection visual object on a display. A first selection action, in which the user points to and selects the hierarchical-selection visual object, may cause a display list to be shown on the display. The display list may include at least one of a plurality of selectable items arranged on the first level of the hierarchy. Some elements of the display list in this embodiment may also include at least one hierarchy item indicating at least one additional level of hierarchy. This additional level of hierarchy may include additional hierarchy items and additional selectable items. With the display list shown on the display, a second selection action by the user of one of the displayed selectable items may cause the selectable item to be selected and displayed in an information area of the hierarchical-selection visual object.
Another embodiment of the present invention comprises a method of selecting options arranged in a hierarchy including a first level and at least one additional level as with the previous embodiment. In this embodiment, a first selection action by the user of the hierarchical-selection visual object may cause a display list to be shown on the display in which the display list contains at least one hierarchy item. Some elements of the display list in this embodiment may also include at least one selectable item. This embodiment further includes detecting a pointing action in which the user points to one of the hierarchy items, which may cause a lower level display list to be displayed. The lower level display list may include selectable items, hierarchy items, or both, which are dependent upon the hierarchy item pointed to on the display list. This pointing action to hierarchy items and display of lower level display lists may be repeated multiple times for multiple hierarchy levels. With the display lists shown on the display, a second selection action by the user of one of the displayed selectable items may cause the selectable item to be selected and displayed in an information area of the hierarchical-selection visual object.
Another embodiment of the present invention comprises a computer readable medium having stored thereon a plurality of computer instructions, which cause a computer system to perform the methods of presenting options described above.
Another embodiment of the present invention comprises a computer system including at least one pointing device, a display, a processing unit, and a storage device having stored thereon a plurality of computer instructions for execution on the processing unit which, when executed by the processor, cause the computer system to perform the methods of presenting options described above.
In the drawings, which illustrate what is currently considered to be the best mode for carrying out the invention:
Menu items have conventionally appeared in tool bars, or as pop-up items, and generally have been used to indicate commands that may be executed if the user selects from a displayed list of the commands. For example, as shown in
Drop down menus allow organization of a large number of controls, yet take up very little screen space because the control options are only displayed when the user selects the menu control. Recently, with the ever expanding number of controls available within an application program or operating system, menus have been organized in a hierarchical fashion. In other words, referring to
On the other hand, combo boxes 210, as shown in
Conventionally, as shown in
The present invention is not limited to a particular hardware system, however, an exemplary hardware embodiment is shown in
The one or more storage devices 370, which may be coupled to the processing unit 360 and system memory 380, may be any device capable of storing data and computer instructions in a non-volatile fashion. Some of these devices may include, for example, hard disk drives, removable magnetic disk drives, flash memory devices, magnetic cassettes, and optical drives for holding optical read/writable media such as digital video disks and CD-ROM disks. The list of devices is intended to be exemplary only, other storage devices 370 are possible and contemplated within the scope of the present invention. The present invention as embodied in computer instructions and hierarchically arranged data may be stored on one or more of the storage devices 370 along with other program modules and data for other computer functions such as operating systems and application programs.
The processing unit 360 may be any unit capable of performing conventional computer instructions. There are a wide variety of processing units 360 available, as a result, the computer instructions defined to carry out the present invention may need to be configured or compiled differently for execution on different processing units 360.
The system memory 380 may include volatile and non-volatile memory elements for storing computer instructions and data. For example, the system memory 380 may include volatile memory in a combination of random access memory comprised of dynamic random access memory and static random access memory. The system memory 380 may also include non-volatile memory, such as read-only memory and flash memory. Although not required, conventionally, system memory 380 is used to allow the processing unit 360 faster access to data and computer instructions than is possible from direct access to storage devices 370. As such, data and computer instructions are often moved prior to, or during, use by the processing unit 360. The present invention as embodied in computer instructions and hierarchically arranged data may be stored in system memory 380 to facilitate access to and execution of the computer instructions and data.
The one or more pointing devices 320 may be any number of hardware interfaces capable of directing the location of a cursor displayed on the display 310 and used to point to various areas of the display 310. Some example pointing devices 320 are a mouse, a joystick, a touch sensitive tablet, a touch sensitive display screen, voice commands, and a keyboard 330. The system may be configured with multiple pointing devices 320 such that the user may choose to direct the cursor using different pointing devices 320 at different times. For example, the user may choose to move the cursor with a mouse, keys on a keyboard 330, or voice commands at different times for efficiency and convenience of the user.
Although not required, a computer 350 conventionally includes a keyboard 330 for efficient entry of alphanumeric data. Examples of computers 350 that may not include a keyboard 330 are personal digital assistants, cellular phones with computing capabilities, and special purpose computers 350 such as inventory trackers and cash registers.
Many other 10 devices 340 may be optionally included in the computer 350. Some exemplary devices are communication and network devices such as modems, local area network interfaces, and wide area network interfaces. Other optional 10 devices 340 may be devices such as printers, speakers, microphones, and cameras.
To begin operation, hierarchical the user may select the displayed 502 hierarchical-selection visual object 410. Typically, the user may perform 504 a first selection action while the cursor is pointing to the cascade visual cue 412, which may cause a display list 440 to be displayed. For many operating systems and application programs, a selection action is used rather than a pointing action because the pointing action may be reserved for displaying a pop-up hint indicating the function of the visual object currently pointed at by the cursor. However, in other systems it may be desirable for a display list 440 to be displayed when the pointing action points the cursor in the information area 414 or the cascade visual cue 412 area of the hierarchical-selection visual object 410 without requiring a selection action. As a result, depending on the system, the first selection action may be performed as a pointing action or a selection action.
The display list 440 may contain at least one selectable item 450, or at least one hierarchy item 460, or both. Selectable items 450 are items that, when pointed to and selected 506, define a new selected item 454 to be used and displayed 508 in the information area 414 of the hierarchical-selection visual object 410. On the other hand, hierarchy items 460 are items that may not be directly selectable. Rather, hierarchy items 460 may contain additional levels 470 of hierarchy, which may contain additional selectable items 450 and additional hierarchy items 460. For example, in
When the user performs the first selection action, the visual object comprising the display list 440 is shown on the display 310. As shown in
When the display list 440 is shown on the display 310, the user may perform pointing actions to position the cursor over one of the selectable items 450 or hierarchy items 460. In response to the cursor pointing to a selectable item 450, the present invention may use a highlighting visual cue 482 to modify the appearance of the selectable item 450. For example, the present invention may highlight, change the color, change the background, display an icon, or change the text of the selectable item 450 being pointed at by the cursor.
Similarly, in response to the cursor pointing to a hierarchy item 460, the present invention may modify the appearance of the hierarchy item 460. The appearance modification may be similar to that used for the selectable items 450, may be different from that used for the selectable items 450 to emphasize the difference between selectable items 450 and hierarchy items 460, or may not occur. Additionally, in response to the cursor pointing to a hierarchy item 460, the present invention may display a lower level display list 470 corresponding to the particular hierarchy item 460 pointed to by the cursor. This lower level display list 470 may include hierarchy items 460 and selectable items 450 that are dependent upon the pointed to hierarchy item 460. For example, in
Once the lower level display list 470 is shown on the display 310, cursor movement by the user over the lower level display list 470 may use a highlighting visual cue 482 to modify the appearance of the item pointed to, in a manner similar to that described above for the display list 440. On the other hand, if the user moves the cursor to another item on the display list 440, the lower level display list 470 may be removed from the display 310 because moving the cursor away from the pointed to item indicates the user no longer desires the pointed to item. Similarly, if the user moves the cursor outside of the display list 440, the display list 440 may be removed from the display 310.
The lower level display list 470 in
As can be seen in
Typically, the selectable items 450 and hierarchy items 460 existing in the entire hierarchy of the hierarchical-selection visual object 410 may be set at the time of the first selection action. However, the selectable items 450 and hierarchy items 460 may change from one first selection action to the next first selection action. In other words, a software event or user event may modify the meaning of, or values desired for a given hierarchical-selection visual object 410. For example, in
Additionally, some embodiments of the present invention may use an unavailable visual cue 484 to show some selectable items 450 or hierarchy items 460 in the display lists (440 and 470) even if they are in a state in which they may not be selectable. This may be done by showing the selectable items 450 or hierarchy items 460 in a shadowed version of text or other visual cue to indicate that while the item may be displayed it may not may not include a lower level display list 470 for a hierarchy item 460 or may not be selected for a selectable item 450.
If there are many levels of hierarchy, many display lists may be present on the display 310 as the user traverses down through the hierarchy because each display list in the hierarchical trail remains on the screen until the user makes a second selection action or a pointing action pointing away from the display lists. As a result, the present invention may present the various display lists in a substantially non-overlapping fashion taking advantage of available portions of the display 310. On the other hand, all display lists may not be able to be shown in an un-obscured fashion. In this event, the present invention may attempt to present the display lists such that at least a child display list does not obscure the parent display list even if it may need to obscure the display list of more distant ancestors.
The present invention may be implemented in one or more program modules implementing the features described herein. Additionally, the present invention is not described in any particular programming language or software implementation because it will be obvious to a person of ordinary skill in the art that the operations and procedures described herein may be practiced using any number of programming languages. Moreover, the invention may be practiced within a wide variety of operating systems and software applications executing on many different hardware platforms.
Although this invention has been described with reference to particular embodiments, the invention is not limited to these described embodiments. Rather, the invention is limited only by the appended claims, which include within their scope all equivalent devices or methods that operate according to the principles of the invention as described.