Method and apparatus for providing a two-dimensional position-sensitive scroll icon in a data processing system user interface

Abstract: A two-dimensional scroll icon is provided for scrolling data in a window or panel. The scroll icon has a home position. The scroll icon can be dragged in any direction away from the home position to provide scrolling. Scrolling is in the direction along an imaginary vector extending from the home position to the scroll icon. The rate of scrolling is proportional to the distance of the scroll icon from the home position. The scroll icon also has characters located thereon. Selecting the characters toggles the visibility on and off of the vertical and horizontal scroll bars along the sides of the windows.

Description: The present invention relates to methods and apparatuses for scrolling data on user interfaces of data processing systems. User interfaces on data processing systems typically provide a screen for displaying data. A common format for presenting data is by windows or panels. A window has a client area, which is the area where the data is displayed. Typically, the data is larger than the client area of a window, so that the user only views a portion of the data. To view other portions of the data, the data is scrolled through the window. If the data is a word processing document, the user may need to only scroll in one dimension. For example, scrolling would occur from the beginning or top of the document to the end or bottom. However, on a graphical user interface, where the data that is displayed in the client area is graphical, the user may wish to scroll in two dimensions. Such two dimensional scrolling occurs up or down or right or left (from the user's perspective). In the prior art, scrolling is accomplished by using scroll bars. Each window is provided with a vertical scroll bar (located on the right side of the window) and a horizontal scroll bar (located on the bottom side of the window). Each scroll bar has an outwardly pointing arrow at each end and a slide button movable along a track between the end arrows. To scroll in one dimension, the user interacts with the respective scroll bar by either clicking or selecting one of the end arrows, by clicking in the track area between the desired end arrow and the scroll button or by dragging the scroll button towards one of the end arrows. To scroll in two dimensions requires two separate interactions with the scroll bars, one interaction with the vertical scroll bar and the other interaction with the horizontal scroll bar. This creates extra work for the user. In addition, scroll bars take up a limited amount of the client area, thereby reducing the size of the client area and cluttering the user interface. A prior art method of two dimensional scrolling involves dragging one of the four corners of a window with a mouse select button. One problem is that the learning curve for users of this method is substantial. Another problem is that this method is difficult for system programmers to implement because the standard scrolling interactions must be redone. Another prior art method of two dimensional scrolling uses a mouse pointer to select a non-selectable portion of the window. For example, to scroll downward, the mouse pointer contacts the top of the window, is clicked and then dragged toward the bottom of the window. The resulting action is a scroll towards the bottom of the window. One problem with this method is that some windows do not have non-selective portions. Therefore, when the mouse pointer is dragged, the selected portion of the window will be dragged instead of the data scrolling. Another problem is that a user must regrab the window to scroll long distances. Still another problem is the lack of visual cues for scrolling with this method. Another prior art method of two-dimensional scrolling is described in EP-A 0 474 234. It uses the right button of the mouse in such a way that, when the latter is pressed, a movement of the cursor is interpreted as a scrolling command, the rate and direction of scrolling being defined by the difference between the cursor coordinates and the coordinates of the center of the window. One problem with this method is that it requires from the users to change their normal way of interacting with the mouse and for the programmers to implement new scrolling interactions. Another problem is that the method does not provide the user with visual cues for scrolling. A similar method appears to be outlined in anonymous publication AN 84-317932, TP-118901, 25.11.84, Database WPI, DA 9 93 007 - Amended Page 2(August 2.99) 94480043.2 Derwent Publications Ltd. A locator device is given a reference position by pressing a scroll button on the locator device. If the locator is moved further, the scrolling rate is increased. If the locator is moved back towards the reference position, the scrolling rate is decreased. It is an object of the present invention to provide a method and apparatus for allowing two-dimensional scrolling in an easy to use and learn manner. It is a further object of the present invention to provide a method and apparatus that allows the visibility of the horizontal and vertical scroll bars to be toggled on and off. The present invention as set forth in claims 1 and 9 allows two-dimensional scrolling of data in a client area of a window on a user interface of a data processing system. An object that is associated with the window is displayed. The object occupies a home position. A user is allowed to move the object in a composite direction from the home position. The composite direction comprises two dimensions. The data is scrolled in the client area in the composite direction. In one aspect of the present invention, the user is allowed to release the object, wherein the object is returned to its home position and the scrolling of data is stopped. In still another aspect of the present invention, the distance that the object is located from the home position is determined and the rate of scrolling the data is proportional to the distance. In still another aspect of the present invention, first and second dimensional scroll bars are displayed in the window. The user is allowed to select a portion of the object so as to toggle the visibility of a respective one of the first and second dimensional scroll bars in response to the user selection. The present invention allows continuous two-dimensional scrolling in one interaction by the user. The user need not regrab portions of the window or data to continue the scroll. Instead, the user merely holds a scroll icon away from a home position to produce a continuous two-dimensional scroll. Scrolling is stopped by the user simply by releasing the scroll icon, wherein the scroll icon is automatically returned to its home position. Two-dimensional scrolling is accompanied by providing visual cues to a user, without overly increasing the visual complexity of the user interface. By providing a scroll icon, the user is provided with visual cues as to how to scroll two-dimensionally. The visual complexity is not increased, as the scroll icon may have its home position in a corner of the window. The scroll icon can be used with current scroll bars, making it easy for a systems programmer to implement and for a user to learn. The scroll bars can be removed from the display ("turned off") to slightly enlarge the client area and to further simplify the user interface. Fig. 1 is a schematic diagram of a data processing system on which the present invention can be practiced. Fig. 2 is a schematic view of a lower portion of a window or panel, showing the two-dimensional scroll icon of the present invention, in accordance with a preferred embodiment. Fig. 3 is a schematic view of a lower portion of a window or panel, showing the two-dimensional scroll icon dragged to several positions to implement two-dimensional scrolling. Fig. 4 is a schematic view showing plural windows or subpanels, each of which has a two-dimensional scroll icon, with one of the subpanels shown without the scroll bars. Figs. 5a-5d are a flow chart showing the method of the present invention, in accordance with a preferred embodiment. In Fig. 1, there is shown a schematic diagram of a data processing system 11, upon which the present invention can be practiced. The data processing system 11 includes plural individual computers or workstations 13 which are connected together in a local area network (LAN) 15. Each workstation 13 includes a user interface, which has a display screen 17 and a keyboard 19. Each workstation 13 may also be coupled to a storage device 21 and to a printer or output device 23. One or more of such storage devices 21 may be utilized, in accordance with the present invention, to store applications or resource objects which may be periodically accessed by any user within the data processing system 11. The data processing system 11 may also include a mainframe or host computer 25 that is coupled to one of the workstations by a communication link 27. The host computer 25 may also be coupled to a storage device 29 which may serve as a remote storage for the computers. On a computer screen 17, one or more windows or panels may be displayed. Fig. 2 shows a lower portion of a typical window 31. The window has bottom and side borders 33, 35 and a client area 37 for displaying data. For example, if the application being executed in the window is a word processing program, then the client area 37 would contain text. Vertical and horizontal scroll bars 39, 41 are located along the right side and bottom, respectively, of the window. Each scroll bar has a scroll button 43, 44 which moves one dimensionally along a track 45. For example, the horizontal scroll bar button 44 moves either right or left. Also, each scroll bar has an outwardly pointing arrow 47 at each end. Located at the intersection of the scroll bars is a two-dimensional scroll icon 51. In the preferred embodiment, the scroll icon has an upwardly pointing arrow 53 to indicate the vertical direction and a leftwardly pointing arrow 55 to indicate the horizontal direction. In Fig. 2, the scroll icon 51 is shown in its home position, which in the preferred embodiment is the lower right corner 57 of the window 31. To scroll data in the client area, the scroll icon is dragged in the desired direction. For example, referring to Fig. 3, the scroll icon 51 is dragged to the upper left from its home position (the dashed line 60 indicates the trajectory of the scroll icon). This displacement of the scroll icon from its home position produces a scrolling action of the data from the lower right hand corner of the window toward the upper left, in the direction of an imaginary vector located from the home position to the displaced scroll icon. The scroll icon is moved or dragged with the mouse pointer 59. As the data scrolls, the vertical and horizontal scroll buttons 43, 44 move respectively upwardly and to the left to new positions 43A, 44A. The distance of scroll button movement corresponds to the distance of scrolling along the respective dimension. The scroll buttons allow the user to monitor the scrolling. One dimensional scrolling can occur using either a scroll button or else by moving the scroll icon 51 either vertically or horizontally from the home position 57. The scroll icon can be moved from the home position 57 in any direction. For example, the scroll icon can be moved to the lower right from the home position, as shown by the dashed scroll icon 62 in Fig. 3. The rate of scrolling is determined by the distance of the scroll icon 51 from the home position 57. The further away the scroll icon is from the home position, then the faster the scrolling. Suppose, for example, that a user is viewing a word processing document in the window. The user is near the bottom of the document, but wishes to scroll to a position near the top. The user drags the scroll icon 51 in the upward direction. To increase the speed of scrolling, the user drags the scroll icon further from the home position. As the scrolling gets nearer to the top of the document, the user can move the scroll icon closer to the home position to slow the rate of scrolling and to avoid overshooting the desired position or location. When the desired data is present in the client area, the user releases the scroll icon 51, whereupon the scroll icon automatically returns to its home position 57 and scrolling immediately stops. In order to increase somewhat the size of the client area 37, the scroll bars 39, 41 can be removed from the window 31. Likewise, once removed, the scroll bars can be returned to the display. This toggling of scroll bar visibility is accomplished with the scroll icon 51. To toggle the vertical scroll bar, the user selects (for example by clicking) the up arrow 53. If the vertical scroll bar is visible, selecting the up arrow 53 removes the vertical scroll bar. If the vertical scroll bar is not visible, then selecting the up arrow 53 causes the vertical scroll bar to be displayed. To toggle the horizontal scroll bar, the user selects the left arrow 55. In Fig. 4, the subwindow 31A that is shown in the upper left is shown without the horizontal and vertical scroll bars. Data can be displayed in the spaces formally occupied by the scroll bars. Fig. 4 also illustrates that each window or subwindow 31A, 31B, 31C is provided with its own scroll icon 51. Referring now to the flow chart of Figs. 5a-5d, the method of the present invention will now be described. In the flow charts, the following graphical conventions are observed: a rectangle for either a process, function or screen display, a diamond for a decision and a circle for a connector in exiting to or entering from another part of the flow chart. These conventions are well understood by programmers skilled in the art of user interfaces and the flow charts are sufficient to enable a programmer skilled in the art to write code in any suitable computer programming language, such as BASIC, PASCAL or C for a computer such as the IBM Personal System / 2 (PS/2) family of computers which supports these languages. Beginning with Fig. 5a, the method starts, step 61. The method waits for a user input regarding the scroll icon 51, step 63. The user input could be a dragging of the scroll icon 51, or a selection of one of the arrows 53, 55 on the scroll icon (see Fig. 2). In step 65, the method determines if there is data located outside of the window. If NO, that is the client area 37 is showing all of the data in the window, then the method returns to step 63 to wait for another user input. If YES, then the method proceeds to step 67. In step 67, the method determines if the user input is to toggle the visibility of the horizontal scroll bar 41. This particular user input is accomplished when the user selects the left arrow 55 in the scroll icon 51 (see Fig. 2). If YES, then the method proceeds to step 69, wherein the visibility of the horizontal scroll bar is changed. If the horizontal scroll bar is visible, then it is removed from the display. If the horizontal scroll bar is invisible, then it is returned to the display. The method then returns to step 63. If the result of step 67 is NO, then in step 71, the method determines if the user input is to toggle the visibility of the vertical scroll bar 39. This particular user input is accomplished when the user selects the up arrow 53 of the scroll icon 51. If the result of step 71 is YES, then the method proceeds to step 73, wherein the visibility of the vertical scroll bar is changed in the same manner as for the horizontal scroll bar. If the result of step 71 is NO, then the method proceeds to step 75 to determine if the user input is to scroll in both the horizontal and vertical directions. If YES, then the method proceeds to step 81 in Fig. 5b. If NO, then the method proceeds to step 77 in Fig. 5a to determine if the user input is to scroll only in the horizontal direction. If the result of step 77 is YES, then the method proceeds to step 93 of Fig. 5c. If the result of step 77 is NO, then the method proceeds to step 79 in Fig. 5a to determine if the user input is to scroll in only the vertical direction. If the result of step 79 is YES, then the method proceeds to step 105 of Fig. 5d. If the result of step 79 is NO, then the method returns to step 63. Referring now to Fig. 5b, if the user input is to scroll in both the horizontal and vertical directions (that is two-dimensional scrolling), then in step 81, the method determines the horizontal and vertical components of the scroll icon position relative to the home position using trigonometric relationships. In addition, the distance between the scroll icon and the home position is determined. In step 83, the client area or data is scrolled in real time. The direction of scrolling is along the horizontal and vertical components determined in step 81. For example, if the scroll icon is located at 45 degrees above a horizontal line and to the left of a vertical line going through the home position, then the data is scrolled at 45 degrees to the upper left. That is, for every one unit of vertical scrolling, one unit of horizontal scrolling also occurs. The rate of scrolling is proportional to the distance of the scroll icon from the home position. For example, if the scroll icon is located two inches away from the home position, then the data would scroll at a rate of two inches per second. If the scroll icon is located three inches from the home position, then the rate of scrolling would increase to three inches per second. The rate of scrolling need not be a linear function, but could be a non-linear function. For example, if the scroll icon is moved from two inches to three inches away from the home position, then the rate of scrolling could increase from two inches per second to five inches per second. Alternatively, the rate of scrolling could decrease as the distance of the scroll icon increases from the home position. In step 85, the method determines if the horizontal and vertical scroll bars are visible. If YES, then the positions of the scroll buttons 43, 44 are adjusted, step 87, as shown in Fig. 3. The horizontal scroll button 44 is moved a distance corresponding to the horizontal component determined in step 81. Likewise, the vertical scroll button 43 is moved a distance corresponding to the vertical component. For example, if the total area of data (shown in the window and located outside of the window) is 100 units horizontal by 100 units vertical, and the scroll icon 51 is located 45 degrees to the upper left of the home position, then scrolling the data 2 units in the horizontal and 2 units in the vertical causes the horizontal and vertical scroll buttons to move 2% of the track length to the left and top respectively. The method proceeds to step 89. If the result of step 85 is NO, then the method proceeds to step 89. In step 89, the method determines if the scroll icon 51 has been released. If NO, then scrolling continues, step 81 and the following steps. If YES, then scrolling is stopped and the scroll icon is returned to its home position, step 91. The method then returns to step 63, Fig. 5a. The methods of Figs 5c and 5d are similar to the method of Fig. 5b, with the exception being that movement is in a respective horizontal direction or vertical direction. Referring to Fig. 5c, if the user input is to scroll in only a horizontal direction, then in step 93, the method determines the horizontal component of the scroll icon position relative to the home position. In addition, the distance between the scroll icon and the home position is determined. In step 95, the client area or data is scrolled in the determined horizontal direction in real time. The rate of scrolling is proportional to the distance of the scroll icon in the home position. In step 97, the method determines if the horizontal scroll bar is visible. If YES, then the position of the scroll button 44 is adjusted, step 99. The method proceeds to step 101. If the result of step 97 is NO, then the method proceeds to step 101. In step 101, the method determines if the scroll icon has been released. If NO, then scrolling continues by returning to step 93. If YES, then scrolling is stopped, and the scroll icon 51 is returned to its home position, step 103. The method then returns to step 63, Fig. 5a. Referring to Fig. 5d, if the user input is to scroll in only a vertical direction, then in step 105, the method determines the vertical component of the scroll icon position relative to the home position. In addition, the distance between the scroll icon and the home position is determined. In step 107, the client area or data is scrolled in real time along the designated vertical direction. The rate of scrolling is proportional to the distance of the scroll icon from the home position. In step 109, the method determines if the vertical scroll bar is visible. If YES, then the position of the scroll button 43 is adjusted, step 111. The method proceeds to step 113. If the result of step 109 is NO, then the method proceeds to step 113. In step 113, the method determines if the scroll icon has been released. If NO, then scrolling continues, step 105. If YES, then scrolling is stopped and the scroll icon 51 is returned to its home position, step 115. The method then returns to step 63, Fig. 5a. Although the home position of the scroll icon has been shown in the lower right corner of a window, it may be in another location. Although the present invention has been described as providing a rate of scrolling that is proportional to the distance of the scroll icon from the home position, this need not be the case. For example, the rate of scrolling could be constant and therefore independent of the distance of the scroll icon from the home position. Alternatively, the rate of scrolling in one dimension could be different from the rate of scrolling in the other dimension.

Claims: A method of scrolling data in a client area (37) of a window (31) on a user interface (17) of a data processing system (11) in a composite direction (60), said composite direction (60) comprising a first directional component (53) and a second directional component (55), said second directional component (55) being orthogonal to said first directional component (53), characterised in that it comprises the steps of : a) providing an object (51) associated with said window (31) on said user interface (17), said object (51) occupying a home position (57); b) allowing a user to move said object (51) in a composite direction (60) from said home position (57), and c) scrolling said data in said client area (37) in said composite direction (60) . The method of claim 1 further comprising the steps of : a) allowing (89) said user to release said object (51); b) returning said released object (51) to said home position (57); and c) stopping (91) the scrolling of said data when said object (51) is released. The method of claim 1 or claim 2 further comprising the step of determining (81) the distance that said object (51) is located from said home position (57) and wherein said step of scrolling said data further comprises the step of increasing the rate of scrolling as said distance increases. The method of claim 3 wherein the rate of scrolling the data is proportional to said distance. The method of any one of the preceding claims wherein said step of providing said object (51) further comprises the step of providing a scroll icon (51) in a corner (57) of said window (31). The method of any one of the preceding claims further comprising the steps of: a) displaying first and second dimensional scroll bars (39, 41) in said window (31); b) allowing said user to select a portion (53, 55) of said object (51) ; and c) toggling (69, 73) the visibility of a respective one of said first (39) and second (41) dimensional scroll bars in response to said user selection. The method of claim 5 wherein each of said first (39) and second (41) directional scroll bars has a respective scroll button (43, 44) movable along said respective scroll bars. The method of claim 6, further comprising the step of moving said scroll buttons in response to said scrolling of data in said composite direction. An apparatus for scrolling data in a client area (37) of a window (31) on a user interface (17) of a data processing system (11), comprising: a) means for providing an object (51) associated with said window (31) on said user interface (17), said object (51) occupying a home position (57); b) means (59) for allowing a user to move said object in a composite direction (60) from said home position (57); and c) means (81, 83) for scrolling said data in said client area (37) in said composite direction (60). The apparatus of claim 9 further comprising: a) means (89) for allowing said user to release said object; b) means (91) for returning said released object (51) to said home position (57); and c) means for stopping the scrolling of said data when said object (51) is released. The apparatus of claim 9 or claim 10 further comprising means (81) for determining the distance that said object (51) is located from said home position (57) and wherein said means (81, 83) for scrolling said data further comprises means (83) for scrolling said data at a rate which increases as said distance increases. The apparatus of claim 11 wherein said means for scrolling said data increases the rate proportionally to said distance. The apparatus of any one of claims 9 to 12 wherein said means for providing said object (51) further comprises means for providing an icon (51) in a corner (57) of said window (31). The apparatus of any one of claims 9 to 13, further comprising: a) means for displaying first and second one dimensional scroll bars (39, 41) in said window (31); b) means (67, 71) for allowing said user to select a portion 53, 55) of said object (51); and c) means (69, 73) for toggling the visibility of a respective one of said first (39) and second (41) dimensional scroll bars in response to said user selection. The apparatus of claim 14, wherein each of said scroll bars (39, 41) has a respective scroll button (43, 44) movable along said respective scroll bars. The apparatus of claim 15, further comprising means (87) for moving said scroll buttons (43, 44) in response to said scrolling of data in said composite direction.

Inventors: HAYNES THOM R, HAYNES, THOM R.
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES
Application year: 1994
Main classification: G06F3
IPC codes: G06F3