`Affalres commerciales Canada
`
`Consumer and
`Corporate Affairs Canada
`
`Bureau des brevets
`
`Patent Office
`
`Ottawa. Canada
`r«Aoc9
`
`5
`
`(51)
`
`INTL.CL. G09G-005/34
`
`(21)
`
`(A1)
`
`2,059,893
`
`(22)
`
`(43)
`
`1992/01/27
`
`1992/09/13
`
`9'E/9‘l.I0'S
`
`(19) (CA) APPLICATION FOR CANADIAN PATENT (12)
`
`(54) Method of Scrolling a Display Window
`
`(72) Tecot, Edward M.
`
`— U.S.A.
`
`(73) Apple Computer, Inc.
`
`-'U.S.A.
`
`(30)
`
`(US) 667,994 1991/03/12
`
`(57) 5 Claims
`
`Notice:
`
`This application is as filed and may therefore contain an
`incomplete s ecification.
`I9
`
`_
`
`a,
`
`CCA 3254 (1092) 41 7530-21-966-3254
`
`APPLEINC.
`EXHIBIT 1015 - PAGE 1
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 1
`
`
`
`Mark Aaker, MS 38-!
`Apple Computer, Inc.
`20525 Man’ani Avenue
`Cupeflino, CA 95014
`
`PATENT
`Attorney Docket No.: P428
`
`ABSTRACT
`
`A method of scrolling a display window which employs a continuously increasing
`rate of scrolling over time, such as an exponential curve.
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 2
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 2
`
`
`
`Mark Aakef. MS 38-!
`Apple Computer, Inc.
`2:525 Mariani Avenue
`Cupenino, CA $014
`
`PATENT
`Attorney Docket No.: P428
`
`METHOD OF SCROLLING A DISPLAY WINDOW
`
`BACKGROUND OF THE INVENTION
`
`This invention relates to a method of scrolling a display window displayed on a
`computer screen.
`
`Figure 1 shows an example known in the art of a display window with controls for
`scrolling the window. Figure 1 shows apdisplay window as they appear on the Apple
`Computer, Inc. Macintosh family of computers. (Macintosh is a Registered
`Trademark of Apple Computer, Inc.)
`
`the display window has a viewing area 10 in which text or graphical
`In Figure 1,
`objects are displayed. Across the top of the window are a title bar 12, title 14, and a
`close box 16. Across the right side of the window are a scroll bar 20, having a _scroll
`arrow 22 for upward scrolling, a scroll box 24, and a scroll arrow 26 for downward
`
`scrolling. A size box 28 allows adjustment of the window size. Across the bottom of
`the window are a scroll bar 30 for horizontal scrolling of the active window area 10,
`and a size box 32 for adjusting the size of the window. Various parts of the window
`can be controlled or adjusted by use of a pointing device, such as a mouse, which
`
`moves a cursor on the display. A button on the mouse can be used to select or
`
`"click" on the controls or boxes of the window.
`
`Scroll bar 20 is used to control which part of a document or object is shown in the
`viewing area 10. The position of the scroll box 24 within the scroll bar 20 represents
`the relative location of the portion of the document currently visible inside the
`viewing area 10 to the entire document. As the user uses the scroll bar 20 to move
`
`the document under the viewing area 10, the position of the scroll box 24 moves
`correspondingly.
`If the document can fit entirely within the viewing area 10, the
`scroll bars become inactive, and are not displayed.
`
`2
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 3
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 3
`
`
`
`Mark Aaker, MS 38-!
`Apple Computer. Inc.
`20525 Maliani Avenue
`Cupenino, CA 95014
`
`PATBVT
`Attorney Docket No.: P428
`
`There are three ways to move the document under the window: by sequential
`scrolling, page by page scrolling, and by directly positioning the scroll box.
`
`In sequential scrolling, the user clicks on a scroll arrow 22 or 26 to see more of the
`
`document in the direction of the scroll arrow, so it moves the document in the
`
`opposite direction from the arrow. For example, when the user clicks the top scroll
`arrow 22, the document moves down, bringing the view closer to the top of the
`document. The scroll box 24 moves toward the arrow being clicked.
`
`Each click in a scroll arrow 22, 26 causes movement a distance of one unit in the
`
`chosen direction, with the unit of distance being appropriate to the application: one
`line for a word processor, one row or column for a spreadsheet, and so on. Within a
`document, units should always be the same size, for smooth scrolling. Pressing and
`holding down on the scroll arrow causes continuous movement in its direction.
`
`In page by page scrolling, clicking the mouse anywhere in the gray area of the scroll
`bar advances the document in steps window by window through the document.-
`The scroll box, and the document view, move toward the place where the user
`clicked. Clicking below the scroll box, for example, brings the user the next window
`toward the bottom of the document. Pressing in the gray area of the scroll bar 20
`keeps windows flipping by until the user releases the mouse button, or until the
`
`location of the scroll box 24 catches up to the location of the pointer. Each window is
`the height or width of the window, minus one unit overlap (where a unit is the
`distance the view scrolls when the scroll arrow is clicked once).
`
`In both the above schemes, the user moves the document incrementally until it's in
`the proper position under the window; as the document moves, the scroll box 24
`
`moves accordingly. The user can also move the document directly to any position
`simply by moving the scroll box 24 to the corresponding position in the scroll bar 20.
`In directly positioning the scroll box 24, the user drags it along the scroll bar 20; an
`outline of the scroll box 24 follows the pointer. When the mouse button is released,
`
`the scroll box 24 jumps to the position last held by the outline, and the document
`
`3
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 4
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 4
`
`
`
`Mark Aakar. MS 38-!
`Apple Computer. Inc.
`2:525 Mariani Avenue
`Ctperiino, CA 95014
`
`PA7BVT
`Attorney Docket No.: P428
`
`jumps to the position corresponding to the new position of the scroll box 24.
`
`When sequential or page by page scrolling is used, two methods of controlling the
`speed of the scrolling of the display window are known:
`
`(1). Scrolling speed is set to a constant rate. However, this may be too fast for fine
`positioning of a document in the window, and be too slow for traversing a long
`distance in a long document.
`
`(2). Employ a linear acceleration of scrolling over time. Scrolling begins at a slow
`rate, which is suitable for fine positioning, and the scrolling rate increases as the
`scrolling continues. Eventually a maximum rate is reached at which along distance
`in a long document can be traversed in a timely manner. However with a linear
`
`acceleration it can take a significant period of time to transition from the minimum
`
`starting speed to the maximum ending speed, since the differences between these
`
`rates can be quite large. In fact, it is desirable that the differences between these rates
`
`be quite large, providing the least possible rate for fine positioning, and the
`maximum rate which can be sustained by the computer for the maximum rate.
`
`Neither of these methods of controlling the speed of the scrolling of the display
`window have proven to be entirely satisfactory, and other methods of incorporating
`additional ”speed controls” have also proven to be clumsy and unsatisfactory.
`
`SUMMARY OF THE INVENTION
`
`This invention provides a method of scrolling a display window displayed on a
`computer screen. Scrolling begins at a minimum value suitable for fine
`
`positioning. The rate of scrolling automatically accelerates as the user continues a"
`scroll, at a continually increasing rate (e.g., exponential ). The rate of scrolling
`quickly reaches a maximum value suitable for travel over long distances. The
`transition between the minimum and maximum values of scroll speed occurs
`‘ quickly compared to linear acceleration, and occurs without abrupt changes in speed
`
`4
`
`APPLE INC.
`
`EXHIBIT 1015 - PAGE 5
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 5
`
`
`
`Mark Aakar. MS 38-!
`Apple Computer, Inc.
`26525 Mariani Avenue
`Clpeifino. CA 95014
`
`PA7'ENT
`Attorney Docket No.: P428
`
`which disturb the user's control of the scrolling operation.
`
`The method of this invention is implemented by having a scrollable display
`window on a computer screen, with scrolling controlled by a user-activated pointing
`device. The initiation of scrolling by the user is detected and scrolling is established
`at a defined minimum rate V(MIN). The passage of time from the initiation of
`scrolling is measured, and if scrolling is still activated, the rate of scrolling is
`increased at a continuously increasing rate (such as exponential), until a defined
`maximum scrolling rate V(MAX) is reached.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Figure 1 shows an example known in the art of a display window with controls for
`scrolling the window.
`
`Figure 2 shows a graphical representation of methods of automatically increasing
`scrolling speed over time.
`
`DETAILED DESCRIPTION
`
`Figure 2 shows a graphical representation of methods of automatically increasing
`scrolling speed over time. The vertical axis measures scrolling rate V from a
`minimum rate V(MIN) suitable for fine positioning in individual unit steps, to a
`maximum rate V(MAX) which can be supported by the computer and is suitable for
`travel over long scrolling distances. The horizontal axis measures time T from the
`
`beginning of a scrolling operation.
`
`In Figure 2, curve L shows the scrolling rate for a known method which employs a
`linear acceleration of scrolling over time. Scrolling begins at V(MIN) and increases
`linearly over time to V(MAX), reaching V(MAX) at a time T(L).
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 6
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 6
`
`
`
`Nlark Aaker. MS 38-!
`Apple Computer. Inc.
`2:525 Marfani Avenue
`Ccperrino, CA 95014
`
`PATHVT
`Attorney Docket No.: P428
`
`In Figure 2, curve E shows the scrolling rate for a method in accordance with this
`
`invention which employs a continuously increasing rate of scrolling over time,
`such as an exponential curve. Scrolling begins at V(MIN) and increases
`
`exponentially over time to V(MAX), reaching V(MAX) at a time T(E).
`
`Note that THE) is less than T(L), therefore the method of this invention reaches the
`
`maximum scrolling rate without as great a delay to the user, and thereby allows
`
`traveling long distances in a long document in less time.
`
`Note also, for fine positioning, that curve B remains at low scrolling rates for a
`
`longer period of time than curve L, making fine positioning easier for a greater
`period of time with the method of this invention.
`
`While in the preferred embodiment uses an exponential increase in the rate of
`
`scrolling, other steeply curved increasing functions can also be used, as well as other
`
`methods of approximating such curves, as by piece—wise approximation. In
`
`particular, for digital computer systems, a digitally quantized approximation to the
`curves may be simpler to implement.
`In other embodiments, analog circuitry can
`easily generate exponential and other waveforms by the charging of resistor-
`
`capacitor combinations by fixed or varying applied voltages.
`
`In a further embodiment, as the scrolling rate approaches V(MAX), the rate of
`
`increase can be slowed, so as to merge smoothly into the maximum rate V(MAX).
`
`This would tend to make curve B look more ”S" - shaped as in curve S of Figure 2.
`This prevents an abrupt stop to the rate of acceleration which could be disturbing to
`the user.
`
`In another embodiment, the scroll distance is increased over time, i.e., the scrolling
`begins by scrolling the window in small unit steps or increments at first, and the size
`
`of the steps is continuously increased as scrolling continues. This embodiment
`
`could be illustrated by the curves of Figure 2 by labeling the vertical axis to measure
`
`scroll distance per step.
`
`' APPLE INC.
`EXHIBIT 1015 - PAGE 7
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 7
`
`
`
`Mark Aaker, MS 38-!
`Apple Computer, Inc.
`20525 Man'ani Avenue
`CLp9I!ino, CA 95014
`
`PATENT
`Attorney Docket No.: P428
`
`In yet another embodiment, the contents of the window are updated at a defined
`maximum time interval, and this interval is decreased at a continuously increasing
`rate as scrolling is continued. This embodiment could be illustrated by the Curves of
`Figure 2 by labeling the vertical axis to measure an update time interval which
`decreases in the upward direction of the vertical scale.
`
`Note that these last two embodiments are directly based upon the basic definition
`of velocity (or rate), namely, distance over time. In order to change the velocity of
`scrolling perceived by the user, the method must either alter the apparent distance
`traveled, or the apparent time between updates, or both.
`
`Table I shows the programming instructions for implementing automatic control of
`scrolling speed in accordance with this invention. These instruction are written
`
`from the standpoint of system software, that is to say, independent of the
`mechanism that produces the actual scrolling (either software or hardware). These
`
`instructions use elapsed time since the start of scrolling to determine the
`appropriate time to delay until it is time to scroll the next increment. The
`
`instructions, variables, constants, and comments provided in Table I may be of
`relevance only to programming for the Apple Macintosh family of computers.
`Those skilled in the art may wish to refer to "Inside Macintosh, Volumes I - V”
`
`published by Addison-Wesley Publishing Company, Inc., Copyright 1985 - 1990, for
`reference in interpreting the instructions of Table 1. Other useful references may be
`the ”Macintosh Programmer's Workshop Assembler Reference Manual (Revision
`
`3.0 ” published by Apple Programmer's and Developer's Association, APDA
`#M002LL/A, Copyright 1988, and the “Motorola M68000 8-, 16-, 32-Bit
`
`Microprocessor's Programmer's Reference Manual” published by Prentice Hall,
`Copyright 1986.
`
`These and other embodiments and implementations will be apparent to a person
`skilled in the art from a consideration of the specification, drawings, and claims.
`It
`is intended that the scope of the invention be limited only by the scope of the
`following claims.
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 8
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 8
`
`
`
`2859893
`
`lzcmsvislblez XNTECER): Osilrr
`l‘UNCT10.\1 ScrollDclay(starI.'1‘icks, acLionTic|1s: LONCINT:
`nLarLTlck:
`is the time the scrolling started. usually (rom the mouse down event.
`acLionTiI:k::
`is the lime that began this particular scroll action.
`.
`itcmsvisiblo is the number oi
`items visible in the list, 0 if unknown.
`Scrolloclay
`
`sdframe
`returnhdd ress
`itemsvisibie
`actionflcks
`startficks
`result
`
`RECORD
`DS. L
`DS_w
`DS.L
`DS.i.
`DS.H
`ENDR
`
`EQU
`Pirstvalue
`EQU
`Knox-nsndvalue
`Unknown!-Zndvalue EQU
`Dncayvalue
`E00
`llnounconst
`E00
`Unknounconst
`EQU
`
`Number of ticks to begin with.
`Number of ticks to end with, when the list size is known.
`Number of ticks to end with. when the list: size is unknown.
`‘fine to decay from Startvalue to Endvaiue.
`108
`Decayvaiue I (firstvaine - Knounfindvalue)
`Decayvalue I (I-‘irstvaiue — vnknounandvalue)
`
`Calculate the time to wait until. Endvalue is the number of ticks to end with: Knounandvalue
`if the list size is known, Unknounlindvalue it unknown. The equation is:
`Decayvalue
`Delay - acl:ion‘i‘icks + Endvalua + ————------------------------------------------ —-
`‘
`Decayvalue
`cactionticks -- startticks) + -------------------------
`Firstvaiue — Endvaiue
`
`eunknoun
`
`ieaicbeiay
`
`sdfraue
`WITH
`result (59)
`CLRJI
`itensV1si.b1e{SP)
`‘i‘S‘i'.H
`Eunknovn
`8510.5
`Movie. I. lxnounandva lue, D0
`HOV-IE0- L lknownconst , D1
`BRA. S
`Ecalcbe lay
`
`No error.
`Know the number or items visible?
`No, skip this part.
`Endvalua - Knountndvalue
`For speed
`
`noutonono
`
`MOVEQJ. lunknovnandvalue, D0
`MOVSQJ. lunknownconst, In
`
`Endvaiue - Dnknounandva lue
`For speed
`
`HOVEJ. actiontlcks (SP), D2
`ADDJ.
`D2, D0
`nDD.L
`D2, D1
`sUB.I.
`startfickstsk), D1
`HOVE.Q.L lbecayvalue, D2
`DIVU
`D1, D2
`EX'i‘.I.
`D2
`ADDJ.
`D2, Do
`
`D0 - action‘i‘icks + Endvalue
`
`Decayvaiue
`D1 - iactionjricks — start'ricks) + --------- --
`Firstvalue - Endvalue
`
`(assume quotient < 3276'!)
`Toss the remainder
`Now everything‘; in D0
`
`: we need to loop until D0 <- ‘rickcount () or the mouse button comes up.
`KOVEJ. D0,
`-(SP)
`: Save the time on the stack.
`Qloopbalay
`SUBQJ.
`I2. SP
`_stiliDown
`‘l‘S'i'.B
`l$P)+
`880.3
`Eendbeiay
`
`House still down?
`
`- No, get out.
`
`SUBQJ. M, SP
`_‘rickCount
`HOVEJG (SP)§, D0
`CHPJ.
`(52), D0
`31.0.5
`Eloopoelay
`
`Timed out‘:
`No, try again.
`
`Qondaelay
`
`returnliddressfl (SP) ,
`startTicksH(sP), S?
`
`lEIl'tTlCKS4'1(5PI
`; Clean up the stack
`
`MOVE‘..!.
`LEA
`RTS
`ENDHITH
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 9
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 9
`
`
`
`Malk Aaker, MS 38-!
`Apple Computer, Inc.
`2625 Maliani Avenue
`Copanino, CA 95014
`
`I claim:
`
`PATENT
`Attorney Docket No. : P428
`
`1. A method of scrolling a display window displayed on a computer screen, with
`
`scrolling controlled by a user—activated pointing device, said method comprising:
`
`detecting the initiation of scrolling by the user;
`
`establishing scrolling of the window at a defined minimum rate (V(M'.lN));
`
`measuring the duration of time since the initiation of scrolling; and
`
`if scrolling is still activated, increasing the rate of scrolling at a continuously
`increasing rate with the passage of time until a defined maximum rate (V(MAX)) is
`reached.
`
`2. A method of scrolling a display window as in claim 1 wherein the increasing the
`rate of scrolling at a continuously increasing rate describes an exponential curve.
`
`3. A method of scrolling a display window as in claim 1 wherein as the rate of
`
`scrolling approaches the defined maximum rate (V(MAX)), the rate of increase is
`
`slowed to merge smoothly into the defined maximum rate (V(MAX)).
`
`4. A method of scrolling a display window displayed on a computer screen, with
`scrolling controlled by a user-activated pointing device, said method comprising:
`
`detecting the initiation of scrolling by the user;
`
`establishing scrolling of the window at a defined minimum increment of distance;
`
`8
`
`APPLE INC.
`~ EXHIBIT 1015 - PAGE 10
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 10
`
`
`
`Mark Aakar, MS 38-!
`Apple Computer, Inc.
`20525 Maniani Avenue
`Ctpertino, CA 95014
`
`PATENT
`Attorney Docket No.: P428
`
`measuring the duration of time since the initiation of scrolling; and
`
`if scrolling is still activated, increasing the increment of distance used in scrolling at
`
`a continuously increasing rate with the passage of time until a defined maximum
`increment of distance is reached.
`
`5. A method of scrolling a display window displayed on a computer screen, with
`
`scrolling controlled by a. user-activated pointing device, said method comprising:
`
`detecting the initiation of scrolling by the user;
`
`establishing scrolling of the window by updating the contents of the window at a
`
`defined maximum time interval;
`
`measuring the duration of time since the initiation of scrolling; and
`
`if scrolling is still activated, decreasing the time interval of updating the window at
`
`a continuously increasing rate with the passage of time until a defined minimum
`time interval is reached.
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 11
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 11
`
`
`
`2 0 5 3 89 3
`
`—Tf\\€M()f
`
`I
`
`P428
`r4’rt5‘. »'~4,=?§Lk§::du?°M:
`
`-
`
`5210:022-
`Q134 —A 5421-
`1/2_
`
`FIG. 1
`
`(Pmorz ART)
`
`‘ APPLE INC;
`‘
`_EXH|B|T .1015» — PAGE 12
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 12
`
`
`
`.043?
`
`37\Vmm(:&5w¢:i ‘Eco
`N13 .'M8n< A5 /.0’ 1
`.§2:c.io‘4
`~:~*«<s~_4s:.~+
`2/2._
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 13
`
`APPLE INC.
`EXHIBIT 1015 - PAGE 13
`
`