WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and system for editing and formatting data in a dialog window    
United States Patent5579466   
Link to this pagehttp://www.wikipatents.com/5579466.html
Inventor(s)Habib; Catherine L. (Redmond, WA); Bush; Steven (Issaquah, WA)
AbstractA method and system for editing and formatting data in a dialog window is provided. In a preferred embodiment, a rich text edit control is provided to support 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 characteristics of entered data using the same techniques and mechanisms 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 formatting 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.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5579466
Method and system for editing and formatting data in a dialog window - US Patent 5579466 Drawing
Method and system for editing and formatting data in a dialog window
Inventor     Habib; Catherine L. (Redmond, WA); Bush; Steven (Issaquah, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     November 26, 1996
Application Number     08/299,938
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 1, 1994
US Classification     715/529 358/402 715/539 715/540 715/781
Int'l Classification     G06F 017/24
Examiner     Herndon; Heather R.
Assistant Examiner     Feild; Joseph H.
Attorney/Law Firm     Seed and Berry LLP
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/148 395/144 395/145 395/146 395/144 395/145 395/146 364/419.1 364/419.17 358/402
Patent Tags     editing formatting data dialog window
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5392386
Chalas

Feb,1995

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A method in a computer system for formatting data in an edit field, the computer system having windows for inputting and displaying data and having an application program that supports editing, the application program providing a rich text edit control for implementing the behavior of the edit field, the method comprising the computer-implemented steps of:

opening a dialog window, wherein the dialog window is displayed;

displaying the edit field in the displayed dialog window;

receiving data, directly from a user, to be displayed in the edit field; and without closing the dialog window,

displaying the received data in the edit field according to a first format;

determining a second format; and

using the rich text edit control, re-displaying the received data displayed in the edit field according to the determined second format.

2. The method of claim 1 wherein the step of displaying the edit field further comprises the step of displaying initial data in the edit field according to the first format before receiving data from the user.

3. The method of claim 2, the application program supporting editing of a document, wherein the step of displaying the edit field in the displayed dialog window is performed by the application program, and wherein the step of displaying the initial data displays data that is supplied from the document.

4. The method of claim 1 wherein the step of receiving data from the user further comprises the steps of:

determining a data selection, the data selection being located in a window other than the dialog window; and

incorporating the data selection into the edit field.

5. A method in a computer system for formatting data in an edit field, the computer system having windows for inputting and displaying data and having an application program that supports editing, the application program providing a rich text edit control for implementing the behavior of the edit field, the method comprising the computer-implemented steps of:

opening a dialog window, wherein the dialog window is displayed;

displaying the edit field in the displayed dialog window;

determining a first format for displaying data in the edit field; and

without closing the dialog window,

determining a second format for displaying data in the edit field;

receiving data, directly from a user, to be displayed in the edit field; and

using the rich text edit control, displaying the received data in the edit field according to the determined second format.

6. The method of claim 5 wherein the step of displaying the edit field further comprises the step of displaying initial data in the edit field according to the first format.

7. The method of claim 6, the application program supporting editing of a document, wherein the step of displaying the edit field in the displayed dialog window is performed by the application program, and wherein the step of displaying the initial data displays data that is supplied from the document.

8. The method of claim 6 wherein the step of receiving data from the user further comprises the steps of:

determining a data selection in a window other than the dialog window; and

incorporating the data selection into the edit field.

9. The method of claim 5 wherein the computer-implemented steps are performed on an MS-DOS compatible operating system.

10. A method in a computer system for formatting data in an edit field, the computer system having windows for inputting and displaying data and having an application program that supports editing, the application program providing a rich text edit control for implementing the behavior of the edit field, the method comprising the computer-implemented steps of:

displaying the edit field in an open dialog window;

displaying data in the edit field according to a first format; and

without closing the dialog window,

altering the content of the displayed data;

determining a second format for displaying the data in the edit field; and

using the rich text edit control, re-displaying the data in the edit field according to the determined second format.

11. The method of claim 10 wherein the step of determining a second format determines font attributes.

12. The method of claim 10 wherein the step of determining a second format determines paragraph attributes.

13. The method of claim 10, the application program supporting editing of a document, wherein the step of displaying data in the edit field according to the first format displays data that is supplied from the document.

14. The method of claim 10 wherein the step of determining a second format further comprises the steps of:

displaying a menu; and

determining a format selection from the menu.

15. The method of claim 10 wherein the step of altering the content of the displayed data in the edit field further comprises the steps of:

determining a data selection, the data selection being located in a window other than the dialog window; and

incorporating the data selection into the edit field.

16. The method of claim 15 wherein the step of incorporating comprises the substep of copying the determined data selection into the edit field.

17. The method of claim 15 wherein the step of incorporating comprises the substep of moving the determined data selection into the edit field.

18. The method of claim 15 wherein the step of incorporating comprises the substep of linking the determined data selection into the edit field.

19. The method of claim 15, the computer system having a user input device, wherein the step of incorporating comprises the substep of dragging the determined data selection into the edit field using the user input device.

20. The method of claim 15 wherein the step of incorporating further comprising the substeps of:

storing an indicator to the determined data in a clipboard window; and

using the stored indicator, incorporating the determined data into the edit field.

21. The method of claim 10, the computer system having a keyboard with a plurality of keys, each key corresponding to a different format, and wherein the step of determining the second format comprises the substeps of:

in response to a user pressing a key from among the plurality of keys, determining the corresponding format; and

using the determined format as the second format.

22. The method of claim 10, wherein the step of displaying the edit field in the dialog window further comprises the step of displaying the edit field with a scroll bar such that the data displayed in the edit field is scrollable.

23. A method in a computer system for formatting data in an edit field, the computer system having windows for inputting and displaying data and having an application program that supports editing, the application program providing a rich text edit control for implementing the behavior of the edit field, the method comprising the computer-implemented steps of:

opening a dialog window, wherein the dialog window is displayed;

displaying the edit field in the displayed dialog window;

determining a data selection, the data selection located in a second window other than the dialog window, the data selection having data in an initial format in the second window;

incorporating the data from the determined data selection into the edit field, such that the data is displayed according to the initial format; and

without closing the dialog window,

indicating a modified format for displaying data in the edit field; and

using the rich text edit control, re-displaying the displayed incorporated data according to the modified format.

24. A method in a word processor for formatting data from a document, the data having format characteristics, the word processor having a plurality of dialog windows for inputting and displaying data and providing a rich text edit control, the method comprising the computer-implemented steps of:

displaying a dialog window from amongst the plurality of dialog windows to change a format characteristic of a selection of data in the document;

using the rich text edit control displaying an edit field in the displayed dialog window with the edit field initially displaying the selection of data; and

without closing the dialog window and using the rich text edit control,

determining a modified format characteristic for the data displayed in the edit field; and

displaying the data in the edit field according to the modified format.

25. The method of claim 24, further comprising the step of, when the dialog window is closed, displaying the selection of data in the document according to the modified format.

26. A method in a computer system for entering formatted data into a document, the method comprising the computer-implemented steps of:

displaying a dialog with a plurality of fields for entering data, each field having a rich text edit control for managing inputting and formatting data in the field;

receiving data from a user;

displaying data in a selected one of the plurality of fields according to an initial format;

without closing the dialog,

indicating to the rich text edit control of the selected field a modified format for displaying the data in the selected field; and

under control of the rich text edit control of the selected field, displaying the data in the selected field according to the modified format; and

incorporating into the document the data displayed in the selected field according to the modified format.

27. A method in a computer system for implementing a rich text edit field in a dialog window, the computer system having an application program having code for inserting and displaying data in document structures, the method comprising the computer-implemented steps of:

creating a dialog window;

allocating space in the dialog window for the rich text edit field;

allocating a document structure for storing data that is placed in the rich text edit field;

associating the allocated document structure with the rich text edit field;

initializing the allocated document structure according to initial format characteristics;

displaying the dialog window with the rich text edit field;

in response to receiving user input of data for the rich text edit field, invoking the code for inserting and displaying data; and

under control of the invoked code for inserting and displaying data, inserting the received data in the allocated document structure associated with the rich text edit field, such that the received data is displayed in the rich text edit field according to the initial format characteristics.

28. The method of claim 27, further comprising the steps of:

without closing the dialog window,

determining a modified format for the rich text edit field; and

re-displaying the data in the rich text edit field according to the modified format.

29. The method of claim 27, the application program being a word processing program that creates and inserts data in a user document, wherein the code that inserts the received data into the allocated document structure associated with the rich text edit field in the created dialog window is the same code that is used to insert data in the user document.

30. The method of claim 27, the application program being a word processing program that displays data in a user document, wherein the code that displays the received data in the rich text edit field is the same code that is used to display data in the user document.

31. The method of claim 27, the application program having a rich text edit control for implementing the rich text edit field, wherein the document structure is defined by the application program and wherein the step of allocating the document structure for storing data that is placed in the rich text edit field is performed by the rich text edit control.

32. A computer system for inputting and formatting data, the computer system comprising:

an edit field for containing data;

a dialog window having a display region that, in response to being opened, displays the edit field in the display region;

a first format indication mechanism that, in response to being invoked, indicates an initial format for data to be contained in the edit field;

a data input mechanism that,

opens the dialog window,

invokes the first format indication mechanism to indicate the initial format,

receives and inputs data into the displayed edit field, and

displays the data contained in the displayed edit field according to the initial format; and

a rich text edit control that, without closing the dialog window, modifies the format of the data contained in the displayed edit field and causes the data in the displayed edit field to be re-displayed according to the modified format.

33. A computer system for inputting and formatting data, the computer system comprising:

edit field having means for containing data;

a dialog window having means for displaying the edit field, the dialog window having a display region and that, in response to being opened, causes the dialog window display means to display the edit field in the display region;

means for indicating an initial format that, in response to being invoked, indicates the initial format for data to be contained in the edit field;

means for receiving and inputting data that

opens the dialog window,

invokes the means for indicating the initial format to indicate the initial format,

receives and inputs data into the displayed edit field, and

invokes the dialog window display means to display the data contained in the displayed edit field; and

rich text edit control means that, without closing the dialog window, modifies the format of the data contained in the displayed edit field and displays the data in the displayed edit field according to the modified format.

34. A computer system for inputting and formatting data, the computer system comprising:

an edit field for containing data;

a dialog window having a display region that, in response to being opened, displays the edit field in the display region;

a second window having data in an initial data format;

a data selection mechanism that, in response to being invoked, selects a portion of the data in the second window;

an incorporation mechanism that

opens the dialog window,

invokes the data selection mechanism to obtain the selected data in the initial format,

incorporates the selected data into the displayed edit field according to the initial format of the selected data, thereby causing the incorporated data to be contained in the displayed edit field, and

displays the contained data; and

a rich text edit control that, without closing the dialog window, modifies the format of the data contained in the displayed edit field and re-displays the data in the displayed edit field according to the modified format.

35. A computer system for inputting and formatting data, the computer system comprising:

an edit field having means for containing data;

a dialog window having means for displaying the edit field, the dialog window having a display region and that, in response to being opened, causes the dialog window display means to display the edit field in the display region;

a second window having data in an initial data format;

means for selecting data that, in response to being invoked, selects a portion of the data in the second window:

means for incorporating data that opens the dialog window,

invokes the data selection means to obtain the selected data in the initial format,

incorporates the selected data into the displayed edit field according to the initial format of the selected data, thereby causing the incorporated data to be contained in the displayed edit field, and

invokes the dialog window display means to display the contained data in the displayed edit field; and

means for modifying a data format that, without closing the dialog window, modifies the format of the data contained in the displayed edit field and displays the data in the displayed edit field according to the modified format.
 Description Submit all comments and votes
 


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 performed 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 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, 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 standard 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 inputting 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 predetermined font; and display-only single- and multi-line "edit" controls, which display text without edit capability.

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 "WFWDEMO.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 information pertaining to the underlying user document.

The Summary Info dialog window 103 is shown containing 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 display-only single-line "edit" controls. Also, the Title, Subject, Author, and Keywords fields 105 can be implemented 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," "Cancel," 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. Specifically, the Page Setup dialog window 203 is displayed in response to the user invoking the Page Setup command from the Format 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 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 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 underlying 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 program. 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 embodiment, 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 the user document. In yet another embodiment, the formatting characteristics of the initially displayed data are inherited 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 from another window.

In another embodiment, a menu is used to indicate formatting 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 formatting changes and whether the rich text edit field is displayed with scroll bars.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example dialog window in the Microsoft Word for Windows 2.0 product that contains several types of 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 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. 4A is an example dialog window with a rich text edit field that inherits formatting characteristics from an underlying user document.

FIG. 4B is an example of the display screen when modifying the font attributes of selected text in a rich text edit field using a menu with restricted formatting capabilities.

FIG. 4C is an example of the resulting screen display of the rich text edit field of FIG. 4B after modifying the font 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. 5 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 performed 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 flow 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.

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 procedure for a rich text edit control.

DETAILED DESCRIPTION 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 formatting 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 documents. 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 able to view the data and the formatting 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 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 formatting 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 several mechanisms for modifying the formatting characteristics 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 attributes, one skilled in the art will appreciate that these same techniques may be used to support modification of other formatting attributes, for example, border formatting.

In addition to the techniques described above, the user can use the standard shortcut keys available from the underlying word processing application program for entering and formatting the data in the rich text edit field. Shortcut keys are key sequences defined by the underlying application program that directly map to functions otherwise invoked by performing several user actions. For example, the key 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.

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 "WFWDEMO2.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 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 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 should be displayed on the dialog window when it is opened and the state information for the dialog controls that implement 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 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 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 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 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 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, 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 Figures 3D and 3E 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 invokes the pop-up menu 3C05 and selects the font item from the menu 3C05.

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 3D01 containing dialog fields for changing the font 3D02, the font style 3D03, and the font point size 3D04, and containing the Preview field D05 for previewing the effect of the current state of the dialog controls on the data selected prior to invoking the Font menu item in FIG. 3C. Once the user has decided which font attributes are desired, the user presses the 0K button 3D06 and the dialog window 3D01 is closed.

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. The text that was selected in the rich text edit field 3C04 in FIG. 3C is shown in FIG. 3E as selected text 3E05 with its formatting characteristics modified to reflect the final selection of attributes in the dialog window 3D01 in FIG. 3D. One skilled in the art will appreciate that the techniques used to modify the formatting characteristics of data in a rich text edit field displayed as part of a dialog window are preferably analogous to the techniques used to modify the formatting characteristics of data in the underlying user document.

FIGS. 4A-4D provide an example sequence of how a user utilizes a rich text edit field in a dialog window to edit and format data from an underlying user document and to preview the modifications in a WYSIWYG fashion before accepting them as new data in the underlying user document. FIG. 4A is an example dialog window with a rich text edit field that inherits formatting characteristics from an underlying user document. Specifically, in response to the user invoking the Grammar command from the Tools menu of document window 4A02, the Grammar dialog window 4A03 is displayed on the display screen 4A01 with a sentence displayed in the rich text edit field 4A05 that contains incorrect grammar. The sentence with the incorrect grammar is shown highlighted as data 4A04 in the underlying user document displayed in document window 4A02. The data initially displayed in rich text edit field 4A05 reflects the formatting characteristics of the highlighted data 4A04 in the underlying user document displayed in document window 4A02. For example, the phrase "enhance productivity" is displayed as emboldened, italicized text in both the underlying user document displayed in window 4A02 and in the rich text edit field 4A05.

FIG. 4B is an example of the display screen when modifying the font attributes of selected text in a rich text edit field using a menu with restricted formatting capabilities. The user first selects the data to be modified, which is displayed as selected text 4B06. Next, the user invokes a Font dialog window to change the font attributes of the selected text 4B06 by invoking a pop-up menu as described with reference to FIG. 3D. Note, however, that pop-up menu 4B07 does not contain an item for modifying paragraph attributes. The contents of the menu 4B07 are preferably controlled by flags in the dialog resource file, as described further below.

FIG. 4C is an example of the resulting screen display of the rich text edit field of FIG. 4B after modifying the font attributes and data contents of the rich text edit field. Specifically, the data indicated as selected text 4C06 has been edited to fix the grammatical error ("offer" to "offers") and to remove the previous emboldened and italicized phrase. Because this change has not been accepted yet by the user, the unmodified highlighted text 4C04 remains displayed in the underlying user document as shown in document window 4C02.

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. As shown, selected text 4D03 illustrates the resulting modification that occurs to the underlying document displayed in document window 4D02 after closing the Grammar dialog window 4C03 displayed in FIG. 4C.

In preferred embodiments, the methods and systems of the present invention are implemented on a computer system comprising a central processing unit, a display, a memory, and input/output devices. Preferred embodiments are designed to operate in a windowed word processing environment, such as an environment that supports the Microsoft Windows environment defined by Microsoft Corporation in Redmond, Wash. One skilled in the art will also recognize that embodiments of the present invention can be practiced in other windowed environments.

FIG. 5 is a block diagram of a general purpose computer system for practicing preferred embodiments of the present invention. The computer system 501 contains a central processing unit (CPU) 502, a display screen (display) 503, input/output devices 504, and a computer memory (memory) 505. The window system, as well as the word processing application program and other programs, preferably reside in the memory 505 and execute on the CPU 502. The word processing code 507 is shown containing a user document 508 while the document is being edited in memory. Dialog management code 509 for implementing the dialog windows that provide user input to the word processing code 507 also reside in computer memory 505. One skilled in the art would appreciate that the methods of the present invention may be practiced on processing systems with varying architectures and on systems with hardwired logic. Also, one skilled in the art will realize that the present invention can be implemented in a distributed environment, where more than one computer system is used to communicate with other computer systems.

In one aspect of the invention, a preferred embodiment provides a rich text edit control for implementing a rich text edit field in a dialog window. This rich text edit control is preferably provided by the underlying system to enable dialog authors to support editing and formatting data in an edit field in a dialog window. In one preferred embodiment, the rich text edit control is preferably provided by a word processing application program to enable the rich text edit control to support the same rich formatting capabilities as the underlying word processing application program and to utilize the underlying code already existent for performing editing and formatting in a user document. In this embodiment, a word processing document and its associated structures are allocated and associated with the rich text edit field. When a user indicates that the user desires to edit data in the rich text edit field, the document associated with the rich text edit field becomes the "current document" and the word processing code edits and formats data in that document using its standard routines. (The current document is the document the word processing application program is currently editing.)

In order for this embodiment to incorporate the capabilities of rich text edit fields into existing word processing application code, the system of the present invention preferably integrates the rich text edit control code with the dialog management code and the word processing application code in as unobtrusive a manner as possible. In summary, a dialog resource file is created that hooks into the word processing code through a rich text edit control callback routine, a rich text edit control window procedure, and the dialog management code. The dialog resource file contains the definitions for the dialog edit fields and dialog controls as described above. With respect to a rich text edit field, the dialog resource file contains an indication of rich text edit control specific code (a callback routine) that allocates the document structures for the rich text edit field when the dialog window is opened and that hooks the rich text edit control into the word processing code. In addition, the resource file contains a indication of the window procedure to be used to process mouse events received in the rich text edit field. Also, the resource file contains dialog specific initialization code for setting up the document structures allocated by the rich text edit control callback routine (when the dialog is opened) according to the definitions in the dialog resource file.

When a dialog is created, typically in response to some user action, the system of the present invention invokes dialog management code to open a dialog window with the proper contents and to manage input and output to the dialog window. The underlying system provides a general (standard) dialog procedure to manage input and output to dialogs in general. For each action taken by the standard dialog procedure (e.g. opening a dialog), the standard dialog procedure does the action and then invokes dialog specific code (e.g. such as the dialog specific initialization code indicated by the dialog resource file) to enable dialog specific event handling to occur. Thus, when invoked to create a dialog, the standard dialog procedure opens the dialog window, invokes the indicated callback routine defined in the dialog resource file to create the document structures, and then invokes the dialog specific initialization code to initialize these structures according to the definition of the rich text edit control in the dialog resource file. One skilled in the art will appreciate that other architectures exist, for example, a system can be provided that does not support a standard dialog procedure and, instead, each dialog definition preferably provides its own dialog management code.

Once the dialog window containing the rich text edit field is open and displayed on the display screen, a user can input data to the rich text edit field and change the formatting of the data. To perform these actions, the user navigates to the rich text edit field using well-known dialog navigation techniques, for example by clicking on the appropriate field with a user input device such as a mouse, or by navigating to the field using the keyboard. In one embodiment, when the user navigates to the rich text edit field, the dialog procedure receives the corresponding keyboard or mouse event. The dialog procedure then notifies the corresponding rich text edit control through its callback routine to inform it that the rich text edit field has keyboard focus (should process keystrokes). When the next and subsequent keyboard events are received (by the dialog procedure), the dialog procedure notifies the callback routine, which in turn sets the current document to the document associated with the rich text edit field (when the keyboard focus is initially indicated) and notifies the word processing code to process the keyboard event. (In the typical case, unlike the rich text edit field case, when a dialog field has keyboard focus, keyboard events are passed to the dialog procedure and are processed directly by the dialog procedure.) The word processing code then processes the keyboard event in its normal input loop. Because the current document is set to the document associated with the rich text edit field, the input will automatically appear in and be processed with respect to the rich text edit field. Alternatively, the callback routine could be programmed to handle the editing and formatting capabilities without passing events to the word processing code.

In an alternative embodiment, such as in the Microsoft Windows environment, where events are dispatched to other programs only when one program relinquishes control back to the window system, the integration of the components is slightly modified.