]> git.decadent.org.uk Git - ion3.git/blobdiff - doc/ionconf/node5.html
[svn-upgrade] Integrating new upstream version, ion3 (20070506)
[ion3.git] / doc / ionconf / node5.html
index de5ae5ec4bc23893e205c9a005e7cc940289f971..b5247f6f90c079d89604bba7855dce15a80cdf5d 100644 (file)
@@ -28,31 +28,31 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <BODY >
 
 <DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html304"
+<A NAME="tex2html331"
   HREF="node6.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html298"
+<A NAME="tex2html325"
   HREF="ionconf.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html292"
+<A NAME="tex2html319"
   HREF="node4.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html300"
+<A NAME="tex2html327"
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
-<A NAME="tex2html302"
+<A NAME="tex2html329"
   HREF="node11.html">
 <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
 <BR>
-<B> Next:</B> <A NAME="tex2html305"
+<B> Next:</B> <A NAME="tex2html332"
   HREF="node6.html">5. Scripting</A>
-<B> Up:</B> <A NAME="tex2html299"
+<B> Up:</B> <A NAME="tex2html326"
   HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html293"
+<B> Previous:</B> <A NAME="tex2html320"
   HREF="node4.html">3. Basic configuration</A>
- &nbsp; <B>  <A NAME="tex2html301"
+ &nbsp; <B>  <A NAME="tex2html328"
   HREF="node1.html">Contents</A></B> 
- &nbsp; <B>  <A NAME="tex2html303"
+ &nbsp; <B>  <A NAME="tex2html330"
   HREF="node11.html">Index</A></B> 
 <BR>
 <BR></DIV>
@@ -61,51 +61,53 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
 <UL CLASS="ChildLinks">
-<LI><A NAME="tex2html306"
+<LI><A NAME="tex2html333"
   HREF="node5.html#SECTION00510000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles</A>
 <UL>
-<LI><A NAME="tex2html307"
+<LI><A NAME="tex2html334"
   HREF="node5.html#SECTION00511000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Known styles and substyles</A>
 <UL>
-<LI><A NAME="tex2html308"
+<LI><A NAME="tex2html335"
   HREF="node5.html#SECTION00511100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frames</A>
-<LI><A NAME="tex2html309"
+<LI><A NAME="tex2html336"
   HREF="node5.html#SECTION00511200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tabs and menu entries</A>
-<LI><A NAME="tex2html310"
+<LI><A NAME="tex2html337"
   HREF="node5.html#SECTION00511300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> The rest</A>
 </UL>
 </UL>
 <BR>
-<LI><A NAME="tex2html311"
+<LI><A NAME="tex2html338"
   HREF="node5.html#SECTION00520000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining styles for the default drawing engine</A>
 <UL>
-<LI><A NAME="tex2html312"
+<LI><A NAME="tex2html339"
   HREF="node5.html#SECTION00521000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> The structure of the configuration files</A>
-<LI><A NAME="tex2html313"
+<LI><A NAME="tex2html340"
   HREF="node5.html#SECTION00522000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining the styles</A>
 <UL>
-<LI><A NAME="tex2html314"
+<LI><A NAME="tex2html341"
   HREF="node5.html#SECTION00522100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Colours</A>
-<LI><A NAME="tex2html315"
+<LI><A NAME="tex2html342"
   HREF="node5.html#SECTION00522200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Borders and widths</A>
-<LI><A NAME="tex2html316"
+<LI><A NAME="tex2html343"
   HREF="node5.html#SECTION00522300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Text</A>
-<LI><A NAME="tex2html317"
+<LI><A NAME="tex2html344"
   HREF="node5.html#SECTION00522400000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> Miscellaneous</A>
-<LI><A NAME="tex2html318"
+<LI><A NAME="tex2html345"
   HREF="node5.html#SECTION00522500000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> Substyles</A>
 </UL>
