throbber
United States Patent
`
`[19]
`
`Bier
`
`5,561,811
`[11] Patent Number:
`[45] Date of Patent: Oct. 1, 1996
`
`
`
`lllllllllllllllll|l||||||||Illlllllllllllllllll||l|l|||||||||ll||||l|ll||||
`U3005561811A
`
`[54]
`
`METHOD AND APPARATUS FOR PER-USER
`CUSTOMIZATION OF APPLICATIONS
`SHARED BY A PLURALITY OF USERS ON A
`SINGLE DISPLAY
`
`[75]
`
`Inventor: Eric A. Bier, Mountain View, Calif.
`
`[73]
`
`[21]
`
`[22]
`
`[51]
`[52]
`
`[58]
`
`[56]
`
`Assignee: Xerox Corporation, Stamford, Conn.
`
`Appl. N0.: 974,044
`
`Filed:
`
`Nov. 10, 1992
`
`Int. Cl.6 ........................................................ G06F 3/00
`US. Cl.
`.......................... 395/825; 395/153; 395/155;
`395/893; 395/600; 395/650; 395/700; 395/800;
`364/DIG. l; 364/236.8; 364/237.2; 364/237.3;
`364/238; 364/286; 364/286.3
`Field of Search .................................. 341/20, 22, 23;
`345/115, 116, 162, 163, 167, 172, 145;
`395/200, 275, 600, 650, 700, 800, 153—155,
`200.04, 821, 828, 836, 882, 892—893; 364/188,
`189, 190, 474.22; 273/438
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`12/1977 Baxter ....................................... 341/22
`4,064,560
`.. 340/709
`4/1982 Akashi
`..............
`4,323,891
`
`..... 395/887
`2/1988 Endfield et al.
`..
`4,727,478
`
`5/1992 Kerr ........................ 395/600
`5,115,501
`
`8/1992 Belt et a1. .............. 395/887
`5,136,694
`
`5,157,384 10/1992 Greanias et a1.
`..
`..... 340/706
`
`1/1993 Aihara et a1. .............. 395/650
`5,179,700
`
`5,220,675
`6/1993 Padawer et a1.
`..
`..... 395/800
`
`2/1994 Gram .......................... 395/700
`5,287,514
`
`5,319,747
`611994 Gerrissen et a].
`..... 395/155
`
`............................. 395/153
`5,337,407
`8/1994 Bates et a1.
`
`
`..
`.
`. ..
`.. 395/800
`11/1994 San Soucie et al.
`5,369,778
`5,473,744 12/1995 Allen et al.
`............................. 395/154
`
`FOREIGN PATENT DOCUMENTS
`
`58142996
`6271453
`
`Japan.
`8/1983
`Japan.
`3/1987
`OTHER PUBLICATIONS
`
`Bier, E. A. et a1. “MMM: A User Interface Architecture for
`Shared Editors on a Single Screen,” Proceedings ofthe ACM
`Symposium on User Interface Software and Technology,
`Nov., 11—13, 1991, P. 79.
`Simpson, A. “Mastering WordPerfect S. 185.2 for Win-
`dows” CA, Sybex, 1993, fig. 2.2.
`WordPerfect for Windows version 5.1, WordPerfect Corpo-
`ration,. Apr. 30, 1992.
`
`Primary Examiner—Lance L. Barry
`Attorney, Agent, or Finn—Rosen, Dainow & Jacobs Limited
`Liability Partnership
`
`[57]
`
`ABSTRACT
`
`A multi-user multi-device system enables a plurality of users
`to control a single screen. Each user has one or more input
`devices, which can be used to control one or more stored
`applications. At any time, the system produces a consistent
`view of all applications on the single screen. The input from
`each user produces a response customized to the preferences
`of that user. Each user can inform the system of which
`devices that user is using. Inputs to the system initiate the
`building of Event Records that are queued and then directed
`to specific applications. The screen is updated, and the
`coordinates of child applications are determined, only dur-
`ing pauses in the operations of all applications.
`
`7 Claims, 13 Drawing Sheets
`
`
`
`Petitioners Ex. 1001 Page 1
`
`Petitioners Ex. 1001 Page 1
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 1 of 13
`
`5,561,811
`
`
`
`Petitioners Ex. 1001 Page 2
`
`Petitioners Ex. 1001 Page 2
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 2 of 13
`
`5,561,811
`
`Reci Ediiar
`Text Ediior
`
`.1111!-
`
`Primary device Area
`
`Secondary device Area
`
`F/G.3
`
`Petitioners Ex. 1001 Page 3
`
`Petitioners Ex. 1001 Page 3
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 3 of 13
`
`5,561,811
`
` Coopemie
`
`FIG/2
`
`feedback
`display area
`
`Petitioners Ex. 1001 Page 4
`
`Petitioners Ex. 1001 Page 4
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 4 of 13
`
`5,561,811
`
`
`F/G.9
`
`Petitioners Ex. 1001 Page 5
`
`Petitioners Ex. 1001 Page 5
`
`

`

