throbber
United States Patent 15
`Beernink et al.
`
`[54]
`
`[75]
`
`173]
`
`[21]
`
`[22]
`
`[63]
`
`[51]
`[52]
`[58]
`
`[56]
`
`GESTURE SENSITIVE BUTTONS FOR
`GRAPHICAL USER INTERFACES
`
`Inventors: Ernest H. Beernink, San Carlos;
`Gregg S. Foster, Woodside; Stephen P.
`Capps, San Carlos,all of Calif.
`
`Assignee: Apple Computer, Inc., Cupertino,
`Calif.
`
`Appl. No.: 228,460
`
`Filed:
`
`Apr. 15, 1994
`
`Related U.S. Application Data
`
`Continuation of Ser. No. 985,588, Dec. 3, 1992, abandoned.
`
`Tint, Co iiccccccccecssscsessssssescssssssseecessssseesssenses G09G 5/00
`ULB. Ch. ececcceeesereeesees 345/173; 345/172; 345/179
`Field of Search 0.0... cccseeeeeeae 382/13, 59, 187,
`382/313, 314, 189; 178/18, 19; 340/706,
`712; 345/156, 168, 173, 169, 179, 104,
`172, 180, 182, 183
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,139,837
`4,545,023
`4,972,496
`5,194,852
`5,260,697
`5,347,295
`5,398,045
`5,398,310
`
`2/1979 Liljenwall oo. 340/146.3 SY
` 10/1985 Mizzi wu... eeescssceseseeeseeessesseee 364/709
`
`11/1990 Sklarew ooo.
`csssssesseneeeseeeees 382/13
`
`we 345/173
`3/1993 More etal.
`.
`
`11/1993 Barrett 0...ccccsssscescseeceesenees 345/173
`
`we 345/156
`9/1994 Agulnicketal.
`
`
`3/1995 Sach et al. wc
`cesesseseree 345/172
`3/1995 Tchao et al. oeeeeseneeee 395/144
`
`FOREIGN PATENT DOCUMENTS
`
`ACCAA
`
`j11] Patent Number:
`
`[45] Date of Patent:
`
`5,612,719
`Mar. 18, 1997
`
`OTHER PUBLICATIONS
`
`O’Connor, Rory J., “Apple banking on Newton’s brain,” San
`Jose Mercury News, Apr. 22, 1992.
`Weiman et al, “A Step Toward the Future” Macword, Aug.
`1992, p. 129.
`M. Soviero, “Your World According to Newton” Popular
`Science, Sep. 1992.
`KFAbatemarco, “From the Editor” Popular Science, Sep.
`1992, p. 4.
`
`Primary Examiner—Richard Hjerpe
`Assistant Examiner—Lun-Yi Lao
`Attorney, Agent, or Firm—Hickman Beyer & Weaver
`
`(57]
`
`ABSTRACT
`
`A gesture sensitive button for graphical user interfaces
`characterized by a digital computer, a screen coupled to the
`digital computer, a pointer mechanism used for pointing
`locations on the screen, a “button” image displayed on the
`screen, and a gesture recognizer for detecting gestures made
`on the screen by the pointing mechanism. The button is
`responsive to at least two different button gestures made on
`the screen on or near the button. A process implementing the
`gesture sensitive button of the present invention includes:
`providing a button image on a computerscreen; detecting a
`gesture made on the screen by a pointer such as a stylus,
`mouse, or trackball; determining whether the gesture is
`associated with the button image; and initiating one of at
`least two processes if the gesture is associated with the
`button image. The gesture sensitive button conserves real
`estate on the computer screen by permitting a single bution
`to control multiple functions and processes.
`
`2193023
`
`1/1988 United Kingdom ............. G06K 9/00
`
`20 Claims, 8 Drawing Sheets
`
`fo 224
`

`
`HIGHLIGHT
`BUTTON
`MOMENTARILY
`
`HIGHLIGHT
`BUTTON
`MOMENTARILY
`
`HIGHLIGHT
`BUTTON
`MOMENTARILY
`
`
`
`TURN ON ALL
`2) TURN OFF/ON|POP-UP
`RECOGNIZERS
`RECOGNIZER
`OF THE
`CHOICE
`RECOGNIZERS
`PALETTE
`
`ON STATE
`
`3)
`
`REVERSE
`BUTTON
`STATE
`
`SHOW
`RECOGNIZER
`BUTTON IN
`
`APPLE-1033
`
`1
`
`APPLE-1033
`
`

`

