Patent Publication Number: US-5524196-A

Title: Method and system for manipulating data through a graphic user interface within a data processing system

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     The invention disclosed in this application is related to an application for U.S. patent application Ser. No. 07/993,182 filed concurrently herewith and entitled &#34;METHOD AND SYSTEM FOR MANIPULATING WIDEANGLE IMAGES&#34;. 
     Applicant incorporates said application Ser. No. 07/993,182 by reference herein. 
     BACKGROUND OF THE INVENTION 
     1. Technical Field 
     The present invention relates in general to improved data processing systems and in particular, to improvements in manipulating data through a graphic user interface within a data processing system. Still more particularly, the present invention relates to improvements in manipulating multiple functions and windows through a graphic user interface within a data processing system. 
     2. Description of the Related Art 
     The manipulation of data in a data processing system is well known in the prior art. Data may be manipulated in many ways in a modern state-of-the-art data processing system including: data accessing, data encoding, data communications, data compression, data conversion, data entry, data exchange, data filing, data linking, data locking, data manipulation, data mapping, data modeling, data processing, data recording, data sorting, and data transferring. The large amounts of data that are available to the user of a modern state-of-the-art data processing system often become overwhelming in magnitude and complexity. 
     As a result of the increasing complexity of data processing systems, attempts have been made to simplify the interface between a user and the large amounts of data present within a modern data processing system. One example of an attempt to simplify the interface between a user and a data processing system is the utilization of a so-called graphic user interface (GUI) to provide an intuitive and graphical interface between the user and the data processing system. A GUI is an interface system, including devices, by which a user interacts with a system, system components, and/or system applications via windows or view ports, icons, menus, pointing devices, etc. 
     The term &#34;mouse&#34;, as utilized hereinafter, refers to any type of operating system supported graphical pointing device including, but not limited to: a mouse; track ball; light pen; touch screen; or the like. A pointing device is typically employed by a user of a data processing system to interact with the data processing system&#39;s GUI. A &#34;pointer&#34; is an iconic image controlled by a mouse or other such devices which is displayed on the video display device of a data processing system to visually indicate to the user icons, menus, or the like that may be selected or manipulated. 
     One technique for presenting a list of objects settings or choices to a user, wherein multiple objects may be selected, is the utilization of the so-called &#34;List Box&#34;. A List Box is typically utilized to display a list of settings, choices, or objects in which the number of setting, choices, or objects may vary. A List Box generally displays the settings, choices, or objects in an order that is meaningful to the user, such as alphabetic order, numeric order, chronological order, or some other order. For example, modem baud rates are often displayed in numeric order. Typically, such List Boxes are large enough to simultaneously display a plurality of choices, such as six or eight, and such boxes often include vertical or horizontal scroll bars, if the data is too large to be entirely visible within the List Box. 
     A &#34;scroll bar&#34; is a known user interface component that is associated with a scrollable area of a display, indicating to a user that more information is available and may be added in a particular direction with respect to the display. A scroll bar may be utilized to scroll additional data into view, and a scroll bar typically includes a slider and scroll buttons. 
     Another relatively recent advancement in the computer arts allows a user to simultaneously access, display, and manipulate data from a variety of related and/or unrelated computer application programs. This process is generally referred to as &#34;multi-tasking&#34;. In a true multi-tasking system, several application programs are active simultaneously. Displays from each of these applications may be provided within a two-dimensional display system by presenting overlapping data collections in multiple layers in a simulated three-dimensional manner within a data processing system. Each of these layers presents data associated with a particular data collection and these layers typically overlap and may partially or completely obscure each other and the data therein. 
     Certain inherent problems, however, exist in such multi-tasking systems. In order to reach data that the user desires to manipulate, the user must often follow a different and sometimes complicated procedure for each application program and, within each program, at each level of data type, such as file, page, or word, that the user attempts to access. Consequently, the user faces a loss of time because of the number of keystrokes necessary simply to obtain a visual image of a particular data collection in such an overlapping simulated three-dimensional display. In addition to the steps taken to reach data for manipulation, a multitude of functions may be performed upon the data depending on the type of data present and the application utilized. 
     Thus, those skilled in the data processing art will appreciate that while simple lists of objects or settings choices or overlapping windows may be displayed in a GUI, the types of data which are displayable within such a scrollable list are typically limited to a simple column of possible choices or objects and, in more complex data collections such as those which may be displayed within a window, the techniques necessary to visually access that data are often complex and time consuming. Additionally, a large number of functions may be performed upon such complex data collections adding to the complexity of manipulating data. 
     Therefore, it would be desirable to have a method and system for manipulating displayed data collections within a data processing system in an uncomplicated and rapid fashion. 
     SUMMARY OF THE INVENTION 
     It is therefore one object of the present invention to provide an improved data processing system. 
     It is another object of the present invention to provide an improved method and system for in manipulating data through a graphic user interface within a data processing system. 
     It is yet another object of the present invention to provide an improved method and system for manipulating multiple functions and windows through a graphic user interface within a data processing system. 
     The foregoing objects are achieved as is now described. The method and system of the present invention permit the efficient management of a number of displayable objects within a display in a data processing system. Graphic selections of displayable objects arranged in a substantially circular formation are displayed in conjunction with a rotatable pointer or bar which is rotatable about a pivot point within the graphic selection arranged in a substantially circular formation. A moveable control element may be provided along the rotatable pointer or bar. The rotatable pointer or bar also includes one end which may be utilized for designating one of the graphic selections. The display of the displayable object may be altered in response to a selection of one of the graphic selections utilizing the end of the rotatable pointer or bar and in response to a manipulation of the moveable control element. 
     The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: 
     FIG. 1 is a pictorial representation of a personal computer that may be utilized to implement/a method and system of the present invention; 
     FIG. 2 depicts a block diagram of selected components in the personal computer illustrated in FIG. 2 in which a preferred embodiment of the present invention may be implemented; 
     FIG. 3 depicts a pictorial representation of a display screen containing multiple windows arranged in a simulated three-dimensional manner displayed within a data processing system; 
     FIG. 4A is a pictorial representation of a circular control icon having a rotatable scroll bar for selecting functions located on two command rings; 
     FIG. 4B is a pictorial representation of a circular control icon having a rotatable scroll bar for selecting widows utilizing two command rings; 
     FIG. 4C is a pictorial representation of a circular control icon having a rotatable scroll bar for selecting functions and windows utilizing a single command ring; 
     FIG. 5A depicts a portion of a high level logic flowchart illustrating a method and system for selecting multiple functions located on two command rings with a rotatable scroll bar located within the command rings in accordance with a preferred embodiment of the present invention; 
     FIG. 5B depicts a portion of a high level logic flowchart illustrating a method and system for selecting multiple functions located on two command rings with a rotatable scroll bar located within the command rings in accordance with a preferred embodiment of the present invention; 
     FIG. 6A is a portion of a high level logic flowchart illustrating a method and system for selecting multiple functions located on more than two command rings with a rotatable scroll bar in accordance with a preferred embodiment of the present invention; 
     FIG. 6B is a potion of a high level logic flowchart illustrating a method and system for selecting multiple functions located on more than two command rings and a rotatable scroll bar in accordance with a preferred embodiment of the present invention; 
     FIG. 6C is a potion of a high level logic flowchart illustrating a method and system for selecting multiple functions located on more than two command rings with a rotatable scroll bar in accordance with a preferred embodiment of the present invention; 
     FIG. 7A depicts a potion of high level logic flowchart illustrating a method and system for selecting multiple functions with a control icon having a rotatable scroll bar that may be moved to a number of different command rings in accordance with a preferred embodiment of the present invention; 
     FIG. 7B depicts a portion of high level logic flowchart illustrating a method and system for selecting multiple functions with a control icon having a rotatable scroll bar that may be moved to a number of different command rings in accordance with a preferred embodiment of the present invention; 
     FIG. 7C depicts a portion of high level logic flowchart illustrating a method and system for selecting multiple functions with a control icon having a rotatable scroll bar that may be moved to a number of different command rings in accordance with a preferred embodiment of the present invention; 
     FIG. 7D depicts a pictorial representation of a grid containing various grid positions for command rings in accordance with a preferred embodiment of the present invention; 
     FIG. 8A is a portion of a high level logic flowchart illustrating a method and system for manipulating a number of windows utilizing a control icon having a rotatable scroll bar in accordance with a preferred embodiment of the present invention; 
     FIG. 8B is a portion of a high level logic flowchart illustrating a method and system for manipulating a number of windows utilizing a control icon having a rotatable scroll bar in accordance with a preferred embodiment of the present invention; and 
     FIG. 9 depicts a high level logic flowchart illustrating a method and system for reducing the screen space required to implement a control icon having rotatable scroll bar in accordance with a preferred embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENT 
     With reference now to the figures and in particular with reference to FIG. 1, there is depicted a pictorial representation of a computer system in which the present invention may be implemented in accordance with a preferred embodiment of the present invention. A personal computer 50 is depicted which includes a system unit 52, a video display terminal 54, a keyboard 56, and a mouse 58. Personal computer 50 may be implemented utilizing any suitable computer such as an IBM PS/2 computer, a product of International Business Machines Corporation, located in Armonk, N.Y. &#34;PS/2&#34; is also a registered trademark of International Business Machines Corporation, located in Armonk, N.Y. Although the depicted embodiment involves a personal computer, a preferred embodiment of the present invention may be implemented in other types of data processing systems, such as for example, intelligent work stations or mini-computers. 
     Referring now to FIG. 2, there is depicted a block diagram of selected components in personal computer 50 in which a preferred embodiment of the present invention may be implemented. System unit 52 preferably includes a system bus 60 for interconnecting and establishing communication between various components in system unit 52. Microprocessor 62 is connected to system bus 60 and also may have numeric coprocessor 64 connected to it. System bus 60 may be a Micro Channel system bus from International Business Machines Corporation. &#34;Micro Channel&#34; is a registered trademark of International Business Machines Corporation. Direct memory access (DMA) controller 66 is also connected to system bus 60 and allows various devices to appropriate cycles from microprocessor 62 during large I/O transfers. 
     Read Only Memory (ROM) 68 and Random Access Memory (RAM) 70 are also connected to system bus 60. ROM 68 contains the power-on self test (POST) and the Basic Input/Output System (BIOS) which control hardware operations, such as those involving disk drives and the keyboard. Read only memory (ROM) 68 is mapped into the microprocessor 62 address space in the range from 640K to 1 megabyte. CMOS RAM 72 is attached to system bus 60 and contains system configuration information. 
     Also connected to system bus 60 are memory controller 74, bus controller 76, and interrupt controller 78 which serve to aid in the control of data flow through system bus 60 between various peripherals, adapters, and devices. System unit 52 also contains various input/output (I/O) controllers such as: keyboard and mouse controller 80, video controller 82, parallel controller 84, serial controller 86, and diskette controller 88. Keyboard and mouse controller 80 provide a hardware interface for keyboard 90 and mouse 92. Video controller 82 provides a hardware interface for video display terminal 94. Parallel controller 84 provides a hardware interface for devices such as printer 96. Serial controller 86 provides a hardware interface for devices such as a modem 98. Diskette controller 88 provides a hardware interface for floppy disk unit 100. Expansion cards also may be added to system bus 60, such as disk controller 102, which provides a hardware interface for hard disk unit 104. Empty slots 106 are provided so that other peripherals, adapters, and devices may be added to system unit 52. 
     Those skilled in the art will appreciate that the hardware depicted in FIG. 2 may vary for specific applications. For example, other peripheral devices such as: optical disk drive, an audio adapter, high resolution graphics adapter, and the like also may be utilized in addition to or in place of the hardware already depicted to enable personal computer 50 to present multimedia presentations to a user. 
     With reference now to FIG. 3, a pictorial representation illustrating a display screen containing multiple windows arranged in a simulated three-dimensional manner within a data processing system is depicted. Display screen 300 contains windows 302, 304, 306, 308, and 310. Each of these windows include display areas 302a, 304a, 306a, 308a, and 310a respectively. Icon 314 is a window in minimized form within display screen 300. Display screen 300 also includes command bar 316 for manipulating various functions and windows. Pointer 318 is a well known graphical representation utilized to indicate what windows, functions, or data may be manipulated by a user employing a mouse or some other pointing device. 
     Window 306 is depicted in the foreground of display screen 300 while the other windows are in a background mode. Display area 306a includes graphic image 312. Title bar 319 is provided within window 306 and utilized to present a title that may be utilized by the user to designate a particular data collection. Menu bar 320 is also provided. Those familiar with GUIs will appreciate that a command within menu bar 320 may be graphically selected utilizing pointer 318, or by depressing a particular key associated with a selected command. Scroll bar 322 and 324 are also associated with window 306. Slider 326 is located within scroll bar 322 while slider 328 is located within scroll bar 324. The sliders may be manipulated, resulting in manipulation of graphic image 312 within display area 306a. A preferred embodiment of the present invention, as described below, may be utilized to control various functions and windows within display screen 300. 
     Referring next to FIGS. 4A, 4B, and 4C, pictorial representations illustrating various configurations of a rotatable scroll bar located within one or more command rings in accordance with a preferred embodiment of the present invention are depicted. Referring first to FIG. 4A, circular control icon 400 is displayed. Circular control icon 400 includes peripheral section 402 and a rotatable scroll bar 404, within peripheral section 402. This control icon may be utilized to select various functions located in window 306 in accordance with one preferred embodiment of the present invention. Although peripheral section 402 is a circle in the depicted embodiment, it is contemplated that any substantially circular shape may be employed within a preferred embodiment of the present invention. &#34;Substantially circular shape&#34; as utilized herein shall mean any regular polygonal shape such as, for example, a hexagon or an octagon. Furthermore, a &#34;substantially circular shape&#34; may include a plurality of points, segments, or sections arranged in a regular polygonal shape. Points or sections along peripheral section 402 may correspond to or may map to a window in screen 300 in FIG. 3. Alternatively, points or sections along peripheral section 402 also may correspond to various functions utilized to manipulate data displayed on display screen 300 within a display device. 
     As illustrated, rotatable scroll bar 404 is located within peripheral section 402 and is rotatable about pivot point 406, which is centrally located within peripheral section 402. Rotatable scroll bar 404 preferably includes a head 408 and a tail 410. A moveable control element, slider 412, is located between head 408 and tail 410. Either head 408 or tail 410 may be selected by a user with a mouse to rotate rotatable scroll bar 404 about pivot point 406. 
     As depicted within FIG. 4A, peripheral section 402 contains two command rings, command ring 414 and command ring 416. These command rings include various functions that may be selected by a user manipulating rotatable scroll bar 404 with a mouse. In accordance with a preferred embodiment of the present invention, head 408 is associated with command ring 416 and tail 410 is associated with command ring 414. A function, such as, for example, &#34;COPY&#34;, may be selected by a user when tail 410 is selected and rotated such that tail 410 points to the section or portion of command ring 416 labeled as COPY. Functions in command ring 414 may be chosen when a user selects head 408 and rotates it to point to a desired function. Slider 412 is utilized to control the selected function in accordance with a preferred embodiment of the present invention. 
     Next, control icon 420 in FIG. 4B is an alternative embodiment of the control icon depicted in FIG. 4A. Again, two command rings 422 and 424 are depicted and may be selected utilizing head 408 or tail 410 within rotatable scroll bar 404, which is rotatable about pivot point 406. Pivot point 406 is centrally located within peripheral section 402. Command rings 422 and 424 permit various windows to be selected utilizing head 408 or tail 410 in accordance with a preferred embodiment of the present invention. Selection of a window brings the window to the foreground for viewing or manipulation by a user. Slider 412 may be associated with a slider within a scroll bar or some other control element within the window selected by a user. Consequently a user may move slider 412 to manipulate the function provided by the associated slider within the scroll bar located within the selected window. Alternatively, slider 412 may be associated with some other function in accordance with a preferred embodiment of the present invention. 
     Turning now to FIG. 4C, another embodiment of the present invention is illustrated. Peripheral section 426 contains only one command ring. In this particular embodiment, peripheral section 426 is still considered substantially circular even though it is not formed by a continuous section in accordance with a preferred embodiment of the present invention. Each of the depicted icons in peripheral section 426 may be selected utilizing either head 408 or tail 410 within rotatable scroll bar 404 in accordance with a preferred embodiment of the present invention. 
     Those skilled in the art will realize that a multitude of variations may be made in constructing a substantially circular control icon in accordance with a preferred embodiment of the present invention. For example, two rotatable pointers or scroll bars could be placed together to form a cross that is rotatable about a pivot point. 
     With reference now to FIGS. 5A and 5B, a high level logic flowchart illustrating a method and system for selecting multiple functions located on two command rings with a rotatable scroll bar located within the command rings in accordance with a preferred embodiment of the present invention is illustrated. The process begins in block 500 in FIG. 5A and thereafter passes to block 502. Block 502 depicts a determination of whether or not a scroll bar event has been detected. A scroll bar event may include various events such as a selection of the scroll bar tail or the scroll bar head, movement or rotation of the rotatable scroll bar, or movement of the slider. 
     After detecting a scroll bar event, the process then proceeds to block 504, which illustrates a determination of whether or not the scroll bar head has been selected. Upon a selection of the scroll bar head, the process proceeds to block 506 in FIG. 5B via connector A. Block 506 depicts the highlighting of a command ring associated with the scroll bar head. The command ring contains a number of selections representing various functions that may be selected by a user in accordance with a preferred embodiment of the present invention. Afterward, the process returns to block 502. 
     Referring back to block 504, if the scroll bar head has not been selected, the process passes to block 508, which depicts a determination of whether or not the scroll bar head has been moved. Movement of the scroll bar head is a scroll bar event that may occur only after the scroll bar head has been selected in accordance with a preferred embodiment of the present invention. If the scroll bar head has been moved, the process then passes to block 510 in FIG. 5B via connector B. Block 510 illustrates rotation of the entire scroll bar in accordance with the movements of the mouse. Afterward, the process advances to block 512, which depicts the highlighting of the function selected by the scroll bar head. Next, the process passes to block 514. Block 514 illustrates the linking of the selected function to the scroll bar. Thereafter, the process returns to block 502 in FIG. 5A via connector F to monitor for the occurrence of more scroll bar events. 
     Referring again to block 508, if the scroll bar event detected is not a movement of the scroll bar head, the process then proceeds to block 516, which illustrates a determination of whether or not the scroll bar tail has been selected. Selection of the scroll bar tail results in the process passing to block 518 in FIG. 5B via connector C. Block 518 depicts highlighting of a command ring associated with the scroll bar tail. The process then returns to block 502 in FIG. 5A via connector F. 
     Referring back to block 516, if the scroll bar event is not a selection of the scroll bar tail, the process then advances to block 520. Block 520 depicts the determination of whether or not the scroll bar event is a movement of the scroll bar tail. This particular scroll bar event may occur only after a scroll bar tail has been selected by the user. Movement of the scroll bar tail results in the process proceeding to block 522 in FIG. 5B via connector D. Block 522 illustrates the rotation of the entire scroll bar, including the scroll bar tail, in accordance with the movements of the mouse. Afterward, the process passes to block 524, which depicts the highlighting of functions selected by the scroll bar tail. Thereafter, the process proceeds to block 514. Block 514 illustrates the linking of the selected function to the scroll bar. The process then returns to block 502 in FIG. 5A via connector F. 
     Referring back to block 520, if the scroll bar event does not involve movement of the scroll bar tail, the process proceeds to block 526, which illustrates a determination of whether or not the scroll bar event involves movement of the slider. Movement of the slider results in the process proceeding to block 528 in FIG. 5B via connector E. Block 528 depicts the execution of the function currently linked with the scroll bar. Afterward, the process returns to block 502 in FIG. 5A via connector F. Referring back to block 526, if the scroll bar event does not include movement of the slider, the process simply returns to block 502 in accordance with a preferred embodiment of the present invention. 
     Referring now to FIGS. 6A, 6B, and 6C, a high level logic flowchart illustrating a method and system for selecting multiple functions located on more than two command rings with a rotatable scroll bar in accordance with a preferred embodiment of the present invention is depicted. The process begins as illustrated in block 600 and thereafter proceeds to block 602, which depicts a determination of whether or not a scroll bar event has been detected. As mentioned above, a scroll bar event may involve various manipulations of the scroll bar such as selecting sections of the scroll bar or manipulating sections of the scroll bar. 
     In the event that a scroll bar event has been detected, the process passes to block 604. Block 604 illustrates a determination of whether or not the scroll bar head has been selected. In the event that the scroll bar event is a selection of the scroll bar head, the process passes to block 606 in FIG. 6B via connector A. Block 606 depicts the highlighting of the command ring currently associated with the scroll bar head. Thereafter, the process returns to block 602 via connector H. 
     Referring again to block 604, if the scroll bar event is not a selection of the scroll bar head, the process proceeds to block 608. Block 608 depicts the determination of whether or not the scroll bar head has been &#34;right clicked&#34;. The scroll bar head may be &#34;right clicked&#34; by placing the mouse pointer over the scroll bar head and depressing the right mouse button. If the scroll bar head has been &#34;right clicked&#34;, the process passes to block 610 in FIG. 6B via connector B. Block 610 illustrates cycling the color of the scroll bar head to the next scroll bar head color. Various command rings may be associated with the scroll bar head depending on the scroll bar head&#39;s color. These command rings are in a background mode until selected for association with the scroll bar head. Afterward, the process passes to block 612, which depicts the bringing of the command ring associated with the scroll bar head color to the foreground color. The process then proceeds to block 614. Block 614 illustrates the association of the command ring brought to foreground color with the scroll bar head. This command ring is the active command ring in which functions may be selected. Afterward, the process returns to block 602 via connector H. 
     Referring back to block 608, if the scroll bar event does not involve the selection of a new color for the scroll bar head by &#34;right clicking&#34; the scroll bar head, the process advances to block 616, which illustrates a determination of whether or not the scroll bar event detected is a movement of the scroll bar head. Movement of the scroll bar head results in the process advancing to block 618 in FIG. 6B via connector C. Block 618 depicts the rotation of the scroll bar head in accordance with movements of the mouse. The process then passes to block 620, which illustrates the highlighting of the function selected by the scroll bar head in response to rotation of the scroll bar head. Afterward, the process proceeds to block 622. Block 622 depicts the linking of the selected function to the scroll bar. Afterward, the process returns to block 602 in FIG. 6B via connector H. 
     Referring back to block 616, if the event is not a movement of the scroll bar head, the process then proceeds to block 624, which depicts a determination of whether or not the scroll bar event is a selection of the scroll bar tail in the event, that the scroll bar tail is selected, the process proceeds to block 626 in FIG. 6B via connector B. Block 626 illustrates the highlighting of the command ring currently associated with the scroll bar tail. Thereafter, the process returns to block 602 in FIG. 6B via connector H. 
     Referring again to block 624, if the scroll bar event is an event other than the selection of the scroll bar tail, the process then proceeds to block 628, which illustrates a determination of whether or not the scroll bar tail has been &#34;right clicked&#34;. If the scroll bar tail has been &#34;right clicked&#34;, the process then proceeds to block 630 in FIG. 6C via connector E. Block 630 depicts cycling the color of the scroll bar tail to the next scroll bar tail color. Next, the process passes to block 632, which illustrates bringing the command ring associated with the scroll bar tail color to the foreground color. The process then advances to block 634, which depicts the association of the command ring brought to the foreground color with the scroll bar tail. Afterward, the process returns to block 602 in FIG. 6B via connector H. 
     Referring again to block 628, if the scroll bar event is an event other than the &#34;right clicking&#34; of the scroll bar tail, the process then proceeds to block 636, which depicts a determination of whether or not the scroll bar event involves movement of the scroll bar tail. Movement of the scroll bar tail results in the process passing to block 638 in FIG. 6C via connector F. Block 638 illustrates the rotation of the scroll bar tail in accordance with movements of the mouse. Afterward, the process proceeds to block 640, which depicts the highlighting of the function selected by the scroll bar tail. The process then advances to block 642. Block 642 illustrates the linking of the selected function to the scroll bar. Afterward, the process returns to block 602 in FIG. 6B via connector H. 
     Referring again to block 636, if the scroll bar event does not involve movement of the scroll bar tail, the process then advances to block 644, which illustrates a determination of whether or not the slider has been moved. Movement of the slider results in the process proceeding to block 646 in FIG. 6C via connector G. Block 646 depicts the execution of the function linked with the scroll bar. Afterward, the process returns to block 602 in FIG. 6B via connector H. Referring again to block 644, if the scroll bar event does not involve movement of the slider, the process then returns to block 602. 
     Referring now to FIGS. 7A, 7B, and 7C, a high level logic flowchart illustrating a method and system for selecting multiple functions with a control icon having a rotatable scroll bar that may be moved to a number of different command rings in accordance with a preferred embodiment of the present invention is depicted. FIG. 7D illustrates a pictorial representation of a grid containing various grid positions for command rings in accordance with a preferred embodiment of the present invention. Grid 750 includes four grid positions 752, 754, 756, and 758. Rotatable scroll bar 760 is located within command ring 762. Rotatable scroll bar pivot 764 may be moved from grid position 752 to any of the other three grid positions. Movement of rotatable scroll bar pivot 764 from grid position 752 to another grid position causes command ring 762 to become unlinked from rotatable scroll bar 760. Placing rotatable scroll bar pivot 764 in another grid position causes the command ring in the new grid position to be displayed, and rotatable scroll bar 760 becomes linked with the new command ring in accordance with a preferred embodiment of the present invention. As a result, functions within command rings may be placed in logical groupings. For example, grid position 752 may contain various editing functions while grid position 754 may contain functions for changing views or windows. Grid position 756 may be utilized for file management while grid position 758 may be utilized to perform graphic manipulations. 
     Referring now to FIG. 7A, the process begins in block 700 and thereafter proceeds to block 702. Block 702 depicts a determination of whether or not a scroll bar event has been detected. Upon detection of a scroll bar event, the process proceeds to block 704, which illustrates a determination of whether or not the scroll bar event is a selection of the scroll bar head. Selection of the scroll bar head results in the process passing to block 706 in FIG. 7B via connector A. Block 706 depicts the highlighting of the command ring associated with the scroll bar head. The process then returns to block 702 in FIG. 7A via connector H. 
     Referring back to block 704, if the scroll bar event is not a selection of the scroll bar head, the process then proceeds to block 708, which depicts a determination of whether or not the scroll bar event is a movement of the scroll bar head. Movement of the scroll bar head causes the process to advance to block 710 in FIG. 7B via connector B. Block 710 illustrates the rotation of the scroll bar head in accordance with the movements of the mouse. Afterward, the process proceeds to block 712, which depicts the highlighting of the function selected by the scroll bar head. The process next passes to block 714, which illustrates the linking of the selected function to the scroll bar. The process then returns to block 702 in FIG. 7A via connector H. 
     Referring back to block 708, if the scroll bar event is not movement of the scroll bar head, the process proceeds to block 716. Block 716 illustrates a determination of whether or not the scroll bar tail has been selected. Upon selection of the scroll bar tail, the process then proceeds to block 718 in FIG. 7B via connector C. Block 718 depicts the highlighting of the command ring associated with the scroll bar. Afterward, the process returns to block 702 in FIG. 7A via connector H. 
     Referring again to block 716, if the scroll bar event is not a selection of the scroll bar tail, the process then proceeds to block 720. Block 720 depicts a determination of whether or not the scroll bar tail has been moved. Movement of the scroll bar tail results in the process passing to block 722 in FIG. 7B via connector D. Block 722 illustrates the rotation of the scroll bar tail in accordance with mouse movements. Afterward, the process proceeds to block 724, which depicts the highlighting of the function selected by the scroll bar tail. Thereafter, the process advances to block 714, which illustrates the liking of the selected function with the scroll bar. Afterward, the process returns to block 702 in FIG. 7A via connector H. 
     Referring back to block 720, if the scroll bar event is not a movement of the scroll bar tail, the process then proceeds to block 726, which illustrates a determination of whether or not the scroll bar pivot has been selected. Selection of the scroll bar pivot causes the process to pass to block 728 in FIG. 7C via connector E. Block 728 depicts the highlighting of the scroll bar. Next, the process advances to block 730, which illustrates the display of a grid containing scroll bar command ring selections under the scroll bar in accordance with a preferred embodiment of the present invention. Afterward, the process returns to block 702 in FIG. 7A via connector H. 
     Referring back to block 726, if the scroll bar event was not a selection of the scroll bar pivot, the process proceeds to block 732. A determination of whether or not the scroll bar event is a movement of the scroll bar pivot is depicted in block 732. Movement of the scroll bar pivot may occur after the scroll bar pivot has been selected by the user. A scroll bar event involving movement of the scroll bar pivot causes the process to pass to block 734 in FIG. 7C via connector F. Movement of the scroll bar pivots results in the entire scroll bar being moved in accordance with mouse movements as illustrated in Block 734. 
     Next, the process proceeds to block 736, which depicts a determination of whether or not the scroll bar is located on a new grid position. If the scroll bar is located on a new grid position, the process then proceeds to block 738, which illustrates the linking of a scroll bar command ring at the new grid position with the scroll bar. Next, the process proceeds to block 740, which depicts the displaying of the new command ring with the scroll bar. The process then passes to block 741. Block 741 illustrates a determination of whether or not the scroll bar has been deselected. If the scroll bar has been deselected, the process returns to block 702 in FIG. 7A via connector H. On the other hand, if the scroll bar has not been deselected the process returns to block 734 via connector Z. 
     Referring back to block 736, if the scroll bar has not been moved to a new grid position, the process then proceeds to block 743, which illustrates a determination of whether or not the scroll bar is still on the grid. If the scroll bar is still on the grid, the process then returns to block 734. When the scroll bar is off the grid, the process then proceeds to block 742, which illustrates a determination of whether or not the scroll bar has been deselected. If the scroll has not become deselected, the process returns to block 734. If, however, the scroll bar becomes deselected, the process proceeds to block 744, which depicts the moving of the scroll bar back to the original grid position in accordance with a preferred embodiment of the present invention. Those skilled in the art will realize that various events may occur other than returning the scroll bar back to the original grid upon deselection of the scroll bar. For example, the scroll bar may be moved to the nearest grid, instead of back to the original grid. Additionally, the scroll bar could be hidden and the mouse pointer may then be utilized for other functions. Afterward, the process returns to block 702 in FIG. 7A via connector H. 
     Referring back to block 732, if the scroll bar event is not a movement of the scroll bar pivot, the process then proceeds to block 746. Block 746 illustrates a determination of whether or not the slider on the scroll bar has been moved. Movement of the slider results in the process advancing to block 748 in FIG. 7B via connector G. Block 748 depicts the execution of the function linked with the scroll bar. Afterward, the process returns to block 702 in FIG. 7A via connector H. Referring back to block 646, the scroll bar event is not a selection of the slider, the process then returns to block 702. 
     With reference now to FIGS. 8A and 8B, a high level logic flowchart illustrating a method and system for manipulating a number of windows utilizing control icon having a rotatable scroll bar in accordance with a preferred embodiment of the present invention is illustrated. The process begins in block 800, and thereafter proceeds to block 802, which depicts a determination of whether or not a scroll bar event has been detected. Upon detection of a scroll bar event, the process proceeds to block 804, which illustrates a determination of whether or not the scroll bar event involves a selection of the scroll bar head. Selection of the scroll bar head results in the process passing to block 806 in FIG. 8B via connector A. Block 806 depicts the highlighting of the window icon ring associated with the scroll bar head. Thereafter, the process returns to block 802 in FIG. 8A via connector F. 
     Referring back to block 804, if the scroll bar event is an event other than a selection of the scroll bar head, the process then advances to block 808. Block 808 depicts a determination of whether or not the scroll bar event consists of a movement of the scroll bar head. If the scroll bar event is a movement of the scroll bar head, the process then passes to block 810 in FIG. 8B via connector B. Block 810 illustrates the rotation of the scroll bar head in accordance with the movements of the mouse. Thereafter, the process proceeds to block 812, which depicts the highlighting of the window icon selected by the scroll bar head. Afterward, the process proceeds to block 814, which illustrates bringing the window associated with the selected window icon to the foreground. The process then passes to block 816. Block 816 depicts the linking of the window&#39;s scroll bar to the rotating scroll bar. Afterward, the process returns to block 802 in FIG. 8A via connector F. 
     Referring again to block 808, in the event that the scroll bar event is not a movement of the scroll bar head, the process then passes to block 818, which illustrates a determination of whether or not the scroll bar tail has been selected. A scroll bar event involving the selection of the scroll bar tail results in the process passing to block 820 in FIG. 8B via connector C. Block 820 depicts the highlighting of the window icon ring associated with the scroll bar tail. Then, the process returns to block 802 in FIG. 8A via connector F. 
     Referring back to block 818, if the scroll bar event is not a selection of the scroll bar tail, the process then proceeds to block 822. Block 822 depicts a determination of whether or not the scroll bar event is a movement of the scroll bar tail. If the scroll bar event involves a movement of the scroll bar tail, the process proceeds to block 824 in FIG. 8B via connector D. Block 824 illustrates the rotation of the scroll bar tail in accordance with movements of the mouse. Next, the process passes to block 826, which depicts the highlighting of the window icon selected by the scroll bar tail. Thereafter, the process proceeds to block 814, which illustrates bringing the window associated with the window icon to foreground. Afterward, the process proceeds to block 816. Block 816 depicts the linking of the window&#39;s scroll bar to the rotatable scroll bar. Thereafter, the process returns to block 802 in FIG. 8A via connector F. 
     Referring again to block 822, if the scroll bar event is an event other than a movement of the scroll bar tail, the process than passes to block 828. Block 828 illustrates a determination of whether or not the slider has been moved. If the scroll bar event involves a movement of the slider, the process proceeds to block 830 in FIG. 8B via connector E. Block 830 depicts the execution of the function normally performed by the window&#39;s scroll bar that is linked to the rotatable scroll bar. Afterward, the process returns to block 802 in FIG. 8A via connector F. Referring back to block 828, if the scroll bar event is not a movement of the slider, the process then returns to block 702. 
     With reference now to FIG. 9, a high level logic flowchart illustrating a method and system for reducing the screen space required to implement a circular control icon having a rotatable scroll bar in accordance with a preferred embodiment of the present invention is depicted. As illustrated, the process begins in block 900 and thereafter proceeds to block 902, which depicts a determination of whether or not the mouse pointer is in the scroll bar control area. A scroll bar control area is a portion of the screen that graphically indicates to a user that a circular control icon is available if the mouse pointer is moved into the control area. The scroll bar control area may be, for example, an icon or a color indicator. The scroll bar control area need not be any larger than the minimum selectable area of a mouse pointer. If the mouse pointer is in the scroll bar control area, the process then passes to block 904. Block 904 illustrates an instantiation or display of a circular control icon to the user. Afterward, the process proceeds to block 906, which depicts a determination of whether or not the mouse pointer has moved out of the circular control icon. Upon movement of the mouse pointer out of the circular control icon, the process then proceeds to block 908, which illustrates the hiding of the circular control icon. Next, the process proceeds to block 910, which depicts returning the display to its original format or display. Thereafter the process returns to block 902. 
     Referring back to block 906, if the mouse pointer remains in the scroll bar area, the process then proceeds to block 912. Block 912 illustrates processing mouse events in accordance with a preferred embodiment of the present invention. The mouse events include those scroll bar events and processes as described above. Thereafter, the process returns to block 906. 
     In accordance with a preferred embodiment of the present invention, the rotating scroll bar may be utilized as an extension of the mouse pointer, wherein the user interface may be a series of areas that represent a grouping of selected functions. Consequently, when the user moves the mouse pointer into a selected area (scroll bar control area), that area would mutate or change into the appropriate type of scroll bar, such as a rotating scroll bar of the present invention. When the mouse pointer is moved out of the rotating scroll bar, the active scroll bar would mutate or return to its hidden state. Thus, a large number of functions may be accessed in a much smaller area of the screen. 
     The present invention allows for selection and use of multiple functions with a single scroll bar and slider. Additionally another advantage of the present invention is multiple windows may be controlled from a single scroll bar. Consequently, a user may browse and manipulate multiple documents very quickly utilizing a single scroll bar. 
     While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.