2010/11/10 Christoph Schäfer <span dir="ltr">&lt;<a href="mailto:christoph-schaefer@gmx.de">christoph-schaefer@gmx.de</a>&gt;</span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div style="font-family: &#39;Sans Serif&#39;; font-size: 13pt; font-weight: 400; font-style: normal;"><div><div></div><div class="h5">
<p style="margin: 0px; text-indent: 0px;">On Wednesday 10 November 2010 18:06:12 Gregory Pittman wrote:</p>
<p style="margin: 0px; text-indent: 0px;">&gt; On 11/10/2010 09:55 AM, <a href="mailto:dbolack@electricmulch.com" target="_blank">dbolack@electricmulch.com</a> wrote:</p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt;&gt;&gt; The values are always visible and accessible. They are in the</p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt;&gt;&gt; Properties Palette. The one issue to solve here is to put in the PP</p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt;&gt;&gt; all the settings that are only available into the actual Style</p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt;&gt;&gt; Manager.</p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt; </p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt; I&#39;m that wacky class of user who finds those side palettes distracting</p>
<p style="margin: 0px; text-indent: 0px;">&gt; &gt; and wasteful of screen real estate.</p>
<p style="margin: 0px; text-indent: 0px;">&gt; </p>
<p style="margin: 0px; text-indent: 0px;">&gt; GUI DESIGN AS URBAN PLANNING</p>
<p style="margin: 0px; text-indent: 0px;">&gt; </p>
<p style="margin: 0px; text-indent: 0px;">&gt; The PP has already become an overcrowded ghetto of functions that may</p>
<p style="margin: 0px; text-indent: 0px;">&gt; have seemed like a good idea at the time, but have created a succession</p>
<p style="margin: 0px; text-indent: 0px;">&gt; of cramming of information and choices into a dialog which would</p>
<p style="margin: 0px; text-indent: 0px;">&gt; realistically need to crowd out the document display to easily show</p>
<p style="margin: 0px; text-indent: 0px;">&gt; everything in it.</p>
<p style="margin: 0px; text-indent: 0px;">&gt; </p>
<p style="margin: 0px; text-indent: 0px;">&gt; The answer is to find the philosophical approach that can serve as some</p>
<p style="margin: 0px; text-indent: 0px;">&gt; sort of urban renewal, finding a new home for squatters on this precious</p>
<p style="margin: 0px; text-indent: 0px;">&gt; real estate. At this point, if you&#39;re going to live in the PP, you have</p>
<p style="margin: 0px; text-indent: 0px;">&gt; to justify your existence, either in terms of importance or kind of task</p>
<p style="margin: 0px; text-indent: 0px;">&gt; you perform. I would propose that anything which is a simple toggle, a</p>
<p style="margin: 0px; text-indent: 0px;">&gt; yes/no, check/uncheck, is a prime candidate for eviction to some other</p>
<p style="margin: 0px; text-indent: 0px;">&gt; place, maybe a Context menu. (this brings up an interesting possibility</p>
<p style="margin: 0px; text-indent: 0px;">&gt; of a Context Menu coming out of right-clicking the PP)</p>
<p style="margin: 0px; text-indent: 0px;">&gt; </p>
<p style="margin: 0px; text-indent: 0px;">&gt; Only after some ground has been cleared, the remaining bits reorganized,</p>
<p style="margin: 0px; text-indent: 0px;">&gt; are we in a position to putting more things in there, but even they</p>
<p style="margin: 0px; text-indent: 0px;">&gt; would have to abide by the new paradigm.</p>
<p style="margin: 0px; text-indent: 0px;">&gt; </p>
<p style="margin: 0px; text-indent: 0px;">&gt; The weakest argument for keeping something in the PP is that &quot;it&#39;s been</p>
<p style="margin: 0px; text-indent: 0px;">&gt; there since version 0.x&quot;. In software development, the only constant is</p>
<p style="margin: 0px; text-indent: 0px;">&gt; change.</p>
<p style="margin: 0px; text-indent: 0px;"></p>
</div></div><p style="margin: 0px; text-indent: 0px;">The comparison to urban planning is probably appropriate, and urban renewal can sometimes be achieved by adopting what works elsewhere.</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Since the original posting was about the Style Manager and the future of this beast, I&#39;d like to focus on this one, while the PP is currently being rewritten anyway.</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">When it comes to styles, there are probably three major aspects that have to be dealt with: editing, managing and applying them. In the future we may also have to consider whether a style can be a &quot;shared resource&quot; (Jon Cruz is also tinkering with this aspect in his work on Viaduct, and RagTime 6.5 recently introduced something like that: <a href="http://www.ragtime.de/img/art_tmb/308_1.jpg" target="_blank">http://www.ragtime.de/img/art_tmb/308_1.jpg</a>), but let&#39;s focus on the three obvious challenges.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">To see how styles have been implemented elsewhere, I looked at several DTP programs and word/document processors: AbiWord, KWord, OpenOffice.org Writer, LyX, RagTime, QuarkXPress, and InDesign.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">As it seems, there isn&#39;t much variety in style implementation (at least from the perspective of user interaction), and the details are only minor. The major differences can be found in style management. AbiWord, XPress and InDesign (and currently Scribus) use a free-floating dialog that lists all available styles and also enables access to style editing. Except for Scribus, all open a new dialog for style editing, whereas Scribus expands the Style Manager (sigh!). The fact that Scribus also allows for applying a style is, unfortunately, no advantage, as it is opaque and clumsy. As already mentioned, RagTime lists styles in a resource window, from which they can be accessed. LyX works similar to LaTeX, so the word &quot;style&quot; has a semantic definition and is dependent (among other things) on a document class -- nothing we could or should consider in a genuine DTP program. KWord and OO.o use a dialog that&#39;s dockable or docked to the right of the application window. This is an approach, which is familiar to users of programs like CorelDraw, sK1 or (partially) Inkscape, and its biggest advantage, at least in my opinion, that styles and other relevant resources or options are readily available without interfering with the view of the document, while free floating dialogs always hide parts of the layout, so, personally, I think that&#39;s the path to follow.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Both KWord and OO.o can also display style hierarchies, and OO.o has even more viewing options, although its mix of viewing options and sorting doesn&#39;t convince me. Both are also lacking a filter that allows to search for styles by names.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">In general, I consider the OO.o style management to be the sanest (disclaimer: I always preferred StarOffice over MS Office even back in the days when it was proprietary software because of its transparent and superb style management).</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">For those who are unfamiliar with the use of styles in OO.o, here&#39;s a short description: The dockable style manager (&quot;Stylist&quot;) consists of 3 parts: an icon bar at the top, a list field that lists all available styles and drop-down list at the bottom that offers sorting/viewing options.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">The icon bar is split into 2 parts: five icons for each supported kind of style (paragraph, character, frame, page and lists). To the right there are two icons for &quot;quick actions&quot;: the infamous &quot;bucket&quot; icon that allows for quick formatting of text, a feature that regularly drives users of word processors mad, and another one that provides a feature, which has been (rightfully) asked for by Louis: creating a style from direct formatting. While it should be obvious that the details (e.g. the kinds of styles available for selection) would have to be different in Scribus, the general approach is transparent and clearly arranged.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">The same is true for the style list: Double-clicking on a style will apply it. A right click on a style offers two or three options, depending on the kind of style: Default styles that are part of OO.o can be modified, and it&#39;s also possible to create a new style based on the default style. Custom styles can be deleted (the third option). Again, it&#39;s obvious that the concept can&#39;t be copied 1:1 for Scribus. E.g., there&#39;s no reason to have a long list of default styles, and the only styles protected from inadvertent deletion should be the ones created during document creation. On the other hand, it should be possible to easily assign a shortcut, something also requested by Louis (assigning keyboard shortcuts should be part of the &quot;management&quot; aspect of styles, in my opinion).</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">As for the sort/view choices, I already mentioned some of its shortcomings above. Let me add that many of OO.o&#39;s sorting options are probably superfluous in a DTP program, as they are based on typical automated word processing functions that remove the flexibility required in DTP.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">What about editing styles? Now, if the 3 tabs we have in Scribus now are considered to be too much, there&#39;s even more to hate in OO.o. Here&#39;s a list of tabs available in OO.o Writer:</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">1. Paragraph Styles:</p>
<p style="margin: 0px; text-indent: 0px;">- Organizer (style name, next style, parent style, category -- all very useful, IMHO)</p>
<p style="margin: 0px; text-indent: 0px;">- Indents and spacing</p>
<p style="margin: 0px; text-indent: 0px;">- Alignment</p>
<p style="margin: 0px; text-indent: 0px;">- Text flow</p>
<p style="margin: 0px; text-indent: 0px;">- Font</p>
<p style="margin: 0px; text-indent: 0px;">- Font effects</p>
<p style="margin: 0px; text-indent: 0px;">- Position (i.e. subscript/superscript settings, rotation, scaling and spacing)</p>
<p style="margin: 0px; text-indent: 0px;">- Outline and numbering</p>
<p style="margin: 0px; text-indent: 0px;">- Tabs</p>
<p style="margin: 0px; text-indent: 0px;">- Drop caps</p>
<p style="margin: 0px; text-indent: 0px;">- Background</p>
<p style="margin: 0px; text-indent: 0px;">- Borders</p>
<p style="margin: 0px; text-indent: 0px;">- Condition (options for condtional styles)</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">2. Character Styles (provides a subset of paragraph styles):</p>
<p style="margin: 0px; text-indent: 0px;">Organizer, Font, Font effects, Position, Background</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">3. Frame:</p>
<p style="margin: 0px; text-indent: 0px;">- Organizer</p>
<p style="margin: 0px; text-indent: 0px;">- Type (i.e. dimensions, the other settings are or should be irrelevant for a DTP program)</p>
<p style="margin: 0px; text-indent: 0px;">- Options (editable: yes/no, printable: yes/no, text direction)</p>
<p style="margin: 0px; text-indent: 0px;">- Flow (i.e. types of text flow around the frame)</p>
<p style="margin: 0px; text-indent: 0px;">- Background</p>
<p style="margin: 0px; text-indent: 0px;">- Borders</p>
<p style="margin: 0px; text-indent: 0px;">- Columns</p>
<p style="margin: 0px; text-indent: 0px;">- Macro</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">4. Page:</p>
<p style="margin: 0px; text-indent: 0px;">- Organizer</p>
<p style="margin: 0px; text-indent: 0px;">- Page</p>
<p style="margin: 0px; text-indent: 0px;">- Background</p>
<p style="margin: 0px; text-indent: 0px;">- Header</p>
<p style="margin: 0px; text-indent: 0px;">- Footer</p>
<p style="margin: 0px; text-indent: 0px;">- Borders</p>
<p style="margin: 0px; text-indent: 0px;">- Columns</p>
<p style="margin: 0px; text-indent: 0px;">- Footnote</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">5. Lists:</p>
<p style="margin: 0px; text-indent: 0px;">- Organizer</p>
<p style="margin: 0px; text-indent: 0px;">- Bullets</p>
<p style="margin: 0px; text-indent: 0px;">- Numbering style</p>
<p style="margin: 0px; text-indent: 0px;">- Outline</p>
<p style="margin: 0px; text-indent: 0px;">- Graphics</p>
<p style="margin: 0px; text-indent: 0px;">(the three options listed above are actually three different ways to apply different bullet/numbering options)</p>
<p style="margin: 0px; text-indent: 0px;">- Position</p>
<p style="margin: 0px; text-indent: 0px;">- Options</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">As is obvious, not all of these options are applicable to Scribus. Some have been on the wish list for a long time, others may be appropriate in a word processor, but should be avoided in a DTP program. There are also other desirable options that would be wonderful to have in Scribus, e.g. kerning pairs as in XPress or nested styles as in InDesign. What&#39;s also obvious (at least to me) is that not all options require a separate tab. </p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">While the number of options and the number of tabs will depend on the features available in Scribus, as well as the space required for the design, including consideration of Qt limitations or portability across platforms, one thing that all dialogs listed above have in common is the &quot;Organizer&quot; tab. Since the options in this tab are directly related to style management, it should be considered to implement something similar in Scribus.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">As for the layout of the style dialogs in OO.o, I think it shouldn&#39;t be considered an example at all. There are so many tabs that they don&#39;t even fit into one row and need to be stacked. As a consequence, the order of tabs changes depending on the selected tab. This more than confusing. An application that probably did it right is InDesign, as it uses a layout similar to our current Document Setup/Preferences, i.e. a dialog with two distinct parts, namely a column with categories to the left (but implemented as buttons, not icons, which saves space) and the content of the selected category to the right. This approach would also allow for easy expandibility in future versions with new features.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Another shortcoming of the style editing dialogs in OO.o (and other programs) is their modality. At least in this regard the current Scribus Style Manager is behaving a bit saner.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">OK, this has been a rather long posting, but I thought it might be helpful to discuss existing implementations, especially since re-inventing the wheel is probably unnecessary. </p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Perhaps we can start from here and reach a reasonable and flexible solution, even if the result will be something completely different. What we need, though, is a solution, because the Style Manager has to change, which, I think, nobody will dispute.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Cheers,</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Christoph</p></div></blockquote><div><br>One of the many things that motivate my initial post is my professionnal experience. I know this cannot be taken as a representative slice of the users but we receive each year and for the last quarter of century an impressive number of text files of all kinds and basically people are simply *not* using stylesheets.<br>
<br>Now, I don’t know whether there is data out there that could help understand better why is this. Stylesheets, for those who are using them, are a tremendous tool that really are helpful and even more, that really are indispensable for people who have to crunch thousands of lines of text per year. We would be encline to think that those who have lesser needs could also benefit a lot by using this tool. But obviously and without any evidence of the contrary, we have to face the reality: people are not using stylesheets.<br>
<br>One thing bringing to the other, I guess that if people are not using stylesheets it’s because they don’t understand the mechanics, they don’t get the point, they find this clumsy, they are not at ease with the interface, the functionnality, all those answers?<br>
<br>The approach I am proposing (with some others too) is in a certain way a bit disturbing when we compare it to everything else that — we have to face it — doesn’t seem to appeal to that many people.<br><br>Cheers!<br><br>
Louis <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div style="font-family: &#39;Sans Serif&#39;; font-size: 13pt; font-weight: 400; font-style: normal;">

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;"></p></div><br>_______________________________________________<br>
scribus-dev mailing list<br>
<a href="mailto:scribus-dev@lists.scribus.info">scribus-dev@lists.scribus.info</a><br>
<a href="http://lists.scribus.info/mailman/listinfo/scribus-dev" target="_blank">http://lists.scribus.info/mailman/listinfo/scribus-dev</a><br><br>
</blockquote></div>