`U.S. Patent
`
`Mar. 18, 1997
`
`Sheet 1 of 8
`
`5,612,719
`
`‘Dl
`a
`
`ot
`
`ve
`
`OoO0¢OOO
`
`z29}
`
`oc]82
`
`vl
`
`9¢
`
`QLcl
`
`orKfnaokao
`
`9¢
`
`N
`
`2
`
`

`

`U.S. Patent
`
`Mar. 18, 1997
`
`Sheet 2 of 8
`
`5,612,719
`
`10
`
`/
`
`50 Thu 12/31 #1
`
`
`
`
`
`
`
`C) [wew] [Font] [recdenze][-] 56
`
`VooORkOOO
`
`3
`
`

`

`US. Patent
`
`Mar. 18, 1997
`
`Sheet 3 of 8
`
`5,612,719
`
`
`
`[view][Font] [’Recoanize][-"
`
`56
`
`58
`
`60
`
`62
`
`72
`
`(66
`
`70 CY)
`Fig. 3a
`
`72;
`
`66
`
`74
`
` (© [mew] [Font] aecoonze7y [-]
`Fig. 3b
`
`56
`
`4
`
`

`

`U.S. Patent
`
`Mar. 18, 1997
`
`Sheet 4 of 8
`
`5,612,719
`
`
`
`6
`
` 66
`
`56
`
`Fig. 4a
`
`
`
`5
`
`

`

`U.S. Patent
`
`Mar. 18, 1997
`
`Sheet 5of8
`
`5,612,719
`
`
`
`6
`
`

`

`Mar. 18, 1997
`
`Sheet 6 of 8
`
`U.S. Patent
`
`5,612,719
`
`Cor
`|
`(ZZ~. 66
`WELELLITIEILIT ITI.
`
`42
`
`7
`
`

`

`U.S. Patent
`
`Mar. 18, 1997
`
`Sheet 7 of 8
`
`5,612,719
`
`COLLECT
`DATAPOINTS
`
`206
`
`200
`
`
`
`IS GESTURE
`ASSOCIATED WITH
`
`A BUTTON?
`
`
`NO
`
`
`PROCESS
`GESTURE
`
`
`
`
`
`216
`
`PROCESS ALTERNATIVE
`BUTTON ACTION
`
`
`
`
`PROCESS
`
`
`IS GESTURE A
`
`STANDARDS
`
`
`
`TAP?
`BUTTON
`
`ACTION
`
`220
`
`IS GESTURE
`
`RELEVANT TOA
`BUTTON?
`
`
`
`
`8
`
`

`

`U.S. Patent
`
`Mar. 18, 1997
`
`Sheet 8 of 8
`
`5,612,719
`
`fo 224
`
`b»
`
`ON STATE
`
`HIGHLIGHT
`HIGHLIGHT
`HIGHLIGHT
`BUTTON
`BUTTON
`BUTTON
`1)
`MOMENTARILY|MOMENTARILY|MOMENTARILY
`
`>) | TURN OFF/ON|POP-UP TURN ON ALL
`
`
`
`RECOGNIZERS|RECOGNIZER OF THE
`CHOICE
`RECOGNIZERS
`PALETTE
`
`3)
`
`REVERSE
`BUTTON
`STATE
`
`SHOW
`RECOGNIZER
`BUTTON IN
`
`Fig. 9
`
`9
`
`

