COMPUTER NAVIGATION AID
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a computer user navigation systems, and more particularly, to a pointing device controlled computer navigation tool (aid).
2. Description of the Related Art
In computer systems, conventional menu systems, such as the Microsoft® Windows™ 98 application menu system, allow for selection and execution of instructions associated with an application. The instructions allow a user of the computer system to navigate through a set of pull-down menus using a computer mouse.
For example, to open a file, a user using a display screen of the computer system will first align a pointer associated with the mouse to the text menu field labeled "FILE" and then select (or click) on that label with a mouse button. This pops open a menu with more selection options. Next, the user will again align the pointer associated with the mouse to the text menu field labeled "OPEN" and click on that label with the mouse button. This opens a set of files which may include the file the user seeks to open. Finally, the user once more aligns the pointer associated with the mouse to the text having the label of the particular file that user wishes to open and then selects that item by double-clicking with the mouse button. Only when each of these steps is completed will the instruction be executed, e.g., opening a file.
A problem with conventional menu systems is that they are cumbersome and time- consuming because too many steps are required to execute an instruction. To reduce the number of steps, other conventional menu systems represent the pull-down menus as a set of corresponding icon buttons. The icon buttons may be scattered around the application, aligned in a straight line along the top or side of the application, or are grouped in a box. The user now locates the icon button on the display screen, then aligns the pointer of the mouse with a specific application button, and finally clicks on the mouse button to execute an instruction.
One problem with both the conventional pop-up menu system and the conventional icon menu system is that it is difficult in both types of conventional menu systems to locate the menu selection to execute the instruction. For example, the conventional pop-up menu system requires the user to remember the location of basic instructions, e.g., open file, save file, or close file, under the many different menu fields. The conventional icon menu system, requires the user to remember what icons of the many icons on the display screen are associated with some of even the most basic instructions for execution.
Another problem with both-types of conventional menu systems is that they may be physically difficult to work with. For example, both require the user to have sufficient hand- eye coordination and dexterity to locate the particular menu item, align the pointer of the mouse, and then select that menu item while maintaining the position of the pointer.
Yet another problem with both-types of conventional menu systems is that they provide access to only basic desktop instructions. These are instructions such as minimize or maximize application window, save document, open document, or close document. Some conventional menu systems expand the menu to add desktop instructions such as horizontal and vertical window scrolling. Each new instruction, however, adds more complexity to the menu system.
Conventional menu systems are also not suited for navigating network interfaces such as the World Wide Web. The World Wide Web is used in wide area and local area networked environments such as the Internet or a company internal network site. To navigate in such environments, a conventional input device, such as a keyboard or mouse, is equipped with additional external buttons that provide specific functionality for these interfaces and the associated network.
A problem with these conventional input devices is that as functionality is increased, the number of buttons necessary to perform each additional function is also increased. This increases costs associated with manufacturing the input device because additional button, circuitry, and housing space is necessary to accommodate each function. Another problem is that it becomes increasingly difficult to identify and distinguish between the various additional buttons as functions are added. This increases overall operation complexity for the user. Yet
another problem is that these devices are not customizable to accommodate a particular user configuration.
Therefore, there is a need for a pointing device menu system ( 1 ) that allows ease of use to locate and execute (launch) a menu field entry; (2) that allows for ease of navigating the World Wide Web ("WWW") or other interfaces to networked environments such as the
Internet or an Intranet; and (3) that may be customized for networked environments by a particular user.
SUMMARY OF THE INVENTION
The present invention includes a menu system that operates in a data processing system with a pointing device, for example, a computer mouse. In one embodiment the menu system includes a menu palette having a pie-shape structure. The menu system is optimized to navigate the World Wide Web or other interface to a computer network, for example, the
Internet or an internal company Intranet.
In one embodiment, the menu system includes a call subsystem, a menu palette subsystem, a transition subsystem, and an execution subsystem. The menu system may also include a close subsystem and a customization subsystem. These subsystems may couple together with the pointing device.
The call subsystem communicatively couples with the pointing device to receive a call (or display) signal when the user triggers the pointing device in some manner. The menu palette subsystem communicatively couples with the call subsystem and it displays a menu palette in response to the call signal. The menu palette includes a plurality of menu fields. Each menu field corresponds with a particular function that is available for execution. In one embodiment, the menu palette is displayed with a pre-selected menu field. A selected (including pre-selected) menu field has a different viewable characteristic than a non-selected menu field. For example, a selected menu field may be a different color, shape, or size than all of the other non-selected menu fields.
The transition subsystem communicatively couples to the pointing device and with the menu palette subsystem. The transition subsystem selects a second menu field that is adjacent
to the first menu field in the menu palette in response to receiving a transition signal from the pointing device. The transition subsystem continues to select a menu field that is adjacent to a currently selected menu field in response to receiving each subsequent transition signal from the pointing device. The execution subsystem is communicatively coupled with the menu palette subsystem. The execution subsystem executes the function associated with a currently selected menu field in response to receiving an execution signal from the pointing device.
The close subsystem communicatively couples with the execution subsystem and the menu palette subsystem. The close subsystem closes the menu palette in response to executing the function associated with the selected menu field. The close subsystem may also close the menu palette in response to selecting a "close" menu field or if no activity with the menu palette occurs within a predefined period of time. The customization subsystem communicatively couples with menu palette subsystem. The customization subsystem configures the menu palette so that a menu field includes a user defined function. In a preferred embodiment the user defined function is a Uniform Resource Locator address.
The present invention also includes a method for selecting a menu field from a plurality of menu fields in a menu palette and then executing a function associated with the menu field. The process starts when the menu system receives a call (or display) signal from the pointing device. The process then displays the menu palette. When displayed, the menu palette has already pre-selected a menu field from the plurality of menu fields. The process allows for selection of a menu field that is adjacent to the pre-selected menu field when the menu system receives a transition signal from the pointing device. The process also allows for the selection of any other adjacent menu field that is adjacent to any currently selected menu field when the menu system receives subsequent transition signals from the pointing device. The process also executes the function of the menu field that is currently selected when the menu system receives an execution signal from the pointing device.
The method may also include a process in which the menu system closes the menu palette to have it disappear from the display screen upon executing the function of the selected menu field. Further, the method may also include a process in which the menu system customizes a menu field in the menu palette to include a user defined function. The user defined function may be, for example, a Uniform Resource Locator address.
An advantage of the present invention is that it includes a menu navigation aid that provides ease of use and simplicity for a user of a data processing system. The menu navigation aid is beneficially suited for navigating interfaces such as, for example, the World Wide Web. The World Wide Web may be used in wide area and local area networked environments such as the Internet or an Intranet-type company network site. Moreover, the present invention is advantageously customizable so that a user may include commonly accessed information locations, for example WWW pages, through menu fields present on a menu palette.
The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure (FIG.) 1 is a block diagram illustrating one embodiment of a data processing system in accordance with the present invention.
Figure 2 is a block diagram illustrating one embodiment of a computer unit in accordance with the present invention.
Figure 3 is a block diagram illustrating one embodiment of a memory system in accordance with the present invention.
Figure 4 is a block diagram illustrating one embodiment of a pointing device control panel subsystem in accordance with the present invention.
Figure 5 is a block diagram illustrating one embodiment of a menu system in accordance with the present invention.
Figures 6a and 6b are diagrams illustrating a first and a second embodiment of a menu palette in accordance with the present invention.
Figure 6c is a display screen diagram illustrating one embodiment of a page accessed from a network by selecting a menu field from a menu palette of a menu system in accordance with the present invention.
Figures 7a and 7b are flow diagrams illustrating one embodiment of processes for operating a menu system in accordance with the present invention.
Figure 8a illustrates one embodiment of a two-button mouse pointing device for use with a menu system in accordance with the present invention.
Figure 8b illustrates one embodiment of a wheel-mouse pointing device for use with a menu system in accordance with the present invention.
Figures 9a and 9b are diagrams illustrating one embodiment of a customizing a menu field in a menu system using a dialog box in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The figures depict a preferred embodiment of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the claimed invention. The present invention includes a system and a method for navigation of environments such as the Internet or Intranets.
Figure (FIG.) 1 is a block diagram illustrating one embodiment of a data processing system 105 in accordance with the present invention. The data processing system 105 includes a computer unit 110 and peripheral devices such as, for example, a display unit 120, a pointing device 130, a keyboard 140, and a computer network 150. The computer unit 110 couples with the display unit 120, the pointing device 130, the keyboard 140, and the network 150.
The computer unit 110 is a conventional computer unit such as, for example, an IBM®
(Armonk, NY), a IBM-compatible, an Intel® (Santa Clara, CA), or a Intel-compatible microprocessor-based personal computer, a Sun Microsystems® (Palo Alto, CA) SPARC™ or other RISC processor compatible computer, an Apple® (Cupertino, CA) Macintosh®, a
Macintosh compatible, a Motorola® (Schaumburg, IL) PowerPC™ or a PowerPC-compatible
computer, a 3Com® (Santa Clara, CA) PalmPilot, a Casio® (Japan) palm computer, or the like. The computer unit 1 10 includes a conventional operating system software that is appropriate for the hardware platform that is utilized. For example, the operating system may be Microsoft® (Redmond, WA) or IBM® Disk Operating System, IBM® OS/2®, Microsoft® Windows™ or WindowsCE™, Sun Microsystems® Solaris, Apple® MacOS, Linux® OS (distributed by Red Hat® Software, Inc. of Research Triangle Park, NC), or PalmOS, or the like.
The display unit 120 is a conventional display unit such as, for example, a NEC® (Japan) MultiSync monitor, a Toshiba® (Japan) or IBM® active matrix display screen, a liquid crystal display screen, or the like. The pointing device 130 is a conventional pointing device such as, for example, a computer mouse, a computer trackball, a joystick, or the like. Examples include a Logitech® (Fremont, CA) Cordless Mouse, First Mouse™+, MouseMan® Wheel, First Mouse™ 2-botton and 3-botton, Microsoft® Mouse, or the like. The keyboard 140 is optional and may be a conventional keystroke entry system such as, for example, an alphanumeric keypad or a "QWERTY"-layout keyboard. Examples include a Logitech® Cordless Desktop™, NewTouch™, or iTouch™ keyboard series or a Microsoft® Natural Keyboard.
The network 150 is a conventional network such as, for example, a wide area network or a local area network. The wide area network may include, for example, the Internet or a proprietary company Intranet that may include an Internet connection. The local area network may include a Microsoft® Windows NT network, a Novell® Netware® network (Provo, UT), or a UNIX-based Network that may include an Intranet or Internet connection.
Figure 2 is a block diagram illustrating one embodiment of the computer unit 110 in accordance with the present invention. The computer unit 110 includes a processing system (or central processing system ("CPU")) 210, a display (and/or graphics system) input/output (or subsystem) 220, a pointing device input/output 230, a keyboard input/output 240, a network input/output 250, a storage device input/output 260, a memory system 270, and a system (or data) bus 280. The system bus 280 couples the CPU 210, the display input/output 220, the pointing device input/output 230, the keyboard input/output 240, the network input/output 250, the storage device input/output 260, and the memory system 270.
The CPU 210 is a conventional processing unit such as, for example, an Intel® Pentium-class processor or a Sun Microsystems® SPARC processor. The display input/output 220 is a conventional display input/output such as, for example, a video graphics array ("VGA") type input/output. The pointing device input/output 230 is a conventional pointing device input/output such as, for example, an IBM PS/2® or compatible port, a serial port, or a stylus input/output connection. The keyboard input/output 240 is a conventional keyboard input/output such as, for example, a keyboard port or a touch keyboard connection.
The network input/output 250 is a conventional network interface connection such as, for example, an Ethernet connection, a high-speed (e.g., Tl line) connection, a wireless network connection, or a dial-up connection. The network input/output 250 may be used to connect to the Internet or to an Intranet. These connections may also include access to the
World Wide Web.
The storage device input/output 260 is a conventional storage device connection such as, for example, a small computer systems interface ("SCSI") or an integrated drive electronics ("IDE") interface. The storage device input/output 260 may be used to connect a magnetic disk drive, a tape drive, a compact disk drive, or a solid-state disk drive. The memory system 270 is a conventional memory system such as, for example, a dynamic random access memory ("DRAM") or a static random access memory ("SRAM"). The system bus 280 is a conventional system bus such as, for example, a peripheral connection interface ("PCI") bus or an industry standard architecture ("ISA") bus.
Figure 3 is a block diagram illustrating one embodiment of logical components that may be present in the memory system 270 in accordance with the present invention. Generally, the memory system 270 couples to the system bus 280. The logical components in the memory system 270 include at least a portion of each of an operating system 310, a device driver 320, a control panel subsystem 330, and an application 340. The operating system 310 interfaces with the CPU 210 through the system bus 280. It also interfaces with the device driver 320, the control panel subsystem 330, and the application 340. The device driver 320, the control panel subsystem 330, and the application 340 may be optionally present in the memory system 270 during operation of the data processing system 105.
The operating system 310 is a conventional operating system as discussed above such as, for example, Microsoft® Windows™. The device driver 320 is the device driver that may be used in conjunction with the peripheral device (for example, the pointing device 130) so that signals from this device are appropriately communicated between the operating system 310 and the application 340. The control panel subsystem 330 may optionally reside in the memory system 270. The control panel subsystem 330 may be used to configure the peripheral device to enable particular characteristics such as, for example, enabling operation of a wheel in a pointing device having a wheel or wheel-type assembly.
Figure 4 is a block diagram illustrating one embodiment of a pointing device control panel subsystem 330a in accordance with the present invention. The pointing device control panel subsystem 330a includes a pointing device function control 410, a button assignment
420, and an icon set 430. The pointing device function control 410, the button assignment
420, and the icon set 430 all couple together.
The pointing device function control 410 enables configuration of the pointing device 130 with particular operating characteristics (or modes). Each operating mode may be defined to operate the pointing device 130 with specific parameters. For example, the pointing device function control provides operating parameters for the motion and orientation of the pointing device such as speed of movement. The pointing device function control 410 also enables a menu system 505 in accordance with the present invention. This allows a user of the data processing system 105 to control whether the menu system 505 is functional during operation of the pointing device 130. The menu system 505 is further described with regard to Figure 5.
The button assignment 420 enables auxiliary structures of the pointing device 130. These auxiliary structures also operate in conjunction with the menu system 505. The auxiliary structures of the pointing device 130 include, for example, buttons, keys, wheels, or sliders. The button assignment 420 defines functions that perform when the auxiliary structures are actuated or triggered (e.g., selected by being depressed or put in motion in some manner). Finally, the icon set 530 provides icons that represent specific features and functions associated with the menu system 505.
Figure 5 is a block diagram illustrating one embodiment of the menu system 505 in accordance with the present invention. The menu system 505 may be incorporated in
software, hardware, or a combination of hardware and software. The menu system 505 includes a call subsystem 510, a menu palette subsystem 520, a transition subsystem 530, and an execution subsystem 540. The menu system 505 may also include a close subsystem 550, and a customization subsystem 560. The call subsystem 510, the menu palette subsystem 520, the transition subsystem 430, the execution subsystem 540, the close subsystem 550, and the customization subsystem 560 may communicatively couple together in whole or in parts within the menu system 505.
In one embodiment, the call subsystem 510 communicatively couples with the pointing device 130 through the device driver. The call subsystem 510 detects or receives a call (or display) signal from the pointing device 130 and it signals the menu subsystem 520 accordingly. The call signal is a request sent by a user, through, for example, an auxiliary structure of the pointing device 130, to display a menu palette. The menu palette subsystem 520 generates menu palette that is then displayed on the display screen of the display unit 120.
Referring briefly to Figure 6a, one embodiment of a menu palette 605 in accordance with the present invention is shown. In a preferred embodiment a geometric shape of the menu palette 605 is a two-dimensional circle. In alternative embodiments the menu palette 605 may be any size two- or three-dimensional geometric shape, for example, a square, a rectangle, a cone, an oval, a cube, a pyramid, or a sphere. As an example, Figure 6b illustrates an alternative embodiment of a menu palette 665. For ease of understanding, the menu system 505 and the menu palette 605 will be described with regard to Figure 6a.
The menu palette 605 includes a plurality of menu fields 610a-610« (generally 610, and where n corresponds to a letter(s) representing the nth menu field) and an optional text description area 615. In a preferred embodiment the menu fields 610 are organized within a circular menu palette by dividing the circle into substantially equi-distant pieces in which each piece is for a different menu field 610a-610«. Thus, in one embodiment the menu palette 605 generally resembles a pie with substantially equi-distant slices or a wheel with equi-distant spokes. In addition, the text message description area 615 is located substantially about the center of the menu palette 605.
Each menu field 610 defines a particular function that is performed through the computer unit 110. In a preferred embodiment, each menu field defines a particular function
for interaction with the network 150 through the computer unit 1 10. For example, the menu fields include functions for navigating the World Wide Web ("WWW"). These navigation functions include, for example "back" 610a to go back to a previous page on the WWW, "close" 610b to close the menu palette, "reload" 610c to reload or refresh a page on the WWW, "folders" 610(«-2) to access a list of previously saved address or file locations on the WWW, "stop" 610(«-7) to stop loading a page on the WWW, or "help" 61 OH to provide help to a user. The menu palette 605 also includes customizable menu fields 610d( 1 )-610d(4) in which a user may provide, for example, an Internet Protocol address, a Universal Resource Locator ("URL") address, or other link information to execute direct access to information at those addresses on the network 150, including the WWW. It is noted that in one embodiment the WWW pages may be accessed using a WWW browser such as, for example, Netscape® (Mountain View, CA) Communicator, Netscape Navigator®, or Microsoft® Explorer.
In a preferred embodiment, the function associated with a particular menu field 610 is indicated by an icon. The text message description area 615 provides a text description of the function of each menu field that is represented by the icon. The text message description area
615 may also provide other customized information such as, for example, the current status of the execution of the selected function.
When the menu palette subsystem 520 generates the menu palette, e.g., menu palette 605 to display, on the display screen of the display unit 120, a menu field, e.g., menu field 610a, on the menu palette 605 is pre-selected. Generally, any selected menu field that is displayed, e.g., menu field 610a, has a different characteristic than the other menu fields, e.g., un-selected menu fields 610b-610«, on the menu palette 605. The different characteristics may be shown through a variation such as, for example, differences in color, shade, shape, size, or some combination thereof. Once a menu field 610 is displayed as selected, a user may execute the function associated with that menu field 610 by triggering an appropriate auxiliary structure on the pointing device 130.
Turning back to Figure 5, in one embodiment of the transition subsystem 530 of the menu system 505 communicatively couples with the menu palette subsystem 520 and the pointing device 130. The transition subsystem receives a transition signal from the pointing device 130 through, for example, the device driver 320. The transition signal allows for
selection between adjacent menu fields on the menu palette. The adjacent menu fields include menu fields that may wrap around from one end (or edge) of a menu palette to another end (or edge) of the menu palette in those menu palettes that may have such characteristics such as, for example, a square, rectangle, pyramid, cube, or pyramid menu palette. In Figure 6a, adjacent menu fields are, for example, 610a, and 610b or 610«. In Figure 6b, adjacent menu fields are, for example 670a and 670b, 670«, 670d(4), or 670c.
The transition signal may be an electrical pulse or event signal generated by actuating or triggering (generally a manual or mechanical selection), for example, a second auxiliary structure on the pointing device 130. In a preferred embodiment, the second auxiliary structure is a wheel assembly on a pointing device 130 such as, for example, the wheel assembly described below with regard to Figure 8b. Generally, the wheel assembly includes a wheel that generates a transition signal each time the wheel is rotated some distance forward or backward about its axis. Each rotation in this manner generates a transition signal, which may also include direction information (forward or backward). In an alternative embodiment, the second auxiliary structure actuates or triggers through some other action such as, for example, a single click on a designated button of the pointing device 130 or circular rotation of a rotational mechanism on a pointing device 130 for example, as described below with regard to Figure 8a.
Every time a user actuates the auxiliary structure on the pointing device 130 to generate the transition signal, the transition subsystem receives the transition signal and accordingly selects an adjacent menu field, e.g., 610b (e.g., "forward") or 610« (e.g., "backward"). The transition subsystem 530 communicates with the menu palette subsystem 520 to de-select (e.g., change characteristic to match other un-selected menu fields) the previously selected menu field, e.g., 610a, from menu palette 605 and select (e.g., change characteristic to highlight selection by making the selected menu field different from other menu fields) the newly selected menu field, e.g., either 610b or 610/Ϊ, depending on the transition signal direction. As the transition subsystem 530 receives subsequent transition signals, the transition subsystem 530 and the menu subsystem 520 select and de-select appropriate menu fields 610 in the menu palette 605.
In one embodiment, the execution subsystem 540 also communicatively couples with the pointing device 130 and the menu subsystem 520. The execution subsystem 540 receives through the device driver 320 an execution signal from the pointing device 130. The execution subsystem 540 then executes the function associated with a selected menu field 610. Specifically, once a user selects a particular menu field 610, as described above, the user actuates or triggers the appropriate auxiliary structure, e.g., the first auxiliary structure on the pointing device 130, to generate the execution signal. The execution subsystem matches the execution signal with the selected menu field 610 in the menu palette subsystem 520. The menu palette subsystem 520 identifies the selected menu field 610, and hence, the selected function. The execution subsystem 540 may then execute or launch this selected function.
In one embodiment, the close subsystem 550 communicatively couples with the menu subsystem 520, the execution subsystem 540 and the pointing device 130 (through the device driver 320). After the execution subsystem 540 executes a function, the close subsystem 550 signals the menu palette subsystem 520 to close the menu palette 605 so that it is removed from the display screen of the display unit 120. The close subsystem 550 also signals the menu palette subsystem 520 to close the menu palette 605 and remove it from the display screen of the display unit 120 in response to a selection of a "close" menu field, e.g., 610b, in the menu palette 605. As an example, it is noted that Figure 6c is a display screen diagram illustrating one embodiment of a WWW page accessed through the network 150 by selecting a menu field, e.g., 610d(4), of a link address from the menu palette 605 of the menu system 505 in accordance with the present invention.
Referring again to Figure 5, in one embodiment the customization subsystem 560 communicatively couples with the menu subsystem 520, the pointing device 130, and optimally the keyboard 140. The customization subsystem 560 allows for user customization of menu fields 610 in the menu palette 605. In a preferred embodiment, the user may customize the menu fields, e.g., 610d(l)-610d(2), to provide link information to particular resources in the network 150. For example, a user may provide an Internet Protocol address, a Universal Resource Locator ("URL") address, or other link information to execute direct access to information at those addresses on the network 150, including the WWW.
Also, in one embodiment, the user may customize the menu palette 605 by first locating the information through, for example, a network browser or a file manager. In a preferred embodiment, after calling the menu palette 605 the user selects a menu field having link information, e.g., 610d(l )-610d(4). The user then holds a key from, for example, the keyboard 140, and clicks on an auxiliary structure of the pointing device 130. These two actions generate a customization signal that is received by the customization subsystem 560.
When the customization subsystem 560 receives the customization signal it launches a dialog window or box onto the display screen of the display unit 120. The dialog box allows the user to enter in customization information for the menu field. Referring briefly to Figures 9a and 9b, Figure 9a illustrates one embodiment of a dialog box 910 in accordance with the present invention. The dialog box includes an address location field 915 and a customization field 920. In this embodiment, the user supplies the address location field by locating the information through the network browser or the file manager. The user enters a name, e.g., "Yahoo", or other alphanumeric symbol combination in the customization field 920. Once this is done, the user selects a continue button 925 to continue, e.g., the "OK" button.
The customization subsystem 560 receives the user provided customized information and instructs the menu palette subsystem 520 to update the appropriate menu field 610d in the menu palette 605. Figure 9b illustrates a menu palette 930 that is functionally similar to the menu palette 605 discussed above, except that now a menu field, e.g., the "Yahoo" menu field 610d(3), has been updated to reflect the user-provided information from the customization field 920. The user may now directly access the Yahoo WWW site by calling the menu palette 930, transitioning through each menu field until the "Yahoo" menu field 610d(3) is selected, and then executing or launching the "Yahoo" menu field 610d(3).
Turning back to Figure 5, it is noted that in one embodiment one skilled in the art will recognize that the functionality of each subsystem 510, 520, 530, 540, 550, 560 may be combined, either alone or in combination, with the functionality of one or more of the other subsystems without departing from the spirit of the invention. For example, the execution subsystem 540 may incorporate the close subsystem 550, the menu palette subsystem 520 may incorporate the customization subsystem 560, the menu palette subsystem 520 may
incorporate the transition system 530, or the menu palette subsystem 520 may incorporate the call subsystem 510 and the transition subsystem 530.
Turning now to Figure 7a, a flow diagram illustrates one embodiment of a general process for operating the menu system 505 in accordance with the present invention. At a start 740 the process loads the menu system 505 into the memory system 270 of the computer unit 1 10. Once loaded, the call subsystem determines 715 whether it detects a call for the menu palette 605 from the pointing device 130. If there is no call for the menu palette, the process stays idle in the memory system 270.
If the call subsystem detects a call for the menu palette 605 from the pointing device 130, it signals the menu palette subsystem 520. The menu palette subsystem 520 displays the menu palette 520 on the display screen of the display unit 120. In a preferred embodiment the menu palette subsystem 520 displays the menu palette 605 with a pre-selected menu field, e.g., 610a. The process continues with a determination 720 of whether the transition subsystem 530 detects a transition signal from the pointing device 130.
If the transition subsystem 530 does not detect a transition signal, the process determines 725 if the default (pre-selected) menu field, e.g., 610a, is triggered for execution. If the default menu field, e.g., 610a, is not triggered for execution the menu palette 605 may remain on the display screen of the display unit 120 until the close subsystem 550 instructs the menu palette subsystem 520 to close the menu palette 605. The process returns to the start 740 state to await the detection of the next call for the menu palette 605. If there is a selection of the default menu field, e.g., 610a, the execution subsystem 540 executes 740 the function associated with the default pre-selected menu field, e.g., 610a. The result 745 is the function is executed and the close subsystem 550 instructs the menu palette subsystem 520 to close the menu palette 605.
If the transition subsystem 530 determines 720 that it detects a transition signal from the pointing device 130, it instructs the menu palette subsystem 520 to transition to an adjacent menu field, e.g., 610b or 61 OH. The transition signal from the pointing device 130 may also include a directional component to determine whether the transition between menu fields 610 is forward or backward. For each transition signal that the transition subsystem 530 receives it transitions to an adjacent menu field accordingly, e.g., 610b to 610c or 610π to 610(π- ). With
each transition to an adjacent menu field, that menu field is considered to be selected 735. The menu palette 605 distinguishes the selection 735 of the menu field 610 by having that selected menu field change characteristic such as, for example, color, shade, or size, as described above.
When the user selects a menu field 610 for execution, the execution subsystem 540 receives an execution signal from the pointing device 130. The execution subsystem 540 executes (or launches) the function associated with the selected menu field 610. The result 745 is that the function executes and the close subsystem 550 instructs the menu palette subsystem 520 to close the menu palette 520.
Figure 7b is a flow diagram of one embodiment of a transition and selection process within the menu palette 605 in accordance with the present invention. In a preferred embodiment, the transition process includes a combination of the menu system 505 and the pointing device 130. The process starts 750 by determining 755 whether an auxiliary structure is enabled for generating transition signals from the pointing device 130.
If an auxiliary structure on the pointing device 130 is not enabled for generating a transition signal, the pointing device 130 generates a transition signal every time a user initiates 760 movement of the pointing device 130. The user may initiate movement of the pointing device 130 through actions such as, for example, rotating a rotational element of the pointing device 130, for example, in a circular manner. When the user initiates such movement the pointing device 130 generates a transition signal. The transition signal is used to cause transition between menu fields 610 on the menu palette 605. The process stops 770 when the desired menu field 610 is selected. The process of transitioning between menu fields may continue 775 until the user sends an execution signal from the pointing device 130 to the menu system 505 to execute the function of the selected menu field 610.
If an auxiliary structure on the pointing device 130 is enabled, it is actuated 765 every time a user desires to transition between menu fields 610. The process stops 770 when the user selects a desired menu field 610. The process may continue 775 until the user actuates an auxiliary structure on the pointing device 130 to send an execution signal to the menu system 505 to execute the function of the selected menu field 610.
An advantage of the menu system 505 of the present invention is that it may be enabled independently of any application, e.g., application 340. That is, the menu system 505 is functionally independent of any application in the data processing system 105 and may be called to a display screen by a user without having to execute or launch a particular application. In one embodiment, the menu system 505 is enabled through the control panel 330. Another benefit of the menu system 505 is that the user can directly access information on a network 150 by selecting and executing, for example, the menu field having link information, e.g., 610d, or previously saved file location, e.g., 610(π-2), directly from the menu palette and the appropriate network interface is awakened and enabled to access the network information, e.g., a WWW page, sought by the user.
Figure 8a illustrates a first embodiment of pointing device 130, specifically, a two- button mouse pointing device 810, in accordance with the present invention. The two-button mouse pointing device 810 generally functions similar to the pointing device 130 described above. The two-button pointing device 810 includes two mouse buttons 820a, 820b, each of which may function as an auxiliary structure. The two-button mouse pointing device 810 also includes a rotational element located proximate to its underside. The directional aπows 815a, 815b indicate the direction of movement for one-embodiment of the two-button mouse pointing device 810.
When the rotational element rotates, e.g., movement in the direction of an arrow 815a, 815b, a transition signal is sent to the menu system 505 to transition between menu fields 610 on the menu palette 605. It is noted that in one embodiment multiple successive transition signals may be sent and that each transition signal moves the selection of the menu field, e.g.,
610a, to a next adjacent menu field, e.g., 610b (forward) or 61 OH (backward).
As discussed above, the transition signal may also include a directional component. For example, if the two-button mouse pointing device 810 moves in a first direction 815a it generates a transition signal that includes a clockwise direction component. This results in a clockwise (or forward) movement of the selected menu field 610 in the menu palette 605, e.g., 610a to 610b or 610b to 610c. If the two-button mouse pointing device 810 moves in a second direction 815b, it generates a transition signal that includes a counter-clockwise direction
component. This results in a counter-clockwise (or backward) movement of the selected menu field 610 in the menu palette 605, e.g., 610a to 61 OH or 610b to 610c.
An advantage of the two-button mouse pointing device 810 is that the menu palette 605 is readily available to a user because the user may call the menu palette 605 by clicking on, for example, a button, e.g., 820b. Thus, a user does not have to search for particular buttons on, for example, a keyboard to call the menu palette for display. Another advantage of the two- button mouse pointing device 910 is that once the menu palette 605 is displayed, the user may easily select between menu fields 610 in the menu palette 605 by rotating the rotational element of the two-button mouse pointing device 810 in the direction the user seeks to move, e.g., forward or backward, about the menu palette 605 itself. Thus, the user does not have to align a pointer associated with a pointing device on a display screen to select among various menu fields.
Figure 8b illustrates a second embodiment of a pointing device 130, specifically, a computer wheel-mouse pointing device 830, for use with the menu system 505 in accordance with the present invention. The wheel-mouse pointing device 830 generally functions similar to the pointing device 130 described above. The wheel-mouse pointing device 830 includes first and second mouse buttons 850a, 850b and a wheel assembly 835, each of which may function as an auxiliary structure.
In one embodiment, the wheel assembly 835 includes a wheel 840 (top portion only illustrated) that may be rotated about its center (axis). The wheel 840 may generate a transition signal in either of two ways. A first way to generate the transition signal is by depressing and then releasing the wheel 840. A second way to generate the transition signal is by rotating the wheel 840 by some predefined arc distance. The arc distance is a small rotation of the wheel about its axis. In a preferred embodiment the wheel 840 may have a serrated feel as it rotates about its axis. Each serration is a predefined arc distance. As a user rotates the wheel 840 to the next serration, the wheel-mouse pointing device 830 generates a transition signal that is sent to the menu system 505. The transition signal includes a directional component that indicates rotation of wheel 840 in either a first direction (e.g., forward) 845a or a second direction (e.g., backward) 845b.
For example, if a user of the wheel-mouse pointing device 830 moves the wheel 840 to a next serration in a first direction 845a it generates a transition signal that includes a clockwise direction component. This results in a clockwise (or forward) movement of the selected menu field 610 in the menu palette 605, e.g., 610a to 610b or 610b to 610c. It is noted that if the wheel 840 is moved two serration points, the selected menu field moves two menu fields forward, e.g., 610a to 610b to 610c. If the wheel-mouse pointing device 830 moves in a second direction 845b, it generates a transition signal that includes a counterclockwise direction component. This results in a counter-clockwise (or backward) movement of the selected menu field 610 in the menu palette 605, e.g., 610a to 610/J or 610b to 610c. Again, it is noted that if the wheel is moved two serration points, the selected menu field moves two menu fields backward, e.g., 610a to 61 OH to 610(H-7).
An advantage of the wheel-mouse pointing device 830 is that the menu palette 605 is readily available to a user because the user may call the menu palette 605 by clicking on, for example, the wheel 840 of the wheel assembly 835. Thus, a user does not have to search for particular buttons on, for example, a keyboard to call the menu palette for display. Another advantage of the wheel-mouse pointing device 830 is that once the menu palette 605 is displayed, the user may easily select between menu fields 610 in the menu palette 605 by rotating the wheel 840 about its axis in the direction the user seeks to move, e.g., forward or backward, about the menu palette 605 itself. Thus, the user does not have to align a pointer associated with a pointing device on a display screen to select among various menu fields.
An advantage of the present invention is that it includes a menu navigation tool (aid) that provides ease of use and simplicity for a user of a data processing system 105. The menu navigation aid is beneficially suited for navigating interfaces such as, for example, the World Wide Web. The world Wide Web may be used in wide area and local area networked environments such as the Internet or an Intranet-type company network site. Moreover, the present invention is advantageously customizable so that a user may include commonly accessed information locations, for example WWW pages, through menu fields present on a menu palette. Further, the present invention includes a menu system 505 that allows for quickly transitioning between adjacent menu fields using signals initiated from an auxiliary structure of the pointing device 130 or the pointing device 130.
While particular embodiments and applications of the present invention have been illustrated and described, it is to be understood that the invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus of the present invention disclosed herein without departing from the spirit and scope of the invention as defined in the appended claims.