1. Field of the Invention
This invention relates to the arts of user interfaces and operator controls for systems, computers, and application programs. More specifically, this invention relates to the arts of user-definable keys and buttons for repeating system functions, actions or features.
2. Background of the Invention
Graphical user interfaces are common place on computer based systems such as personal computers, personal digital assistants (“PDA”), and other types of computerized equipment. A graphical user interface (“GUI”) consists of several basic elements including a user display area which provides one or more user selectable areas on the screen. The user selectable areas usually appear as three-dimensional button, checkboxes, fillable forms, slider controls, or drop-down lists.
Turning to FIG. 3, an example of typical graphical user interface is shown, in this case a word processor. This user interface for the word processor is usually displayed on a portion (31) of a computer screen, in which a GUI frame (33) contains a user input area (37), a tool bar (32) having several “buttons”, and a set of drop down menus (34) or menu bar. A pointer (35) indicates to the user where the pointing device is currently positioned, and a cursor entry point (36) may also be provided.
If the pointer (35) is moved over one of the drop-down menu headers (34), such as the FILE header, and if the pointer is activated, such as by pressing the left button (e.g. “left clicking”) on a mouse, a drop-down menu having several options is usually displayed.
If the pointer (35) is moved above one of the buttons on the toolbar (32), and the pointer is activated such as by left clicking the mouse, the system feature or action represented by that button will be activated.
In this example, several different drop-down menus including FILE operations, EDIT commands, VIEW controls, selection of various TOOLS, and a HELP menu are available. Also, in the toolbar (32) are a number of common buttons, as found in many word processors, including (from left-to-right) a BOLD button, an ITALICIZE button, an UNDERLINE button, a LEFT justification button, a CENTER justification button, a RIGHT justification button, a spell checker button, a hyperlink definition button, a color control button (shown as a paint can pouring into a character), a font size increase button, and a font size decrease button.
In the user input area (37), a cursor (36) is usually provided so that the user will know where the typing will begin if he begins to type on the system's keyboard. When text is already present in the user input area (37), the user may use the pointer (35) to click anywhere in the text to reposition the cursor input point (36).
The user can also usually select a block or section of text by positioning the pointer (35) at the beginning of the text to be selected, clicking and holding down a mouse button while moving the mouse to cover the entire block of text of interest (“click and drag”). This typically causes the text to be displayed in a special manner to indicates its selection, such as reverse video, change of color, or other visually distinctive markings. Once text has been selected, it may be operated on in group such as by deleting it, replacing it, or changing its characteristics (bolding, underlining, etc.).
Turning to FIG. 4, an example is given of text in a word processor which is input by the user and then manipulated using system features. In this example, the text “A Long Time Ago” has been typed into the user input area (37). The user has used the BOLD system feature, font size increase feature, and the center justification feature to yield the distinctive appearance of a title of the document.
Similarly, the user has entered the text “by Steve Yu”, centered it, and italicized it. Also, the user has entered text “Once upon a time,” leaving the cursor (36) following the comma of this phrase.
The user's motions and actions made to activate a single system feature on a block of text are illustrated by the process of FIG. 5 in a conventional system such as a personal computer with a keyboard and mouse (or trackball). First, the user moves (52) a hand from the keyboard to the mouse, and then maneuvers (52) the pointer over the text and selects the word or phrase. Next, the user moves the pointer (35) across the screen to the feature activation GUI button, such as the ITALICIZE button on the toolbar (32), and left-clicks (53) on the GUI icon by pressing a left button on the mouse.
If the user has selected a drop-down menu, he may have to maneuver (54) the pointer one or more additional times to select options on the menu and/or options on submenus. The user may then move (56) the pointer to a point within the user input area (37) such as the text document being edited, and click at a point where resumption of editing is desired. Finally, the user moves (57) his hand from the mouse back to the keyboard to resume typing.
When the user desires to activate another system function, such as applying a “bold” characteristic to a block of text or changing the justification of a paragraph, he must repeat (58) this process (50).
This process becomes tedious when the user is activating the same system feature repetitively. For example, if the user has decided to change many section headings in a document to have characteristics including bold, underline, and large size, he will have to perform a great number of steps. If there are 30 headings to be changed, for example, he may have to perform as many as 180 steps (30 iterations of the process of FIG. 5). This can contribute to operator fatigue, increase errors, and even increased wrist, arm and back strain, over time.
An existing solution to this tedious and repetitious process uses a combination of keys on the keyboard (e.g, Ctrl+I or Ctrl+B) to activate a feature directly. The key combination is commonly referred to as a hot key sequence or keyboard shortcut. A given feature may be activated repeatedly by pressing on the same combination of keys. In this well-known solution, the mouse is used to perform the text block selection, and then the key combination is pressed to activate the feature. As this is still a keyboard and mouse combination, the user's hand is required to move from keyboard to mouse and back to keyboard essentially the same number of times per operation. Further, most programs only provide a few keyboard shortcuts or hot key sequences for the most commonly used program features, and these sequences may not be intuitive to the user (e.g. Ctrl-A for “File-Save As”).
Some word processors provide a macro definition or recording function which allows a user to record a series of keystrokes, and then to replay those series of keystrokes upon selection of the assigned macro. Most word processors provide this capability, although many of them are not easy to use and many users are not familiar with their operation. Because of their relatively difficult user interfaces to define a macro and run it, most users opt for the “brute force” approach of repeating a series of manual steps, such as those just discussed.
Additionally, some personal computers and computer-based devices provide programmable function keys, such as special keys located on the side of the mouse, and special keys located on the keyboard. Similar to the macro function definition capabilities of a particular program, the firmware driver for these devices such as the keyboard driver or the mouse driver allow the user to define what actions will be performed when a special key is selected by the user, such as running a program, performing a series of keystrokes, or executing a special function (scrolling, magnification, etc.). However, the configuration of these options can be quite difficult, and as such, many users do not take advantage of them. Further, the operation of these special buttons are usually associated with a device, such as the mouse or the keyboard, and are not associated with a specific application program. In such a case, a user may configure the special button on a mouse to italicize text (e.g. entering the keystrokes Control-I). But, this operation may not be a valid operation within another application program, such as a web browser, rendering the programmed button useful only in a word processor.
Therefore, there is a need in the art for an improved user interface system and method which allows a user to take advantage of programmable keys on common user input devices, such as mouse or keyboard, while providing a quick, simple, and intuitive process of programming or defining the functions of those programmable keys so that reactivation and repeated use of a system feature may be realized to improve user interface efficiency.