`Habib et al.
`
`11111111111111111111111111111111111111111 I
`US005694610A
`5,694,610
`[111 Patent Number:
`[45] Date of Patent:
`Dec. 2, 1997
`
`[54] METHOD AND SYSTEM FOR EDITING AND
`FORMATTING DATA IN A DIALOG
`WINDOW
`
`[75]
`
`Inventors: Catherine L. Habib, Redmond; Steven
`Bush, Issaquah, both of Wash.
`
`[73] Assignee: tdicrosoft Corporation, Redmond,
`Wash.
`
`[21] Appl. No.: '196,803
`
`[22] Filed:
`
`Aug. 14, 1996
`
`Related U.S. Application Data
`
`[63] Continuation of Ser. No. 299,938, Sep. 1, 1994, Pat. No.
`5,579,466.
`Int. CL6
`•••••••••••••.•••••••••.•••••••••••••••••••••••••••••• G0'1F 17124
`[51]
`[52] U.S. Cl •............................................. 395n93; 3951347
`[58] Field of Search ..................................... 395n93, 792,
`395/791, 802, 803, 347, 340, 352, 761;
`358/402
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2/1995 Ch.alas ••••••••••••••••••••••••••••••••••••• 395/155
`5,392,386
`5,579,466 1111996 Habib et al ..•......•••....••.•..••••••• 395n93
`
`OTHER PUBLICATIONS
`
`Microsoft Mail for Wmdows Version 3.2a, 1992-1994,
`sample screen printouts., 1994.
`Microsoft Word for Windows User's Guide, Version 2.0, pp.
`140-145, 491-492, Microsoft Corporation, 1991.
`
`Heller, Martin, Advanced Windows™ Programming, John
`Wiley & Sons, Inc., New York, NY, Chapter 7, pp. 265-282,
`Chapter 8, pp. 283-312, 1992.
`Simpson, Alan, Mastering WordPeifect 5.1 & 5.2 for Win(cid:173)
`dows, Sybex, 1992, 1993.
`Massimo, Casaro, Advanced Windows Programming, Win(cid:173)
`dows-DOS Developer's Journal, Oct. 1993, vol. 4, No. 10,
`pp. 21(4).
`
`Prima.ry Examiner-Joseph H. Feild
`Attonie~ Agent, or Firm--Jones & Askew, !LP
`
`[57]
`
`ABSTRACT
`
`A method and system for editing and formatting data in a
`dialog window. A rich text edit control supports a rich text
`edit field in a user dialog. Different behaviors can be
`specified for the rich text edit control such that a dialog
`author can enable or disable the formatting capability of the
`rich text edit field. A user can type directly into the rich text
`edit field and select and modify the formatting characteris(cid:173)
`tics of entered data using the same techniques and mecha(cid:173)
`nisms provided to enter data and to modify the formatting
`characteristics of the data in the underlying user document.
`Pop-up menus and shortcut keys are also available for
`modifying the fonnatting characteristics of data selected in
`the rich text edit field. The rich text edit control can accept
`data from another window and can inherit its formatting
`characteristics in order to display the data the way the data
`will appear in the underlying document. In one embodiment,
`the rich text edit control is provided by the underlying word
`processing application program. so as to utilize the same
`routines for editing and formatting data in a rich text edit
`field as within an underlying document.
`
`37 Claims, 18 Drawing Sheets
`
`4A01
`
`4A02
`
`Microsoft Word -WFWDEt.402.DOC
`Insert Fg_nnat
`Iools T.nble
`-
`file
`f.dit
`:l{icw
`I CJ l~la;ll l@IG>.I ~I
`
`4A03
`
`L
`
`~enlence:
`demonstration of features and benefits that
`Microsoft Windows forWorkgroups offer~
`enhance productivity in an office env:ix-o~nt.
`
`+
`
`I
`iStiiii\
`I Next Sentence I
`
`Suggestions:
`The woid Windows do.,. nol agree with offer.
`
`Change
`
`Ignore Rule
`
`Cancel
`
`4A04
`
`Microsoft Win
`
`. Although not required. a sound board is
`highly recommended to maximize the effectiveness of the demonstration.
`
`111
`
`At 2.7"
`
`Ln lO Col 1
`
`Corel Exhibit 2002
`Microsoft v. Corel
`IPR2016-01083
`
`
`
`"' "' ~ =
`"' "' \C
`
`~
`
`01
`
`QO
`1-1
`~
`1-1
`
`ti) a
`g3
`
`~
`1-1
`J-.l
`
`~ .
`
`~
`~ • r.ri • ;p
`
`• •
`
`103
`
`107
`
`FIG.1
`
`For Help, piess F1
`+
`
`I f::t
`
`,Comments: I This is a multHine edit field for entering
`_Keywords:
`Author:
`
`multiple lines of texl
`
`jMicrosofl Windows for \l/ofkgroups Auto n1 Cancel I
`C:
`I
`WF'WOEMO.DOC} 104
`
`,--OK
`
`Summary Info
`
`~ubject:
`
`!itle:
`DirectorJ1:
`file Name:
`
`demonstrat10
`a sound bOef
`otters to enh
`demonstrat10
`The Microso
`
`Microsoft Windows for Workgroups Auto demo
`
`15
`
`1
`
`I
`
`I
`I
`
`14
`
`I
`
`l
`I
`
`I
`
`I
`
`13
`
`.•
`
`I
`
`I
`
`12
`
`I
`
`I
`I
`
`I
`
`I
`
`11
`
`I
`
`I
`
`I
`I
`
`•
`
`I
`
`I
`
`I[!] @J[!J IJffilIJ l=-l~l:sl;=f (TITITOJ
`
`tf.elp
`
`TiJ,ble . Window
`
`format T.nols
`
`Insert
`
`fdit Y:iew
`
`..... ""
`
`Microsoft Word -WFWDEMO.DOC
`
`102
`
`101
`
`-
`
`[ 10
`~tereferenj[!] IHelv
`ca I file
`
`
`
`-.. "" :. -.. "" li-l =
`
`Ol
`
`""""" 00
`~
`N
`~
`rr:i =- ('!)
`
`-.J
`\C
`"""""
`\C
`
`,_.N
`~
`el
`
`~ i
`~ • rJ'J. •
`
`+
`
`+
`
`}206
`
`FIG. 2
`
`For Help, press F1
`+
`
`I
`
`OK -) I Cancel
`
`I
`
`205-I
`
`fating Pages
`
`I II I
`
`I
`
`otthe
`equ1red,
`orkgroups
`uhimedia 111
`
`Sample---------.
`
`Iii
`00
`l!J
`!:eft:
`!$)
`.!lottom: 11"
`Iop: F----·El
`
`!!utter:
`
`flight
`
`IO"
`I 1. 25"
`11.25"
`
`0 .Size and Orientalion 0 f aper Source
`
`demonst
`a sound
`otters to
`demon st
`The Mier
`
`I
`
`.1
`I
`
`~
`
`[ ,o
`
`,. I &
`
`fdit ~icw Insert Format T.Q.ols T1ble Window
`
`Microsoft Word -WFWDEMO.DOC
`
`• 1 file
`o;;:a1
`
`202
`
`201
`
`
`
`~ =
`'-= ~
`~
`Ol
`
`~
`
`\II
`
`\II
`
`~ a
`
`QC
`lo-"
`~
`w
`
`~
`
`\II ,_.
`~
`t:=
`
`-..J
`\C
`\C
`
`~ a
`d • 00
`
`•
`
`+ •
`
`iveness
`
`rkgroup
`ultimedi
`
`' ~ . ' 'I.!
`
`FIG. 3A
`
`Creates or prints an envelope, a label, or a sheet of labels
`
`..
`
`Before printing. inse1t labels in 'IOI.I printer's upper tray.
`
`~-~---·····-·1
`
`Custom Laser
`Avery Stand1r11d,
`Label-----------,
`
`Row: 11. __ J(il Column: IL]~
`
`0 Single Label
`@ full Page of the Same Label
`Print---------(cid:173)
`n Oelivery Point Bar Code
`I
`
`Mic
`
`3A04
`
`Address:
`
`cg
`
`....
`
`I
`I
`I
`It-I I New Q.ocument I
`
`J!elp
`
`l!I I
`
`I .!]ptioni...
`I
`
`Cancel
`
`--,
`
`f1int
`
`0 Uie Return Address I
`
`3A03
`
`'I" I "'"
`
`T.nble Window
`
`Microsoft Word -WFWDEM02.DOC
`
`3A02
`
`3A01
`
`
`
`~ =
`"' ~
`~
`"' ~
`Ul
`
`QC
`~
`
`~
`.&;:i.
`~
`!'!>
`!'!>
`t:r
`\I).
`
`...i
`\C
`\C
`~
`"'
`N
`w
`
`~
`~
`
`S" a
`e • 00 •
`
`eti~i-
`
`0 Use fteturn Address I
`
`3803
`
`... ....
`
`"I" I A.
`
`Iools T.1ble Window
`
`~lew Insert F.o.rmat
`
`Microsoft Word -WFWDEM02.DOC
`
`i;;;:a
`
`3802
`
`3801
`
`Custom Laser
`Avery Standard,
`Label1---------.
`f
`I
`J
`+ I New Jlocument I
`-I
`
`I .Qptions...
`j
`
`Cancel
`
`W I
`
`•
`
`..
`
`I
`
`II
`
`ivenessl
`
`j
`
`rkgroup
`ulti me di 1 II
`
`!!elp
`
`FIG. 38
`
`Creates or prris an envelope. a label, or a sheet of labels
`
`+
`
`Before prnting, nsert labels in your printer's upper tray.
`
`0 Si!!Dle Label
`· @ full Page of lhe Same Label
`Print------------,
`0 Delivery Point Dar Code
`I
`
`Row; IL .. J!IJ Column: IL.JI
`
`3804
`
`Seattle, Wa. 9811~
`Suite 101-A
`12345 Greenwood Ave.
`First Impressions
`Address:
`
`
`
`ii-=
`
`"' ~
`~
`\C
`~
`Ol
`
`00
`1-1
`~
`VI
`~
`~ ('!)
`
`~
`\0
`1-1
`._.N
`
`~ .
`
`('D a
`~ ~
`d • 00
`
`•
`
`...
`
`+
`
`iveness
`
`rkgroup
`ultimedi
`
`l
`
`3C05
`
`Help --,
`
`Q.ptions ...
`
`FIG. 3C
`
`Cuts the selection and pc.ts ~ on the Cfipboard
`
`+
`
`Before printilg, i'lsert labels in your printer's uppei tray.
`
`Font.D. rgr..
`
`Row: []ti] Column: I 1 I~
`
`0 Simile Label
`@ Eull Page of the Same Label
`Printi------
`0 Delivery Point Bar Code
`
`Mic
`
`3C04
`
`12345 G:re enwo o d Ave.
`
`SeatUe, Wt. 98115
`
`Suite 101-A
`
`. ~ . ' ·µ
`
`. -]
`
`frint
`
`0 Use Return Addren I
`
`Address:
`
`l!St !11 reSSl0fl$
`
`3C03
`
`.... ,,.
`
`I A.
`
`y
`
`Iools Table
`
`Micro!;>oft Word -WFWDEM02.DOC
`
`-l
`
`;a
`
`3C02
`
`3C01
`
`
`
`"' =" ~ =
`
`~
`"' ="
`01
`
`"""" 00
`~
`Q'-.
`l
`~
`
`"""" ~
`"'N
`
`~
`
`~ r
`
`(0 a
`00 • ;p
`~ •
`
`""""
`
`+
`
`+
`
`ess
`
`up
`
`r----3001
`
`FIG. 3D
`
`Change$ the appearance of the selected characters
`
`+
`
`This is a True Type font. This same lont will be U$ed on both your printer and your screen.
`
`'Jl!:.dt ') Ht{IJu~6
`
`Preview1---------------
`
`0 Su,b.script D AH Caps
`0 Sun.erscript D Smell Caps
`0 Stritethrough D Hidden
`Effects---------.
`
`liJ .--A-ut_o ___ W_
`
`Color:
`
`hnone)
`l!nderline:
`
`I
`I . !!elp
`I ll.ef aulL I
`I ca-~~-;;o
`
`,~.~ I
`
`I
`
`Mlt::rDSDll YYUIU -YYrYYUl:MUL,UUI,, I
`
`-=al
`
`3006
`
`,/
`
`3004
`
`3003
`
`3002
`
`
`
`~ =
`\C ...
`
`"' ~
`
`"' ~
`01
`
`00
`~
`~
`~
`~
`r:J:;. g
`
`~
`
`~
`
`~
`
`j,,)
`
`~
`
`~
`•
`
`~ • 00
`
`~ g
`
`•
`+
`
`ivenes
`
`rkgroup
`ultimedi
`
`3E03
`
`.... I a.
`
`... ....
`
`Custom Laser
`Avery Standard.
`Label---------.
`
`l
`
`[
`
`FIG. 3E
`
`Creates: or prints an envelope. a label, Ot a sheet of labels
`
`+
`
`BefOJe pririina. nsert labels in your printer's: upper tray.
`
`Row: [JI!] Column: om
`
`3E05 (3 1-~-H~lp :J
`I
`I
`I
`fri~l ---,
`
`.Qptions...
`
`Cancel
`
`New J!ocumenl
`
`I
`I
`I +I I
`D Use ftelurn Addreu I
`
`Iools T.nhte Window
`
`fgrmat
`
`Insert
`
`Microsoft Word -WFWDEM02.DOC
`
`3E02
`
`3E01
`
`0 Single Label
`@ full Page nf the Same Label
`Print----------....
`fJ Delivery Point Bar Code
`I
`
`Sea.tile, Wa. 98115
`
`Suite 101-A
`
`12345 Greenwood Ave.
`
`3E04
`
`Address:
`
`c;;;;a
`
`
`
`~ =
`
`"' ~
`~
`"' ~
`Ol
`
`QC
`~
`~
`QC
`~
`~
`t:r
`00
`
`~
`~
`"'
`N
`
`~ r
`
`~ a
`e • 00
`
`•
`
`FIG. 4A
`
`•
`...
`
`WPH
`
`Ln 10 Col 1
`
`At 2.7"
`
`, 11
`
`Sec 1
`
`highly recommended to maximize the effectiveness of the demonstration.
`
`Although not required, a sound board is
`
`f
`I
`I Ignore Rule I
`! I Chang;-::i
`
`H.elp
`"i I Cancel
`
`I I D.Ption1...
`
`Microsoft Win
`
`4A04
`
`I I Undo Last 11
`
`I Explain...
`•
`~D.~I~~~::~~~~:f.!:~~~~~~:§!::~~!.~:c::~:::~:::::~~:~:::::::::::::::::::::::::~::::::::::::::::::::
`The word \\/indowi does not agree with offer.
`Suggeitioni:
`
`enhance producti.vity in an office enviroru'®nt
`Microsoft Windows for Work.groups offer~
`demonstration of features and benefits that
`ientence:
`
`t]'"~"'!"
`
`4A03
`
`.,, ..
`
`Microsoft Word -WFWDEM02.DOC
`
`.....
`
`4A02
`
`4A01
`
`
`
`1--l =
`~ :. ~
`
`tit
`
`~
`
`~
`
`""'" 00
`~
`1¢
`
`~ (I) ra.
`
`""'" ~
`
`~
`
`~ r
`
`~ a
`~ • 00 •
`
`4803
`
`..
`
`+
`
`4807
`
`FIG. 48
`
`Cuts the selection and puts ~ on the Clipboard
`
`+
`
`I
`~I ca~~l
`I Ignore B.ule I
`H I I;.hange ... -,
`
`H.elp
`
`I
`
`I I Undo Last
`l
`
`I I )lplions...
`
`I f.xplain...
`I
`
`lo+•UlllU>•" .. '-""'"'''''''"'."'°'"'"""'..._ _ __i
`
`................................ !.~ .. !~~ .. ~ or offer.
`,·con$1iiei"iiOe ....... , .... T .. aa ..................................... -.
`The word Windows does not agree with
`Suggeitions:
`
`'11/umce pnJductfrily ,
`
`1
`y recommen e
`hight
`d d
`.nJumce prod11ctfri1.1
`:lemonstratwn c,f ft.:1t
`ht lv~icro~~oft \Vmdc
`
`ill•' f:' I f? I 'l
`
`4804
`
`.....
`
`4802
`
`4801
`
`
`
`~ =
`
`~
`.....
`tit
`
`"' ~
`~
`
`QC
`~
`~
`Q
`lo"'
`ll.
`~
`
`lo"' "° ~
`w
`
`~
`
`"*' a "*'
`~
`•
`~ • rJ).
`
`FIG. 4C
`
`WPH
`
`+
`
`+
`
`Ln 11 Col 1
`
`At 2.9"
`
`111
`
`See 1
`
`;;~;;;;~~~;~;;;==:==~=":=A : .::;:~ :
`
`I £.xplain...
`I
`
`Suggeilions:
`
`4C04
`
`I
`I
`
`!ielp
`[J I Cancel
`
`I I Undo lad 11
`
`Jlptions...
`
`11
`
`4C03
`
`.......
`
`Iools T.a.ble
`
`Microsoft Word· WFWDEM02.DOC
`
`"'"'
`
`4C02
`
`4C05
`
`4C01
`
`
`
`"' "" ~
`"' "" ':
`
`Q
`
`Ol
`
`QO
`I-lo
`~
`I-lo
`I-lo
`
`!
`g:
`
`~
`
`I-lo
`"'N
`
`w
`
`~ a
`d • 00 •
`
`FIG. 40
`
`·1,1/PH
`
`+
`
`+
`
`Ln 12 Col 70
`
`At 3.1"
`
`111
`
`Sec 1
`
`hi!llilv recommende~o maximize the effectiveness of the demonstration.
`llGllMAiijMJin an office environment. Although not required, a sound board is
`demonstration of features and benefits that Microsoft Windows for Workgroups •9r:u•aU•i•ll
`The Microsoft Windows for Workgroups Autodemo is an automated multimedia
`
`Microsoft Windows for Workgroups Autodemo
`
`4003
`
`ill'.' I''' 1 .•• :.'. z.' '~''.~ .. 'I .. ' 4.' '~' •• ~I •• I'.·~
`I[!) !Times New Romani[!)@][!) I BI I I Y 11~1.!.J.~l~J j~::l:::li!liFI
`!Normal
`~IQJ liilelli100fi[e[4J f~Jil ~111[i[!)l.;JJ'-'li€iljllilLI00 ~ [!)
`..,. 1 file
`
`fftrmat
`
`.Edit ~lew Insert
`
`T.D.ble Window Help
`
`Iools
`
`4002
`
`4001
`
`
`
`~ =
`
`~
`
`~ ._..
`~
`Ol
`
`""'" QO
`~
`""'" N
`~
`r.J'l go
`
`..,J
`\0
`""'" \0
`~
`
`~ r
`
`~ = ~ a
`
`00 •
`~
`
`FIG. 5
`
`I
`
`I
`
`I
`
`1
`
`USER
`CODE c508
`I WORD PROCESSING
`c..507
`
`DOCUMENTI
`
`:J
`
`AND RESOURCES
`I MANAGEMENT CODE
`I
`
`DIALOG
`
`509
`
`I
`I
`
`I
`
`I
`
`I
`
`OUTPUT DEVICES
`
`OTHER INPUT/
`
`,...504
`
`I
`
`DISPLAY
`
`('503
`
`WINDOW SYS:EM I
`
`I
`I
`
`I
`
`506
`
`MEMORY
`
`I
`
`I
`
`CPU
`
`l".505
`
`r502
`
`COMPUTER
`
`501
`
`
`
`U.S. Patent
`
`Dec. 2, 1997
`
`Sheet 13 of 18
`
`5,694,610
`
`Create Dialog
`
`Create a dialog
`description file
`
`601
`
`Add a general
`purpose (picture
`item) control
`
`602
`
`Register RTEC
`callback routine
`
`603
`
`Register initial
`flag settings
`
`604
`
`Add other controls
`to description file
`
`605
`
`Register dialog
`specific code
`
`606
`
`Return
`
`FIG. 6
`
`
`
`U.S. Patent
`
`Dec. 2, 1997
`
`Sheet 14 of 18
`
`5,694,610
`
`N
`
`N
`
`Standard Dialog
`Procedure (Action)
`
`Select a control
`starting with the first
`
`702
`
`704
`
`Invoke selected
`control's callback
`routine
`
`Invoke dialog specific
`initialization routine
`
`Return
`
`Select a control
`starting with the first
`
`707
`
`709
`
`Invoke selected
`control's callback
`routine
`
`Invoke dialog specific
`termination routine
`
`712
`
`Invoke dialog focus/
`navigation/input
`routine
`
`Return
`
`Return
`
`FIG. 7
`
`
`
`U.S. Patent
`
`Dec. 2, 1997
`
`Sheet 15 of 18
`
`5,694,610
`
`Dialog Specific
`Initialization Routine
`
`• • •
`
`(other control specific initialization)
`
`Obtain indicators to
`RTEC document and
`information structures
`
`Set initial formatting
`and contents of RTEC
`document
`
`Initialize state and
`information structures
`from flags
`
`801
`
`802
`
`803
`
`Return
`
`FIG. 8
`
`
`
`U.S. Patent
`
`Dec. 2, 1997
`
`Sheet 16 of 18
`
`5,694,610
`
`Rich Text Edit Control
`Callback Routine
`(action, control_ID, dialog_ID)
`
`902
`
`903
`
`Create WP
`>----..i document and other
`info structures
`
`Attach document
`and info structures
`to CID
`
`Return
`
`Reset the current
`">-----M WP doc and
`current selection
`to user doc
`
`905
`
`N
`
`N
`
`Dispose of the
`RTEC doc
`
`Free the RTEC
`info structures
`
`Return
`
`Set RTEC flag =
`-.....:___~· true; currentdoc =
`RTEC doc
`
`Install shortcut
`key keyboard map
`
`Return
`
`Set RTEC flag =
`false; reset current
`doc
`
`Remove shortcut
`key keyboard map
`
`Return
`
`. . .
`
`(other actions)
`
`Return
`
`FIG. 9
`
`
`
`U.S. Patent
`
`Dec. 2, 1997
`
`Sheet 17 of 18
`
`5,694,610
`
`Win Main
`
`• • •
`
`y
`
`y
`
`N
`
`N
`
`Invoke standard
`character input
`routine
`
`•••
`
`1003
`
`1005
`
`1007
`
`Invoke dialog
`procedure
`with key
`
`Invoke standard
`shortcut handling
`routine
`
`Invoke standard
`navigation or
`clipboard
`handling routine
`
`FIG. 10
`
`
`
`U.S. Patent
`
`Dec. 2, 1997
`
`Sheet 18 of 18
`
`5,694,610
`
`Rich Text Edit Control
`Window Procedure
`
`Pass on mouse events
`to application selection
`and navigation routines
`
`1101
`
`Pass on mouse events
`to standard dialog
`procedure
`
`1102
`
`Return
`
`FIG. 11
`
`
`
`5,694,610
`
`1
`METHOD AND SYSTEM FOR EDITING AND
`FORMATTING DATA IN A DIALOG
`WINDOW
`
`CROSS REFERENCE TO RELJITED
`APPLICATION
`
`This application is a continuation of U.S. patent applica(cid:173)
`tion Ser. No. 08/299,938, filed Sept. 1, 1994 U.S. Pat. No.
`5,579,466.
`
`TECHNICAL FIELD
`
`The present invention relates generally to a computer
`system for editing and formatting data in a dialog window
`and, more specifically, to a method and system for editing
`and formatting data in a dialog window using a rich text edit
`field.
`
`BACKGROUND OF THE INVENTION
`
`Often times, a user authoring a document wishes to
`modify some data in the document through the use of a
`dialog window. For example, if the user wishes to replace a
`word in a phrase and to change the formatting of the phrase
`to an italicized larger font, then the user replaces the existing
`word with a new word and reformats the phrase using the
`tools supplied by the application program that manages the
`document (typically a word processing application
`program). In some prior systems, these actions are per(cid:173)
`formed in two separate steps. First, the user modifies the
`textual content typically by deleting the existing word and
`replacing it by a new one or by typing over a selected word.
`Second, the user selects the phrase and invokes a formatting
`command to request formatting changes, typically provided
`by a menu or by a dialog window. For example, in the
`Microsoft Word for Windows 2.0 product, the user invokes
`the Format Character dialog window from the menu bar to
`change the font attributes of the selected phrase.
`A dialog window is a window that displays dialog fields
`to provide the user with information and to enable the user 40
`to input information and data to the underlying application
`program. Typically, the information and input capabilities
`provided by the dialog window relate to the context from
`which the dialog window was invoked. For example, when
`the Format Character dialog is invoked as described above, 45
`the input choices and information provided relate to data that
`was selected prior to invoking the dialog. In a typical
`window system, dialog windows are invoked from menu
`commands or by clicking with a user input device, such as
`a mouse, in specific areas on the computer display.
`In a typical computer window system environment, the
`dialog fields displayed in a dialog window are implemented
`by dialog controls supplied by the underlying system (e.g.,
`the window system, operating system, or other similar
`code). For example, some computer systems support stan- 55
`dard dialog controls such as a button for specifying an action
`to perform; a check: box, or similar control, for specifying a
`choice of n out of m items; a radio button, or similar control,
`for specifying a choice of one out of m items; a list control
`for displaying a list of choices; and edit controls for input- 60
`ting data (typically text). In these prior systems, edit controls
`typically include three types: a single-line edit control,
`which allows the user to enter text in a single predetermined
`font not exceeding one line; a multi-line edit control, which
`allows the user to enter multiple lines of text in a single 65
`predetennined font; and display-only single- and multi-line
`"edit" controls, which display text without edit capability.
`
`2
`FIG. 1 is an example dialog window in the Microsoft
`Word for Windows 2.0 product that contains several types of
`dialog fields. Specifically, FIG. 1 shows display screen 101
`displaying an underlying user document entitled "WFWDE-
`5 MO.DOC" being edited in document window 102. The
`Summary Info dialog window 103 is displayed in response
`to the user selecting the Summary Info command from the
`File menu on the document window 102. The Summary Info
`command allows users to enter document summary infor-
`10 mation pertaining to the underlying user document.
`The Summary Info dialog window 103 is shown contain(cid:173)
`ing several different fields that can be implemented using the
`dialog control types discussed above. For example, the File
`Name and Directory fields 104 can be implemented using
`15 display-only single-line "edit" controls. Also, the Title,
`Subject, Author, and Keywords fields 105 can be imple(cid:173)
`mented using a single-line edit control. The Comments field
`106 is an example of a multiple line edit field that can be
`implemented using a multi-line edit control. The "OK,"
`20 "Cancel,"O and "Statistics" buttons 107 can be implemented
`using button controls.
`FIG. 2 is an example dialog window in the Microsoft
`Word for Windows 2.0 product that contains dialog fields
`that can be implemented using other types of dialog controls.
`25 Specifically, the Page Setup dialog window 203 is displayed
`in response to the user invoking the Page Setup command
`from the Fonnat menu on the document window 202. The
`Page Setup dialog window 203 contains a radio button field
`204 for selecting which page attributes to modify; the Facing
`30 Pages field 205; which can be implemented using a check
`box control; and other fields, such as the ••Apply To" list
`field 206, which can be implemented by combining other
`controls or by implementing more specialized controls. The
`Page Setup dialog window 203 also contains the Sample
`35 field 207, which can be implemented by drawing a picture
`in the dialog window. This kind of picture is sometimes
`referred to as a picture item.
`
`SUMMARY OF THE INVENTION
`
`The limitations of prior systems are overcome by the
`present invention, which is an improved method and system
`for editing and formatting data in a dialog window. In a
`preferred embodiment, a rich text edit field is provided for
`inputting data, modifying the formatting characteristics of
`the input data, and for previewing the modified data and
`formatting characteristics as they will appear when
`accepted. This capability enables a user to preview and
`further modify changes before accepting them into an under-
`50 lying user document.
`In one embodiment, the rich text edit field is implemented
`by a rich text edit control provided by the underlying word
`processing application program. The rich text edit control
`utilizes the character inputting, displaying, and formatting
`routines of the underlying word processing application pro(cid:173)
`gram. In this embodiment, a word processing document is
`allocated and attached to the rich text edit control such that
`when the user inputs and edits data within the rich text edit
`field implemented by the rich text edit control, the rich
`formatting capabilities of the underlying word processing
`application program are available.
`In another embodllnent, the present invention provides a
`way to initially display formatted data in the rich text edit
`field with formatting characteristics inherited from the
`underlying user document. In another embodiment, the
`formatting characteristics of the initially displayed data are
`inherited from data incorporated from a document other than
`
`
`
`5,694,610
`
`3
`the user document. In yet another embodiment, the format(cid:173)
`ting characteristics of the initially displayed data are inher(cid:173)
`ited from data incorporated from another window.
`In another embodiment, data is entered into the rich text
`edit field by incorporating copied, moved, or linked data 5
`from another window.
`In another embodiment, a menu is used to indicate for(cid:173)
`matting modifications to the data displayed in the rich text
`edit field. In yet another embodiment, shortcut keys are used
`to indicate formatting modifications.
`In another embodiment, a dialog author can indicate
`which capabilities are enabled for a rich text . edit field,
`including which techniques are enabled for indicating for(cid:173)
`matting changes and whether the rich text edit field is 15
`displayed with scroll bars.
`
`10
`
`4
`FIG. 10 is a flow diagram of a portion of the main loop
`of the underlying word processing application program.
`FIG. 11 is a flow diagram of an example window proce(cid:173)
`dure for a rich text edit control.
`DETAlLED DESCRIPITON OF THE
`INVENTION
`Embodiments of the present invention provide methods
`and systems for editing and formatting data in a dialog
`window. According to the present invention, a user inputs
`formatted data to an underlying application program through
`a rich text edit field in a dialog window. A rich text edit field
`is an edit field that allows data to be input and the fonnatting
`characteristics, such as the character and paragraph
`attributes, of the data displayed in the edit field to be
`modified. A user can enter data and modify the formatting
`characteristics of the entered data preferably using the same
`techniques and mechanisms provided to enter data and to
`modify formatting characteristics in underlying user docu-
`ments. Although the present invention is discussed with
`reference to an underlying word processing application
`program, one skilled in the art will appreciate that the
`present invention is useful in other contexts as well, such as
`with database entry forms.
`Embodiments of the present invention provide a rich text
`edit control (a dialog control) that implements rich text edit
`fields. The rich text edit control preferably enables the user
`to input data and to format that data in a "what you see is
`what you get" ("WYSIWYG") fashion. That is, the user is
`30 able to view the data and the fonnatting characteristics of the
`data the way the data will appear in the underlying user
`document when the dialog window is closed.
`Embodiments of the present invention allow the user to
`enter data directly into the rich text edit field using the
`35 keyboard. Alternatively, the user can select data from
`another window, such as a clipboard window, and copy,
`move, or link the selected data into the rich text edit field.
`When data is incorporated from another window, the for(cid:173)
`matting characteristics of the data are also inherited so that
`the incorporated data is displayed in the rich text edit field
`with the same formatting characteristics as the original
`selected data.
`Embodiments of the present invention also provide sev(cid:173)
`eral mechanisms for modifying the formatting characteris(cid:173)
`tics of the data displayed in the rich text edit field. For
`example, in one embodiment, the user can modify font and
`paragraph attributes, such as point size and paragraph
`alignment, by invoking "pop-up" menus displayed, for
`example, in response to a user request by means of an input
`device such as a mouse. (Pop-up menus are menus that pop
`up on the display as opposed to being available through a
`displayed menu bar.) Although embodiments of the present
`invention are preferably addressed to enabling modification
`of formatting characteristics for font and paragraph
`55 attributes, one skilled in the art will appreciate that these
`same techniques may be used to support modification of
`other fonnatting attributes, for example, border formatting.
`In addition to the techniques described above, the user can
`use the standard shortcut keys available from the underlying
`60 word processing application program for entering and for(cid:173)
`matting the data in the rich text edit field. Shortcut keys are
`key sequences defined by the underlying application pro(cid:173)
`gram that directly map to functions otherwise invoked by
`performing several user actions. For example, the key
`65 sequence "CTRL-B" is a shortcut key that requests the
`underlying application program to change the character
`formatting of any selected data to emboldened data.
`
`BRIEF DESCRIPTION OF THE DRAWJNGS
`FIG. 1 is an example dialog window in the Microsoft
`Word for Windows 2.0 product that contains several types of 20
`dialog fields.
`FIG. 2 is an example dialog window in the Microsoft
`Word for Windows 2.0 product that contains dialog fields
`that can be implemented using other types of dialog controls.
`FIG. 3A is an example screen display of a dialog window 25
`containing a rich text edit field.
`FIG. 3B is an example of the resulting screen display of
`the rich text edit field of FIG. 3A after the user has input
`initial textual data.
`FIG. 3C is an example of the display screen when using
`a menu to modify the formatting characteristics of the data
`displayed in the rich text edit field of FIG. 3A.
`FIG. 3D is an example of a formatting dialog window
`displayed in response to invoking a menu command to
`change the font attributes of selected data in the rich text edit
`field of FIG. 3C.
`FIG. 3E is an example of the resulting screen display after
`modifying the font attributes of the selected data displayed
`in the rich text edit field of FIG. 3C.
`FIG. 4Ais an example dialog window with a rich text edit
`field that inherits formatting characteristics from an under(cid:173)
`lying user document.
`FIG. 4B is an example of the display screen when 45
`modifying the font attributes of selected text in a rich text
`edit field using a menu with restricted formatting capabili(cid:173)
`ties.
`FIG. 4C is an example of the resulting screen display of
`the rich text edit field of FIG. 4B after modifying the font 50
`attributes and data contents of the rich text edit field.
`FIG. 4D is an example screen display of the results in the
`underlying document after using a rich text edit field to edit
`and format data from the underlying document.
`FIG. S is a block diagram of a general purpose computer
`system for practicing preferred embodiments of the present
`invention.
`FIG. 6 is a flow diagram of the steps perfonned by a
`dialog author to create a dialog resource file that contains a
`rich text edit control.
`FIG. 7 is a flow diagram of an example standard dialog
`procedure for a dialog window.
`FIG. 8 is a :fl.ow diagram of an example dialog specific
`initialization routine for initializing a rich text edit control.
`FIG. 9 is a flow diagram of an example rich text edit
`control callback routine.
`
`40
`
`
`
`5,694,610
`
`10
`
`5
`Embodiments of the present invention also provide the
`ability to add a vertical scroll bar to the rich text edit field
`to enable the user to add more text than would be visible in
`the predefined display area reserved for the rich text edit
`field.
`FIGS. 3A-3E provide an example sequence of how a user
`utilizes a rich text edit field in a dialog window to enter data
`and to modify the formatting characteristics of that data.
`FIG. 3A is an example screen display of a dialog window
`containing a rich text edit field. As shown, the user is
`currently editing user document ''WFWDEM02.DOC" in a
`word processing application program document window
`3A02 on display screen 3A01. The Envelopes and Labels
`dialog window 3A03 has been invoked in response to
`selection of the Envelopes and Labels command from the 15
`Tools menu of the document window 3A02. Dialog window
`3A03 contains instructions and data for creating envelopes
`and labels corresponding to the underlying user document
`displayed in document window 3A02. The Envelopes and
`Labels dialog window 3A03 is shown as it is initially 20
`displayed containing the empty Address field 3A04, which
`is implemented by a rich text edit control.
`To enable the computer system to open a dialog window,
`the present invention provides a dialog resource file to
`specify the fields, including any rich text edit fields, that 25
`should be displayed on the dialog window when it is opened
`and the state information for the dialog controls that imple(cid:173)
`ment these fields. When the dialog window is opened, the
`dialog management code that implements the dialog window
`behavior uses the information in the dialog resource file to 30
`display the defined dialog fields on the dialog window and
`to set the initial state of the dialog controls that implement
`these fields. Thus, when a dialog window is opened for a
`dialog resource file that contains a rich text edit control
`definition, a corresponding rich text edit field is displayed 35
`with an initial state as defined by the dialog resource file and
`the initialization routines of the dialog management code.
`For example, the Address field 3A04 is initially displayed
`containing no data because the dialog resource file definition
`for this rich text edit field contains no initial data and the 40
`initialization code does not add any data.
`FIG. 3B is an example of the resulting screen display of
`the rich text edit field of FIG. 3A after the user has input
`initial textual data. In FIG. 3B, the Envelopes and Labels
`dialog window 3B03 displays the entered text in the rich text 45
`edit field 3B04. Note that the formatting characteristics of
`the text displayed in the rich text edit field 3B04 can be
`different from the formatting characteristics of the currently
`selected data in the underlying user document (not shown).
`This capability is supported by setting an initial set of 50
`characteristics in an initialization routine in the dialog
`management code for dialog window 3B03.
`FIG. 3C is an example of the display screen when using
`a menu to modify the formatting characteristics of the data
`displayed in the rich text edit field of FIG. 3A. In FIG. 3C, 55
`the text currently displayed in the rich text edit field 3C04 is
`shown after the user has invoked the paragraph item on the
`pop-up menu 3C05 to change the paragraph alignment to
`centered alignment. FIG. 3C also illustrates the :first steps in
`the sequence that is further illustrated in FIGS. 3D and 3E 60
`of the actions performed to change the font attributes of the
`data displayed in the rich text edit field 3C04. First, the user
`selects the data in the rich text edit field 3C04 that the user
`wishes to modify. Next, by clicking on the rich text edit field
`3C04 with a user input device such as a mouse, the user 65
`invokes the pop-up menu 3C05 and selects the font item
`from the menu 3C05.
`
`6
`FIG. 3D is an example of a formatting dialog window
`displayed in response to invoking a menu command to
`change the font attributes of selected data in the rich text edit
`field of FIG. 3C. FIG. 3D shows the Font dialog window