`

`5,612,719
`
`1
`GESTURE SENSITIVE BUTTONS FOR
`GRAPHICAL USER INTERFACES
`
`2
`real-estate”) is limited. It is therefore desirable to provide a
`soft-button functionality for a computer user interface which
`minimizes the use of screen real estate.
`
`This patent application is a continuation of U.S. patent
`application Ser. No. 07/985,588, filed on Dec. 3, 1992, now
`abandoned.
`
`BACKGROUND OF THE INVENTION
`
`This invention relates generally to computer systems, and
`more particularly to graphical user interfaces for computer
`systems.
`Graphical user interfaces or GUI are becoming increas-
`ingly popular with computerusers. It is generally accepted
`that computers having graphical user interfaces are easier to
`use, and that it is quicker to learn an application program in
`a GUI environmentthan in a non-GUI environment.
`
`SUMMARY OF THE INVENTION
`
`The present invention provides a gesture sensitive button
`for graphical user interfaces which is capable of detecting
`more than one screen gesture. In consequence, a single
`soft-button can be used to control a numberof user functions
`and processes,
`thereby conserving valuable screen real
`estate.
`
`10
`
`A gesture sensitive button for a graphical user interface in
`accordance with the present invention includes a CPU, a
`screen coupled to the CPU,a stylus for pointing to locations
`on the screen, a soft-button displayed on the screen, and a
`gesture recognizer for recognizing gestures associated with
`the button. The button is responsiveto at least two different
`button gestures including a tap gesture and a more complex
`gesture. Upon the detection of a gesture,
`the CPU will
`perform a designated function or process dependent upon
`which button gesture is detected.
`A method for providing a gesture sensitive button for a
`graphical user interface in accordance with the present
`invention includes the steps of detecting a gesture. made
`upon a screen of a digital computer by a pointing means,
`determining whether the gesture is associated with a button
`image provided onthe screen, and initiating one ofat least
`two processes if the gesture is determined to be associated
`with the button. A gesture is determined to be associated
`with the button if: (1) it contacts or is physically close to the
`button; and (2) it is one of the types of gestures associated
`with that button. One of the detected gesture is preferably a
`tap gesture, while the one or more additional gestures are
`more complex gestures
`such as
`a ‘“check-mark”, an
`“X-mark”, etc.
`A major advantage ofthe presentinventionis that a single
`soft-button on a computer screen can be used to control a
`numberoffunctionsor processes. This is particularly advan-
`tageous in the context of pen-based computer systems,
`where screen real estate is often at a premium.
`These and other advantages of the present invention will
`become apparent upon a reading of the following descrip-
`tions and a study of the various figures of the drawing.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`20
`
`25
`
`40
`
`45
`
`Arelatively new type of computer whichis well suited for
`graphical user environments is the pen-based computer
`system. A pen-based computer system is typically a small,
`hand-held computer where the primary methodforinputting
`data includes a “pen” or stylus. A pen-based computer
`system is often housedin a relatively flat enclosure, and has
`a dual-function display assembly which serves as both an
`input device and an output device. When operating as an
`input device, the display assembly senses the position of the
`tip of a stylus on the viewing screen and provides this
`positional information to the computer’s central processing
`unit (CPU). Some display assemblies can also sense the
`30
`pressure of the stylus on the screen to provide further :
`information to the CPU. When operating as an output
`device, the display assembly presents computer-generated
`images on the screen.
`The dual-function display assemblies of pen-based com-
`puter systems permit users to operate the computer as a
`computerized notepad. For example, graphical images can
`be input into the pen-based computer by merely moving the
`stylus across the surface of the screen. As the CPU sensesthe
`position and movementof the stylus, it generates a corre-
`sponding image on the screen to create the illusion that the
`stylus is drawing the image directly upon the screen,i.e. that
`the stylus is “inking” an image on the screen. With suitable
`recognition software, text and numeric information can also
`be entered into the pen-based computer system in a similar
`fashion. Besides serving as a notepad, pen-based computers
`can provide a numberof useful functions, such as serving as
`an address book, an appointmentcalendar, a to-dolist, etc.
`Pen-based computer systems often include “buttons” on
`their screen which can be “pressed” to perform a desired
`function or process. These buttons, sometimesreferred to as
`“soft” buttons, are images produced on the screen by the
`CPU which can be activated by placingthetip of a stylus on
`the button image in a gesture often referred to as a “tap.”
`Often, upon the detection of a tap, the CPU will change the
`image ofthe button to make it appear as if it was “pressed,”
`and then will perform the desired function or process.
`Soft buttons provided on computer screensare attractive
`user interfaces because they emulate the use of well-known
`buttons controls provided on electric and electronic devices.
`However, soft buttons have their limitations. For example,
`prior art soft buttons perform only a single function or
`process upon activation. Since it
`is desirable and often
`necessary to provide a numberof different functions to a
`user, computer screens tend to becomelittered with button
`images. This is particularly a problem with pen-based com-
`puter systems where the amount of screen area (“screen
`
`50
`
`55
`
`FIG. 1 is a block diagram of a computer system in
`accordance with the present invention;
`FIG.2 is a top plan view of the screen, case, and keypad
`of the computer system of FIG. 1;
`FIG.3a is a view of the status bar shown in FIG. 2 where
`a “recognize” button has been contacted by a “tap” gesture;
`FIG. 3b is the view of FIG. 3a after the CPU 12 has
`reacted to the tap gesture;
`FIG. 4a is the view of FIG. 3a where a “check-mark”
`gesture has been made on the recognize button;
`FIG.4bis the view of FIG.4a illustrating the result of the
`check-mark gesture on the recognize button;
`FIG. 5 is a detail view of the recognize button surrounded
`by a bounding box;
`FIG.6a illustrates the engagementof a tap gesture with
`the bounding box shownin FIG.5.
`FIG. 6b illustrates the engagement of a check mark
`gesture with the bounding box shown in FIG. 5;
`10
`
`60
`
`65
`
`10
`
`

`