-<LI><A NAME="tex2html319"
+<LI><A NAME="tex2html346"
   HREF="node5.html#SECTION00523000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> An example</A>
 </UL>
 <BR>
-<LI><A NAME="tex2html320"
+<LI><A NAME="tex2html347"
   HREF="node5.html#SECTION00530000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
 <UL>
-<LI><A NAME="tex2html321"
-  HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Extra fields for style <TT>frame</TT></A>
-<LI><A NAME="tex2html322"
-  HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style <TT>dock</TT></A>
+<LI><A NAME="tex2html348"
+  HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frame user attributes</A>
+<LI><A NAME="tex2html349"
+  HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style `<TT>frame</TT>'</A>
+<LI><A NAME="tex2html350"
+  HREF="node5.html#SECTION00533000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Extra fields for style `<TT>dock</TT>'</A>
 </UL></UL>
 <!--End of Table of Child-Links-->
 <HR>
@@ -120,12 +122,13 @@ original version by:  Nikos Drakos, CBLU, University of Leeds
 This chapter first gives in section <A HREF="#sec:engines">4.1</A> a general outline 
 of how drawing engines are used, of style specifications and then
 in section <A HREF="#sec:defaultde">4.2</A> describes how to specify styles
-for the default drawing engine.
+for the default drawing engine. Some additional settings and
+user attributes are explained in Sections <A HREF="#sec:grmisc">4.3</A>.
 
 <P>
 
 <H2><A NAME="SECTION00510000000000000000"></A>
-<A NAME="sec:engines"></A><A NAME="1708"></A><A NAME="1709"></A>
+<A NAME="sec:engines"></A><A NAME="1887"></A><A NAME="1888"></A>
 <BR>
 <SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles
 </H2>
@@ -133,7 +136,7 @@ for the default drawing engine.
 <P>
 Ion's drawing routines are abstracted into so-called drawing engine
 modules that can, again depending on the system, be dynamically
-loaded as needed. The drawing engine modules provide ''brushes''
+loaded as needed. The drawing engine modules provide ``brushes''
 that objects can use to draw some high-level primitives such
 as borders and text boxes (in addition to simple text and rectangle
 drawing) on their windows and configure e.g. the shape and 
@@ -150,17 +153,17 @@ element1-element2-...-elementn
 </PRE>
 
 <P>
-An example of such a style specification is <TT>tab-frame</TT>;
+An example of such a style specification is `<TT>tab-frame</TT>';
 see the table in subsection <A HREF="#sec:styles">4.1.1</A> for more styles.
 
 <P>
 When an object asks for a brush of certain style, the selected
 drawing engine will attempt to find the closest match to this
 specification. The styles/brushes defined by the drawing engines 
-may have asterisks (<code>*</code>) as some of the elements indicating
+may have asterisks (`<TT>*</TT>') as some of the elements indicating
 a match to anything. Exact matches are preferred to asterisk
 matches and longer matches to shorter. For example, let a brush
-for style <TT>foo-bar-baz</TT> be queried, then the following
+for style `<TT>foo-bar-baz</TT>' be queried, then the following
 brushes are in order of preference:
 
 <P>
@@ -177,7 +180,7 @@ specified, also in the form
 <PRE>
 attr1-attr2-...-attrn
 </PRE>
-These extra attributes are called <SPAN  CLASS="textit">substyles</SPAN><A NAME="1720"></A>
+These extra attributes are called <SPAN  CLASS="textit">substyles</SPAN><A NAME="1900"></A>
 and allow, for example, the state of the object to be indicated 
 by  different colour sets while keeping the interface at an 
 abstract level and the drawing engine completely ignorant 
@@ -206,27 +209,27 @@ tag and drag states.)
 <TR><TD ALIGN="LEFT">Style name</TD>
 <TD ALIGN="LEFT">Description</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>frame</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame</TT>'</TD>
 <TD ALIGN="LEFT">Style for frames. 
-       Substyle attributes: <TT>active</TT>/<TT>inactive</TT> 
+       Substyle attributes: `<TT>active</TT>'/`<TT>inactive</TT>' 
        (mutually exclusive) and
