Graphical cursor navigation methods
A method for actuating a button on a graphical user interface (GUI) is disclosed. The method includes navigating a graphical cursor corresponding to an input device onto the button, activating a fence around a border of the button if the navigation occurs via a pre-defined portion of the border and navigating the graphical cursor away from the button via a pre-defined area of the button.
Latest Hillcrest Communications, Inc. Patents:
This application claims priority from U.S. Provisional Patent Application No. 60/589,466 filed on Jul. 20, 2004 and entitled “Easy To Use Button-Less Interaction With A Pointing Device”. This application is also related to U.S. patent application Ser. No. 10/768,432. The subject matter of each of these applications is incorporated herein in their entirety by reference.BACKGROUND
The present invention is directed to user interfaces and more particularly, to a method of navigation and interaction with a user interface. Such interaction and navigation involve operating an input device such as a mouse, a trackball or a free-space pointing remote device. The operation of the input device includes at least one of scroll, point, click, gesture, etc.
User interfaces, such as graphical user interfaces (GUIs) are well known. Virtually all computers include (or, enable) a graphical user interface in order to make the interaction with the computer more “user friendly”. This is accomplished by reducing, if not eliminating, the number of keystrokes a user is required to enter (or depress or input, etc.) in order to perform a function such as launching an application residing on the computer. An increasing number of other electronic devices, from cell phones to user controls on appliances, rely on various graphical user interfaces that facilitate a user interaction with the particular device.
Traditional methods of using a GUI (on a computer for example) include the use of an input device such as a mouse or a track ball. A movement of the mouse or the track ball results in a corresponding graphical cursor (sometimes called a cursor or a pointer) moving on the graphical user interface. The graphical cursor (or pointer) can thus be navigated to an object (represented by an icon) on the GUI that corresponds to an executable task such as launching a software application for example.
Once the graphical cursor is navigated to an icon, the corresponding task can be executed by clicking (depressing) on an actuating button that is integrated within the input device. For example, if the icon on the GUI corresponds to a word processing application, clicking on the icon results in launching the word processing application. The graphical cursor can also be used to rapidly scroll through pages of text within a word processing document for example.
More recently, other input devices such as the Free Space Pointing Device™ developed by Hillcrest™ Labs of Rockville, Md. (assignee of the present application) have incorporated functionality associated with a mouse or track ball. The Free Space Pointing Device is a handheld device similar to that illustrated in
By holding the Free Space Pointing Device and through hand and arm gestures or movement (twisting or waving of the hand for example) of the user, the graphical cursor can be navigated to the desired buttons for selection and actuation.
The precision of the Free Space Pointing Device enables detection of the slightest movements of a user. The graphical cursor may be navigated to an icon (or a button) by user hand movement and the user may contemplate his or her next action prior to actuating the icon. During this time, slight movements of the user hand, given the precision of the device, may lead to drifting of the graphical cursor from the highlighted or selected (but not yet actuated) icon. This may take place, for example, during a presentation or a tutorial in which the user may be explaining to an audience the functionality associated with a highlighted (or selected) icon prior to actuating the icon. In order to actuate the icon, additional user action (such as movement) may be required to reposition the graphical cursor on the icon of interest before actuation of the icon.
Some embodiments provide controlled navigation of a graphical cursor on a user interface.SUMMARY
Methods according to the present invention address these needs and others by providing a method for maintaining the position of a graphical cursor within the bounds of a an icon or a visual graphic object.
According to one exemplary embodiment of the present invention, a method for actuating a button on a graphical user interface (GUI) includes navigating a graphical cursor corresponding to an input device onto the button, activating a fence around a border of the button if the navigation occurs via a pre-defined portion of the border and navigating the graphical cursor away from the button via a pre-defined area of the button.
In another embodiment a method for controlling a widget bar on a display includes navigating a graphical cursor corresponding to an input device to a pre-defined location of the display to make visible a widget bar, activating a fence around the border of the widget bar and actuating at least one of a plurality of buttons on the widget bar wherein the pre-defined location corresponds to an opening along a border of the widget bar.BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings illustrate exemplary embodiments of the present invention, wherein:
The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims.
For purposes of this invention, terms such as “button” and “icon” may be used interchangeably. Similarly, terms “actuation” may also to refer to “clicking” of a button or an icon. The terms “fence” and “corral” may also be used interchangeably. Each of the terms “graphical cursor”, “cursor” and “pointer” may refer to the same element.
In exemplary embodiments, borders of buttons may be utilized to provide controlled navigation of a graphical cursor on a user interface. A button may correspond to or represent a number on a keypad for example. The keypad may be displayed on a user interface and the individual keys can be actuated. A button may also represent a function such as a ‘play’ button on a DVD menu (for operating functions of a DVD player). The DVD menu may also be displayed on a user interface. A button may represent other functions in addition to those listed herein.
Upon corral activation, the graphical cursor may remain within the corral (fence) 110 surrounding button 100 even if a user makes large movements such as moving her hand for example. The button may then be actuated in a manner described in further detail below.
The graphical cursor may also be navigated onto button 100 via portions of the border outside of opening 120 (such as from the top, the right or the bottom of button 100 in
As described above, the graphical cursor may be navigated onto button 100 via opening 120 to enable button actuation. In order to provide additional control over navigation of the graphical cursor, button 100 may be actuated by navigating the graphical cursor away from button 100 over a pre-defined area of the button such as area 105 of
The pre-defined area in one embodiment corresponds to the funnel-like (or the inverted-V-shaped) area 105 of button 100 defined by fence 110 and gate 115 along the middle of the left side of button 100 in
By navigating a graphical cursor onto button 100 via the opening 120 and then away from the button via area 105 of button 100 (and opening 120) in an approximate clockwise movement, the button may be actuated. The actuation may correspond to a function associated with the button being performed similar to clicking on an icon for example.
Other variations of navigating a pointer to actuate a button may include navigating the button along the left side border and off the button via area 105 (and opening 120) as illustrated by arrow 130 in
Fence 110 may be deactivated by navigating the graphical cursor out of button 100 via opening 120 utilizing the path illustrated by arrow 135 in
In other embodiments, an opening for entering the button for actuation may be defined by an entire side of the button. The opening for leaving the button may be limited to a portion of the side. As illustrated in
All buttons or icons on a user interface may be designed in this manner to facilitate a consistent user experience on a user interface. The user may develop a navigation habit for actuating the icons by utilizing the clockwise gesture as described. Similarly, a navigation habit for moving the graphical cursor away from the button utilizing the counter clockwise gesture may also be developed by the user.
The fence or corral described above may be applicable within a user interface in combination with other button actuation methods in some embodiments. For example, as illustrated in
An opening, such as opening 620, may facilitate navigating a graphical cursor onto widget bar 600 in order to display the widget bar and to provide a user access to functions on the widget bar. The opening may be pre-defined as being located in the lower left hand corner of the display screen for example.
Widget bar 600 may include, in this purely illustrative and exemplary embodiment, functions associated with controlling a DVD player as illustrated in
During normal viewing, widget bar 600 may be invisible on the screen. The widget bar 600 may become visible (or displayed on the screen) by a user navigating a graphical cursor to the lower left hand corner of the display. The lower left corner in an exemplary embodiment may represent the opening 620 for the widget bar. Once the widget bar 600 becomes visible on the screen, corral 610 may be activated around widget bar 600 along with gate 615 on the lower left side of the widget bar.
As described, once corral activation takes place, user gestures or movement have no effect on the position of the graphical cursor unless the graphical cursor is navigated out of the button 600 via area 605 defined by the junction of corral 610 and gate 615. Absent such movement through area 605, the graphical cursor may remain within the widget bar 600. If the user wishes to leave the widget bar, a counter clockwise gesture as described may result in the graphical cursor leaving the widget bar and the widget bar may become invisible.
As the widget bar 600 becomes visible on the screen, the graphical cursor may be navigated to each of the functional buttons 640 to 695. Button 640 corresponding to “mute” may be actuated in the manner described above; that is, the graphical cursor may be navigated off button 640 in a clockwise gesture via area 605 defined by corral 610 and gate 615.
The remaining functional buttons (i.e. buttons 645 to 695) may be actuated in the traditional manner; that is, they may be actuated by navigating the graphical cursor over to the desired button and the button may be clicked on to execute the corresponding functionality.
A widget bar as described may also be included within a programming guide or menu as illustrated in
The arrow path in
The widget bar 600 may be further enhanced to include voice feedback to the user as the graphical cursor is navigated over each of the buttons 640 to 695. The functionality of each of these buttons may be announced to the user.
Methods in accordance with exemplary embodiments as described above may be illustrated as process or flow chart 900 in
The gestures incidental to actuation (approximately clockwise) and exit (approximately counter clockwise) are purely illustrative and other gestures or movements may become incident based on the location of the gate along the button border. For example, if the gate is located along the right side of a button, a graphical cursor navigation path approximating a counter clockwise movement may lead to button actuation and a graphical cursor navigation path approximating a clockwise movement may lead to the graphical cursor moving off a button without actuation and deactivating the corral. The location of the opening for a button is also arbitrary; it need not be in the upper left hand corner as illustrated in exemplary embodiments.
Method described may be implemented using known Java language programming techniques.
The above-described exemplary embodiments are intended to be illustrative in all respects, rather than restrictive, of the present invention. Thus the present invention is capable of many variations in detailed implementation that can be derived from the description contained herein by a person skilled in the art. All such variations and modifications are considered to be within the scope and spirit of the present invention as defined by the following claims. No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items.
1. A method of actuating a button on a graphical user interface (GUI), said method comprising the steps of:
- navigating a graphical cursor corresponding to an input device onto the button;
- activating a fence around a border of said button if the navigation onto the button occurs via a pre-defined portion of the border; and
- navigating the graphical cursor away from said button via a pre-defined area of the button.
2. The method of claim 1, wherein the border of the button comprises at least the fence and the pre-defined portion.
3. The method of claim 2, wherein the pre-defined portion is an opening and excludes the fence.
4. The method of claim 1, wherein the pre-defined area corresponds to an area formed by the fence and a gate, said gate being formed a junction of the fence and the pre-defined portion.
5. The method of claim 1, wherein the navigation of the graphical cursor via the pre-defined area causes an execution of a function associated with said button.
6. The method of claim 1, wherein a navigation path of said graphical cursor via said pre-defined area of the button corresponds to a user gesture approximating a clockwise movement.
7. The method of claim 1, wherein the graphical cursor is navigated onto the button via a border portion not corresponding to the pre-defined portion to activate the fence.
8. The method of claim 1, wherein the fence activation prevents the graphical cursor from leaving the button.
9. The method of claim 1, wherein the fence is not activated if the navigation onto the button occurs outside the pre-defined portion of the border.
10. The method of claim 1, wherein a navigation of the graphical cursor from the button via a path not including the pre-defined area of the button causes a deactivation of the fence.
11. The method of claim 1, wherein the input device is a free space pointing device.
12. The method of claim 1, wherein the button is an icon.
13. A method for controlling a widget bar on a display, said method comprising the steps of:
- navigating a graphical cursor corresponding to an input device to a pre-defined location of the display to make visible a widget bar;
- activating a fence around the border of said widget bar; and
- actuating at least one of a plurality of buttons on the widget bar wherein the pre-defined location corresponds to an opening along a border of said widget bar.
14. The method of claim 1, wherein one of the buttons on said widget bar is actuated by navigating the graphical cursor from the button via a pre-defined area of the widget bar.
15. The method of claim 14, wherein the pre-defined user area is defined by the fence and a gate formed at the junction of the fence and the pre-defined location.
16. The method of claim 13, wherein at least one of the buttons is actuated by a user click.
17. The method of claim 13, wherein the buttons represent functionality associated with an entertainment system.
18. The method of claim 17, wherein the entertainment system includes at least one of a DVD player and DVR.
International Classification: G06F 3/00 (20060101);