`US. Patent
`
`,
`
`Oct. 1,1996
`
`Sheet 5 of 13
`
`5,561,811
`
`F / 6 . / 4
`
`F1
`
`..
`
`Done by the
`OS thread
`known as the
`Device Process
`
`Build-event record with
`time stamp d9ViC€
`identification and
`M device event type
`
`
`
`|00
`
`l0l
`
`l02
`
`|03
`
`Enqueue Event Record
`on System Queue
`
`instance
`Add user
`device states and
`modified event
`(including x-y coordinates)
`to the event record
`
`.
`Done by the
`Opemfing
`system thread
`known as the
`Notify Process
`
`l08
`
`l06
`
`Execute menu
`input algorithm
`
`evenItSin a
`home area
`7
`
`Y
`Execute home area
`input algorithm
`
`N
`
`
`
`Execute
`OPPI‘CO’HOH
`
`
`input algorithm
`|09
`
`.
`
`,
`
`Petitioners Ex. 1001 Page 6
`
`Petitioners Ex. 1001 Page 6
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 6 of 13
`
`5,561,811
`
`set .by the
`devrce process
`
`F7615
`
`se’r b the
`nofi y process
`
`
`
` Application AppIico’rion
`Queue
`
`Process
`
`Petitioners Ex. 1001 Page 7
`
`Petitioners Ex. 1001 Page 7
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 7 of 13
`
`5,561,811
`
`'50
`
`Lei U = The
`User Insionce
`Record of This
`Home Area
`
`[5|
`
`Y
`
`Previous owner
`-
`Of Device D
`
`‘
`
`
`
`
`152
`
`Remove previous
`owner from User
`Insionce in Device
`and Device to Use
`Insiunce fables.
`
`for deviceD
`
`F/G. /6
`
`'57
`
`
`
`'53
`
`Inspect lisi of devices
`curreniiy cioimed
`in user instance 10
`device iobie by
`user insiance U
`
`'55
`
`
`Add Dio ihe lisi
`156
`and ossocioieU
`I
`D
`d
`
`
`with o in the
`.thoirf.” fY
`
`
`'“
`0
`'3
`Device io Use
`
`(.9
`Insicnce Tobie
`
`
`
`
`
`Click oiiop
`
`Y
`
`'
`
`Record device
`
`.OfHomimary
`Record Das
`
`Petitioners Ex. 1001 Page 8
`
`Petitioners Ex. 1001 Page 8
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 8 of 13
`
`5,561,811
`
`“$8,553:
`
`
`
`Es;22m8:22.5:
`
`28$:o_§__&<
`
`”:2;25.soaE<w=cofio£om££cmDUMB{flue
`
`
`
`"WageHgfiwscgmémms
`
`
`
`ugésgzmefia8:8__&<so:
`
`28%22w8:22.5:
`
`anmaggozfié
`uEufiogmwefia
`€§§§83€
`
`"885533
`
`”$85
`
`E2303:5
`28mm8:8:&<
`
`DHH2%
`
`aszmsceuctog
`
`H321%
`
`“mtgggsa
`
`
`
`"2833122
`
`.
`
`'I'
`.
`. ‘cv-
`
`‘
`
`.
`
`'1
`
`
`
`
`
`-.. _P... .
`
`Petitioners Ex. 1001 Page 9
`
`Petitioners Ex. 1001 Page 9
`
`
`
`
`
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 9 of 13
`
`5,561,811
`
`FIG' 20
`
`Remove eveni
`E from queue
`U= User who
`generaied ihe even’r
`
`A irooi
`applica’rion
`
`|80
`
`l
`
`8|
`
`I82
`
`i8?)
`
`Le’r A=chiid I
`
`Direc’r evem‘
`Record to A
`
`Examine The user
`ins’rance s’ro’re
`records of A
`
`Find The user instance
`
`siaie record of
`
`U,call H R
`
`
`
`
`
`
`
`Lei child=R's poih to
`
`mouse focus opplicohon field
`
`
`
`
`Pass
`eveni
`
`fochnd
`
`
`
`
`find fronimos’r
`of A ’rhai has
`ihe mouse career
`
`I90
`
`
`
`
`Place eveni in
`mplicoiion
`queue ofA
`
`
`
`
`Does child
`exist
`
`Y
`
`the chiid
`
`I9I
`
`|92
`
`Petitioners Ex. 1001 Page 10
`
`Petitioners Ex. 1001 Page 10
`
`

`

`US. Patent
`
`Oct. 1, 1996
`
`Sheet 10 of 13
`
`5,561,811
`
`F/G.2/
`
`
`
`Pareni applica’rion
`
`A, wishes To pass a
`
`pointing eveni io
`
`
`chiid applicaiionC
`
`
`200
`
`20|
`
`Y
`
`N
`
`Has A
`205
`
`
`
`paused oi
`
`
`the reques’r
`
`of ano’rher
`I’OCGSS
`P
`Q
`
`209
`N
`
`204
`
`Y
`
`206
`
`202
`Transform
`
`coordinafes
`
`R
`
`ecor
`
`d A
`heaiihy
`
`as
`
`S
`
`
`
`C
`ei oniinue
`Okfiag 10
`false
`
`
`
`
`Y
`
`Discard
`even’r
`
`2'0
`
`Requesi A's app
`process to pause
`
`Wai’run’rii Apauses
`
`2H
`
`2'2
`
`Transform coordinaies
`
`2|3
`
`Res’rariL A's
`applicaiion process
`
`2'4
`
`207
`
`Transform
`0001111110183
`
`208
`
`. Se’r Coniinue
`Ok flag ’10
`
`free
`
`Petitioners Ex. 1001 Page 11
`
`Petitioners Ex. 1001 Page 11
`
`

`

`Oct. 1, 1996
`
`Sheet 11 of 13
`
`US. Patent
`'F/G‘. 24
`
`Request all applications
`
`to stop after processing
`current events
`
`
`
`5,561,811
`
`
`250
`
`25‘
`
`252
`
`
` Application paint
`
`
`request
`
`received
`
`Gather all
`point requests
`
`Compute rectangle
`that bounds all
`
`regions to change
`
`253 Request root
`
`
`application to redraw
`itself in the
`
`region, and recursively.
`
`ask child applic.
`to
`
`redraw themselves
`
`Restart
`all
`
`254
`
`
`
`applications
`
`Wait for next
`paint request
`
`Petitioners Ex. 1001 Page 12
`
`Petitioners Ex. 1001 Page 12
`
`

`

`U.S. Patent
`
`Oct. 1, 1996
`
`Sheet 12 of 13
`
`5,561,811
`
`
`
`322mg:52853?;am:2838hemofiucaweso
`
`mg:m:25
`
`hNGFk
`
`2:85
`+8.30
`
`2%
`
`$223
`$38
`
`838
`
`,‘/\$3:/_w\\Efimfiwo
`
`//123%run8.;\\\.Q
`
`
`...222822:58
`
`
`
`.\.N.#5:285285.31+Em,\E822251.2822th,,
`
`Petitioners Ex. 1001 Page 13
`
`Petitioners Ex. 1001 Page 13
`
`
`
`

`

`US. Patent
`
`Oct. 1,1996
`
`Sheet 13 of 13
`
`5,561,811
`
`Deliyering inpu’r and Refreshing the Display in lhe Presence of
`Mulhpe Users and Multiple Applicaiions
`
`' P
`
`etitioners Ex. 1001 Page 14
`
`Petitioners Ex. 1001 Page 14
`
`

`

`5,561,811
`
`1
`METHOD AND APPARATUS FOR PER-USER
`CUSTOMIZATION OF APPLICATIONS
`SHARED BY A PLURALITY OF USERS ON A
`SINGLE DISPLAY
`
`FIELD OF THE INVENTION
`
`This invention relates to a method and apparatus employ-
`ing a single display for a plurality of users, and is more in
`particular directed to a method and apparatus for establish-
`ing correspondence between the users and pointing devices
`in such a system. The invention is related to the invention -
`disclosed in US. patent application Ser. No. 07/974,036,
`filed on the same date as the present application, now US.
`Pat. No. 5,442,788, issued Aug. 15, 1995, the contents of
`which are incorporated by reference herein.
`
`BACKGROUND OF THE INVENTION
`
`Many modern groupware applications generally require
`that each of a number of participants have his or her own
`computer. There are many occasions, however, in which two
`or more people wish to collaborate in a single-computer
`situation. This may occur, for example, when one person
`visits another’s office, or when two or more people are using
`a large-screen computer, such as a Xerox LIVEBOARD®
`interactive display system, which is described in Proceed-
`ings of CHI,92, ACM Conference on Human Factors in
`Computing Systems, May 3—7, 1992, Monterey, Calif., pgs.
`599—607. for per-user customization. Those that do usually
`take advantage of the fact that each user has his or her own
`computer and is running a separate instance of an applica-
`tion. Prior systems have not permitted customization such
`that the same instance of the application and the same screen
`can be shared. The superscript identifications in the follow-
`ing discussion refer to the Bibliography at the end of this
`disclosure.
`
`Shared window systems1 in the past have allowed users to
`share standard applications over a network. Some systems of
`this type are of the What You See Is What I See (WYSY—
`WIS) type. Work on shared window systems has focused on
`sharing unmodified single—user applications, maintaining a
`networked conference, and floor control. These systems
`have experienced difliculties in maintaining consistent
`views between displays when local user preferences are
`honored.
`
`Networked conference-aware systems such as window
`systemsz, text editors3 and drawing tools4 allow users at
`different workstations to make changes simultaneously.
`These systems permit some types of local user preferencess.
`One simple system of this type is Commune4 which allows
`users to simultaneously draw with a stylus on the pages of
`a shared electronic notebook. This latter system shows the
`same image to all users and uses colored cursors and objects
`to distinguish among different users.
`SharedArk6 supports collaborative learning of physics by
`allowing users to simulate experiments. In this system, users
`move around a planar space that contains objects that they
`can manipulate. When users’ view of the plane overlap, the
`views are WYSIWIS in the shared region. Each user con-
`trols a pointer, labeled with the user’s name, that is visible
`on all conference screens. Any user can manipulate any
`object in his or her view. Buttons in this system can be
`applied to any object, and shared between users. This system
`also supports per-user pointers, shared buttons and objects,
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`lightweight locking of objects, and equal status of partici-
`pants.
`
`Several systems support meetings by allowing partici-
`pants, working at individual workstations, to control a large
`shared screen. Some use chalk-passing floor control, such as
`the Capture Lab7 Others allow simultaneous editing, such as
`Colabs. The Colab team, in reporting on the Cognoter tool,
`noted that simultaneous access to the screen improves
`brainstorming because users need not wait for others to
`complete an entry before making their own contribution.
`They also noted that shared user interfaces need to be
`simple, because there is little time for training in a group
`setting. In all of these systems, however, the number of
`active participants is limited by the number of machines and
`the participants must go to a special meeting room.
`
`SUMMARY OF THE MENTION
`
`The present invention is directed to the provision of a
`method and apparatus for sharing customizable software
`applications on a single display that overcomes the above
`discussed disadvantages of prior systems and that permits
`two or more persons to share the same instance of an
`application, exploying a common screen.
`The invention is directed to the solution of the following
`user interface problems:
`1. Customized simultaneous input. In a system where a
`plurality of users may invoke the same command in the
`same application by taking comparable actions using
`comparable, but distinct,
`input devices,
`it must be
`possible to vary the effect of that command depending
`on the preferences of the user who generated it.
`2. Registration. It must be possible to quickly register
`each input device with a user, and hence, with a set of
`preferences.
`3. Per-user feedback. The system must direct feedback to
`the correct user without unduly disturbing other users.
`In addition, the invention is directed to the solution of the
`following architectural problem:
`Replication. The data structures of each application must
`be replicated for each user to support per—user modes,
`selections, and preferences.
`In accordance with the invention, a special on-screen
`region, referred to herein as the “Home Area”, allows each
`user to claim input devices, such as mice, that move cursors.
`The user simply clicks on a Home Area with the cursor in
`order to establish the association between the user repre-
`sented by that Home Area and the input device. A user’s
`Home Area also provides a natural place to position the
`control panel for that user’s current application. These
`control panels are referred to herein as “Home Area menus”.
`In addition, the system must provide feedback to each
`user without confusing the other users. In accordance with
`the invention this result
`is achieved by displaying the
`feedback for each user in a different color, and at other times
`by displaying feedback for each user in a different region of
`the screen.
`
`The system in accordance with the invention supports
`multiple users, and also supports multiple applications. Such
`multiple applications can be spatially nested inside one
`another, forming a logical hierarchy where one application
`may be nested inside another. Users can act within this
`hierarchy at any level, with different users acting at different
`levels.
`
`In the system and method of the invention:
`
`Petitioners Ex. 1001 Page 15
`
`Petitioners Ex. 1001 Page 15
`
`

`

`3
`
`4
`
`5,561,811
`
`(1) Each user can have a different “current position”. For
`instance, one user can be adding text to a first paragraph
`of a document, while another user adds text to the third
`paragraph.
`(2) Each user can be operating in a different mode. For
`example, one user can be rotating one object while
`another user is creating new objects.
`(3) Each user can have different style settings. For
`example, when one user types, the new text appears in
`his or her chosen color or font. Another user can create
`text in a different font or color.
`
`(4) Feedback involving a particular user (e.g. what appli-
`cation that user is currently using, which input devices
`are associated with that user, what operation the user is
`performing, and what current modes, such as current
`color or current font, are in force) is displayed in a way
`that indicates which user that feedback is directed to.
`The user interface of the present invention is comprised
`of three visible components, namely:
`1. Home Areas for providing iconic representations of the
`users.
`
`2. Applications that allow the users to perform tasks, such
`as editing document media.
`3. Menus, which provide buttons that users can press to
`invoke commands.
`
`BRIEF FIGURE DESCRIPTION
`
`In order that the invention may be more clearly under-
`stood, it will now be disclosed in greater detail with refer-
`ence to the accompanying drawings, wherein:
`FIG. 1 is a block diagram of a system in accordance with
`the invention;
`FIG. 2 is a view of a screen display in accordance with
`one embodiment of the invention;
`FIG. 3 is a view of the Home Area of the screen display
`of FIG. 2;
`FIG. 4 is a view of the screen display of a Rectangle
`Editor;
`FIG. 5 is a view of the screen display of a Text Editor;
`FIG. 6 is a screen display illustrating a method for moving
`a rectangle in a rectangle editor, in accordance with the
`invention;
`FIG. 7 is a screen display illustrating resizing of a
`rectangle in a rectangle editor;
`FIG. 8 is a screen display illustrating the simultaneous
`resizing of a rectangle by manipulation of two pointing
`devices;
`
`FIG. 9 is a screen display illustrating the display of four
`editors on the screen display;
`FIG. 10 is a screen display illustrating a doubly selected
`rectangle;
`FIG. 11 is a screen display illustrating doubly selected text
`characters;
`FIG. 12 is a screen display illustrating a Home Area with
`rectangle creation color feedback;
`FIG. 13 is a screen display illustrating a Home Area with
`current font feedback;
`FIG. 14 is a flow diagram of the processing of an input
`from an external device such as a mouse;
`FIG. 15 illustrates the data structure of an Event Record;
`FIG. 16 is a flow diagram of processing of Event Records
`in the Home Area;
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`60
`
`65
`
`FIG. 17 is a simplified diagram illustrating the interface
`between the Notify Process and the shared applications;
`FIG. 18 is a simplified illustration showing the updating
`of a screen, in accordance with the invention;
`FIG. 19 is a diagram illustrating the structure of an
`application;
`FIG. 20 is a flow diagram illustrating the handling of an
`Event Record by an application;
`FIG. 21 is a flow diagram illustrating the transformation
`of coordinates for a child editor;
`FIG. 22 illustrates a rectangle editor in which a rectangle
`contained in that editor and the editor itself are being
`simultaneously repositioned;
`FIG. 23 illustrates the results of the instructions of FIG.
`22, in the absence of the system of the invention; and
`FIG. 24 is a flow diagram of a Paint Process in accordance
`with the invention;
`FIG. 25 illustrates the involvement of user preferences in
`the processing of input events from two different users, both
`when an application is constructing a command and when
`the display is being updated; and
`FIG. 26 illustrates three applications that are receiving
`input from two input devices and updating a single display.
`
`DISCLOSURE OF PREFERRED
`EMBODIMENTS OF THE INVENTION
`
`Referring now to the drawings, FIG. 1 is a block diagram
`of a basic multi-user system that includes a computer 20,
`which may be a conventional microcomputer having RAM
`and program ROM, and a plurality of input devices 21, 22,
`23. The devices 21, 22 may be pointing devices, such as
`mouses with one or more mouse buttons, and the input
`device 23 may be a keyboard. It will be understood that the
`invention is not
`limited to this configuration of input
`devices, and that more input devices may be provided than
`herein illustrated. The computer system also is provided
`with a display screen 25 which may be a conventional
`computer monitor, or it may be a display device having a
`much larger surface area.
`The system is adapted to be employed by one or more
`users. For example, a single user may employ the two
`devices 21, 22, with the system reacting to inputs from the
`two devices in different manners. In this case, as discussed
`herein the two devices have different “user instances”.
`
`Alternatively, the two devices 21, 22 may be controlled by
`dilferent users, with the users controlling functions on the
`same application or in different applications. Further input
`devices may be assigned to other users, or be used for other
`user instances.
`
`The Display Screen
`
`A typical display that. may be provided on the display
`screen 25, in accordance with the invention, is illustrated in
`FIG. 2. This screen includes a command menu 30, a rect-
`angle editor 31 which may have a nested text editor 32, a text
`editor 33 and a Home Area 34. The illustrated editor screens
`are exemplary only, and other combinations of editor screens
`may be employed.
`In order to invoke any of the selections of the cormnand
`menu 30, the user controls his or her input device to place
`the cursor on the desired menu selection, and clicks or
`otherwise controls the device to make the selection.
`
`Petitioners Ex. 1001 Page 16
`
`Petitioners Ex. 1001 Page 16
`
`

`

`5
`
`6
`
`5,561,811
`
`The Rect Editor selection immediately turns all selected
`rectangles into rectangle editors, the Text Editor selection
`turns them into text editors, the Menu turns them into menus,
`the Color Menu turns them into color menus and the Delete
`selection deletes the selected rectangles. The New User
`selection creates a new Home Area for the user named by the
`selected text characters in the selecting user’s current appli—
`cation. The Print selection produces a file in a page descrip-
`tion language corresponding to the selecting user’s current
`application.
`A separate Home Area is employed for each user partici-
`pating in a session. Briefly, in order to join a session, a new
`user may enter his or her name into a keyboard or via a
`selection menu, followed by the clicking of the “New User”
`menu button. Other conventional techniques may of course
`be provided for creating a new Home Area. The system of
`the invention then displays a new Home Area that displays
`the new user’s name. The Home Area of a user may appear,
`for example, as illustrated in FIG. 3, wherein the user’s
`name is displayed at the top of the area. The user then moves
`the cursor to the name in the desired Home Area, as seen in
`FIG. 2, and clicks his or her mouse button or other input
`device. As a result, the system assigns the respective input
`device to that user, and any actions performed with the input
`device will take his or her preferences into account. The
`change of ownership of the input device may cause the
`cursor color to change to that of the user’s Home Area. A
`user may have more than one Home Area, which may be
`selected in the same manner as above discussed. Extra Home
`Areas allow users to switch back and forth between different
`
`sets of preferences. Each Home Area is said to belong to a
`different “user instance”.
`
`The applications may, for example only, be rectangle
`editors and text editors. These applications are discussed
`herein only to illustrate generally the function of an appli-
`cation, and the invention is not limited to these specific
`applications. The rectangle editor permits a user to create
`solid colored rectangles on the screen, to select and delete
`groups of rectangles, and to change their size, position and
`color. The text editor, on the other hand, allows users to
`place a starting point for a line of text, to enter characters,
`to choose a font and color, to move a line of text, to select
`a sequence of characters, and to delete or change the color
`of selected characters.
`
`Since the system of the invention is largely concerned
`with keyboardless interfaces, all editor commands, except
`for example text entries, are preferably activated by a
`pointing device such as a mouse. Command selection
`involves pointing to different parts (called “handles”) of
`graphical objects on the screen for the purpose of invoking
`difierent operations.
`For example, as illustrated in FIG. 4, the rectangle editor
`may display one or more rectangles, which may be nested.
`The rectangles may have a wide border or frame. The screen
`display of a text editor is illustrated in FIG. 5, wherein text
`may appear in desired fonts and colors.
`In order to move a rectangle, in the rectangle editor, from
`one position to another, without changing its size, the user
`places his or her cursor 61 on the border of the rectangle 60
`that is to be moved, as seen in FIG. 6, clicks and holds the
`input device button, and drags that border in any direction,
`until the desired position is reached. If, on the other hand, the
`user desires to change the size of a rectangle, the user places
`his or her cursor 61 on a comer of the rectangle 62, as seen
`in FIG. 7, clicks and holds the input device button, and drags
`that corner in a direction to change the lengths of the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`adjacent two sides of the rectangle, to thereby increase or
`decrease the size of the rectangle.
`A user may create a new rectangle on the screen by
`clicking his or her input device with the cursor on the
`background of the rectangle editor portion of the screen.
`Several users may simultaneously work in an application,
`performing different operations and using different modes.
`For example, in the rectangle editor, one user may drag one
`rectangle while another user resizes the rectangle, or while
`another user performs operations on another of the rect—
`angles. As seen in FIG. 8, two users via cursors 64, 65 may
`be simultaneously stretching the rectangle 66 in different
`directions. The rectangle editor keeps track of both opera-
`tions and updates the screen to show their progress. Sirni—
`larly, the users may employ the color menu 36 in order to
`control the color that rectangles will appear when created
`using the respective input device. For example, one user
`may choose blue as the current color for that editor while
`another user chooses red. The editor stores both users’
`
`modes and creates a rectangle of a color appropriate to the
`creating user.
`Users can work simultaneously on the same object. One
`user can add characters to a text string while another changes
`the color of existing characters. Very fine-grained sharing is
`also possible. One user can stretch a rectangle by one comer
`while another stretches its opposite comer, as seen in FIG.
`8, or one user can type a string of characters while another
`repositions the string.
`In FIGS. 6-8, the arrows indicate cursor motion; they are
`not visible on the screen.
`
`The system in accordance with the invention does not
`have a conventional window manager. Instead, the desktop
`is an instance of the rectangle editor. The rectangle editor
`allows other editors to be nested inside of it. Each editor
`presents a finite window onto an “infinite” plane that con-
`tains the objects and child editors that editor manages, which
`may overlap. The shape and position of this window is
`managed by the editor’s parent. Thus, FIG. 9 shows several
`rectangle editors A, B and D and a text editor C. The text
`editor C is partly hidden by sibling editor B and by a
`rectangle 70, and the rectangle editor D is partly outside of
`the porthole of its parent editor B. Each child application
`occupies a display sub-region of its parent’s display region.
`Thus, application A is the parent of child applications B and
`C, and application B is the parent of child application D.
`Because the window system of the invention is an editor,
`users do not need to learn both window manager and editor
`operations, unlike systems where selection of an editor is
`different from selection within an editor. Users can also
`
`place shared widgets in the document in which they are
`working; widgets do not need to remain at the top level.
`In single-user environments, graphical feedback is used to
`display aspects of system state, such as the current applica-
`tion mode, color, or insertion point. In accordance with the
`present invention, however, graphical feedback must show
`all of this information, as well as indicating the user to which
`the feedback applies. Color and spatial placement may be
`employed to indicate this correspondence.
`Each user has a color to identify his or her cursors,
`insertion points, and selections. As illustrated in FIG. 10,
`two users have selected a rectangle 72, 74 and each user’s
`selection is shown by highlighting a comer 75, 76 of the
`rectangle frame in that user’ s color. Similarly, FIG. 11 shows
`two selections in a text string, each marked by an underline
`77, 78 in one user’s color. The overlapping part of the
`selection is underlined twice.
`
`Petitioners Ex. 1001 Page 17
`
`Petitioners Ex. 1001 Page 17
`
`

`

`5,561,811
`
`7
`Likewise, a narrow band in the frame around a user’s
`current editor is set to that user’s color. Where several users
`
`are using the same editor, a band is colored for each user. If
`too many users have selected an object, such as a rectangle,
`text or editor, to identify them all in the frame, then only the
`most recent selections are shown.
`
`A user’s mode within his or her current editor is displayed
`in the lower half 40 of that user’s Home Area, as illustrated
`in FIG. 12. When a user works in a rectangle editor, his or
`her Home Area displays that user’s default color in that
`editor. Similarly, for a text editor, the current font and colors
`are illustrated in the users’s Home Area, as seen at reference
`numeral 41 in FIG. 13.
`
`In many desktop environments, menus are displayed once
`for each application window or at a unique location on the
`screen. For example, the Apple Macintosh pull-down menus
`are at the top of the screen. For a shared application on a
`single screen, however, menus displayed once per window
`take up much space and menus displayed at a fixed location
`only allow a single application to be used at any given time.
`In accordance with the invention, however, menus can be
`shared among users and editors, and may be positioned
`anywhere on the screen, even in documents. For example,
`the menus illustrated in FIG. 2 can be placed in a rectangle
`editor regardless of its nesting level, and then applied to
`objects in any user’s selected editor, regardless of that
`editor’s nesting level.
`‘
`Allowing people and editors to share menus reduces the
`screen real estate needed for control. Also, menus can be
`created or positioned where a user is working, avoiding user
`interference. Finally, users can group menus into a document
`to use as a customized control panel.
`Shared menus work well for commands, like changing
`color or deleting, that apply to several editors. Some func-
`tions, however, are specific to a particular editor. Menus of
`these functions need only be displayed when such an editor
`is in use. In the system of the invention, menus for a user’s
`selected editor are displayed in that user’s Home Area.
`These menus can be combined with feedback that shows
`
`current modes in the selected editor. For example, as illus-
`trated in FIG. 13, reference numeral 41, menus can display
`possible font choices with the user’s currently selected font
`highlighted.
`Users can simultaneously work at different levels in the
`application hierarchy. This capability reduces interference
`between users. One user can reposition or resize a document
`while another edits its contents. While some multi-level
`edits may disturb the user working at a lower lever, others
`work well. For example, a user may resize a rectangle editor
`to uncover an object beneath it without disturbing another
`user who is editing child rectangles that are far from the
`border being moved.
`The user interface of the invention requires a software
`architecture that is unusual
`in several respects. It must
`support a hierarchy of concurrently active applications. It
`must handle multiple devices and users, and make links
`between them. Each input event must be directed to the
`correct application, even though other input events may be
`modifying the application tree. Each application must store
`state for all of the users who have referenced it. Finally, the
`applications must coordinate their screen updates to produce
`a consistent image.
`The applications are arranged in a tree structure. The
`application at the root of the tree structure can have any
`number of child applications, each of which can have any
`number of children and so on. Each application has an
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`
`application queue of input events and its own lightweight
`application process
`(or operating system “thread”)
`to
`dequeue and execute events. When an application receives
`an input event, it may act on the event immediately, place it
`on its queue for sequenced execution or pass it to a child
`application.
`At any moment, up to three applications are important to
`each user. A user’s selected application will receive his or
`her keyboard events and his or her commands generated by
`clicking on a menu. If a user performs an interactive
`operation, such as dragging a rectangle, for example, the
`application in which that operation began is the mouse focus
`application. The mouse focus application receives mouse
`motion and mouse button events until the interactive opera—
`tion completes, so it is possible to drag objects out of View.
`The most deeply nested visible applica

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