-       <TT>quasiactive</TT>/<TT>not_quasiactive</TT>
+       `<TT>quasiactive</TT>'/`<TT>not_quasiactive</TT>'
        A frame is ``quasiactive'' when an active region
-       has a backlink to it, such as a detached window.</TD>
+       has a back-link to it, such as a detached window.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>frame-tiled</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-tiled</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for tiled frames.
-        Substyle attributes as for <TT>frame</TT>.</TD>
+        Substyle attributes as for `<TT>frame</TT>'.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>frame-tiled-alt</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-tiled-alt</TT>'</TD>
 <TD ALIGN="LEFT">An alternative style for tiled frames.
         Often used to disable the tab-bar.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>frame-floating</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-floating</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for floating
         frames.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>frame-transient</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-transient</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for frames
         containing transient windows.</TD>
 </TR>
@@ -243,39 +246,39 @@ tag and drag states.)
 <TR><TD ALIGN="LEFT">Style name</TD>
 <TD ALIGN="LEFT">Description</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab</TT>'</TD>
 <TD ALIGN="LEFT">Style for frames' tabs and menu entries. 
        Substyle attributes:
-       <TT>active</TT>/<TT>inactive</TT> and
-       <TT>selected</TT>/<TT>unselected</TT></TD>
+       `<TT>active</TT>'/`<TT>inactive</TT>' and
+       `<TT>selected</TT>'/`<TT>unselected</TT>'</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for frames' tabs.
         Additional substyle attributes include:
-       <TT>tagged</TT>/<TT>not_tagged</TT>,
-       <TT>dragged</TT>/<TT>not_dragged</TT>,
-       <TT>activity</TT>/<TT>no_activity</TT> and
-       <TT>quasiactive</TT>/<TT>not_quasiactive</TT>.</TD>
+       `<TT>tagged</TT>'/`<TT>not_tagged</TT>',
+       `<TT>dragged</TT>'/`<TT>not_dragged</TT>',
+       `<TT>activity</TT>'/`<TT>no_activity</TT>',
+       `<TT>quasiactive</TT>'/`<TT>not_quasiactive</TT>'.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-tiled</TT>,</TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-tiled</TT>',</TD>
 <TD ALIGN="LEFT">&nbsp;</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-tiled-alt</TT>,</TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-tiled-alt</TT>',</TD>
 <TD ALIGN="LEFT">&nbsp;</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-floating</TT>,</TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-floating</TT>',</TD>
 <TD ALIGN="LEFT">&nbsp;</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-transient</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-transient</TT>'</TD>
 <TD ALIGN="LEFT">More specific styles for frames in the
         different modes.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-menuentry</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-menuentry</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for entries in WMenus. 
-        Additional substyle attributes include <TT>submenu</TT> and
-        occasionally also <TT>activity</TT> is used.</TD>
+        Additional substyle attributes include `<TT>submenu</TT>' and
+        occasionally also `<TT>activity</TT>' is used.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>tab-menuentry-bigmenu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-menuentry-bigmenu</TT>'</TD>
 <TD ALIGN="LEFT">An alternate style for entries in WMenus.</TD>
 </TR>
 </TABLE>
@@ -291,30 +294,39 @@ tag and drag states.)
 <TR><TD ALIGN="LEFT">Style name</TD>
 <TD ALIGN="LEFT">Description</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>input</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input</TT>'</TD>
 <TD ALIGN="LEFT">A style for WInputs.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>input-edln</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-edln</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for WEdlns. 