`5,612,719
`
`3
`FIG.6c illustrates the engagementof a “X-mark” gesture
`with the bounding box of FIG.5;
`FIG.7a is a perspective illustration of the “view system”
`used by the present invention;
`FIG. 7b is a cross-sectional view taken along line 7/—7b
`of FIG. 7a;
`FIG. 8 is a flow diagram illustrating the process of the
`present invention; and
`FIG, 9 is a script table for three gestures performed on a
`soft-button of the present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`The present invention is well suited for pointer based
`computer systems such as the pen-based, stylus-based and
`mouse-based systems that are currently popular. For the
`purposesofillustration, the invention will be described in
`connection with a pen-based system.
`As shownin FIG. 1, a pen-based computer system 10 in
`accordance with the present invention includes a central
`processing unit (CPU) 12, read only memory (ROM)14,
`random access memory (RAM)16, input/output (I/O) cir-
`cuitry 18, and a display assembly 20. The pen-based com-
`puter system 10 may also optionally include a mass storage
`unit 22 such as a disk drive unit or nonvolatile memory such
`as flash memory, a keypad 24, and a clock 26.
`The CPU 12 is preferably a commercially available,
`single chip microprocessor. While CPU 12 can be a complex
`instruction set computer (CISC) chip, it is preferable that
`CPU 12 be one of the commercially available, reduced
`instruction set computer (RISC) chips which are known to
`be of generally higher performance than CISC chips. CPU
`12 is coupled to ROM 14 by a unidirectional data bus 28.
`ROM 14 contains the basic operating system for the pen-
`based computer system 10. CPU 12 is connected to RAM 16
`by a bi-directional data bus 30 to permit the use of RAM 16
`as scratch pad memory. ROM 14 and RAM 16are also
`coupled to CPU 12 by appropriate control and address
`busses, as is well knownto those skilled in the art. CPU 12
`is also coupledto the I/O circuitry 18 by bi-directional data
`bus 32 to permit data transfers with peripheral devices.
`V/O circuitry 18 typically includes a numberoflatches,
`registers and direct memory access (DMA)controllers. The
`purpose of I/O circuitry 18 is to provide an interface between
`CPU 12 and such peripheral devices as display assembly 20,
`Mass storage 22, and the keypad 24.
`Clock 26 providesa series of clock pulses andis typically
`coupledto an interrupt port of CPU 12by a data line 34. The
`clock pulses are used to time various functions and events
`relating to the computer system 10. The clock 26 can be
`eliminated and the clock function replaced by a software
`clock running on CPU 12,butthis tends to be a wasteful use
`of CPU processing power. In the present invention,clock 26
`provides clock pulses at 60 hertz (Hz).
`Display assembly 20 of pen-based computer system 10 is
`both an input and an output device. Accordingly,
`it
`is
`coupled to I/O circuitry 18 by a bi-directional data bus 36.
`Whenoperating as an output device, the display assembly 20
`receives data from I/O circuitry 18 via bus 36 and displays
`that data on a suitable screen. The screen for display
`assembly 20 is preferably a liquid crystal display (LCD) of
`the type commercially available from a variety of manufac-
`turers. The input device of display assembly 20 is preferably
`a thin, clear membrane which covers the LCD display and
`
`15
`
`20
`
`25
`
`45
`
`50
`
`55
`
`60
`
`65
`
`11
`
`4
`whichis sensitive to the position ofa stylus 38 onits surface.
`These position sensitive membranes are also readily avail-
`able on the commercial market. Combination display assem-
`blies such as display assembly 20 which include both the
`LCD and the input membrane are available from such
`vendors as Scriptel Corporation of Columbus, Ohio.
`The keypad 24 can comprise an array of switches. In the
`present embodiment, the keypad 24 comprises mechanical
`buttons which overlie the bottom edge of the membrane
`which covers the LCD display. When the buttons are
`depressed, the membrane senses the pressure and commu-
`nicates that fact to the CPU 12 via V/O 18.
`Other types of pointing devices can also be used in
`conjunction with the present invention. While the method of
`the present invention is described in the context of a pen-
`based system, other pointing devices such as a computer
`mouse, a track ball, or a tablet can be used to manipulate a
`pointer on a screen of a general purpose computer. There-
`fore, as used herein, the terms “pointer”, “pointing device”,
`“pointing means”, and the like will refer to any mechanism
`or device for pointing to a particular location on a screen of
`a computerdisplay.
`Some type of mass storage 22 is generally considered
`desirable. However, the mass storage 22 can be eliminated
`by providing a sufficient amount of RAM 16 to store user
`application programs and data. In that case, the RAM 16
`could be provided with a backup battery to preventthe loss
`of data even when the pen-based computer system 10 is
`turned off. However,it is generally desirable to have some
`type of long term storage 22 such as a commercially
`available miniature hard disk drive, nonvolatile memory
`such as flash memory, battery backed RAM, PC-data cards,
`or the like.
`
`information is input into the pen-based
`In operation,
`computer system 10 by “writing” on the screen of display
`assembly 20 with the stylus 38. Information concerning the
`location of the stylus 38 on the screen of the display
`assembly 20 is input into the CPU 12 via I/O circuitry 18.
`Typically, this information comprises the Cartesian (i.e. x &
`y) coordinates of a pixel of the screen of display assembly
`20 over which the tip of the stylus is positioned. Commer-
`cially available combination display assemblies such as the
`aforementioned assemblies available from Scriptel Corpo-
`ration include appropriate circuitry to provide the stylus
`location information as digitally encoded data to the I/O
`circuitry of the present invention. The CPU 12 then pro-
`cesses the data under control of an operating system and
`possibly an application program stored in ROM 14 and/or
`RAM 16. The CPU 12 next produces data which is output to
`the display assembly 20 to produce appropriate imagesonits
`screen.
`
`In FIG.2, the pen-based computer system 10 is shown
`housed within a generally rectangular enclosure 40. The
`CPU 12, ROM 14, RAM 16, I/O circuitry 18, mass storage
`22, and clock 26 are preferably fully enclosed within the
`enclosure 40. The display assembly 20 is mostly enclosed
`within the enclosure 40, but a viewing screen 42 of the
`display assembly is exposed to the user. As usedherein,the
`term “screen”will refer to the portion of the display assem-
`bly 20 which can display an image that can be viewed by a
`user. Also accessible to the user is the keypad 24.
`Upon power-up, pen based computer system 10 displays
`on screen 42 an initial note area N including a breaker bar
`B and a number of guidelines 44. The breaker bar B
`preferably includes the day and date of creation 46 ofthe
`note N, a note number 48, and a “router” button 50 which
`
`11
`
`

`

