<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html297"
+<A NAME="tex2html330"
HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html291"
+<A NAME="tex2html324"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html285"
+<A NAME="tex2html318"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html293"
+<A NAME="tex2html326"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html295"
+<A NAME="tex2html328"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html298"
+<B> Next:</B> <A NAME="tex2html331"
HREF="node6.html">5. Scripting</A>
-<B> Up:</B> <A NAME="tex2html292"
+<B> Up:</B> <A NAME="tex2html325"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html286"
+<B> Previous:</B> <A NAME="tex2html319"
HREF="node4.html">3. Basic configuration</A>
- <B> <A NAME="tex2html294"
+ <B> <A NAME="tex2html327"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html296"
+ <B> <A NAME="tex2html329"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html299"
+<LI><A NAME="tex2html332"
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="tex2html300"
+<LI><A NAME="tex2html333"
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="tex2html301"
+<LI><A NAME="tex2html334"
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="tex2html302"
+<LI><A NAME="tex2html335"
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="tex2html303"
+<LI><A NAME="tex2html336"
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="tex2html304"
+<LI><A NAME="tex2html337"
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="tex2html305"
+<LI><A NAME="tex2html338"
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="tex2html306"
+<LI><A NAME="tex2html339"
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="tex2html307"
+<LI><A NAME="tex2html340"
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="tex2html308"
+<LI><A NAME="tex2html341"
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="tex2html309"
+<LI><A NAME="tex2html342"
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="tex2html310"
+<LI><A NAME="tex2html343"
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="tex2html311"
+<LI><A NAME="tex2html344"
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="tex2html312"
+<LI><A NAME="tex2html345"
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="tex2html313"
+<LI><A NAME="tex2html346"
HREF="node5.html#SECTION00530000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
<UL>
-<LI><A NAME="tex2html314"
- 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="tex2html315"
- 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="tex2html347"
+ 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="tex2html348"
+ 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="tex2html349"
+ 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>
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="1665"></A><A NAME="1666"></A>
+<A NAME="sec:engines"></A><A NAME="1906"></A><A NAME="1907"></A>
<BR>
<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles
</H2>
<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
</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>
foo-*-baz
foo-bar
*
-foo-baz -- Doesn't match, not selected!
</PRE>
<P>
<PRE>
attr1-attr2-...-attrn
</PRE>
-These extra attributes are called <SPAN CLASS="textit">substyles</SPAN><A NAME="1677"></A>
+These extra attributes are called <SPAN CLASS="textit">substyles</SPAN><A NAME="1919"></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
<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.
- Substyles: <TT>active</TT>, <TT>inactive</TT>.</TD>
+ Substyle attributes: `<TT>active</TT>'/`<TT>inactive</TT>'
+ (mutually exclusive), and
+ `<TT>quasiactive</TT>'.
+ A frame is ``quasiactive'' when an active region
+ 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.
- Substyles 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>
<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.
- Substyles: combinations of the form <TT>a-s</TT> where
- <TT>a</TT> is one of <TT>active</TT>/<TT>inactive</TT> and
- <TT>s</TT> is one of <TT>selected</TT>/<TT>unselected</TT></TD>
+ Substyle attributes:
+ `<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.
- Substyles: combinations of the form <TT>a-s-t-d-u</TT> where
- <TT>a</TT> and <TT>s</TT> are as above and
- <TT>t</TT> is one of <TT>tagged</TT>/<TT>not_tagged</TT>,
- <TT>d</TT> is one of <TT>dragged</TT>/<TT>not_dragged</TT> and
- <TT>u</TT> is one of <TT>activity</TT>/<TT>no_activity</TT>.</TD>
+ Additional substyle attributes include those of
+ the `<TT>frame</TT>' style, as well as tab-specific
+ `<TT>tagged</TT>'/`<TT>not_tagged</TT>',
+ `<TT>dragged</TT>'/`<TT>not_dragged</TT>', and
+ `<TT>activity</TT>'/`<TT>no_activity</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"> </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"> </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"> </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>
-<TD ALIGN="LEFT">A more specific style for entries in WMenus.</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>
</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>
+<TR><TD ALIGN="LEFT">`<TT>tab-info</TT>'</TD>
+<TD ALIGN="LEFT">Extra information tab (displayed e.g. for tagged workspaces).</TD>
+</TR>
</TABLE>
<P>
<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.
- Substyles: <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>actnotify</TT>'</TD>
+<TD ALIGN="LEFT">Actification notification box.</TD>
+</TR>
+<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>
</H3>
<P>
-The first thing to do in a stylefile is to choose the drawing
+The first thing to do in a style file is to choose the drawing
engine, possibly loading the module as well. This is done
with the following chunk of code.
<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
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="1777"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="2022"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4.1:</STRONG>
Sketch of different border styles and elements</CAPTION>
<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>
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>
</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: `<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>
</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>
<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
<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>
</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>
<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="41" 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>
</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>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html297"
+<A NAME="tex2html330"
HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html291"
+<A NAME="tex2html324"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html285"
+<A NAME="tex2html318"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html293"
+<A NAME="tex2html326"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html295"
+<A NAME="tex2html328"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html298"
+<B> Next:</B> <A NAME="tex2html331"
HREF="node6.html">5. Scripting</A>
-<B> Up:</B> <A NAME="tex2html292"
+<B> Up:</B> <A NAME="tex2html325"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html286"
+<B> Previous:</B> <A NAME="tex2html319"
HREF="node4.html">3. Basic configuration</A>
- <B> <A NAME="tex2html294"
+ <B> <A NAME="tex2html327"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html296"
+ <B> <A NAME="tex2html329"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->