-       Substyle attributes: <TT>selection</TT> for selected text and
-       <TT>cursor</TT> for the cursor indicating current editing point.</TD>
+       Substyle attributes: `<TT>selection</TT>' for selected text and
+       `<TT>cursor</TT>' for the cursor indicating current editing point.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>input-message</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-message</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for WMessages.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>input-menu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-menu</TT>'</TD>
 <TD ALIGN="LEFT">A more specific style for WMenus.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>input-menu-bigmenu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-menu-bigmenu</TT>'</TD>
 <TD ALIGN="LEFT">An alternate style for WMenus.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>moveres_display</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>moveres_display</TT>'</TD>
 <TD ALIGN="LEFT">The box displaying position/size when
        moving or resizing frames.</TD>
 </TR>
-<TR><TD ALIGN="LEFT"><TT>dock</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>stdisp</TT>'</TD>
+<TD ALIGN="LEFT">Any status display.</TD>
+</TR>
+<TR><TD ALIGN="LEFT">`<TT>stdisp-dock</TT>'</TD>
 <TD ALIGN="LEFT">The dock.</TD>
 </TR>
+<TR><TD ALIGN="LEFT">`<TT>stdisp-statusbar</TT>'</TD>
+<TD ALIGN="LEFT">The statusbar. Substyles include:
+    the name of any monitor/meter (such as `<TT>date</TT>'), and 
+    the supplied hint. Typical hints are: `<TT>normal</TT>',
+    `<TT>important</TT>', and `<TT>critical</TT>'.</TD>
+</TR>
 </TABLE>
 
 <P>
@@ -354,13 +366,13 @@ end
 <P>
 The <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> function sees if the engine
 given as argument is registered (the default drawing engine is
-simply called ''de''). If the engine could not be found, it
+simply called ``de''). If the engine could not be found, it
 tries to load a module of the same name. If the engine still
-is not registered, <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> returns <TT>false</TT>
+is not registered, <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> returns `<TT>false</TT>'
 and in this case we also exit the style setup script.
 If the engine was found, <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> sees that
 further requests for brushes are forwarded to that engine
-and returns <TT>true</TT>.
+and returns `<TT>true</TT>'.
 
 <P>
 Before defining new styles it may be a good idea to clear old
@@ -412,7 +424,7 @@ border elements and styles referred to there are explained in Figure
 
 <P>
 
-<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="1817"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="2003"></A>
 <TABLE>
 <CAPTION ALIGN="BOTTOM"><STRONG>Figure 4.1:</STRONG>
 Sketch of different border styles and elements</CAPTION>
@@ -450,10 +462,10 @@ in <SPAN  CLASS="textit">/usr/X11R6/lib/X11/rgb.txt</SPAN> (exact path varying).
 <TD ALIGN="LEFT">Description</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>highlight_colour</TT></TD>
-<TD ALIGN="LEFT">Colour for the ''highlight'' part of a border.</TD>
+<TD ALIGN="LEFT">Colour for the ``highlight'' part of a border.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>shadow_colour</TT></TD>
-<TD ALIGN="LEFT">Colour for the ''highlight'' part of a border.</TD>
+<TD ALIGN="LEFT">Colour for the ``shadow'' part of a border.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>foreground_colour</TT></TD>
 <TD ALIGN="LEFT">Colour for the normal drawing operations, e.g. text.</TD>
@@ -463,7 +475,7 @@ in <SPAN  CLASS="textit">/usr/X11R6/lib/X11/rgb.txt</SPAN> (exact path varying).
        background colour boxes.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>padding_colour</TT></TD>
-<TD ALIGN="LEFT">Colour for the ''padding'' part of a border border. Set to 
+<TD ALIGN="LEFT">Colour for the ``padding'' part of a border border. Set to 
        <TT>background_colour</TT> if unset.</TD>
 </TR>
 </TABLE>
@@ -485,14 +497,14 @@ indicating a number of pixels.
 </TR>
 <TR><TD ALIGN="LEFT"><TT>border_style</TT></TD>
 <TD ALIGN="LEFT">A string indicating the style of border; one of
