`
`<D V7C)
`
`q
`
`SERIAL
`NUMBER
`(S
`eries
`of 1987)
`
`ENT bATE
`
`4_644
`
`PATENT
`NIIMRFR
`
`RIALNUMBER
`''(37/974,044
`
`FILING DATE CLASS
`-Qe2r
`
`11/10/92
`
`SUBCLASS
`
`ERlr A. BIER, MOUNTAIN VIFW, CA.
`
`_j
`
`**CONT,INUING.DATA***********
`VERIFIED
`
`Z
`
`01
`
`*OREIGN/PCT APPLICATIONS************
`VERIFIED
`
`....fOREIGNFILING LICENSE GRANTED 12/01/92
`lw
`
`AS
`ED
`FIL
`(cid:173)111-
`
`STATE OR SHEETS
`COUNTRY
`
`TO
`CLAJMS
`
`INDEP.
`CLAIMS
`
`I'
`
`CA
`
`13
`
`7
`
`2
`
`Foreign priority cialTed
`35 usc 119 conditions
`
`Q yes
`yas
`
`10
`
`Verified a nd.,A".know lodged
`
`& JACOBS
`ROSEN
`.'.489- FIFTWAVENUE
`NEW YORK, NY 10017
`
`556-1811
`
`100
`
`FILING FEE
`RECEIVED
`
`ATT RN
`Is
`DOCKETNO.
`$940.00 XRX-134(D/9
`
`'.:__TH0D AND APPARATUS FOR PERUSER CUSTOMIZATION OF APPLICATIONS
`AARED BY APLURALITY OF USERS ON A SINGLE DISPLAY
`
`-Pat. & TM Otlice PTO-436L ("ro. 10-76)
`US. DEPr. of COMM.
`
`i
`
`PARTS OF APPLICATION
`FILED SEPARATELY
`
`NOTIC6 OF ALLOWANdE MAILED
`
`PREPARED'FOR ISSUE
`
`CLAIMS ALLOWED
`
`Total Claims
`
`Print Claim
`
`iSSUE FEE
`
`Amount Due
`
`Date Paid
`
`Label
`Area
`
`Form PTO-438
`
`Rev. 9 190
`
`Assistant Examiner
`
`Docket Clerk
`
`,1,-20
`
`Shoots Drwg.
`
`GFWP M'o
`
`Primary Examin or
`
`ISSUE CLASSIFICATION
`
`bclass
`
`7SSUE
`BATCH
`NUMBER
`
`rlass
`
`Z
`
`7-
`DRAWINd
`Figs. Drw'g.
`
`Pri
`
`WARNING: The information disclosed herein may be restricted. Unauthorl I zed disclosure may be
`prohibited by the United States Code Ti-t-le 35, Sections 122, 181 and 368.
`
`-
`
`Poisession outside the U.S. Patent & Trademark Off Ice Is r'estricied to authorized employees
`and contractors only.
`
`Petitioners Ex. 1007 Page 1
`
`
`
`m
`
`APPROVED FOR LICENSE
`
`F-1
`
`INITIALt
`
`0' 2
`
`Received
`or
`Mailed
`
`1992
`
`I Ithl
`
`p F", 1,7"
`q-7
`
`"7
`
`'
`
`Q
`
`C5
`
`23- (4-
`
`C,
`
`/9,4044
`
`Entered
`or
`Counted
`
`1. Application
`
`papers
`
`cvj
`
`-2r
`
`We
`
`npaz
`
`7(cid:173)1
`
`1,>T
`
`, A2-z-
`
`1 0
`
`1
`
`.,
`
`M 845
`
`PTO Grtlt
`
`A-LLDlw,&Jnf
`0c; o IVA
`T
`
`121
`
`16.
`
`17.
`
`-25.
`
`-30.
`
`il=,tt7-
`
`p
`
`Petitioners Ex. 1007 Page 2
`
`
`
`U.S. PATENT APPLICATION
`
`07/974,044
`
`1 1/10/92
`
`364
`
`23o6
`
`ERIC A. BIER, MOUNTAIN VIEW, CA.
`
`CL
`
`CL4
`
`**CONTINUING DATA*********************
`I VER IF I ED
`
`**FOREIGN/PCT APPLICATIONS************
`VERIFIED
`
`FOREIGN FILING LICENSE GRANTED 12/01/92
`
`COUNTRY
`
`DRAWING
`
`CLAIMS
`
`CLAIMS
`
`RECEIVED
`
`CA
`
`13
`
`7
`
`2
`
`$
`
`940.00
`
`XRX-134(D/9
`
`V)
`cn
`ui
`
`wJ
`mt-
`
`ROSEN, DAINOW & JACOBS
`489 FIFTH AVENUE
`NEW YORK, NY 10017
`
`METHOD AND APPARATUS FOR PERUSER CUSTOMIZATION OF APPLICATIONS
`SHARED BY A PLURALITY OF USERS ON A SINGLE DISPLAY
`
`This is to certify that annexed hereto is a true Copy from the records of the United States
`Patent and Trademark Office of the application as filed which is identified above.
`
`By authority of the
`COMMISSIONER OF PATENTS AND TRADEMARKS
`
`Date
`
`Certifying Officer
`
`Petitioners Ex. 1007 Page 3
`
`
`
`11
`
`%,
`
`I I
`
`k .
`
`PATENT APPLICATION
`TRANSMITTAL LETTER
`
`Docket No. XRX-134
`(D/92142)
`
`To the Commissioner of Patents and Trademarks:
`Transmitted herewith for filing is the patent application of
`ERIC-A. BIER
`entitled METHOD AND APPARATUS FOR PER-USER CUSTOMIZATION OF
`APPLICATIONS SHARED BY A PLURALITY OF USERS ON A SINGLE DISPLAY
`Enclosed are:
`sheet(s) of drawings
`-y-
`13
`an assignment of the invention to Xerox Coriporation
`executed declaration of the inventor(s)
`a certified copy of
`application No.
`the Drioritv of which is herebv claimed.
`associate power of attorney
`a verified statement to establish
`Bmall entity status under 37 CFR
`1.9 and 1.27
`information diBclosure statement
`preliminary amendment
`other:
`
`X
`
`x
`
`X
`
`CLAIMS AS FILED
`
`NUMBER FILED I NUMBER EXTRA
`
`RATE
`
`BASIC FEE
`
`TOTAL CLAIMS
`
`INDEPENDENT CLAIMS
`
`10 20 = * 0
`3 = * 0
`2
`
`$710
`x $22
`x $74
`
`FEE
`
`$710
`
`0
`
`0
`s230
`s940
`
`$230
`
`TOTAL
`
`MULTIPLE DEPENDENT CLAIM PRESENT
`1
`*Number extra must be zero or larger
`If applicant has small entity status under
`37 CFR 1.9 and 1.27, then divide total fee by 2,
`and enter swunt here.
`A check in the amount of $
`enclosed.
`X The Commissioner is hereby authorized to charge and credit Deposit
`Account No. 24-0037 as described below. I have enclosed a duplicate copy
`of this sheet.
`Charge the amount of $ 940.00
`X
`X Credit any overpayment
`X Charge any additional filing fees required under 37 CFR 1.16 and
`1.17.
`
`SMALL ENTITY TOTAL
`
`$
`
`to cover the filing fee is
`
`_as filing fee.
`
`DR
`
`I t I 116 L--
`Date
`
`I
`
`OSEN DAINOW & JACOBS
`489 Fifth Avenue
`New York, NY 10017
`(212) 692-7000
`EXPRESS MAIL CERTIFICATE 37 CFR 1.10
`Expres3 Mail Label No. RB 948 917 915 US
`Date of Depositll/10192
`I hereby certify that this paeer or fee is being deposited
`Postal Service Expre m 'I p
`Office to Addressee
`with the U
`io%un4ei 37 CFR 1.10 on the dats: i.adlic aO' above and is
`:er
`Comissioner of Patents & Tra
`ks Wash
`ddvres
`d
`Thomas M. Webster
`Name of Person Mailing
`
`411
`Signature
`
`10/92
`
`Petitioners Ex. 1007 Page 4
`
`
`
`07/77YOy
`
`Patent Application
`Attorney Docket No. D/XRX-134
`(D/92142)
`
`APPLICATION
`FOR
`UNITED STATES LETTERS PATENT
`
`Be it known that 1, Eric A. Bier, a citizen of the United States of
`
`America have invented new and useful improvements in:
`
`Method and
`
`User Customization of Applications
`
`Shared by a PluraHty of Users on a Single Display
`
`of which the following is the specification:
`
`EXPRESS MAIL CERTIFICATE
`
`"Express Mail" label number:
`
`RB 948 917 915 US
`
`Date of Deposit:
`
`November 10, 1992
`
`I hereby certify that the following attached paper or fee, an application entitled Method
`and Apparatus for Per-User Customization of Applications Shared by a Plurality of
`Users on a Single Display, is being deposited with the United States Postal Service "Express
`
`Mail Post Office to Addressee" service under 37 CFR 1.10 on the date indicated above and is
`adclressed to the Commissioner of Patents and Trademarks, Washington, D.C. 20231.
`
`Thomas M. Webster
`(Typed or printed name of person mailing paper or fee)
`
`Sign'ature of p'erson maiiink paper or fee)
`
`Petitioners Ex. 1007 Page 5
`
`
`
`0 7
`
`7 Li 0
`
`el
`
`Attorney Docket D/92142 - XRX134
`
`5
`
`10
`
`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 employing a
`single display for a plurality of users, and is more in particular
`directed to a method and apparatus for establishing correspondence
`between the users and pointing devices in such a system. The
`
`invention is related to the invention disclosed in U.S. Patent
`Application Ser. No. 017/791j
`
`A
`
`filed on the same date as the present application, the contents of
`A,
`
`which are rpo by reference herein.
`
`$-r;-
`
`15
`
`Many Adern 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
`
`v 20
`
`oik 1___1
`
`Many groupware computer systems do not provide any facilities
`
`Page 1
`
`Petitioners Ex. 1007 Page 6
`
`
`
`5
`
`10
`
`15
`
`20
`
`25
`
`for per-user customization. Those that do usually take advantage of
`the fact that each user has his or her own compu ter and is running
`a separate instance of an application. Prior systems have not
`permitted customization such that
`instance of
`the same
`the
`application and the same screen can be shared. The superscript
`refer
`identifications
`to the
`discussion
`the
`following
`in
`Bibliography at the end of this disclosure.
`Shared window systems 1 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 (WYSYWIS) type. Work on
`
`networked
`
`and
`
`shared window systems has focused on sharing unmodified single-user
`floor
`applications, maintaining a
`conference,
`control. These systems have experienced difficulties in maintaining
`consistent views between displays when local user preferences are
`honored.
`Networked conf erence- aware systems such as window systems 2,
`allow users at different
`text editors 3
`tools 4
`and drawing
`workstations to make changes simultaneously. These systems permit
`some types of local user preferences One simple system of this
`type is Commune 4 which allows users to simultaneously draw with a
`stylus on the pages of a shared electronic notebook. This latter
`system shows the sane 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
`
`5
`
`around
`
`a
`
`planar
`
`space
`
`that
`
`contains
`
`objects
`
`that
`
`they
`
`can
`
`Page 2
`
`_'3
`
`Petitioners Ex. 1007 Page 7
`
`
`
`nanipulate. When users' view of the plane overlap, the views are
`
`WYSIWIS in the shared region. Each user controls 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
`
`5
`
`this system can be applied to any object, and shared between users.
`
`This system also supports per-user pointers, shared buttons and
`
`objects,
`
`lightweight locking of objects,
`
`and equal status of
`
`participants.
`
`Several systems support meetings by allowing participants,
`
`10
`
`working at individual workstations, to control a large shared
`
`screen. Some use chalk-passing floor control, such as the Capture
`
`7
`
`Lab
`
`Others allow simultaneous editing, such as Colab
`
`8
`
`The Colab
`
`team, in reporting on the Cognoter tool, noted that simultaneous
`
`access to the screen improves brainstorning because users need not
`
`15
`
`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
`
`20
`
`participants must go to a special meeting room.
`
`SUMMARY OF THE INVENTION
`
`The present invention is directed to the provision of a method
`
`and apparatus for sharing custonizable software applications on a
`
`single display that overcornes the above discussed disadvantages of
`
`25
`
`prior systems and that permits two or more persons to share the
`
`sane instance of an application, exploying a common screen.
`
`Page 3
`
`/L(
`
`Petitioners Ex. 1007 Page 8
`
`
`
`5
`
`10
`
`The invention is directed to the solution of the following
`
`user interface problems:
`
`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.
`
`Registration.
`
`It must be possible to quickly register
`
`each input device with a user, and hence, with a set of
`
`preferences.
`
`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
`
`15
`
`following architectural problem:
`
`Replication.
`
`The data structures of each application
`
`must be replicated for each user to support per-user
`
`I
`
`modes, selections, and preferences.
`
`In accordance with the invention, a special on-screen region,
`
`20
`
`referred to herein as the "Home Areal', allows each user to claim
`
`input devices, such as inice, that move cursors. The user simply
`
`clicks on a Home Area with the cursor in order to establish the
`
`association between the user represented by that Home Area and the
`
`input device. A user's Home Area also provides a natural place to
`
`25
`
`position the control panel for that. user's current application.
`
`These control panels are referred to herein as "Home Area menus".
`
`Page 4
`
`Petitioners Ex. 1007 Page 9
`
`
`
`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 tiTnes by displaying feedback for
`
`5
`
`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
`
`10
`
`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:
`
`Each user can have a
`
`different "current position".
`
`For
`
`instance, one user can be adding text to a first paragraph of
`
`15
`
`a
`
`document,
`
`while another user adds text to the third
`
`paragraph.
`
`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.
`
`20
`
`(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 application
`
`25
`
`that
`
`user
`
`is
`
`currently
`
`using,
`
`which
`
`input
`
`devices
`
`are
`
`associated with that
`
`user,
`
`what
`
`operation
`
`the
`
`user
`
`is
`
`Page 5
`
`rz-
`
`Petitioners Ex. 1007 Page 10
`
`
`
`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
`
`5
`
`three visible components, namely:
`
`1 .
`
`Home Areas for providing iconic representations of the users.
`
`Applications that allow the users to perform tasks, such as
`
`editing document media.
`
`Menus, which provide buttons that users can press to invoke
`
`10
`
`commands.
`
`BRIEF FIGURE DESCRIPTION
`
`In order that the invention may be more clearly understood, it
`
`will now be disclosed in greater detail with reference to the
`
`accompanying drawings, wherein:
`
`15
`
`-,'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 inve,ntion;
`
`,.Tig.
`
`3 is a view of the Home Area of the screen display of
`
`20
`
`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;
`
`25
`
`Fig.
`
`7
`
`is
`
`a screen display illustrating resizing of
`
`a
`
`rectangle in a rectangle editor;
`
`Page 6
`
`Petitioners Ex. 1007 Page 11
`
`
`
`8
`
`a screen disp'lay illustrating the simultaneous
`is
`/4ig.
`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;
`Ficl. 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;
`13 is a screen display illustrating a Home Area with
`'Tig.
`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;
`
`Fig. 17 is a simplified diagram illustrating the interface
`between/the Notify Process and the shared applications;
`Vig. 18 is a simplified illustration showing the updating of
`a screen, in accordance with the invention;
`a diagram illustrating the structure of
`is
`Fig.
`19
`applic,ation;
`Fig. 20 is a flow diagrain illustrating the handling of an
`Event Record by an application;
`Fig. 21 is a flow diagram illustrating the transformation of
`
`an
`
`Page 7
`
`5
`
`10
`
`15
`
`20
`
`25
`
`Petitioners Ex. 1007 Page 12
`
`
`
`coordinates for a child editor;
`/Fig. 22 illustrates a rectangle editor in which a rectangle
`itself
`contained in that editor
`the editor
`are being
`and
`simultaneously repositioned;
`'4/ig. 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
`iiith the invention;
`Fig. 25 illustrates the involvement of user preferences in the
`two different users, both when an
`processing of input eventsAter
`application is constructing a command and when the display is being
`
`updated;,,,,and
`
`Pig. 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 lim ited to this configuration of input
`devices, and that inore 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.
`
`Page 8
`
`5
`
`10
`
`15
`
`20
`
`25
`
`Petitioners Ex. 1007 Page 13
`
`
`
`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
`
`5
`
`different "user instances". Alternatively, the two devices 21, 22
`
`may be controlled by different 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
`
`10
`
`15
`
`for other user instances.
`
`The Display Screen
`
`A typical display that may be provided on the display screen
`
`25, in accordance with the inventio.n, is illustrated in Fig. 2.
`
`This screen includes a command menu 30, a rectangle 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 command Tnenu
`
`30, the user controls his or her input device to place the cursor
`
`on the desired menu selection, and clicks or otherwise controls the
`
`20
`
`device to rnake the selection.
`
`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 rnenus, the Color
`
`Menu turns them into color menus and the Delete selection deletes
`
`25
`
`the selected rectangles. The New User selection creates a new Home
`
`Area for the user named by the selected text characters in
`
`Page 9
`
`Petitioners Ex. 1007 Page 14
`
`
`
`the selecting user's current application. The Print selection
`
`produces a file in a page description language correspondincj to the
`
`selecting user's current application.
`
`A separate Home Area is employed for each user participating
`
`5
`
`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 rnenu,
`
`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
`
`10
`
`Area that displays the new user Is 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
`
`15
`
`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
`
`20
`
`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
`
`25
`
`and text editors. These applications are discussed herein only to
`
`illustrate generally the function of an application,
`
`and the
`
`Page 10
`
`Petitioners Ex. 1007 Page 15
`
`
`
`invention is not limited to these specific applications. The
`rectangle editor permits a user to create solid colored rectangles
`oii 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. Co-minand selection involves pointing to different parts
`
`(called "handles") of graphical objects on the screen for the
`purpose of invoking different 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
`O
`W
`his or her cursor, on the border of the rectangle.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
`W
`size of a rectangle, the user places his or her cursoi on a corner
`
`Page 11
`
`5
`
`10
`
`15
`
`20
`
`25
`
`Petitioners Ex. 1007 Page 16
`
`
`
`(vg-
`of the rectangle, 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 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 backqround of the
`rectangle editor portion of
`screen. Several users may
`the
`performing different
`application,
`simultaneously work
`in an
`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
`t:111 AA (0 4. (0
`rectangles. As
`the
`in Fig.
`of
`seen
`two users, may be
`8,
`simultaneously stretching the rectangle in different directions.
`The rectangle editor keeps track of both operations and updates the
`screen to show their progress. Sinilarly, the users nay 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.
`
`5
`
`10
`
`15
`
`20
`
`one user can stretch a rectangle by one corner while another
`
`\5 stretches its opposite corner, as seen in Fig. 8, or one user can
`type a string of characters while another repositions the string.
`
`IV
`
`Page 12
`
`Petitioners Ex. 1007 Page 17
`
`
`
`The syste-m 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 contains 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
`C
`A A-*." b,
`several rectangle editors and a text editor4. The text editor C is
`A
`70
`partly hidden by sibling editor B and by a rectangle, and the
`4
`rectangle editor D is partly outside of the porthole of its parent
`as
`editor B."_
`
`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 frorn
`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 application
`mode, color, or insertion point. In accordance with the present
`feedback nust show all of this
`invention,
`however, graphical
`information, as well as indicating the user to which the feedback
`applies. Color and spatial placement Tnay 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
`
`Page 13
`
`m
`
`5
`
`10
`
`15
`
`20
`
`25
`
`Petitioners Ex. 1007 Page 18
`
`
`
`5
`
`10
`
`15
`
`. ?11/13
`
`n?.1 q I
`users have selected a rectangle, and each user's selection is shown
`4
`15 i(e
`by highlighting a corne 'of the rectangle frame in that user's
`r
`color. Similarly, Fig. 11 shows two selections in a text string,
`in one user's color. The overlapping
`each marked by an underline
`part of the selection is underlined twice.
`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 i; colored for each user. If too many users
`have selected an object, such as a rectangle, text or editor, to
`identify them all
`recent
`then only the most
`in the frame,
`selections are shown.
`
`1)
`
`A user Is 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
`
`20
`
`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.
`
`25
`
`In accordance with the invention, however, menus can be shared
`
`among users and editors, and may be positioned anywhere on the
`
`Page 14
`
`Petitioners Ex. 1007 Page 19
`
`
`
`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.
`
`5
`
`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 workinq, avoiding user interference.
`
`Finally,
`
`users can group menus into a document to use as a
`
`customized control panel.
`
`10
`
`Shared inenus work well for commands, like changing color or
`
`deleting, that apply to several editors. Some functions, 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 se lected editor are displayed in
`
`15
`
`that user's Home Area. These menus can be combined with feedback
`
`that shows current modes in the selected editor. For example, as
`
`illustrated in Fig. 13, reference numeral 41, menus can display
`
`possible font choices with the user's currently selected font
`
`highlighted.
`
`20
`
`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
`
`25
`
`user may resize a rectangle editor to uncover an object beneath it
`
`without disturbing another user who is editing child rectangles
`
`Page 15
`
`Petitioners Ex. 1007 Page 20
`
`
`
`that are far fron 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
`
`5
`
`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
`
`10
`
`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 application queue of
`
`15
`
`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.
`
`20
`
`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
`
`25
`
`began is the mouse focus application. The mouse focus application
`
`receives mouse motion and mouse button events until the interactive
`
`Page 16
`
`Petitioners Ex. 1007 Page 21
`
`
`
`operation completes, so it is possible to drag objects out of view.
`
`The most deeply nested visible application that contains a user's
`
`cursor is his or her containing application. If no interactive
`
`operation is in progress, the containing application receives all
`
`5
`
`mouse motion and mouse button events.
`
`The Processing of Input Events
`
`As illustrated in the flow diagram of Fig. 14, when an input
`(00
`1-544) to the system,
`
`device is controlled to provide an input (block
`A
`i.e. to create an "event", the system initially starts building an
`
`10
`
`Event Record (block 101) that includes the tine of the event, the
`
`identification of the device that created the event, and the nature
`
`of the event. The nature of the event may be the pressing of a
`
`keyboard key, the movement of a mouse, the clicking of a mouse,
`
`etc. The above actions are taken by a thread called the device
`
`15
`
`process. The device process then places the Event Record on system
`
`queue (block 102).
`
`The device process runs at a high priority so that the time-
`
`stamps will be close to real-time.
`
`After the Event Record has been started, as above discussed,
`
`20
`
`the system continues to build the Event Record, by a program
`
`running in a second thread, called the Notify Process, to include
`
`the User Instance, of the
`
`input device, by referring to the
`
`association in the Device To User Instance table (block 103). The
`
`Notify Process then builds a Device States Record that represents
`
`25
`
`the current state of all devices owned by the given user (e.g.
`
`whether any nouse buttons or keyboard keys are currently being held
`
`Page 17
`
`i
`
`Petitioners Ex. 1007 Page 22
`
`
`
`down) .
`
`If the input device is a pointing device, and the pointing
`
`device is clicked in a Horne Area, then the Notify Process performs
`
`a sequence of steps that enable a user to claim the pointing
`device. These steps will be discussed later. It is noted, however,
`
`that only the Notify Process can modify the Device To User