Computer-controlled displays are currently in widespread use in both home and business environments. Moreover, due to the price drop of microprocessors in recent years, computer-controlled displays are being used in environments other than conventional personal computers. For example, computer-controlled displays are often used in home entertainment systems (e.g., VCRs, video games or other types of interactive television systems). However, because these systems typically lack both sophisticated pointing devices and full-size keyboards, cursor control is problematic. Cursor control refers to the ability of a user to move a cursor to a specified location on the computer-controlled display. The term “cursor” as used herein includes any form of movable marker such as an arrow, a screen highlight, a screen focus, or the like.
FIG. 1 illustrates a computer system 105 of a typical home entertainment device. Typically, the home entertainment device features a computer 110, an input device 120, and a video display device 170. Additionally, the computer 110 contains a receiver 130, a memory 140, a central processing unit (CPU) 150, and a display driver 160. These components are interconnected as shown.
The input device 120 includes a directional control device 122 (e.g., a joystick, an arrow keypad, a mouse) and a control switch 124 (e.g., an action button, a function button, or a mouse click-button). By actuating the directional control device 122, a user can move a cursor 172 on the screen of the video display device 170. Similarly, by releasing the directional control device 122, the user terminates cursor movement. The phrase “releasing the directional control device” as used herein refers to any process for deactivating a directional control device 122, so that the directional control device 122 no longer effects cursor movement. The screen of the video display device is logically divided into discrete points. Each discrete point is addressable by Cartesian coordinates (X, Y). The screen of the video display device 170 displays a number of controls 174. Each control 174 is a child window that occupies a defined area of the video display device 170 and is used to input instructions to a computer program 142 running on the computer system 110. Typically, the computer program 142 is contained within the memory 140 of the computer system 110. Generally, the controls are maintained in one of two states, (1) active (indicating that an option represented by the control 174 is currently available to the user), or (2) inactive (indicating that an option represented by the control 174 is currently unavailable to the user).
Typically, a software programmer decides which controls of a given window should be active or inactive, depending upon the state of the program. For example, in the VCR Programming Options Window 205 of FIG. 2A, the controls 220, 222 and 224 with double borders are active while the controls 230, 232 and 234 with the single borders are inactive. In this case, the Play control 230, Fast Forward control 232 and Rewind control 234 are inactive due to the “ON” status of the Timer ON/OFF control 220. In conventional systems, the software programmer has to individually activate or deactivate a given control. To disable only a fraction of the currently active controls, the programmer selectively deactivates each of the controls. Such selective deactivation is cumbersome.
To invoke an option represented by an activated control, the user positions the cursor 172 on the desired activated control and actuates the control switch 124. By actuating the control switch 124 (e.g., by depressing an action button), the user directs the computer program 142 to execute the desired option. However, as previously discussed, most home entertainment systems do not have a sophisticated pointing device (such as a mouse) for a directional control device 122. Instead, the directional control device 122 is frequently a joy stick or a simple four-directional control device. As a result, positioning the cursor 172 on the desired control 172 is a difficult process for the user.
In conventional systems, positioning the cursor is accomplished by “tabbing” or “free-roaming.” When tabbing is used, the computer system 110 maintains a hard-wired list of the controls 174. The hard-wired list of controls designates the sequence in which the user must traverse through the activated controls. As previously explained, FIG. 2A illustrates the Timer ON/OFF control 220, the Timer Set control 222, and the Set Clock control 224 as active, while illustrating the Play control 230, the Fast Forward control 232 and the Rewind control 234 as inactive. Thus, in order for a user to access the Set Clock control 224, the user must tab through the Timer ON/OFF control 220, and Timer Set control 222 before reaching the Set Clock control 224. As a result, the conventional process of tabbing is inflexible and is highly frustrating if the user accidentally tabs over a desired control.
“Free-roaming” is also a frustrating process when a crude positioning device is used. In free roaming, the user moves the cursor towards a desired control using the directional control device 122. However, because the directional control device 122 is typically a crude positioning device, the actual process of positioning the cursor on a control is difficult. For example, it is not uncommon for the user to over-shoot or under-shoot the desired control before finally placing the cursor on the desired location. Thus, neither tabbing nor free-roaming provide a desirable technique to position a cursor on a desired control of a computer-controlled display.
Positioning a cursor in conventional systems has a further complication. This complication arises because active controls frequently become obscured by subsequently displayed items. For example, the Set Time Window 250 of FIG. 2B obscures all the active controls 260 (shown in phantom form) of the VCR Programming Options Window 205. Under these conditions, conventional systems allow the user to activate the obscured controls 260 as well as the unobscured controls 251, 252, 253 and 254. Such an occurrence is undesirable as the user can inadvertently activate one of the obscured controls.