-                    elevated/inlaid/ridge/groove as seen in the
-                    above sketch.</TD>
+                    `<TT>elevated</TT>'/`<TT>inlaid</TT>'/`<TT>ridge</TT>'/`<TT>groove</TT>'
+                    as seen in the above sketch.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>border_sides</TT></TD>
 <TD ALIGN="LEFT">A string indicating which sides of the border
-                     to draw: all/tb/lr for all, top and bottom, and
-                     left and right. To control between left/right
-                     and top/bottom, use the pixel options below.</TD>
+                     to draw: `<TT>all</TT>'/`<TT>tb</TT>'/`<TT>lr</TT>' for all, 
+                     top and bottom, and left and right. To control between
+                     left/right and top/bottom, use the pixel options below.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>highlight_pixels</TT></TD>
 <TD ALIGN="LEFT">Width of the highlight part of the border in pixels.</TD>
@@ -525,7 +537,7 @@ indicating a number of pixels.
 </TR>
 <TR><TD ALIGN="LEFT"><TT>text_align</TT></TD>
 <TD ALIGN="LEFT">How text is to be aligned in text boxes/tabs; one of
-                  the strings left/right/center.</TD>
+                  the strings `<TT>left</TT>'/`<TT>right</TT>'/`<TT>center</TT>'.</TD>
 </TR>
 </TABLE>
 
@@ -558,13 +570,13 @@ indicating a number of pixels.
 
 <P>
 As discussed in previous sections, styles may have substyles to e.g.
-indicate different states of the object being drawn. The ''de'' engine
+indicate different states of the object being drawn. The ``de'' engine
 limits what can be configured in substyles to the set of colours in the
 first table above, but also specifically interprets for the main style
-<TT>tab-frame</TT> the substyles <TT>*-*-tagged</TT> and <TT>*-*-*-dragged</TT>
+`<TT>tab-frame</TT>' the substyles `<TT>*-*-tagged</TT>' and `<TT>*-*-*-dragged</TT>'
 by, respectively, drawing a right angle shape at the top right corner 
 of a tab and by shading the tab with a stipple pattern. Also for
-menus the substyles <TT>*-*-submenu</TT> are handled as a special case.
+menus the substyles `<TT>*-*-submenu</TT>' are handled as a special case.
 
 <P>
 Substyles are defined with the function <A HREF="node7.html#fn:de.substyle"><TT>de.substyle</TT></A> within the