`5,612,719
`
`5
`allows notes to be dispatched to a printer, facsimile, the
`trash, etc. The optional guidelines 44 aid a user in entering
`text, graphics, and data into the pen-based computer system
`1
`
`In this preferred embodiment, the keypad 24 is nota part
`of the viewing screen 42 butrather, is a permanent array of
`input buttons coupled to the CPU 12 by I/O circuitry 18.
`Alternatively, the keypad 24 could comprise “‘soft buttons”
`generated at a convenientlocation onthe screen 42, in which
`case a “button” would be activated by touching the stylusto
`the screen over the image of the button. The keypad 24
`preferably includes a numberof dedicated function buttons
`52 and a pair of scroll buttons 54A and 54B. The operation
`of the scroll buttons 54A and 54B, and other aspects of
`computer system 10 are discussed in greater detail in co-
`pending U.S. patent application Ser. No. 07/868,013, filed
`04/13/92 on behalf of Tchaoet al. and entitled “Method for
`Manipulating Notes on a Computer Display”, now U.S. Pat.
`No. 5,398,301. That application is assigned to the assignee
`of the present application and its disclosure is hereby
`incorporated by reference in its entirety.
`The screen illustrated in FIG. 2 is referred to as the
`“notepad”, and is an application program running underthe
`operating system of the pen based computer system 10. In
`this preferred embodiment, the notepadis a special or “base”
`application which is always available beneath higher level
`applications. The notepad application, like other applica-
`tions, run within a window, whichin this instance comprises
`the entire viewing screen 42. Therefore, as used herein, a
`“window” is the entire screen or any portion of an entire
`screen which is dedicated to a particular application pro-
`gram.
`A status bar 56 is provided at the bottom of the notepad
`application. The status bar 56 is provided with a numberof
`active areas including a real time clock 58, a view button 60,
`a font button 62, a formulas button 64, a text button 66, a
`graphics button 68, and a nib button 70. Co-pending patent
`application U.S. Ser. No. 07/976,970, filed 11/16/92 on
`behalf of Foster et al., entitled “Status Bar for Application
`Windows” and assigned to the assignee of the present
`invention describes the operation of the status bar, and is
`hereby incorporated herein by reference in its entirety.
`In FIG.3a,the status bar 56, the clock icon 58 and buttons
`60-70 are shown. Each of the buttons 60-70 can be acti-
`vated by thetip of stylus 38. Preferably, the buttons such as
`recognized button 66 are the projected images of software
`objects produced by object-oriented programming tech-
`niques. For the purposeofillustration, the operation of the
`“recognize” button 66 will be described.
`When a user wishes to activate the recognize button 66,
`he or she makesa gesture with the stylus 38 to the button 66.
`The simplest gesture is the “pen-down’” gesture or “tap.” As
`used herein, a “tap” gesture is one wherethetip of the stylus
`38 contacts the surface of the screen 42 at substantially one
`point. In actual practice, the stylus may moveslightly over
`a number of adjacent pixels due to the unsteadiness of the
`human hand. The term “tap” also will refer to the placement
`ofthe tip of the stylus 38 on the screen 42 andits subsequent
`removal within a pre-determined period of time. Some
`buttons are activated by a “tap” gesture where the stylus
`contacts and depresses the button, while other buttons are
`activated by a tap gesture where a button is contacted and
`then released by removing the tip of stylus 38 from the
`screen 42. Therefore, the distinguishing feature of a “tap”is
`that the stylus is not moved substantially over the surface of
`the screenbut, rather, contacts the screen 42 in substantially
`one point.
`:
`
`20
`
`45
`
`30
`
`55
`
`60
`
`65
`
`6
`FIG.3dillustrates the result of detection of the tap gesture
`72. After the stylus 38 has been removed from the screen, a
`diagonal bar 74 is drawn across the button 66to indicate that
`the recognize function has been tumedoff. Another tap at 72’
`removes the diagonal bar 74 and turns the recognize func-
`tion on.
`
`In FIG.4a, a second gesture 76 in the form of a “check-
`mark” is formed over the recognize button 66. As seen in
`FIG.4b, this alternative gesture 76 creates a different result
`then the tap gesture 72 of FIG. 3a. In this instance,
`the
`alternative gesture 76 causes a “pop-up” window 78 to
`appear which includes a numberof “radio buttons” 80, 82
`and 84, and a close box 86. Oneofthe recognizers, namely
`the formula recognizer, the text recognizer, or the graphics
`recognizer, can be turned on by contacting a radio button 80,
`82, or 84, respectively. The window 78 can be closed by
`contacting a “close box” 86 with the tip of the stylus 38.
`It can be seen from a comparison of FIGS. 3a and 4a that
`the two different gestures on the button 66 resulting in two
`different functions or processes being undertaken by the
`system 10. By providing two or more functions or processes
`per button, valuable real estate on the screen 42 of the
`system 10 can be preserved.
`In FIG. 5, the system provides recognize button 66 with
`a bounding box 88. A “bounding box” is simply a rectan-
`gular box which encloses an object with a small buffer zone.
`Therefore, the coordinates of the bounding box 88 can be
`calculated in a straightforward manner from a knowledge of
`the coordinates of button 66. For example, the lowerleft-
`hand corner bounding box 88 has coordinates (X,,,,,-AX,
`YiminAY) where X,,,,, and Y,,,, ate the minimum X coor-
`dinate and the minimum Y coordinate of the button 66 and
`AX and AYprovide a small buffer zone between the corner
`of bounding box 88 and the button 66. Similarly, the upper
`tight hand corner of the bounding box 88 has coordinates
`(XraxtAX, YngxtAY) where X,,,, and Y,,.o, are the maxi-
`mum X and Y coordinates of the button 66, and AX, AY
`provide a buffer zone as before. The use of the bounding box
`88 makesit easier to manipulate the button 66 and to detect
`gestures associated with the button 66.
`In FIG.6a, a tap gesture 90 is determined-to be associated
`with button 66if it falls within the bounding box 88. In other
`words, the X coordinate of the gesture 90 should be between
`X,,in and X,,,,,, and the Y coordinate of gesture 90 should be
`betweenY,,,;, and Y,,., of the bounding box 88.
`FIG. 66 illustrates a second gesture 92 in the form of a
`“check-mark” made on button 66. There are a number of
`waysof detecting this gesture 92, but a straightforward way
`of detecting it would be to determine whethera first point 94
`is within the box 88, whether there was an angle 96 within
`a distance d1 of point 94, and whether a leg 98 extends at
`least a distance of d2 from the angle 96. This type of gesture
`recognition can be implemented by low-level algorithms. A
`numberofsuch gesture recognizing algorithms can be found
`in copending U.S. patent application Ser. No. 07/888,741, of
`S. Capps, entitled Method for Selecting Objects on a Com-
`puter Display and assigned to the assignee of the present
`invention, the disclosure of which is incorporated herein by
`reference in its entirety.
`In FIG. 6c, a second gesture 100 in the form of an
`““X-mark” is made on the button 66. The gesture 100 has a
`bounding box 102 which overlaps the bounding box 88 of
`the recognize button 66. Once the X-mark gesture is
`detected, the overlap area 104 between the two bounding
`boxes can be compared to the areas of the bounding boxes
`88 and 102 and, if the percentage of overlapis sufficiently
`
`12
`
`12
`
`

`

`5,612,719
`
`7
`high, the gesture 100 is considered to be associated with the
`button 66. For example,if the overlap area 104 is more than
`40% of the total area of either the bounding box 102 or the
`bounding box 88, the gesture 100 can be considered to be
`associated with the button 66.
`The described stylus gestures, objects, and processes are
`preferably accomplished within the context of a “view
`system”.
`In such a view system, various “views” or
`“objects” are stacked on top of each other, like pages of
`paper on a desk top. These views include a root view (such
`as the notepad) and virtually any number of views (within
`the limitations of the system) stacked ontop ofthe root view.
`The view system is a software routine which returns two
`pieces ofinformation whenthe screen is engaged(“tapped”)
`with a stylus. A first piece of information returned is which
`view or “object” was tapped. The second pieceof informa-
`tion returnedis the position of the tap on the tapped view.
`This location information is often returned in the form of
`Cartesian (x-y) coordinates. The view system therefore
`handles much of the routine input work for the computer
`system. Tapsby stylus on non-active areasof the screen can
`be ignored by the view system. Likewise, inappropriate
`inputs on active areas of the screen can be ignored or can
`generate error conditions which can be acted upon by the
`system.
`The term “object” has been used extensively in the
`preceding discussions. As is well known to software devel-
`opers, an “object” is a logical software unit comprising data
`and processes which give it capabilities and attributes. For
`example, an object can be queried as to its type and can
`return such data as the number of words that it contains.
`Objects can contain other objects of the same or of a
`different type. Objects can also be used to project images on
`a screen according to their object type. There are many well
`known texts which describe object oriented programming.
`See, for example, Object Oriented Programming for the
`Macintosh, by Kurt J. Schmucher, Hayden Book Company,
`1986.
`
`In the present invention, objects are preferably imple-
`mented as part of a frame system that comprises frame
`objects related by a semantic network. A description of
`semantic networks can be found in “A Fundamental Tradeoff
`in Knowledge Representation and Reasoning”, Readingsin
`Knowledge Representation, by Brachman and Leveseque,
`Morgan Kaufman, San Mateo, 1985.
`The use of object oriented programming, frame systems,
`and the aforementioned view system simplifies the imple-
`mentation of the processes ofthe present invention. In FIG.
`7A, a conceptual representation of various objects in view
`system is shown. The notepad application on the screen 42
`forms a first or “root” layer, and the status bar 56 is
`positioned in a second layer “over” the root layer 42. The
`clock 58 and buttons 60-70 are positioned in a third layer
`“over” the status bar 56.
`In FIG. 7b, a cross-section taken along line 7b>—7b of
`FIG. 7a furtherillustrates the conceptual layering of various
`objects. The aforementioned viewing system automatically
`handles “taps” and other gestures of the stylus 38 on the
`screen 42 by returning information concerning which object
`has been gestured and where on the object the gesture
`occurred. For example, a gesture A on the screen 42 could
`create an action for the notepad application. A gesture B on
`the status bar 56 could beofpart of a drag operation to move
`the status bar on the screen 42. A gesture C on recognize
`button 66 can activate a process associated with that button.
`It is thereforeclear that the object oriented programming and
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`35
`
`60
`
`65
`
`8
`view system software makes the implementation of the
`processes of the present invention less cumbersome than
`traditional programing techniques.
`In FIG.8, a process 200 for providing a gesture sensitive
`button for graphical userinterfaceis illustrated. The process
`begins at step 202, and, in a step 204, it is determined
`whetherthe stylus 38 is on the screen 42. If not, step 204
`goes into a wait state. If the stylus is on the screen, data
`points are collected in a step 206 andit is determined in a
`step 208 whetherthe stylus has been lifted from the screen.
`If not, process controlis returned to step 206. After the stylus
`has beenlifted from the screen,it is determinedin a step 210
`whetherthe collection of data points forms a gesture asso-
`ciated with a button in a step 210. If the gesture is not
`associated with a button, the gesture is processed in a step
`212 and the process 200 is completed as indicated at step
`214. If it was determined by step 210 that a gesture was
`associated with the button,then in a step 216it is determined
`whether the gesture is a tap. If the gesture was a tap, the
`standard function for the button is performed in step 218 and
`the process is completed as indicated by step 214. If the
`gesture is associated with a button butis not a tap, then a step
`220 determines whetherthe gesture is relevant to the button.
`If the gesture is not relevant(i.e. that gesture meansnothing
`to that button) then the process is completed as indicated at
`214. If the gesture is relevant to the button, then an alter-
`native button action is processed in step 222 andthe process
`is completed at step 214.
`In FIG.9, a script table 224 helps determine: (a) whether
`the gesture is relevant to the button; and (b) what to do when
`that gesture is detected in association with the button. In this
`example, a button detects three different types of gestures, a
`“tap” 226,a “check-mark” 228, and an “X-mark” 230.If the
`tap gesture 226 is detected, the “script” for the indicated
`process is to: (1) highlight the button 66 momentarily; (2)
`toggle (i.e. tun off if on, turn on if off) the recognizers; and
`(3) reverse the button state. As described previously, the
`button 66 indicates that the recognizers are on when the
`button says “recognize”, and indicates that they are turned
`off when there is a diagonal line through the word “recog-
`nize”. When the check-mark gesture 228 is found to be
`associated with the button,
`the process script
`is to:
`(1)
`highlight the button momentarily; and (2) pop upthe rec-
`ognizer palette 78. When the X-mark gesture 230 is
`detected, the script is: (1) highlight the button 66 momen-
`tarily; (2) turn on all of the recognizers; and (3) show the
`recognizer button in the “‘on”state. In this example, other
`gestures performed on the button 66 are considered “non-
`relevant”. Also, a tap, check-mark, or X-mark gesture per-
`formed elsewhere on the screen 42 would not be considered
`relevant to the button 66.
`It is desirable that a given gesture shouldinitiate a similar
`type of process regardless of which button it contacts. For
`example, a check mark could always means “START”, an
`X-mark could always mean “STOP”, etc. The button then
`provides the specific context for the commandinitiated by
`the gesture.
`While this invention has been described in terms of
`several preferred embodiments, there are alterations, per-
`mutations, and eq

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket