<!-- ===================================================================== --> <!-- This file is an AbiWord document. --> <!-- AbiWord is a free, Open Source word processor. --> <!-- You may obtain more information about AbiWord at www.abisource.com --> <!-- You should not edit this file by hand. --> <!-- ===================================================================== --> <!-- Build_ID = KLEE- --> <!-- Build_Options = JavaScript:Off Debug:On --> <!-- Build_Target = WIN32_4.0_i386_DBG --> <!-- Build_CompileTime = 14:00:12 --> <!-- Build_CompileDate = Apr 6 1999 --> <abiword> <styles> <s name="Custom" props="font-family:Verdana"/> <s name="Heading 2" props="font-family:Arial; font-size:12pt; font-style:italic; font-weight:bold; keep-with-next:1; margin-bottom:3pt; margin-top:12pt; text-align:right; text-decoration:line-through"/> <s basedon="Heading 2" name="Heading 3" props="text-decoration:underline"/> <s name="Highlight" type="c" props="color:ff00ff"/> <s name="Unused" props="text-align:center"/> </styles> <section> <p style="Heading 1">Heading 1</p> <p style="Heading 2">Heading 2</p> <p style="Heading 3">Heading 3</p> <p style="Heading 4"><c style="Highlight">Heading 4 </c>is not defined yet, so we ignore it when formatting. </p> <p style="Normal" props="margin-top:12pt"><c style="Highlight">Normal</c> is just a nice way to make sure that you've got a basic style you can use for all your paragraphs. By default, everything is in this style. We've also predefined a few other basic styles, just to show how this works. </p> <p style="Block Text" props="margin-top:12pt">For example, <c style="Highlight">Block Text </c>can be used for inset quotes. I happen to think that the full inch indents on either side are ridiculous, but that's the way Word 97 ships, so I figured it'd be worth at least showing off that we can do the same thing. </p> <p style="Block Text" props="margin-top:12pt">Of course, I'd much rather make something decent looking. <c props="font-family:Courier New">:-)</c></p> <p style="Normal">And for code, etc. we have:</p> <p style="Plain Text" props="line-height:1.0; margin-top:12pt"><c style="Highlight">Plain Text</c>, which is another paragraph-level style.</p> <p props="margin-top:12pt">How do you like them apples? <c props="font-family:Courier New">:-)</c></p> <p style="Heading 1" props="margin-top:12pt">Customization</p> <p style="Custom" props="margin-top:12pt">Most of the styles demonstrated in this document come from the current built-in set of styles. Until we hook up the Format/Styles menu, these are the only styles you'll be able to use. However, for testing purposes, this document redefines the <c style="Highlight">Heading 2 </c>style to also be right-aligned and strike-through. Likewise, <c style="Highlight">Heading 3 </c>is redefined to be <c props="font-family:Courier New">basedon</c> <c style="Highlight">Heading 2</c>, plus underline. In addition, this document has one <c style="Highlight">Custom </c>paragraph style which is used for this paragraph. The document also defines an <c style="Highlight">Unused </c>style, mostly to demonstrate that user-defined styles persist, whether they're referenced or not. Finally, there's a character-level <c style="Highlight">Highlight </c>style, which is used for all the style names in this document.</p> <p style="Heading 1" props="margin-top:12pt">TODO</p> <p props="margin-left:0.1875in; margin-top:12pt; text-indent:-0.1875in">1. When the user sets a style "over" existing explicit formatting, do the Right Thing. If it's a different style, nuke the explicit formatting. If it's the same, pop up a dialog and ask whether to update the style to include those properties, or just revert to the existing definition. </p> <p props="margin-left:0.1875in; margin-top:12pt; text-indent:-0.1875in">2. Likewise, we may want logic to avoid setting explicit properties which duplicate the underlying style. </p> <p props="margin-left:0.1875in; margin-top:12pt; text-indent:-0.1875in">4. Honor the <c props="font-family:Courier New">followedby</c><c props="font-family:Times New Roman"> </c>attribute. </p> <p props="margin-left:0.1875in; margin-top:12pt; text-indent:-0.1875in">5. Allow style definitions to be added and edited. This is more significant work because, not only does it require a few rich dialogs, but we also need to efficiently reformat the document to use the new style definitions. </p> <p props="margin-left:0.1875in; margin-top:12pt; text-indent:-0.1875in">6. Rework styles mechanism so they can be loaded from templates, instead of always being hardwired. The current trick of overwriting built-in styles may not work in this case, especially if we want to do something like the Style Gallery, which swaps templates underneath the existing document, thereby updating all its styles. </p> <p props="margin-left:0.1875in; margin-top:12pt; text-indent:-0.1875in">7. Also, decide what the hardwired set of style definitions should be. Something less ugly than this would be nice. <c props="font-family:Courier New">:-)</c></p> </section> </abiword>