@@ -629,21 +641,39 @@ de.defstyle("tab-frame", {
 
 <P>
 
-<H2><A NAME="SECTION00530000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
+<H2><A NAME="SECTION00530000000000000000"></A>
+<A NAME="sec:grmisc"></A>
+<BR>
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings
 </H2>
 
 <P>
-The following style fields are independent of the drawing engine used,
-but are related to objects' styles and therefore configured in the drawing
-engine configuration file.
+
+<H3><A NAME="SECTION00531000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frame user attributes</A>
+</H3>
 
 <P>
+The function <A HREF="node7.html#fn:WFrame.set_grattr"><TT>WFrame.set_grattr</TT></A> may be used to give frames
+(and their tabs) arbitrary extra attributes to be passed to the
+drawing engine. Hence, by configuring such substyles in the style
+configuration files, and turning on the attribute when needed, 
+scripts may display visual cues related to the frame. There is
+also one extra attribute specially interpreted by the default
+drawing engine: the `<TT>numbered</TT>' attribute, which causes 
+numbers to be displayed on the tabs.
 
-<H3><A NAME="SECTION00531000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Extra fields for style <TT>frame</TT></A>
+<P>
+
+<H3><A NAME="SECTION00532000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style `<TT>frame</TT>'</A>
 </H3>
 
+<P>
+The following style fields are independent of the drawing engine used,
+but are related to objects' styles and therefore configured in the drawing
+engine configuration file.
+
 <P>
 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
 <TR><TD ALIGN="LEFT">Field</TD>
@@ -651,8 +681,8 @@ engine configuration file.
 </TR>
 <TR><TD ALIGN="LEFT"><TT>bar</TT></TD>
 <TD ALIGN="LEFT">Controls the style of the tab-bar. Possible values
-        are the strings <TT>"none"</TT>, <TT>"inside"</TT>, <TT>"outside"</TT>
-        and <TT>"shaped"</TT>, with the last providing the PWM-style
+        are the strings `<TT>none</TT>', `<TT>inside</TT>', `<TT>outside</TT>'
+        and `<TT>shaped</TT>', with the last providing the PWM-style
         tab-bars for floating frames.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>floatframe_tab_min_w</TT></TD>
@@ -663,14 +693,17 @@ engine configuration file.
 <TR><TD ALIGN="LEFT"><TT>floatframe_bar_max_w_q</TT></TD>
 <TD ALIGN="LEFT">Maximum tab-bar width quotient of
        frame width for the shaped styles. A number in the 
-       interval <SPAN CLASS="MATH"></SPAN>.</TD>
+       interval <SPAN CLASS="MATH"><IMG
+ WIDTH="42" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
+ SRC="img3.png"
+ ALT="$(0, 1]$"></SPAN>.</TD>
 </TR>
 </TABLE>
 
 <P>
 
-<H3><A NAME="SECTION00532000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style <TT>dock</TT></A>
+<H3><A NAME="SECTION00533000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Extra fields for style `<TT>dock</TT>'</A>
 </H3>
 
 <P>
@@ -680,12 +713,12 @@ engine configuration file.
 </TR>
 <TR><TD ALIGN="LEFT"><TT>outline_style</TT></TD>
 <TD ALIGN="LEFT">How borders are drawn:
-                       <TT>"none"</TT> - no border,
-                       <TT>"all"</TT> - border around whole dock,
-                       <TT>"each"</TT> - border around each dockapp.</TD>
+                       `<TT>none</TT>' - no border,
+                       `<TT>all</TT>' - border around whole dock,
+                       `<TT>each</TT>' - border around each dockapp.</TD>
 </TR>
 <TR><TD ALIGN="LEFT"><TT>tile_size</TT></TD>
-<TD ALIGN="LEFT">A table with entries <TT>width</TT> and <TT>height</TT>,
+<TD ALIGN="LEFT">A table with entries `<TT>width</TT>' and `<TT>height</TT>',
        indicating the width and height of tiles in pixels.</TD>
 </TR>
 </TABLE>
@@ -699,31 +732,31 @@ style configuration files.
 
 <DIV CLASS="navigation"><HR>
 <!--Navigation Panel-->
-<A NAME="tex2html304"
+<A NAME="tex2html331"
   HREF="node6.html">
 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
-<A NAME="tex2html298"
+<A NAME="tex2html325"
   HREF="ionconf.html">
 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
-<A NAME="tex2html292"
+<A NAME="tex2html319"
   HREF="node4.html">
 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
-<A NAME="tex2html300"
+<A NAME="tex2html327"
   HREF="node1.html">
 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
-<A NAME="tex2html302"
+<A NAME="tex2html329"
   HREF="node11.html">
 <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
 <BR>
-<B> Next:</B> <A NAME="tex2html305"
+<B> Next:</B> <A NAME="tex2html332"
   HREF="node6.html">5. Scripting</A>
-<B> Up:</B> <A NAME="tex2html299"
+<B> Up:</B> <A NAME="tex2html326"
   HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html293"
+<B> Previous:</B> <A NAME="tex2html320"
   HREF="node4.html">3. Basic configuration</A>
- &nbsp; <B>  <A NAME="tex2html301"
+ &nbsp; <B>  <A NAME="tex2html328"
   HREF="node1.html">Contents</A></B> 
- &nbsp; <B>  <A NAME="tex2html303"
+ &nbsp; <B>  <A NAME="tex2html330"
   HREF="node11.html">Index</A></B> </DIV>
 <!--End of Navigation Panel-->