for reuse. The possibilities include patterns and color gradients for fills; corner, endpoint, pen-type and thickness for lines. Box styles can be used as container style, including a border, lines, fill, text and caption; each with its separate style. A text box style shows that WordPerfect cascades its styles. Around the same time, Corel included WordPerfect, with its full functionality, in CorelDraw Graphics Suite as the text editor. Reveal codes Present since the earliest versions of WordPerfect, the Reveal Codes feature distinguishes it from other word processors; Microsoft Word's equivalent is much less powerful. It displays and allows editing the codes, reduces retyping, and enables easy formatting changes. It is a second editing screen that can be toggled open and closed, and sized as desired. The codes for formatting and locating text are displayed, interspersed with tags and the occasional objects, with the tags and objects represented by named tokens. This provides a more detailed view to troubleshoot problems than with styles-based word processors, and object tokens can be clicked with a pointing device to directly open the configuration editor for the particular object type, e.g. clicking on a style token brings up the style editor with the particular style type displayed. WordPerfect had this feature already in its DOS incarnations. Macro languages WordPerfect for DOS stood out for its macros, in which sequences of keystrokes, including function codes, were recorded as the user typed them. These macros could then be assigned to any key desired. This enabled any sequence of keystrokes to be recorded, saved, and recalled. Macros could examine system data, make decisions, be chained together, and operate recursively until a defined "stop" condition occurred. This capability provided a powerful way to rearrange data and formatting codes within a document where the same sequence of actions needed to be performed repetitively, e.g., for tabular data. But since keystrokes were recorded, changes in the function of certain keys as the program evolved would mean that macros from one DOS version of WordPerfect would not necessarily run correctly on another version. Editing of macros was difficult until the introduction of a macro editor in Shell, in which a separate file for each WordPerfect product with macros enabled the screen display of the function codes used in the macros for that product. WordPerfect DOS macros, which assumed a text-based screen, with fixed locations on the screen, could not, or could not