|
|
|
| United States Patent | 5495566 |
| Link to this page | http://www.wikipatents.com/5495566.html |
| Inventor(s) | Kwatinetz; Andrew (Seattle, WA) |
| Abstract | An improved method and system is provided for scrolling contents of a
window. In accordance with a first aspect of the present invention,
variable speed scrolling is provided when scrolling beyond a screen
boundary. In accordance with the first aspect of the present invention,
the variable speed is proportional to the acceleration of the mouse
cursor. In accordance with a second aspect of the present invention,
variable speed scrolling is provided when scrolling beyond a screen
boundary. The variable speed of the second aspect of the present invention
is inversely proportional to a number of times that scrolling has been
initiated. In accordance with a third aspect of the present invention, an
improved method and system for scrolling in response to navigation key
input is provided. In accordance with the third aspect of the present
invention, a scrolling mode is selected after examining navigation key
input. When the navigation key input comprises more than a predefined
number of keys with each key being received within a predefined period of
time, the third aspect of the present invention performs jump to
scrolling. If there are less than the predefined number of keys or the
keys are not within the predefined time period, the third aspect of the
present invention performs animated scrolling. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5495566 |
|
|
Scrolling contents of a window |
|
|
|
|
|
| Publication Date |
February 27, 1996 |
|
|
|
|
|
| Filing Date |
November 22, 1994 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5374942 Gilligan
Dec,1994 |      Your vote accepted [0 after 0 votes] | | 5373309 Totsuka 715/856 Dec,1994 |      Your vote accepted [0 after 0 votes] | | 5313229 Gilligan 345/157 May,1994 |      Your vote accepted [0 after 0 votes] | | 5299307 Young
Mar,1994 |      Your vote accepted [0 after 0 votes] | | 5196838 Meier 345/684 Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5196838 Meier 345/684 Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5169342 Steele 434/112 Dec,1992 |      Your vote accepted [0 after 0 votes] | | 5157768 Hoeber 715/711 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 5155806 Hoeber 715/711 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 4984152 Muller 715/856 Jan,1991 |      Your vote accepted [0 after 0 votes] | | 4831556 Oono 715/786 May,1989 |      Your vote accepted [0 after 0 votes] | | 4794386 Bedrij 715/803 Dec,1988 |      Your vote accepted [0 after 0 votes] | | 4789962 Berry 715/715 Dec,1988 |      Your vote accepted [0 after 0 votes] | | 4313113 Thornburg 345/159 Jan,1982 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
I claim:
1. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the window having a predefined
area for triggering scrolling the contents of the window, a method for
displaying the contents of a window comprising the steps of:
while the input device indicator is moving,
determining a current location of the input device indicator on the video
display;
determining an acceleration of the input device indicator when the current
location of the input device indicator is within the predefined area,
wherein the input device indicator has an associated acceleration;
designating a speed for scrolling the contents of the window such that the
designated speed is non-zero and proportional to the acceleration of the
input device indicator; and
scrolling the contents of the window at the designated speed.
2. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the window having a predefined
area, a method for displaying the contents of a window comprising the
steps of:
initiating selection of contents of the window;
while selecting the contents of the window with the input device in
response to user input,
determining a current location of the input device indicator on the video
display;
determining whether the current location of the input device indicator is
within the predefined area; and
when the current location of the input device indicator is within the
predefined area,
determining an acceleration of the input device indicator, wherein the
input device indicator has an associated acceleration;
designating a speed for the scrolling of the contents of the window such
that the designated speed is non-zero and proportional to the acceleration
of the input device indicator; and
scrolling the contents of the window at the designated speed.
3. The method of claim 2 wherein the computer program is an operating
system, wherein the contents of the window are screen objects, and wherein
the step of scrolling the contents includes the step of scrolling the
screen objects at the designated speed by the operating system.
4. The method of claim 2 wherein the computer program is a word processor,
wherein the contents of the window is text, and wherein the step of
scrolling the contents includes the step of scrolling the text at the
designated speed by the word processor.
5. The method of claim 2 wherein the computer program is a database,
wherein the contents of the window are database records, and wherein the
step of scrolling the contents includes the step of scrolling the database
records at the designated speed by the database.
6. The method of claim 2 wherein the computer program is a spreadsheet
program, wherein the contents of the window are spreadsheet cells, and
wherein the step of scrolling the contents includes the step of scrolling
the spreadsheet cells at the designated speed by the spreadsheet program.
7. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the input device having an
associated speed and having an associated acceleration, a method for
displaying the contents of the window comprising the steps of:
initiating a selection of the contents of the window with the input device
in response to user input;
determining whether the input device indicator is at a window boundary; and
when the input device indicator is at the window boundary,
determining with the computer program whether the speed of the input device
indicator is within a predefined range;
when it is determined that the speed is within the predefined range,
determining the acceleration of the input device indicator;
scrolling the window by the computer program at a speed proportional to the
acceleration of the input device indicator; and
when it is determined that the speed is not within the predefined range,
scrolling the window by the computer program at a predefined speed.
8. The method of claim 7 wherein the input device is a mouse.
9. In a computer system having a video display and a computer program for
displaying a window with contents on the video display, a method for
displaying contents of a window comprising the steps of:
receiving at least one request in accordance with user input to scroll the
contents of the window;
determining a number of requests received for scrolling the contents of the
window;
designating a scroll speed that is inversely proportional to the number of
requests received; and
scrolling the contents of the window at the designated scroll speed.
10. The method of claim 9 wherein the computer program is an operating
system, wherein the contents of the window are screen objects, and wherein
the step of scrolling the contents includes the step of scrolling the
screen objects at the designated speed by the operating system.
11. The method of claim 9 wherein the computer program is a word processor,
wherein the contents of the window is text, and wherein the step of
scrolling the contents includes the step of scrolling the text at the
designated speed by the word processor.
12. The method of claim 9 wherein the computer program is a database,
wherein the contents of the window are database records, and wherein the
step of scrolling the contents includes the step of scrolling the database
records at the designated speed by the database.
13. The method of claim 9 wherein the computer program is a spreadsheet
program, wherein the contents of the window are spreadsheet cells, and
wherein the step of scrolling includes the step of scrolling the
spreadsheet cells at the designated speed by the spreadsheet program.
14. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the window having a predefined
area for triggering scrolling the contents of the window, a method for
displaying contents of a window comprising the steps of:
initiating a selection of contents of the window with the input device in
accordance with user input;
determining a current location of the input device indicator;
determining whether the current location of the input device indicator is
within the predefined area of the window;
when the current location of the input device indicator is within the
predefined area of the window,
determining a number of times that scrolling of the contents of the window
has been initiated during the selection;
designating a scroll speed that is inversely proportional to the number of
times that scrolling of the contents of the window has been initiated;
scrolling the contents of the window at the designated scroll speed; and
completing the selection of the contents of the window.
15. In a computer system having a video display, an input device and a
computer program for displaying a window on the video display and for
displaying contents of the window, the contents having portions, the
window divisible into lines of display, a method for displaying contents
of a window comprising the steps of:
receiving at least one request from the input device to display a
sequential portion of the contents in response to user input;
determining a count of the number of requests received;
determining a time difference between each request received;
when the count is above a predefined threshold and the time difference is
below a predefined time difference,
displaying the portion of the contents requested by a last request
received; and
when the count is not above the predefined threshold and when the time
difference is not below the predefined value,
displaying the portion of the contents requested by each received request
with a granularity of a line of display.
16. The method of claim 15 wherein the computer program is an operating
system, wherein the contents of the window are screen objects, wherein the
step of receiving at least one request includes the step of receiving at
least one request from the input device to display a sequential portion of
the screen objects in response to user input, and wherein the step of
displaying the portion of the contents requested by each received request
includes the step of displaying the portion of the screen objects
requested by each received request with a minimum granularity of a line of
display by the operating system.
17. The method of claim 15 wherein the computer program is a word
processor, wherein the contents of the window is text, wherein the step of
receiving at least one request includes the step of receiving at least one
request from the input device to display a sequential portion of the text
in response to user input, and wherein the step of displaying the portion
of the contents requested by each received request includes the step of
displaying the portion of the text requested by each received request with
a minimum granularity of a line of display by the word processor.
18. The method of claim 15 wherein the computer program is a database,
wherein the contents of the window are database records, wherein the step
of receiving at least one request includes the step of receiving at least
one request from the input device to display a sequential portion of the
database records in response to user input, and wherein the step of
displaying the portion of the contents requested by each received request
includes the step of displaying the portion of the database records
requested by each received request with a minimum granularity of a line of
display by the database.
19. The method of claim 15 wherein the computer program is a spreadsheet
program, wherein the contents of the window are spreadsheet cells, wherein
the step of receiving at least one request includes the step of receiving
at least one request from the input device to display a sequential portion
of the spreadsheet cells in response to user input, and wherein the step
of displaying the portion of the contents requested by each received
request includes the step of displaying the portion of the spreadsheet
cells requested by each received request with a minimum granularity of a
line of display by the spreadsheet program.
20. A device for displaying contents of a window, the device comprising:
a selection component for selecting contents of a window in response to
user input;
a calculation component for calculating an acceleration of the selection
component when the selection component is selecting contents of the window
and the selection component is located within a predefined area of the
window;
a speed component for determining a speed for scrolling the contents of the
window, said speed being non-zero and proportional to the calculated
acceleration of the selection component; and
a scrolling component for scrolling the contents of the window at the
determined speed.
21. A device for displaying contents of a window, the device comprising:
a receiver component for receiving requests for initiating scrolling of the
contents of a window in response to user input;
a count component for determining a number of the requests for initiating
the scrolling of the contents of the window that are received by the
receiver component;
a speed component for determining a speed for scrolling the contents of the
window that is inversely proportional to the number of the requests for
initiating the scrolling of the contents of the window that are received
by the receiver component; and
a scrolling component for scrolling the contents of the window at the
determined speed.
22. A device for displaying contents of a window, the device comprising:
a selection component for selecting contents of a window in response to
user input;
a receiver component for receiving requests to initiate scrolling of the
contents of the window;
a count component for determining a number of the requests that are
received by the receiver component while the selection component is
selecting the contents of the window;
a speed component for determining a speed for scrolling the contents of the
window that is inversely proportional to the number of requests that are
received by the receiver component; and
a scrolling component for scrolling the contents of the window at the
determined speed.
23. A device for scrolling contents of a window, the device comprising:
a receiver component for receiving navigation key input from a user, said
navigation key input having a magnitude;
a threshold component for determining when the magnitude of the navigation
key input is greater than a predefined threshold and for determining when
the navigation key input has been received by the receiver component
within a predefined time;
an animation scrolling component for scrolling the contents of the window
with a minimum granularity of a line when the threshold component
determines that the magnitude of the navigation key input is not greater
than the predefined threshold and when the threshold component determines
that the navigation key input has not been received by the receiver
component within a predefined time; and
a jump component for displaying the contents of the window corresponding to
a last of the navigation key input when the threshold component determines
that the magnitude of the navigation key input is greater than the
predefined threshold and the threshold component determines that the
navigation key input has been received by the receiver component within a
predefined time.
24. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the input device indicator
having an associated acceleration, the window having a predefined area for
triggering scrolling the contents of the window, a method for displaying
the contents of a window comprising the steps of:
initiating a first selection of the contents of the window;
while performing the first selection,
determining a first current location of the input device indicator on the
video display;
determining a first acceleration of the input device indicator when the
first current location of the input device indicator is within the
predefined area;
designating a first speed for scrolling the contents of the window such
that the first speed is non-zero and proportional to the first
acceleration of the input device indicator;
scrolling the contents of the window at the first speed;
initiating a second selection of the contents of the window; and
while performing the second selection,
determining a second current location of the input device indicator on the
video display;
determining a second acceleration of the input device indicator when the
second current location of the input device indicator is within the
predefined area;
designating a second speed for scrolling the contents of the window such
that the second speed is non-zero and proportional to the second
acceleration of the input device indicator; and
scrolling the contents of the window at the second speed.
25. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the input device indicator
having an associated acceleration, the window having a predefined area for
triggering scrolling the contents of a window, a method for displaying the
contents of a window comprising the steps of:
initiating a selection of the contents of the window;
while performing the selection,
determining a first current location of the input device indicator on the
video display;
determining a first acceleration of the input device indicator when the
first current location of the input device indicator is within the
predefined area;
designating a first speed for scrolling the contents of the window such
that the first speed is non-zero and proportional to the first
acceleration of the input device indicator;
scrolling the contents of the window at the first speed;
determining a second current location of the input device indicator on the
video display;
determining a second acceleration of the input device indicator when the
second current location of the input device indicator is within the
predefined area;
designating a second speed for scrolling the contents of the window such
that the second speed is non-zero and proportional to the second
acceleration of the input device indicator; and
scrolling the contents of the window at the second speed.
26. In a computer system having a video display, an input device with an
input device indicator that is visible on the video display and reflects
movement of the input device, and a computer program for displaying a
window with contents on the video display, the window having a predefined
area, a method for displaying the contents of a window comprising the
steps of:
selecting contents of the window with the input device in response to user
input;
determining a current location of the input device indicator on the video
display;
determining whether the current location of the input device indicator is
within the predefined area; and
when the current location of the input device indicator is within the
predefined area,
determining an acceleration of the input device indicator, wherein the
input device indicator has an associated acceleration;
designating a speed for the scrolling of the contents of the window such
that the designated speed is non-zero and proportional to the acceleration
of the input device indicator; and
scrolling the contents of the window at the designated speed. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
TECHNICAL FIELD OF THE INVENTION
The present invention relates generally to data processing systems and,
more particularly, to scrolling contents of a window in data processing
systems.
BACKGROUND OF THE INVENTION
In the field of computer technology, a window is used for providing a user
with access to information. In addition to providing access to the
information, the window has a display area that displays the information.
When a window maintains more information than it can display at one time,
the window displays only a subset of the information. In this event,
scrolling the window is necessary before a user can view the information
maintained by the window that is not within the subset currently being
displayed. Thus, scrolling refers to changing the subset of information
displayed by a window. Scrolling is typically triggered in response to
user input.
One type of scrolling in conventional systems is known as "scrolling beyond
a screen boundary." This type of scrolling occurs when a user makes a
selection of the information displayed by a window, and during the
selection, the user moves the mouse cursor to an edge of the display area
of the window. When the mouse cursor is at the edge of the display area of
the window, conventional systems automatically scroll the window at a
fixed speed to display more information to the user that the user can then
select.
One problem that occurs when scrolling beyond a screen boundary is that the
scrolling of conventional systems tends to be at a very high speed. Thus,
when a user performs scrolling beyond a screen boundary wishing to select
some information not currently being displayed, the user may see the
desired information scroll by and out of view before the user can stop the
scrolling. In this event, the user must cause the window to scroll in the
reverse direction. Often times, users must scroll back and forth a number
of times before being able to select the desired information. This leads
to user frustration as well as a loss of user productivity.
Another type of scrolling occurs when a user hits either successive Page
Down or Page Up keys. Hitting either the Page Down or the Page Up key on a
keyboard, scrolls the window one window worth of information (e.g., a
page) at a time in the respective direction. By scrolling one page at a
time, however, the user loses their reference point in relation to the
information being displayed since a completely new page of information is
presented to the user. One way to solve this problem is to scroll the
information one line at a time. This allows the user to see their
reference point scroll by so that they can better gauge their location
within the information. However, scrolling the information one line at a
time uses significant processing time. Therefore, for example, when a user
wants to quickly display information that is three pages away, the user
must wait for the computer system to draw one line of information at a
time until reaching the third page. This is time-consuming and tends to
frustrate users that want to display specific information quickly.
Scrolling a window is well known. Typically, a computer program is
responsible for maintaining the window and for displaying information in
the window. The computer program receives the information to be displayed
from a data store, such as a file. The computer program usually scrolls
the window in response to a command to redraw the window. Such a command
includes the level of granularity for displaying the information and the
direction of scrolling. After receiving the command, the computer program
will access the data store and determine which information should be
displayed. For example, if the command indicated to scroll the next
window-worth of information, the computer program will access the next
window-worth of information from the file. After accessing the
information, the computer program displays the information in the window
at the level of granularity specified by the command and in the direction
specified by the command.
SUMMARY OF THE INVENTION
In accordance with a first aspect of the present invention, a method for
displaying contents of a window is executed in a data processing system
having an input device with an input device indicator, a video display,
and a computer program for displaying a window on the window display. In
accordance with this method of the first aspect of the present invention,
the computer program determines a location of the input device indicator
on the video display, determines the acceleration of the input device
indicator when the location of the input device indicator is within a
predefined area of the window, designates a speed for scrolling the
contents the window such that the designated speed is proportional to the
acceleration and scrolls the contents of the window with the designated
speed.
In accordance with a second aspect of the present invention, a method for
displaying contents of a window is executed in a computer system having a
video display and a computer program for displaying a window on the video
display and for displaying contents within the window. In accordance with
this method of the second aspect of the present invention, the computer
program receives at least one request in accordance with user input to
scroll the contents of the window, determines a number of requests
received for scrolling the contents of the window, designates a scroll
speed that is inversely proportional to the number of the requests
received and scrolls the contents of the window with the designated scroll
speed.
In accordance with a third aspect of the present invention, a method for
displaying contents of a window is executed in a computer system having an
input device and a computer program for displaying a window on a video
display and for displaying contents of the window. The window has a
predefined area. In accordance with this method of the third aspect of the
present invention, the computer program receives at least one request from
the input device to display a sequential portion of the contents in
response to user input, determines a count of the number of requests
received, and determines a time difference between each request received.
When the count is above a predefined threshold and the time difference is
below a predefined time difference, the computer program displays the
contents requested by a last request received. When the count is not above
the predefined threshold or when the time is not below the predefined
value, the computer program displays the contents requested by each
received request with a minimum granularity of a line.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a data processing system that is suitable for
practicing a preferred embodiment of the present invention.
FIG. 2 depicts a window that utilizes the preferred embodiment of the
present invention.
FIG. 3 is a high-level flowchart of a first aspect of the present
invention.
FIGS. 4A and 4B depict a more detailed flowchart of the steps performed by
the first aspect of the present invention.
FIG. 5 is a high-level flowchart of a second aspect of the present
invention.
FIG. 6 depicts a more detailed flowchart of the steps performed by the
second aspect d the present invention.
FIG. 7 depicts a high-level flowchart of a third aspect of the present
invention.
FIG. 8 depicts a more detailed flowchart of the steps performed by the
third aspect of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The preferred embodiment of the present invention provides an improved
method and system for scrolling contents of a window. There are three
aspects of the preferred embodiment of the present invention which will be
described herein. The first two of these aspects provide for an
improvement in scrolling beyond a screen boundary. The third aspect
provides for an improvement for scrolling in response to navigation key
input.
The first aspect of the present invention provides variable speed scrolling
when performing scrolling beyond a screen boundary. The first aspect sets
the variable speed proportional to the acceleration of the mouse cursor.
When invoking scrolling beyond a screen boundary, users tend to move the
mouse cursor with a large magnitude of acceleration when the users wish
for the window to scroll rapidly and users tend to move the mouse cursor
with a magnitude of acceleration that is small when the users wish for the
window to scroll slowly. Therefore, by determining a variable speed for
scrolling related to the intentions of the user, the first aspect reduces
user frustration and increases productivity.
The second aspect of the present invention sets a variable scroll speed
while performing scrolling beyond a screen boundary based on the number of
times that scrolling was initiated during the selection. The second aspect
of the present invention is responsive to the intentions of the user since
users tend to disengage scrolling or scroll in a reverse direction when
they wish for the scrolling to slow. Thus, the second aspect sets the
scrolling speed inversely proportional to the number of times that
scrolling has been initiated or the direction of scrolling has been
reversed. Therefore, the more a user reverses direction or disengages
scrolling, the slower the window scrolls. Since the second aspect sets a
scroll speed based on the intentions of the user, the second aspect
reduces user frustration and increases productivity. Although the first
and second aspect will be described relative to use with a mouse input
device, one skilled in the art will appreciate that the present invention
can be used with other input devices such as a pen input device.
The third aspect of the present invention adjusts the type of scrolling
that occurs when a user uses navigation keys. The term "navigation keys"
refers to keys on a keyboard input device or logical keys (or buttons) on
a computer display that scroll the contents of a window. Examples of such
navigation keys on a keyboard input device include the Page Up and the
Page Down keys. In addition to keys on a keyboard input device, the term
"navigation keys" also refers to logical keys displayed on a computer
display that can be invoked by an input device such as a mouse input
device. For example, some application programs display a "page-down" or a
"page-up" button on a window that displays information. Such buttons are
also examples of navigation keys. Typically, the most useful type of
scrolling to a user is when scrolling occurs one line at a time. That is,
scrolling occurs with a minimum granularity of a line. This type of
scrolling is also known as "animated" scrolling. This animated scrolling
allows a user to see a reference point pass by on the screen so that the
user can keep their orientation with respect to the information being
displayed. However, scrolling information one line at a time utilizes a
significant amount of processing time and is unsuitable for users that
want to go quickly to desired information. Therefore, the third aspect
provides two types of scrolling ("scrolling modes"): animated scrolling
and jump to scrolling. "Jump to" scrolling refers to immediately
displaying the information corresponding to the last navigation key
received without displaying the intervening information.
The third aspect performs animated scrolling when the user depresses a
navigation key a number of times that is less than a predefined threshold
or the time between depression of each navigation key ("time
differential") is above a predefined value. However, if the user depresses
a navigation key a number of times that is more than the predefined
threshold with the time differential being less than the predefined value,
the third aspect will perform jump to scrolling. For example, if a user
hits the Page Down key four times successively, which is a number of times
that is greater than the predefined threshold, and the time differential
between each successive depression of the Page Down key is below the
predefined value, the third aspect will not scroll the window in the usual
sense of the term. Instead, the third aspect will display the information
that would be displayed on the fourth Page Down. However, if there were a
significant delay between each of the Page Down key depressions, the third
aspect will scroll through the four pages one line at a time. The third
aspect is responsive to the intentions of the user since a user will tend
to hit a navigation key rapidly if the user wishes to go directly to a
specific page. On the other hand, the user will depress the navigation
keys more slowly when the user is unsure of which page of information to
display and therefore, wishes to scan the information being scrolled.
Therefore, since the third aspect switches between animated scrolling and
jump to scrolling based on the intentions of the user, the third aspect
reduces user frustration and increases productivity by allowing a user to
go directly to desired information.
FIG. 1 is a block diagram of a data processing system 102 that is suitable
for practicing the preferred embodiment of the present invention. The data
processing system 102 includes at least one central processing unit (CPU)
108. The CPU 108 is connected to a number of peripheral devices, including
a mouse 110, a keyboard 104, and a video display 112. The mouse 110 has a
mouse button 111 and the keyboard 104 has navigation keys 105. The CPU 108
is also connected to a memory 106 and a secondary storage device 114, such
as a hard disk drive. The memory 108 holds a copy of an operating system
116, such as the "MICROSOFT WINDOWS" operating system sold by Microsoft
Corporation of Redmond, Wash., and a copy of an application program 118
such as the Microsoft Word word processing program sold by Microsoft
Corporation of Redmond, Wash. The implementation of the preferred
embodiment of the present invention will be described below with reference
to use of scrolling within the application program 116. Nevertheless, it
should be appreciated that the scrolling may alternatively be implemented
in the operating system 116. In addition, the scrolling may be implemented
in other application programs including, but not limited to, document
processing programs, spreadsheet programs, electronic mail programs,
database programs, or any other application program where information can
be displayed to a user.
In general, each application program having a user interface has an
associated window procedure for each window that the application program
displays. For each application program having a user interface, the
operating system maintains a message queue. When an event occurs, the
event is translated into a message that is put into the message queue for
the application program. Such an event includes keystrokes, timer events,
manipulation of the mouse cursor or manipulation of the mouse button. For
example, when the mouse button is depressed, a "MOUSE.sub.-- DOWN" event
is generated by the operating system and is sent to the message queue of
the application program. The application program retrieves and delivers
messages in the message queue to the proper window procedure for
processing; that is, the window procedure for the window for which the
event is intended. The window procedure, in turn, has a number of
functions that the window procedure invokes depending on the specific
event that has occurred. For example, the window procedure for the
Microsoft Word word processor invokes a specific function when receiving a
MOUSE.sub.-- DOWN event and the mouse cursor is within the text portion of
a window. Thus, this function is responsible for handling a MOUSE.sub.--
DOWN event when the mouse indicator is within the text portion | | |