<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html355"
+<A NAME="tex2html383"
HREF="node8.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html349"
+<A NAME="tex2html377"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html343"
+<A NAME="tex2html371"
HREF="node6.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html351"
+<A NAME="tex2html379"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html353"
+<A NAME="tex2html381"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html356"
+<B> Next:</B> <A NAME="tex2html384"
HREF="node8.html">A. The GNU General</A>
-<B> Up:</B> <A NAME="tex2html350"
+<B> Up:</B> <A NAME="tex2html378"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html344"
+<B> Previous:</B> <A NAME="tex2html372"
HREF="node6.html">5. Scripting</A>
- <B> <A NAME="tex2html352"
+ <B> <A NAME="tex2html380"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html354"
+ <B> <A NAME="tex2html382"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html357"
+<LI><A NAME="tex2html385"
HREF="node7.html#SECTION00710000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Functions defined in <SPAN CLASS="textit">ioncore</SPAN></A>
<UL>
-<LI><A NAME="tex2html358"
+<LI><A NAME="tex2html386"
HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
-<LI><A NAME="tex2html359"
+<LI><A NAME="tex2html387"
HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
-<LI><A NAME="tex2html360"
+<LI><A NAME="tex2html388"
HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
-<LI><A NAME="tex2html361"
+<LI><A NAME="tex2html389"
HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
-<LI><A NAME="tex2html362"
+<LI><A NAME="tex2html390"
HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
-<LI><A NAME="tex2html363"
- HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
-<LI><A NAME="tex2html364"
- HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
-<LI><A NAME="tex2html365"
- HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
-<LI><A NAME="tex2html366"
- HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
-<LI><A NAME="tex2html367"
- HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
-<LI><A NAME="tex2html368"
- HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
-<LI><A NAME="tex2html369"
- HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
-<LI><A NAME="tex2html370"
- HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
-<LI><A NAME="tex2html371"
- HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
-<LI><A NAME="tex2html372"
- HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
-<LI><A NAME="tex2html373"
- HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
+<LI><A NAME="tex2html391"
+ HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WHook functions</A>
+<LI><A NAME="tex2html392"
+ HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WInfoWin functions</A>
+<LI><A NAME="tex2html393"
+ HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMPlex functions</A>
+<LI><A NAME="tex2html394"
+ HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WMoveresMode functions</A>
+<LI><A NAME="tex2html395"
+ HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRegion functions</A>
+<LI><A NAME="tex2html396"
+ HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WRootWin functions</A>
+<LI><A NAME="tex2html397"
+ HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WScreen functions</A>
+<LI><A NAME="tex2html398"
+ HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> WTimer functions</A>
+<LI><A NAME="tex2html399"
+ HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> WWindow functions</A>
+<LI><A NAME="tex2html400"
+ HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> global functions</A>
+<LI><A NAME="tex2html401"
+ HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> gr functions</A>
+<LI><A NAME="tex2html402"
+ HREF="node7.html#SECTION007117000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">17</SPAN> string functions</A>
+<LI><A NAME="tex2html403"
+ HREF="node7.html#SECTION007118000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">18</SPAN> table functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html374"
+<LI><A NAME="tex2html404"
HREF="node7.html#SECTION00720000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Functions defined in <SPAN CLASS="textit">mod_tiling</SPAN></A>
<UL>
-<LI><A NAME="tex2html375"
+<LI><A NAME="tex2html405"
HREF="node7.html#SECTION00721000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> WSplit functions</A>
-<LI><A NAME="tex2html376"
+<LI><A NAME="tex2html406"
HREF="node7.html#SECTION00722000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> WSplitInner functions</A>
-<LI><A NAME="tex2html377"
+<LI><A NAME="tex2html407"
HREF="node7.html#SECTION00723000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> WSplitRegion functions</A>
-<LI><A NAME="tex2html378"
+<LI><A NAME="tex2html408"
HREF="node7.html#SECTION00724000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> WSplitSplit functions</A>
-<LI><A NAME="tex2html379"
+<LI><A NAME="tex2html409"
HREF="node7.html#SECTION00725000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> WTiling functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html380"
+<LI><A NAME="tex2html410"
HREF="node7.html#SECTION00730000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Functions defined in <SPAN CLASS="textit">mod_query</SPAN></A>
<UL>
-<LI><A NAME="tex2html381"
+<LI><A NAME="tex2html411"
HREF="node7.html#SECTION00731000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> WComplProxy functions</A>
-<LI><A NAME="tex2html382"
+<LI><A NAME="tex2html412"
HREF="node7.html#SECTION00732000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> WEdln functions</A>
-<LI><A NAME="tex2html383"
+<LI><A NAME="tex2html413"
HREF="node7.html#SECTION00733000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> WInput functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html384"
+<LI><A NAME="tex2html414"
HREF="node7.html#SECTION00740000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Functions defined in <SPAN CLASS="textit">mod_menu</SPAN></A>
<UL>
-<LI><A NAME="tex2html385"
+<LI><A NAME="tex2html415"
HREF="node7.html#SECTION00741000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> WMenu functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html386"
+<LI><A NAME="tex2html416"
HREF="node7.html#SECTION00750000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN> Functions defined in <SPAN CLASS="textit">mod_dock</SPAN></A>
<UL>
-<LI><A NAME="tex2html387"
+<LI><A NAME="tex2html417"
HREF="node7.html#SECTION00751000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> WDock functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html388"
+<LI><A NAME="tex2html418"
HREF="node7.html#SECTION00760000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN> Functions defined in <SPAN CLASS="textit">mod_sp</SPAN></A>
-<LI><A NAME="tex2html389"
+<LI><A NAME="tex2html419"
HREF="node7.html#SECTION00770000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN> Functions defined in <SPAN CLASS="textit">mod_statusbar</SPAN></A>
<UL>
-<LI><A NAME="tex2html390"
+<LI><A NAME="tex2html420"
HREF="node7.html#SECTION00771000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> WStatusBar functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html391"
+<LI><A NAME="tex2html421"
HREF="node7.html#SECTION00780000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN> Functions defined in <SPAN CLASS="textit">de</SPAN></A>
-<LI><A NAME="tex2html392"
+<LI><A NAME="tex2html422"
HREF="node7.html#SECTION00790000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN> Hooks</A>
-</UL>
+<LI><A NAME="tex2html423"
+ HREF="node7.html#SECTION007100000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN> Miscellaneous</A>
+<UL>
+<LI><A NAME="tex2html424"
+ HREF="node7.html#SECTION007101000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN>.<SPAN CLASS="arabic">1</SPAN> Size policies</A>
+</UL></UL>
<!--End of Table of Child-Links-->
<HR>
</H2>
<DL>
-<DD><A NAME="4362"></A>
-<A NAME="4363"></A>
-<A NAME="fn:ioncore.TR"></A>
+<DD><A NAME="fn:ioncore.TR"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.TR(s, ...)</TT>
<P>
<DL>
-<DD><A NAME="4364"></A>
-<A NAME="4365"></A>
-<A NAME="fn:ioncore.bdoc"></A>
+<DD><A NAME="fn:ioncore.bdoc"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.bdoc(text)</TT>
<P>
<DL>
-<DD><A NAME="4366"></A>
-<A NAME="4367"></A>
-<A NAME="fn:ioncore.chdir_for"></A>
+<DD><A NAME="fn:ioncore.chdir_for"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.chdir_for(reg, dir)</TT>
<P>
<DL>
-<DD><A NAME="4368"></A>
-<A NAME="4369"></A>
-<A NAME="fn:ioncore.compile_cmd"></A>
+<DD><A NAME="fn:ioncore.compile_cmd"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.compile_cmd(cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4370"></A>
-<A NAME="4371"></A>
-<A NAME="fn:ioncore.create_ws"></A>
+<DD><A NAME="fn:ioncore.create_timer"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>WTimer ioncore.create_timer()</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Create a new timer.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.create_ws"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.create_ws(scr, tmpl, layout)</TT>
<P>
<DL>
-<DD><A NAME="4372"></A>
-<A NAME="4373"></A>
-<A NAME="fn:ioncore.defbindings"></A>
+<DD><A NAME="fn:ioncore.defbindings"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defbindings(context, bindings)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Define bindings for context <TT>context</TT>. Here <TT>binding</TT> is
a table composed of entries created with <A HREF="#fn:ioncore.kpress"><TT>ioncore.kpress</TT></A>,
- etc.; see section <A HREF="node4.html#sec:bindings">3.3</A> for details.
+ etc.; see Section <A HREF="node4.html#sec:bindings">3.3</A> for details.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4374"></A>
-<A NAME="4375"></A>
-<A NAME="fn:ioncore.defctxmenu"></A>
+<DD><A NAME="fn:ioncore.defctxmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defctxmenu(ctx, ...)</TT>
<P>
<DL>
-<DD><A NAME="4376"></A>
-<A NAME="4377"></A>
-<A NAME="fn:ioncore.deflayout"></A>
+<DD><A NAME="fn:ioncore.deflayout"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.deflayout(name, tab)</TT>
<P>
<DL>
-<DD><A NAME="4378"></A>
-<A NAME="4379"></A>
-<A NAME="fn:ioncore.defmenu"></A>
+<DD><A NAME="fn:ioncore.defmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defmenu(name, tab)</TT>
<P>
<DL>
-<DD><A NAME="4380"></A>
-<A NAME="4381"></A>
-<A NAME="fn:ioncore.defwinprop"></A>
+<DD><A NAME="fn:ioncore.defwinprop"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defwinprop(list)</TT>
<P>
<DL>
-<DD><A NAME="4382"></A>
-<A NAME="4383"></A>
-<A NAME="fn:ioncore.exec_on"></A>
+<DD><A NAME="fn:ioncore.exec_on"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.exec_on(reg, cmd, merr_internal)</TT>
<P>
<DL>
-<DD><A NAME="4384"></A>
-<A NAME="4385"></A>
-<A NAME="fn:ioncore.read_savefile"></A>
+<DD><A NAME="fn:ioncore.read_savefile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.read_savefile(string basename)</TT>
<P>
<DL>
-<DD><A NAME="4386"></A>
-<A NAME="4387"></A>
-<A NAME="fn:ioncore.get_savefile"></A>
+<DD><A NAME="fn:ioncore.get_savefile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.get_savefile(string basename)</TT>
<P>
<DL>
-<DD><A NAME="4388"></A>
-<A NAME="4389"></A>
-<A NAME="fn:ioncore.lookup_script"></A>
+<DD><A NAME="fn:ioncore.lookup_script"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.lookup_script(string file, string sp)</TT>
<P>
<DL>
-<DD><A NAME="4390"></A>
-<A NAME="4391"></A>
-<A NAME="fn:ioncore.write_savefile"></A>
+<DD><A NAME="fn:ioncore.write_savefile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.write_savefile(string basename, table tab)</TT>
<P>
<DL>
-<DD><A NAME="4392"></A>
-<A NAME="4393"></A>
-<A NAME="fn:ioncore.find_manager"></A>
+<DD><A NAME="fn:ioncore.find_manager"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.find_manager(obj, t)</TT>
<P>
<DL>
-<DD><A NAME="4394"></A>
-<A NAME="4395"></A>
-<A NAME="fn:ioncore.get_dir_for"></A>
+<DD><A NAME="fn:ioncore.get_dir_for"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.get_dir_for(reg)</TT>
<P>
<DL>
-<DD><A NAME="4396"></A>
-<A NAME="4397"></A>
-<A NAME="fn:ioncore.getbindings"></A>
+<DD><A NAME="fn:ioncore.getbindings"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getbindings(maybe_context)</TT>
<P>
<DL>
-<DD><A NAME="4398"></A>
-<A NAME="4399"></A>
-<A NAME="fn:ioncore.getctxmenu"></A>
+<DD><A NAME="fn:ioncore.getctxmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getctxmenu(name)</TT>
<P>
<DL>
-<DD><A NAME="4400"></A>
-<A NAME="4401"></A>
-<A NAME="fn:ioncore.getlayout"></A>
+<DD><A NAME="fn:ioncore.getlayout"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getlayout(name, all)</TT>
<P>
<DL>
-<DD><A NAME="4402"></A>
-<A NAME="4403"></A>
-<A NAME="fn:ioncore.getmenu"></A>
+<DD><A NAME="fn:ioncore.getmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getmenu(name)</TT>
<P>
<DL>
-<DD><A NAME="4404"></A>
-<A NAME="4405"></A>
-<A NAME="fn:ioncore.getwinprop"></A>
+<DD><A NAME="fn:ioncore.getwinprop"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getwinprop(cwin)</TT>
<P>
<DL>
-<DD><A NAME="4406"></A>
-<A NAME="4407"></A>
-<A NAME="fn:ioncore.aboutmsg"></A>
+<DD><A NAME="fn:ioncore.aboutmsg"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.aboutmsg()</TT>
<P>
<DL>
-<DD><A NAME="4408"></A>
-<A NAME="4409"></A>
-<A NAME="fn:ioncore.activity_first"></A>
+<DD><A NAME="fn:ioncore.activity_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.activity_first()</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Return first regio non activity list.
+<DD>Returns first region on activity list.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4410"></A>
-<A NAME="4411"></A>
-<A NAME="fn:ioncore.activity_i"></A>
+<DD><A NAME="fn:ioncore.activity_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.activity_i(function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4412"></A>
-<A NAME="4413"></A>
-<A NAME="fn:ioncore.clientwin_i"></A>
+<DD><A NAME="fn:ioncore.clientwin_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.clientwin_i(function fn)</TT>
<P>
<DL>
-<DD><A NAME="4414"></A>
-<A NAME="4415"></A>
-<A NAME="fn:ioncore.current"></A>
+<DD><A NAME="fn:ioncore.current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.current()</TT>
<P>
<DL>
-<DD><A NAME="4416"></A>
-<A NAME="4417"></A>
-<A NAME="fn:ioncore.defshortening"></A>
+<DD><A NAME="fn:ioncore.defshortening"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.defshortening(string rx, string rule, bool always)</TT>
<P>
<DL>
-<DD><A NAME="4418"></A>
-<A NAME="4419"></A>
-<A NAME="fn:ioncore.detach"></A>
+<DD><A NAME="fn:ioncore.detach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.detach(WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Detach or reattach <TT>reg</TT>, depending on whether <TT>how</TT>
- is 'set'/'unset'/'toggle'. (Detaching means making <TT>reg</TT>
- managed by its nearest ancestor WGroup, framed if <TT>reg</TT> is
- not itself WFrame. Reattaching means making it managed where
- it used to be managed, if a return-placeholder exists.)
- If <TT>reg</TT> is the 'bottom' of some group, the whole group is
- detached. If <TT>reg</TT> is a WWindow, it is put into a
- frame.
+<DD>Detach or reattach <TT>reg</TT> or any group it is the leader of
+ (see <A HREF="#fn:WRegion.groupleader_of"><TT>WRegion.groupleader_of</TT></A>), depending on whether <TT>how</TT>
+ is `<TT>set</TT>', `<TT>unset</TT>' or `<TT>toggle</TT>'. If this
+ region is not a window, it is put into a frame.
+
+<P>
+Detaching a region means having it managed by its nearest ancestor
+ WGroup. Reattaching means having it managed where it used
+ to be managed, if a ``return placeholder'' exists.
+
+<P>
+Additionally, setting <TT>how</TT> to `<TT>forget</TT>', can be used to
+ clear this return placeholder of the group leader of <TT>reg</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4420"></A>
-<A NAME="4421"></A>
-<A NAME="fn:ioncore.exec"></A>
+<DD><A NAME="fn:ioncore.exec"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer ioncore.exec(string cmd)</TT>
<P>
<DL>
-<DD><A NAME="4422"></A>
-<A NAME="4423"></A>
-<A NAME="fn:ioncore.find_screen_id"></A>
+<DD><A NAME="fn:ioncore.find_screen_id"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.find_screen_id(integer id)</TT>
<P>
<DL>
-<DD><A NAME="4424"></A>
-<A NAME="4425"></A>
-<A NAME="fn:ioncore.focushistory_i"></A>
+<DD><A NAME="fn:ioncore.focushistory_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.focushistory_i(function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4426"></A>
-<A NAME="4427"></A>
-<A NAME="fn:ioncore.get"></A>
+<DD><A NAME="fn:ioncore.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.get()</TT>
<P>
<DL>
-<DD><A NAME="4428"></A>
-<A NAME="4429"></A>
-<A NAME="fn:ioncore.get_paths"></A>
+<DD><A NAME="fn:ioncore.get_paths"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.get_paths(table tab)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Get important directories (userdir, sessiondir, searchpath).
+<DD>Get important directories (the fields <TT>userdir</TT>,
+ <TT>sessiondir</TT>, <TT>searchpath</TT> in the returned table).
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4430"></A>
-<A NAME="4431"></A>
-<A NAME="fn:ioncore.goto_activity"></A>
+<DD><A NAME="fn:ioncore.goto_activity"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.goto_activity()</TT>
<P>
<DL>
-<DD><A NAME="4432"></A>
-<A NAME="4433"></A>
-<A NAME="fn:ioncore.goto_first"></A>
+<DD><A NAME="fn:ioncore.goto_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.goto_first(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Go to first region within <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/beg/end/any). For information on <TT>param</TT>,
- see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>. Additionally this function supports
- the boolean <TT>nofront</TT> field, for not bringing the object to
- front.
+<DD>Go to first region within <TT>reg</TT> in direction <TT>dirstr</TT>.
+ For information on <TT>param</TT>, see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
+ Additionally this function supports the boolean <TT>nofront</TT> field,
+ for not bringing the object to front.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4434"></A>
-<A NAME="4435"></A>
-<A NAME="fn:ioncore.goto_next"></A>
+<DD><A NAME="fn:ioncore.goto_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.goto_next(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Go to region next from <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/next/prev/any). For information on <TT>param</TT>,
- see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>. Additionally this function supports
- the boolean <TT>nofront</TT> field, for not bringing the object to
- front.
+<DD>Go to region next from <TT>reg</TT> in direction <TT>dirstr</TT>.
+ For information on <TT>param</TT>, see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
+ Additionally this function supports the boolean <TT>nofront</TT>
+ field, for not bringing the object to front.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4436"></A>
-<A NAME="4437"></A>
-<A NAME="fn:ioncore.goto_next_screen"></A>
+<DD><A NAME="fn:ioncore.goto_next_screen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.goto_next_screen()</TT>
<P>
<DL>
-<DD><A NAME="4438"></A>
-<A NAME="4439"></A>
-<A NAME="fn:ioncore.goto_nth_screen"></A>
+<DD><A NAME="fn:ioncore.goto_nth_screen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.goto_nth_screen(integer id)</TT>
<P>
<DL>
-<DD><A NAME="4440"></A>
-<A NAME="4441"></A>
-<A NAME="fn:ioncore.goto_prev_screen"></A>
+<DD><A NAME="fn:ioncore.goto_prev_screen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.goto_prev_screen()</TT>
<P>
<DL>
-<DD><A NAME="4442"></A>
-<A NAME="4443"></A>
-<A NAME="fn:ioncore.goto_previous"></A>
+<DD><A NAME="fn:ioncore.goto_previous"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.goto_previous()</TT>
<P>
<DL>
-<DD><A NAME="4444"></A>
-<A NAME="4445"></A>
-<A NAME="fn:ioncore.is_i18n"></A>
+<DD><A NAME="fn:ioncore.is_i18n"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.is_i18n()</TT>
<P>
<DL>
-<DD><A NAME="4446"></A>
-<A NAME="4447"></A>
-<A NAME="fn:ioncore.load_module"></A>
+<DD><A NAME="fn:ioncore.load_module"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.load_module(string modname)</TT>
<P>
<DL>
-<DD><A NAME="4448"></A>
-<A NAME="4449"></A>
-<A NAME="fn:ioncore.lookup_clientwin"></A>
+<DD><A NAME="fn:ioncore.lookup_clientwin"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WClientWin ioncore.lookup_clientwin(string name)</TT>
<P>
<DL>
-<DD><A NAME="4450"></A>
-<A NAME="4451"></A>
-<A NAME="fn:ioncore.lookup_region"></A>
+<DD><A NAME="fn:ioncore.lookup_region"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.lookup_region(string name, string typenam)</TT>
<P>
<DL>
-<DD><A NAME="4452"></A>
-<A NAME="4453"></A>
-<A NAME="fn:ioncore.navi_first"></A>
+<DD><A NAME="fn:ioncore.navi_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.navi_first(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Find first region within <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/beg/end/any). For information on <TT>param</TT>,
- see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
+<DD>Find first region within <TT>reg</TT> in direction <TT>dirstr</TT>.
+ For information on <TT>param</TT>, see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4454"></A>
-<A NAME="4455"></A>
-<A NAME="fn:ioncore.navi_next"></A>
+<DD><A NAME="fn:ioncore.navi_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.navi_next(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Find region next from <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/next/prev/any). The table <TT>param</TT> may
- contain the boolean field <TT>nowrap</TT>, instructing not to wrap
+ (`<TT>up</TT>', `<TT>down</TT>', `<TT>left</TT>', `<TT>right</TT>',
+ `<TT>next</TT>', `<TT>prev</TT>', or `<TT>any</TT>'). The table <TT>param</TT>
+ may contain the boolean field <TT>nowrap</TT>, instructing not to wrap
around, and the WRegions <TT>no_ascend</TT> and <TT>no_descend</TT>,
and boolean functions <TT>ascend_filter</TT> and <TT>descend_filter</TT>
on <TT>WRegion</TT> pairs (<TT>to</TT>, <TT>from</TT>), are used to decide when
<P>
<DL>
-<DD><A NAME="4456"></A>
-<A NAME="4457"></A>
-<A NAME="fn:ioncore.popen_bgread"></A>
+<DD><A NAME="fn:ioncore.popen_bgread"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>integer ioncore.popen_bgread(string cmd, function h, function errh)</TT>
+<DD><TT>integer ioncore.popen_bgread(string cmd, function h, function errh, string wd)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Run <TT>cmd</TT> with a read pipe connected to its stdout.
- When data is received through the pipe, <TT>handler</TT> is called
- with that data.
+<DD>Run <TT>cmd</TT> in directory <TT>wd</TT> with a read pipe connected to its
+ stdout and stderr.
+ When data is received through one of these pipes, <TT>h</TT> or <TT>errh</TT>
+ is called with that data. When the pipe is closed, the handler is called
+ with <TT>nil</TT> argument. The PID of the new process is returned, or
+ -1 on error.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4458"></A>
-<A NAME="4459"></A>
-<A NAME="fn:ioncore.progname"></A>
+<DD><A NAME="fn:ioncore.progname"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.progname()</TT>
<P>
<DL>
-<DD><A NAME="4460"></A>
-<A NAME="4461"></A>
-<A NAME="fn:ioncore.region_i"></A>
+<DD><A NAME="fn:ioncore.region_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.region_i(function fn, string typenam)</TT>
<P>
<DL>
-<DD><A NAME="4462"></A>
-<A NAME="4463"></A>
-<A NAME="fn:ioncore.request_selection"></A>
+<DD><A NAME="fn:ioncore.request_selection"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.request_selection(function fn)</TT>
<P>
<DL>
-<DD><A NAME="4464"></A>
-<A NAME="4465"></A>
-<A NAME="fn:ioncore.resign"></A>
+<DD><A NAME="fn:ioncore.resign"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.resign()</TT>
<P>
<DL>
-<DD><A NAME="4466"></A>
-<A NAME="4467"></A>
-<A NAME="fn:ioncore.restart"></A>
+<DD><A NAME="fn:ioncore.restart"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.restart()</TT>
<P>
<DL>
-<DD><A NAME="4468"></A>
-<A NAME="4469"></A>
-<A NAME="fn:ioncore.restart_other"></A>
+<DD><A NAME="fn:ioncore.restart_other"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.restart_other(string cmd)</TT>
<P>
<DL>
-<DD><A NAME="4470"></A>
-<A NAME="4471"></A>
-<A NAME="fn:ioncore.set"></A>
+<DD><A NAME="fn:ioncore.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.set(table tab)</TT>
<TR><TD ALIGN="LEFT"><TT>frame_default_index</TT></TD>
<TD ALIGN="LEFT">(string) Specifies where to add new regions
on the mutually exclusive list of a frame. One of
- ''last'', ''next'' (for after current), ''next-act''
+ `<TT>last</TT>', `<TT>next</TT>', (for after current),
+ or `<TT>next-act</TT>'
(for after current and anything with activity right
after it).</TD>
</TR>
</TR>
<TR><TD ALIGN="LEFT"><TT>float_placement_method</TT></TD>
<TD ALIGN="LEFT">(string) How to place floating frames.
- One of ''udlr'' (up-down, then left-right),
- ''lrud'' (left-right, then up-down) or ''random''.</TD>
+ One of `<TT>udlr</TT>' (up-down, then left-right),
+ `<TT>lrud</TT>' (left-right, then up-down), or
+ `<TT>random</TT>'.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>mousefocus</TT></TD>
-<TD ALIGN="LEFT">String: ''disable'' or ''sloppy''.</TD>
+<TD ALIGN="LEFT">(string) Mouse focus mode:
+ `<TT>disable</TT>' or `<TT>sloppy</TT>'.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>unsqueeze</TT></TD>
<TD ALIGN="LEFT">(boolean) Auto-unsqueeze transients/menus/queries/etc.</TD>
<P>
<DL>
-<DD><A NAME="4472"></A>
-<A NAME="4473"></A>
-<A NAME="fn:ioncore.set_paths"></A>
+<DD><A NAME="fn:ioncore.set_paths"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.set_paths(table tab)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Set important directories (sessiondir, searchpath).
+<DD>Set important directories (the fields <TT>sessiondir</TT>, <TT>searchpath</TT>
+ of <TT>tab</TT>).
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4474"></A>
-<A NAME="4475"></A>
-<A NAME="fn:ioncore.set_selection"></A>
+<DD><A NAME="fn:ioncore.set_selection"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.set_selection(string p)</TT>
<P>
<DL>
-<DD><A NAME="4476"></A>
-<A NAME="4477"></A>
-<A NAME="fn:ioncore.shutdown"></A>
+<DD><A NAME="fn:ioncore.shutdown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.shutdown()</TT>
<P>
<DL>
-<DD><A NAME="4478"></A>
-<A NAME="4479"></A>
-<A NAME="fn:ioncore.snapshot"></A>
+<DD><A NAME="fn:ioncore.snapshot"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.snapshot()</TT>
<P>
<DL>
-<DD><A NAME="4480"></A>
-<A NAME="4481"></A>
-<A NAME="fn:ioncore.tagged_clear"></A>
+<DD><A NAME="fn:ioncore.tagged_clear"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.tagged_clear()</TT>
<P>
<DL>
-<DD><A NAME="4482"></A>
-<A NAME="4483"></A>
-<A NAME="fn:ioncore.tagged_first"></A>
+<DD><A NAME="fn:ioncore.tagged_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.tagged_first(bool untag)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns first tagged object, untagging it as well if <TT>untag</TT>is set.
+<DD>Returns first tagged object, untagging it as well if <TT>untag</TT> is set.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4484"></A>
-<A NAME="4485"></A>
-<A NAME="fn:ioncore.tagged_i"></A>
+<DD><A NAME="fn:ioncore.tagged_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.tagged_i(function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4486"></A>
-<A NAME="4487"></A>
-<A NAME="fn:ioncore.unsqueeze"></A>
+<DD><A NAME="fn:ioncore.unsqueeze"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.unsqueeze(WRegion reg, bool override)</TT>
<P>
<DL>
-<DD><A NAME="4488"></A>
-<A NAME="4489"></A>
-<A NAME="fn:ioncore.version"></A>
+<DD><A NAME="fn:ioncore.version"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.version()</TT>
<P>
<DL>
-<DD><A NAME="4490"></A>
-<A NAME="4491"></A>
-<A NAME="fn:ioncore.warn"></A>
+<DD><A NAME="fn:ioncore.warn"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.warn(string str)</TT>
<P>
<DL>
-<DD><A NAME="4492"></A>
-<A NAME="4493"></A>
-<A NAME="fn:ioncore.warn_traced"></A>
+<DD><A NAME="fn:ioncore.warn_traced"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.warn_traced(string str)</TT>
<P>
<DL>
-<DD><A NAME="4494"></A>
-<A NAME="4495"></A>
-<A NAME="fn:ioncore.x_change_property"></A>
+<DD><A NAME="fn:ioncore.x_change_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.x_change_property(integer win, integer atom, integer atom_type, integer format, string mode, table tab)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Modify a window property. The <TT>mode</TT> is one of
- <TT>"replace"</TT>, <TT>"prepend"</TT> or <TT>"append"</TT>, and format
+ `<TT>replace</TT>', `<TT>prepend</TT>' or `<TT>append</TT>', and format
is either 8, 16 or 32. Also see <A HREF="#fn:ioncore.x_get_window_property"><TT>ioncore.x_get_window_property</TT></A>
and the <TT>XChangeProperty</TT>(3) manual page.
<P>
<DL>
-<DD><A NAME="4496"></A>
-<A NAME="4497"></A>
-<A NAME="fn:ioncore.x_delete_property"></A>
+<DD><A NAME="fn:ioncore.x_delete_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.x_delete_property(integer win, integer atom)</TT>
<P>
<DL>
-<DD><A NAME="4498"></A>
-<A NAME="4499"></A>
-<A NAME="fn:ioncore.x_get_atom_name"></A>
+<DD><A NAME="fn:ioncore.x_get_atom_name"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.x_get_atom_name(integer atom)</TT>
<P>
<DL>
-<DD><A NAME="4500"></A>
-<A NAME="4501"></A>
-<A NAME="fn:ioncore.x_get_text_property"></A>
+<DD><A NAME="fn:ioncore.x_get_text_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.x_get_text_property(integer win, integer atom)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Get a text property for a window (<TT>STRING</TT>, <TT>COMPOUND_TEXT</TT>,
- or <TT>UTF8_STRING</TT> property converted). The fields in the returned
+<DD>Get a text property for a window. The fields in the returned
table (starting from 1) are the null-separated parts of the property.
See the <TT>XGetTextProperty</TT>(3) manual page for more information.
<P>
<DL>
-<DD><A NAME="4502"></A>
-<A NAME="4503"></A>
-<A NAME="fn:ioncore.x_get_window_property"></A>
+<DD><A NAME="fn:ioncore.x_get_window_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.x_get_window_property(integer win, integer atom, integer atom_type, integer n32expected, bool more)</TT>
<P>
<DL>
-<DD><A NAME="4504"></A>
-<A NAME="4505"></A>
-<A NAME="fn:ioncore.x_intern_atom"></A>
+<DD><A NAME="fn:ioncore.x_intern_atom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer ioncore.x_intern_atom(string name, bool only_if_exists)</TT>
<P>
<DL>
-<DD><A NAME="4506"></A>
-<A NAME="4507"></A>
-<A NAME="fn:ioncore.x_set_text_property"></A>
+<DD><A NAME="fn:ioncore.x_set_text_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.x_set_text_property(integer win, integer atom, table tab)</TT>
<P>
<DL>
-<DD><A NAME="4508"></A>
-<A NAME="4509"></A>
-<A NAME="fn:ioncore.kpress"></A>
+<DD><A NAME="fn:ioncore.kpress"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.kpress(keyspec, cmd, guard)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Creates a binding description table for the action of pressing a key given
- by <TT>keyspec</TT> (with possible modifiers) to the function <TT>func</TT>.
- For more information on bindings, see section <A HREF="node4.html#sec:bindings">3.3</A>.
+ by <TT>keyspec</TT> (with possible modifiers) to the function <TT>cmd</TT>.
+ The <TT>guard</TT> controls when the binding can be called.
+ For more informationp see Section <A HREF="node4.html#sec:bindings">3.3</A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4510"></A>
-<A NAME="4511"></A>
-<A NAME="fn:ioncore.kpress_wait"></A>
+<DD><A NAME="fn:ioncore.kpress_wait"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.kpress_wait(keyspec, cmd, guard)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>This is similar to <A HREF="#fn:kpress"><TT>kpress</TT></A> but after calling <TT>cmd</TT>,
+<DD>This is similar to <A HREF="#fn:ioncore.kpress"><TT>ioncore.kpress</TT></A> but after calling <TT>cmd</TT>,
Ioncore waits for all modifiers to be released before processing
any further actions.
- For more information on bindings, see section <A HREF="node4.html#sec:bindings">3.3</A>.
+ For more information on bindings, see Section <A HREF="node4.html#sec:bindings">3.3</A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4512"></A>
-<A NAME="4513"></A>
-<A NAME="fn:ioncore.match_winprop_name"></A>
+<DD><A NAME="fn:ioncore.defer"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>ioncore.match_winprop_name(prop, cwin)</TT>
+<DD><TT>bool ioncore.defer(function fn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Defer execution of <TT>fn</TT> until the main loop.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.get_hook"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>WHook ioncore.get_hook(string name)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Find named hook <TT>name</TT>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.match_winprop_dflt"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.match_winprop_dflt(prop, cwin, id)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="4514"></A>
-<A NAME="4515"></A>
-<A NAME="fn:ioncore.mclick"></A>
+<DD><A NAME="fn:ioncore.mclick"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mclick(buttonspec, cmd, guard)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Creates a binding description table for the action of clicking a mouse
button while possible modifier keys are pressed,
- both given by <TT>buttonspec</TT>, to the function <TT>func</TT>.
- For more information, see section <A HREF="node4.html#sec:bindings">3.3</A>.
+ both given by <TT>buttonspec</TT>, to the function <TT>cmd</TT>.
+ For more information, see Section <A HREF="node4.html#sec:bindings">3.3</A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4516"></A>
-<A NAME="4517"></A>
-<A NAME="fn:ioncore.mdblclick"></A>
+<DD><A NAME="fn:ioncore.mdblclick"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mdblclick(buttonspec, cmd, guard)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Similar to <A HREF="#fn:mclick"><TT>mclick</TT></A> but for double-click.
- Also see section <A HREF="node4.html#sec:bindings">3.3</A>.
+<DD>Similar to <A HREF="#fn:ioncore.mclick"><TT>ioncore.mclick</TT></A> but for double-click.
+ Also see Section <A HREF="node4.html#sec:bindings">3.3</A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4518"></A>
-<A NAME="4519"></A>
-<A NAME="fn:ioncore.mdrag"></A>
+<DD><A NAME="fn:ioncore.mdrag"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mdrag(buttonspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4520"></A>
-<A NAME="4521"></A>
-<A NAME="fn:ioncore.menuentry"></A>
+<DD><A NAME="fn:ioncore.menuentry"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.menuentry(name, cmd, guard_or_opts)</TT>
<P>
<DL>
-<DD><A NAME="4522"></A>
-<A NAME="4523"></A>
-<A NAME="fn:ioncore.mpress"></A>
+<DD><A NAME="fn:ioncore.mpress"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mpress(buttonspec, cmd, guard)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Similar to <A HREF="#fn:mclick"><TT>mclick</TT></A> but for just pressing the mouse button.
- Also see section <A HREF="node4.html#sec:bindings">3.3</A>.
+<DD>Similar to <A HREF="#fn:ioncore.mclick"><TT>ioncore.mclick</TT></A> but for just pressing the mouse button.
+ Also see Section <A HREF="node4.html#sec:bindings">3.3</A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4524"></A>
-<A NAME="4525"></A>
-<A NAME="fn:ioncore.refresh_stylelist"></A>
+<DD><A NAME="fn:ioncore.refresh_stylelist"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.refresh_stylelist()</TT>
<P>
<DL>
-<DD><A NAME="4526"></A>
-<A NAME="4527"></A>
-<A NAME="fn:ioncore.submap"></A>
+<DD><A NAME="fn:ioncore.submap"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>ioncore.submap(kcb_, list)</TT>
+<DD><TT>ioncore.submap(keyspec, list)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Returns a function that creates a submap binding description table.
When the key press action <TT>keyspec</TT> occurs, Ioncore will wait for
a further key presse and act according to the submap.
- For details, see section <A HREF="node4.html#sec:bindings">3.3</A>.
+ For details, see Section <A HREF="node4.html#sec:bindings">3.3</A>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.submap_enter"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.submap_enter(cmd, guard)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Submap enter event for bindings.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.submap_wait"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.submap_wait(cmd, guard)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Submap modifier release event for bindings.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4528"></A>
-<A NAME="4529"></A>
-<A NAME="fn:ioncore.submenu"></A>
+<DD><A NAME="fn:ioncore.submenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.submenu(name, sub_or_name, options)</TT>
<P>
<DL>
-<DD><A NAME="4530"></A>
-<A NAME="4531"></A>
-<A NAME="fn:ioncore.tagged_attach"></A>
+<DD><A NAME="fn:ioncore.tabnum.clear"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.tabnum.clear()</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Clear all tab numbers set by <A HREF="#fn:ioncore.tabnum.show"><TT>ioncore.tabnum.show</TT></A>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.tabnum.show"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.tabnum.show(frame, delay)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Show tab numbers on <TT>frame</TT>, clearing them when submap
+ grab is released the next time. If <TT>delay</TT> is given, in
+ milliseconds, the numbers are not actually displayed until this
+ time has passed.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.tagged_attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.tagged_attach(reg, param)</TT>
depends on the types of attached regions and whether <TT>reg</TT>
implements <TT>attach_framed</TT> and <TT>attach</TT>. If <TT>param</TT>
is not set, the default of <code>{switchto=true}</code> is used.
+ The function returns <TT>true</TT> if all tagged regions were
+ succesfully attached, and <TT>false</TT> otherwisse.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4533"></A>
-<A NAME="4534"></A>
-<A NAME="fn:WClientWin.get_ident"></A>
+<DD><A NAME="fn:WClientWin.get_ident"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WClientWin.get_ident(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4535"></A>
-<A NAME="4536"></A>
-<A NAME="fn:WClientWin.kill"></A>
+<DD><A NAME="fn:WClientWin.kill"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WClientWin.kill(WClientWin cwin)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Attempt to kill (with XKillWindow) the client that owns the X
- window correspoding to <TT>cwin</TT>.
+<DD>Attempt to kill (with <TT>XKillWindow</TT>) the client that owns
+ the X window correspoding to <TT>cwin</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4537"></A>
-<A NAME="4538"></A>
-<A NAME="fn:WClientWin.nudge"></A>
+<DD><A NAME="fn:WClientWin.nudge"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WClientWin.nudge(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4539"></A>
-<A NAME="4540"></A>
-<A NAME="fn:WClientWin.quote_next"></A>
+<DD><A NAME="fn:WClientWin.quote_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WClientWin.quote_next(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4541"></A>
-<A NAME="4542"></A>
-<A NAME="fn:WClientWin.xid"></A>
+<DD><A NAME="fn:WClientWin.xid"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>double WClientWin.xid(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4544"></A>
-<A NAME="4545"></A>
-<A NAME="fn:WFrame.is_shaded"></A>
+<DD><A NAME="fn:WFrame.is_shaded"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WFrame.is_shaded(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4546"></A>
-<A NAME="4547"></A>
-<A NAME="fn:WFrame.maximize_horiz"></A>
+<DD><A NAME="fn:WFrame.maximize_horiz"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.maximize_horiz(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4548"></A>
-<A NAME="4549"></A>
-<A NAME="fn:WFrame.maximize_vert"></A>
+<DD><A NAME="fn:WFrame.maximize_vert"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.maximize_vert(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4550"></A>
-<A NAME="4551"></A>
-<A NAME="fn:WFrame.mode"></A>
+<DD><A NAME="fn:WFrame.mode"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WFrame.mode(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4552"></A>
-<A NAME="4553"></A>
-<A NAME="fn:WFrame.p_switch_tab"></A>
+<DD><A NAME="fn:WFrame.p_switch_tab"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.p_switch_tab(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4554"></A>
-<A NAME="4555"></A>
-<A NAME="fn:WFrame.p_tabdrag"></A>
+<DD><A NAME="fn:WFrame.p_tabdrag"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.p_tabdrag(WFrame frame)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Start dragging the tab that the user pressed on with the pointing device.
This function should only be used by binding it to <SPAN CLASS="textit">mpress</SPAN> or
- <SPAN CLASS="textit">mdrag</SPAN> action with area ''tab''.
+ <SPAN CLASS="textit">mdrag</SPAN> action with area `<TT>tab</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4556"></A>
-<A NAME="4557"></A>
-<A NAME="fn:WFrame.set_mode"></A>
+<DD><A NAME="fn:WFrame.set_grattr"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WFrame.set_mode(WFrame frame, string modestr)</TT>
+<DD><TT>bool WFrame.set_grattr(WFrame frame, string attr, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Set frame mode.
+<DD>Set extra drawing engine attributes for the frame.
+ The parameter <TT>attr</TT> is the attribute, and <TT>how</TT> is
+ one of `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4558"></A>
-<A NAME="4559"></A>
-<A NAME="fn:WFrame.set_numbers"></A>
+<DD><A NAME="fn:WFrame.set_mode"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WFrame.set_numbers(WFrame frame, string how)</TT>
+<DD><TT>bool WFrame.set_mode(WFrame frame, string modestr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Control whether tabs show numbers (set/unset/toggle).
- Resulting state is returned, which may not be what was
- requested.
+<DD>Set frame mode.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4560"></A>
-<A NAME="4561"></A>
-<A NAME="fn:WFrame.set_shaded"></A>
+<DD><A NAME="fn:WFrame.set_shaded"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WFrame.set_shaded(WFrame frame, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set shading state according to the parameter <TT>how</TT>
- (set/unset/toggle). Resulting state is returned, which may not be
+ (`<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
+ Resulting state is returned, which may not be
what was requested.
</DD>
<P>
<DL>
-<DD><A NAME="4563"></A>
-<A NAME="4564"></A>
-<A NAME="fn:WGroup.attach"></A>
+<DD><A NAME="fn:WGroup.attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WGroup.attach(WGroup ws, WRegion reg, table param)</TT>
<P>
<DL>
-<DD><A NAME="4565"></A>
-<A NAME="4566"></A>
-<A NAME="fn:WGroup.attach_new"></A>
+<DD><A NAME="fn:WGroup.attach_new"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WGroup.attach_new(WGroup ws, table param)</TT>
<TD ALIGN="LEFT">Description</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>type</TT></TD>
-<TD ALIGN="LEFT">Class name (a string) of the object to be created. Mandatory.</TD>
+<TD ALIGN="LEFT">(string) Class of the object to be created. Mandatory.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>name</TT></TD>
-<TD ALIGN="LEFT">Name of the object to be created (a string). Optional.</TD>
+<TD ALIGN="LEFT">(string) Name of the object to be created.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
-<TD ALIGN="LEFT">Should the region be switched to (boolean)? Optional.</TD>
+<TD ALIGN="LEFT">(boolean) Should the region be switched to?</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>level</TT></TD>
-<TD ALIGN="LEFT">Stacking level; default is 1.</TD>
+<TD ALIGN="LEFT">(integer) Stacking level; default is 1.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>modal</TT></TD>
-<TD ALIGN="LEFT">Make object modal; ignored if level is set.</TD>
+<TD ALIGN="LEFT">(boolean) Make object modal; ignored if level is set.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>sizepolicy</TT></TD>
-<TD ALIGN="LEFT">Size policy.</TD>
+<TD ALIGN="LEFT">(string) Size policy; see Section <A HREF="#sec:sizepolicies">6.10.1</A>.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>bottom</TT></TD>
+<TD ALIGN="LEFT">(boolean) Mark the attached region as the
+ ``bottom'' of <TT>ws</TT>.</TD>
</TR>
</TABLE>
<P>
<DL>
-<DD><A NAME="4567"></A>
-<A NAME="4568"></A>
-<A NAME="fn:WGroup.bottom"></A>
+<DD><A NAME="fn:WGroup.bottom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WGroup.bottom(WGroup ws)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns the 'bottom' of <TT>ws</TT>.
-
-</DD>
-</DL>
-
-<P>
-
- <DL>
-<DD><A NAME="4569"></A>
-<A NAME="4570"></A>
-<A NAME="fn:WGroup.is_fullscreen"></A>
-</DD>
-<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WGroup.is_fullscreen(WGroup grp)</TT>
-
-</DD>
-<DT><STRONG>Description:</STRONG></DT>
-<DD>Is <TT>reg</TT> in full screen mode?
+<DD>Returns the `bottom' of <TT>ws</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4571"></A>
-<A NAME="4572"></A>
-<A NAME="fn:WGroup.managed_i"></A>
+<DD><A NAME="fn:WGroup.managed_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.managed_i(WGroup ws, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4573"></A>
-<A NAME="4574"></A>
-<A NAME="fn:WGroup.set_bottom"></A>
+<DD><A NAME="fn:WGroup.set_bottom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.set_bottom(WGroup ws, WRegion reg)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Sets the 'bottom' of <TT>ws</TT>. The region <TT>reg</TT> must already
+<DD>Sets the `bottom' of <TT>ws</TT>. The region <TT>reg</TT> must already
be managed by <TT>ws</TT>, unless <TT>nil</TT>.
</DD>
<P>
<DL>
-<DD><A NAME="4575"></A>
-<A NAME="4576"></A>
-<A NAME="fn:WGroup.set_fullscreen"></A>
+<DD><A NAME="fn:WGroup.set_fullscreen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.set_fullscreen(WGroup grp, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set client window <TT>reg</TT> full screen state according to the
- parameter <TT>how</TT> (set/unset/toggle). Resulting state is returned,
- which may not be what was requested.
+ parameter <TT>how</TT> (one of `<TT>set</TT>', `<TT>unset</TT>', or
+ `<TT>toggle</TT>'). Resulting state is returned, which may not be
+ what was requested.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4579"></A>
-<A NAME="4580"></A>
-<A NAME="fn:WGroupWS.attach_framed"></A>
+<DD><A NAME="fn:WGroupWS.attach_framed"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroupWS.attach_framed(WGroupWS ws, WRegion reg, table t)</TT>
<P>
<H3><A NAME="SECTION00716000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WHook functions</A>
+</H3>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WHook.add"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WHook.add(WHook hk, function efn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Add <TT>efn</TT> to the list of functions to be called when the
+ hook <TT>hk</TT> is triggered.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WHook.listed"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WHook.listed(WHook hk, function efn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Is <TT>fn</TT> hooked to hook <TT>hk</TT>?
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WHook.remove"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WHook.remove(WHook hk, function efn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Remove <TT>efn</TT> from the list of functions to be called when the
+ hook <TT>hk</TT> is triggered.
+
+</DD>
+</DL>
+
+<P>
+
+<H3><A NAME="SECTION00717000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WInfoWin functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4582"></A>
-<A NAME="4583"></A>
-<A NAME="fn:WInfoWin.set_text"></A>
+<DD><A NAME="fn:WInfoWin.set_text"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInfoWin.set_text(WInfoWin p, string str, integer maxw)</TT>
<P>
-<H3><A NAME="SECTION00717000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
+<H3><A NAME="SECTION00718000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMPlex functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4585"></A>
-<A NAME="4586"></A>
-<A NAME="fn:WMPlex.attach"></A>
+<DD><A NAME="fn:WMPlex.attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.attach(WMPlex mplex, WRegion reg, table param)</TT>
<P>
<DL>
-<DD><A NAME="4587"></A>
-<A NAME="4588"></A>
-<A NAME="fn:WMPlex.attach_new"></A>
+<DD><A NAME="fn:WMPlex.attach_new"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.attach_new(WMPlex mplex, table param)</TT>
by e.g. the mutually exclusive list being empty.
This option overrides <TT>switchto</TT>.</TD>
</TR>
+<TR><TD ALIGN="LEFT"><TT>passive</TT></TD>
+<TD ALIGN="LEFT">(boolean) Skip in certain focusing operations.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>pseudomodal</TT></TD>
+<TD ALIGN="LEFT">(boolean) The attached region is ``pseudomodal''
+ if the stacking level dictates it to be modal.
+ This means that the region may be hidden to display
+ regions with lesser stacking levels.</TD>
+</TR>
<TR><TD ALIGN="LEFT"><TT>sizepolicy</TT></TD>
-<TD ALIGN="LEFT">(integer) Size policy.</TD>
+<TD ALIGN="LEFT">(string) Size policy; see Section <A HREF="#sec:sizepolicies">6.10.1</A>.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>geom</TT></TD>
<TD ALIGN="LEFT">(table) Geometry specification.</TD>
<P>
<DL>
-<DD><A NAME="4589"></A>
-<A NAME="4590"></A>
-<A NAME="fn:WMPlex.dec_index"></A>
+<DD><A NAME="fn:WMPlex.dec_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.dec_index(WMPlex mplex, WRegion r)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Move <TT>r</TT> ''right'' within objects managed by <TT>mplex</TT> on list 1.
+<DD>Move <TT>r</TT> ``left'' within objects managed by <TT>mplex</TT> on list 1.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4591"></A>
-<A NAME="4592"></A>
-<A NAME="fn:WMPlex.get_index"></A>
+<DD><A NAME="fn:WMPlex.get_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WMPlex.get_index(WMPlex mplex, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4593"></A>
-<A NAME="4594"></A>
-<A NAME="fn:WMPlex.get_stdisp"></A>
+<DD><A NAME="fn:WMPlex.get_stdisp"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WMPlex.get_stdisp(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4595"></A>
-<A NAME="4596"></A>
-<A NAME="fn:WMPlex.inc_index"></A>
+<DD><A NAME="fn:WMPlex.inc_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.inc_index(WMPlex mplex, WRegion r)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Move <TT>r</TT> ''right'' within objects managed by <TT>mplex</TT> on list 1.
+<DD>Move <TT>r</TT> ``right'' within objects managed by <TT>mplex</TT> on list 1.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4597"></A>
-<A NAME="4598"></A>
-<A NAME="fn:WMPlex.is_hidden"></A>
+<DD><A NAME="fn:WMPlex.is_hidden"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.is_hidden(WMPlex mplex, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4599"></A>
-<A NAME="4600"></A>
-<A NAME="fn:WMPlex.managed_i"></A>
+<DD><A NAME="fn:WMPlex.managed_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.managed_i(WMPlex mplex, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4601"></A>
-<A NAME="4602"></A>
-<A NAME="fn:WMPlex.mx_count"></A>
+<DD><A NAME="fn:WMPlex.mx_count"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WMPlex.mx_count(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4603"></A>
-<A NAME="4604"></A>
-<A NAME="fn:WMPlex.mx_current"></A>
+<DD><A NAME="fn:WMPlex.mx_current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.mx_current(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4605"></A>
-<A NAME="4606"></A>
-<A NAME="fn:WMPlex.mx_i"></A>
+<DD><A NAME="fn:WMPlex.mx_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.mx_i(WMPlex mplex, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4607"></A>
-<A NAME="4608"></A>
-<A NAME="fn:WMPlex.mx_nth"></A>
+<DD><A NAME="fn:WMPlex.mx_nth"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.mx_nth(WMPlex mplex, integer n)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns the <TT>n</TT>:th object managed by <TT>mplex</TT> on the
- <TT>l</TT>:th layer.
+<DD>Returns the <TT>n</TT>:th object on the mutually exclusive
+ list of <TT>mplex</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4609"></A>
-<A NAME="4610"></A>
-<A NAME="fn:WMPlex.set_hidden"></A>
+<DD><A NAME="fn:WMPlex.set_hidden"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.set_hidden(WMPlex mplex, WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set the visibility of the region <TT>reg</TT> on <TT>mplex</TT>
- as specified with the parameter <TT>how</TT> (set/unset/toggle).
+ as specified with the parameter <TT>how</TT>
+ (one of `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
The resulting state is returned.
</DD>
<P>
<DL>
-<DD><A NAME="4611"></A>
-<A NAME="4612"></A>
-<A NAME="fn:WMPlex.set_index"></A>
+<DD><A NAME="fn:WMPlex.set_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.set_index(WMPlex mplex, WRegion reg, integer index)</TT>
<DD>Set index of <TT>reg</TT> to <TT>index</TT> within the mutually exclusive
list of <TT>mplex</TT>. Special values for <TT>index</TT> are:
<TABLE CELLPADDING=3 WIDTH="100%">
-<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"></SPAN></TD>
+<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"><IMG
+ WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="img4.png"
+ ALT="$-1$"></SPAN></TD>
<TD ALIGN="LEFT">Last.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"></SPAN></TD>
+<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"><IMG
+ WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="img5.png"
+ ALT="$-2$"></SPAN></TD>
<TD ALIGN="LEFT">After <A HREF="#fn:WMPlex.mx_current"><TT>WMPlex.mx_current</TT></A>.</TD>
</TR>
</TABLE>
<P>
<DL>
-<DD><A NAME="4613"></A>
-<A NAME="4614"></A>
-<A NAME="fn:WMPlex.set_stdisp"></A>
+<DD><A NAME="fn:WMPlex.set_stdisp"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.set_stdisp(WMPlex mplex, table t)</TT>
<TD ALIGN="LEFT">Description</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>pos</TT></TD>
-<TD ALIGN="LEFT">The corner of the screen to place the status display
- in. One of <TT>tl</TT>, <TT>tr</TT>, <TT>bl</TT> or <TT>br</TT>.</TD>
+<TD ALIGN="LEFT">(string) The corner of the screen to place the status
+ display in: one of `<TT>tl</TT>', `<TT>tr</TT>', `<TT>bl</TT>'
+ or `<TT>br</TT>'.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>fullsize</TT></TD>
+<TD ALIGN="LEFT">(boolean) Waste all available space.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>action</TT></TD>
-<TD ALIGN="LEFT">If this field is set to <TT>keep</TT>, <TT>corner</TT>
- and <TT>orientation</TT> are changed for the existing
- status display. If this field is set to <TT>remove</TT>,
+<TD ALIGN="LEFT">(string) If this field is set to `<TT>keep</TT>',
+ <TT>pos</TT> and <TT>fullsize</TT> are changed for the existing
+ status display. If this field is set to `<TT>remove</TT>',
the existing status display is removed. If this
- field is not set or is set to <TT>replace</TT>, a
+ field is not set or is set to `<TT>replace</TT>', a
new status display is created and the old, if any,
removed.</TD>
</TR>
<P>
<DL>
-<DD><A NAME="4615"></A>
-<A NAME="4616"></A>
-<A NAME="fn:WMPlex.switch_next"></A>
+<DD><A NAME="fn:WMPlex.switch_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.switch_next(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4617"></A>
-<A NAME="4618"></A>
-<A NAME="fn:WMPlex.switch_nth"></A>
+<DD><A NAME="fn:WMPlex.switch_nth"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.switch_nth(WMPlex mplex, integer n)</TT>
<P>
<DL>
-<DD><A NAME="4619"></A>
-<A NAME="4620"></A>
-<A NAME="fn:WMPlex.switch_prev"></A>
+<DD><A NAME="fn:WMPlex.switch_prev"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.switch_prev(WMPlex mplex)</TT>
<P>
-<H3><A NAME="SECTION00718000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
+<H3><A NAME="SECTION00719000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WMoveresMode functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4622"></A>
-<A NAME="4623"></A>
-<A NAME="fn:WMoveresMode.cancel"></A>
+<DD><A NAME="fn:WMoveresMode.cancel"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.cancel(WMoveresMode mode)</TT>
<P>
<DL>
-<DD><A NAME="4624"></A>
-<A NAME="4625"></A>
-<A NAME="fn:WMoveresMode.finish"></A>
+<DD><A NAME="fn:WMoveresMode.finish"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.finish(WMoveresMode mode)</TT>
<P>
<DL>
-<DD><A NAME="4626"></A>
-<A NAME="4627"></A>
-<A NAME="fn:WMoveresMode.geom"></A>
+<DD><A NAME="fn:WMoveresMode.geom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WMoveresMode.geom(WMoveresMode mode)</TT>
<P>
<DL>
-<DD><A NAME="4628"></A>
-<A NAME="4629"></A>
-<A NAME="fn:WMoveresMode.move"></A>
+<DD><A NAME="fn:WMoveresMode.move"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.move(WMoveresMode mode, integer horizmul, integer vertmul)</TT>
<P>
<DL>
-<DD><A NAME="4630"></A>
-<A NAME="4631"></A>
-<A NAME="fn:WMoveresMode.resize"></A>
+<DD><A NAME="fn:WMoveresMode.resize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.resize(WMoveresMode mode, integer left, integer right, integer top, integer bottom)</TT>
<P>
<DL>
-<DD><A NAME="4632"></A>
-<A NAME="4633"></A>
-<A NAME="fn:WMoveresMode.rqgeom"></A>
+<DD><A NAME="fn:WMoveresMode.rqgeom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WMoveresMode.rqgeom(WMoveresMode mode, table g)</TT>
<P>
-<H3><A NAME="SECTION00719000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
+<H3><A NAME="SECTION007110000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRegion functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4635"></A>
-<A NAME="4636"></A>
-<A NAME="fn:WRegion.begin_kbresize"></A>
+<DD><A NAME="fn:WRegion.begin_kbresize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WMoveresMode WRegion.begin_kbresize(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4637"></A>
-<A NAME="4638"></A>
-<A NAME="fn:WRegion.current"></A>
+<DD><A NAME="fn:WRegion.current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.current(WRegion mgr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Return the object, if any, that is considered ''currently active''
+<DD>Return the object, if any, that is considered ``currently active''
within the objects managed by <TT>mplex</TT>.
</DD>
<P>
<DL>
-<DD><A NAME="4639"></A>
-<A NAME="4640"></A>
-<A NAME="fn:WRegion.geom"></A>
+<DD><A NAME="fn:WRegion.geom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.geom(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4641"></A>
-<A NAME="4642"></A>
-<A NAME="fn:WRegion.get_configuration"></A>
+<DD><A NAME="fn:WRegion.get_configuration"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.get_configuration(WRegion reg, bool clientwins)</TT>
<P>
<DL>
-<DD><A NAME="4643"></A>
-<A NAME="4644"></A>
-<A NAME="fn:WRegion.goto"></A>
+<DD><A NAME="fn:WRegion.goto"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.goto(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4645"></A>
-<A NAME="4646"></A>
-<A NAME="fn:WRegion.groupleader_of"></A>
+<DD><A NAME="fn:WRegion.groupleader_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.groupleader_of(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4647"></A>
-<A NAME="4648"></A>
-<A NAME="fn:WRegion.is_active"></A>
+<DD><A NAME="fn:WRegion.is_active"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_active(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4649"></A>
-<A NAME="4650"></A>
-<A NAME="fn:WRegion.is_activity"></A>
+<DD><A NAME="fn:WRegion.is_activity"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_activity(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4651"></A>
-<A NAME="4652"></A>
-<A NAME="fn:WRegion.is_mapped"></A>
+<DD><A NAME="fn:WRegion.is_mapped"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_mapped(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4653"></A>
-<A NAME="4654"></A>
-<A NAME="fn:WRegion.is_tagged"></A>
+<DD><A NAME="fn:WRegion.is_tagged"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_tagged(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4655"></A>
-<A NAME="4656"></A>
-<A NAME="fn:WRegion.manager"></A>
+<DD><A NAME="fn:WRegion.manager"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.manager(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4657"></A>
-<A NAME="4658"></A>
-<A NAME="fn:WRegion.name"></A>
+<DD><A NAME="fn:WRegion.name"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WRegion.name(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4659"></A>
-<A NAME="4660"></A>
-<A NAME="fn:WRegion.parent"></A>
+<DD><A NAME="fn:WRegion.parent"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WWindow WRegion.parent(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4661"></A>
-<A NAME="4662"></A>
-<A NAME="fn:WRegion.rootwin_of"></A>
+<DD><A NAME="fn:WRegion.rootwin_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRootWin WRegion.rootwin_of(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4663"></A>
-<A NAME="4664"></A>
-<A NAME="fn:WRegion.rqclose"></A>
+<DD><A NAME="fn:WRegion.rqclose"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WRegion.rqclose(WRegion reg, bool relocate)</TT>
the client supports the <TT>WM_DELETE</TT> protocol (see also
<A HREF="#fn:WClientWin.kill"><TT>WClientWin.kill</TT></A>). The region will not be destroyed when
this function returns. To find out if and when it is destroyed,
- use the "deinit" notification. If <TT>relocate</TT> is not set, and
- <TT>reg</TT> manages other regions, it will not be closed. Otherwise
+ use the `<TT>deinit</TT>' notification. If <TT>relocate</TT> is not set,
+ and <TT>reg</TT> manages other regions, it will not be closed. Otherwise
the managed regions will be attempted to be relocated.
</DD>
<P>
<DL>
-<DD><A NAME="4665"></A>
-<A NAME="4666"></A>
-<A NAME="fn:WRegion.rqclose_propagate"></A>
+<DD><A NAME="fn:WRegion.rqclose_propagate"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.rqclose_propagate(WRegion reg, WRegion maybe_sub)</TT>
<P>
<DL>
-<DD><A NAME="4667"></A>
-<A NAME="4668"></A>
-<A NAME="fn:WRegion.rqgeom"></A>
+<DD><A NAME="fn:WRegion.rqgeom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.rqgeom(WRegion reg, table g)</TT>
<P>
<DL>
-<DD><A NAME="4669"></A>
-<A NAME="4670"></A>
-<A NAME="fn:WRegion.rqorder"></A>
+<DD><A NAME="fn:WRegion.rqorder"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.rqorder(WRegion reg, string ord)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Request ordering. Currently supported values for <TT>ord</TT>
- are 'front' and 'back'.
+ are `<TT>front</TT>' and `<TT>back</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4671"></A>
-<A NAME="4672"></A>
-<A NAME="fn:WRegion.screen_of"></A>
+<DD><A NAME="fn:WRegion.screen_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen WRegion.screen_of(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4673"></A>
-<A NAME="4674"></A>
-<A NAME="fn:WRegion.set_activity"></A>
+<DD><A NAME="fn:WRegion.set_activity"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_activity(WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Set activity flag of <TT>reg</TT>. The <TT>how</TT> parameter most be
- one of (set/unset/toggle).
+<DD>Set activity flag of <TT>reg</TT>. The <TT>how</TT> parameter must be
+ one of `<TT>set</TT>', `<TT>unset</TT>' or `<TT>toggle</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4675"></A>
-<A NAME="4676"></A>
-<A NAME="fn:WRegion.set_name"></A>
+<DD><A NAME="fn:WRegion.set_name"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_name(WRegion reg, string p)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set the name of <TT>reg</TT> to <TT>p</TT>. If the name is already in use,
- an instance number suffix <TT><n></TT> will be attempted. If <TT>p</TT> has
+ an instance number suffix `<TT><n></TT>' will be attempted. If <TT>p</TT> has
such a suffix, it will be modified, otherwise such a suffix will be
added. Setting <TT>p</TT> to nil will cause current name to be removed.
<P>
<DL>
-<DD><A NAME="4677"></A>
-<A NAME="4678"></A>
-<A NAME="fn:WRegion.set_name_exact"></A>
+<DD><A NAME="fn:WRegion.set_name_exact"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_name_exact(WRegion reg, string p)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Similar to <A HREF="#fn:WRegion.set_name"><TT>WRegion.set_name</TT></A> except if the name is already in use,
other instance numbers will not be attempted. The string <TT>p</TT> should
- not contain a <TT><n></TT> suffix or this function will fail.
+ not contain a `<TT><n></TT>' suffix or this function will fail.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4679"></A>
-<A NAME="4680"></A>
-<A NAME="fn:WRegion.set_tagged"></A>
+<DD><A NAME="fn:WRegion.set_tagged"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_tagged(WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Change tagging state of <TT>reg</TT> as defined by <TT>how</TT>
- (set/unset/toggle). Resulting state is returned.
+ (one of `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
+ The resulting state is returned.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4681"></A>
-<A NAME="4682"></A>
-<A NAME="fn:WRegion.size_hints"></A>
+<DD><A NAME="fn:WRegion.size_hints"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.size_hints(WRegion reg)</TT>
<P>
-<H3><A NAME="SECTION007110000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
+<H3><A NAME="SECTION007111000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WRootWin functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4684"></A>
-<A NAME="4685"></A>
-<A NAME="fn:WRootWin.current_scr"></A>
+<DD><A NAME="fn:WRootWin.current_scr"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen WRootWin.current_scr(WRootWin rootwin)</TT>
<P>
-<H3><A NAME="SECTION007111000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
+<H3><A NAME="SECTION007112000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WScreen functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4687"></A>
-<A NAME="4688"></A>
-<A NAME="fn:WScreen.id"></A>
+<DD><A NAME="fn:WScreen.id"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WScreen.id(WScreen scr)</TT>
<P>
<DL>
-<DD><A NAME="4689"></A>
-<A NAME="4690"></A>
-<A NAME="fn:WScreen.set_managed_offset"></A>
+<DD><A NAME="fn:WScreen.set_managed_offset"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WScreen.set_managed_offset(WScreen scr, table offset)</TT>
<P>
-<H3><A NAME="SECTION007112000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
+<H3><A NAME="SECTION007113000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> WTimer functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4692"></A>
-<A NAME="4693"></A>
-<A NAME="fn:WWindow.p_move"></A>
+<DD><A NAME="fn:WTimer.is_set"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WTimer.is_set(WTimer timer)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Is timer set?
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WTimer.reset"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>void WTimer.reset(WTimer timer)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Reset timer.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WTimer.set"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>void WTimer.set(WTimer timer, integer msecs, function fn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Set <TT>timer</TT> to call <TT>fn</TT> in <TT>msecs</TT> milliseconds.
+
+</DD>
+</DL>
+
+<P>
+
+<H3><A NAME="SECTION007114000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> WWindow functions</A>
+</H3>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WWindow.p_move"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WWindow.p_move(WWindow wwin)</TT>
<P>
<DL>
-<DD><A NAME="4694"></A>
-<A NAME="4695"></A>
-<A NAME="fn:WWindow.p_resize"></A>
+<DD><A NAME="fn:WWindow.p_resize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WWindow.p_resize(WWindow wwin)</TT>
<P>
<DL>
-<DD><A NAME="4696"></A>
-<A NAME="4697"></A>
-<A NAME="fn:WWindow.xid"></A>
+<DD><A NAME="fn:WWindow.xid"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>double WWindow.xid(WWindow wwin)</TT>
<P>
-<H3><A NAME="SECTION007113000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
+<H3><A NAME="SECTION007115000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> global functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4699"></A>
-<A NAME="fn:export"></A>
+<DD><A NAME="fn:export"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>export(lib, ...)</TT>
<P>
-<H3><A NAME="SECTION007114000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
+<H3><A NAME="SECTION007116000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> gr functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4701"></A>
-<A NAME="4702"></A>
-<A NAME="fn:gr.read_config"></A>
+<DD><A NAME="fn:gr.read_config"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void gr.read_config()</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Read drawing engine configuration file <SPAN CLASS="textit">draw.lua</SPAN>.
+<DD>Read drawing engine configuration file <SPAN CLASS="textit">look.lua</SPAN>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4703"></A>
-<A NAME="4704"></A>
-<A NAME="fn:gr.refresh"></A>
+<DD><A NAME="fn:gr.refresh"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void gr.refresh()</TT>
<P>
<DL>
-<DD><A NAME="4705"></A>
-<A NAME="4706"></A>
-<A NAME="fn:gr.select_engine"></A>
+<DD><A NAME="fn:gr.select_engine"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool gr.select_engine(string engine)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Future requests for ''brushes'' are to be forwarded to the drawing engine
+<DD>Future requests for ``brushes'' are to be forwarded to the drawing engine
<TT>engine</TT>. If no engine of such name is known, a module with that name
is attempted to be loaded. This function is only intended to be called from
colour scheme etc. configuration files and can not be used to change the
<P>
-<H3><A NAME="SECTION007115000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
+<H3><A NAME="SECTION007117000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">17</SPAN> string functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4708"></A>
-<A NAME="4709"></A>
-<A NAME="fn:string.shell_safe"></A>
+<DD><A NAME="fn:string.shell_safe"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string.shell_safe(str)</TT>
<P>
-<H3><A NAME="SECTION007116000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
+<H3><A NAME="SECTION007118000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">18</SPAN> table functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4711"></A>
-<A NAME="4712"></A>
-<A NAME="fn:table.append"></A>
+<DD><A NAME="fn:table.append"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.append(t1, t2)</TT>
<P>
<DL>
-<DD><A NAME="4713"></A>
-<A NAME="4714"></A>
-<A NAME="fn:table.copy"></A>
+<DD><A NAME="fn:table.copy"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.copy(t, deep)</TT>
<P>
<DL>
-<DD><A NAME="4715"></A>
-<A NAME="4716"></A>
-<A NAME="fn:table.icat"></A>
+<DD><A NAME="fn:table.icat"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.icat(t1, t2)</TT>
<P>
<DL>
-<DD><A NAME="4717"></A>
-<A NAME="4718"></A>
-<A NAME="fn:table.join"></A>
+<DD><A NAME="fn:table.join"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.join(t1, t2)</TT>
<P>
<DL>
-<DD><A NAME="4719"></A>
-<A NAME="4720"></A>
-<A NAME="fn:table.map"></A>
+<DD><A NAME="fn:table.map"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.map(f, t)</TT>
</H2>
<DL>
-<DD><A NAME="7110"></A>
-<A NAME="7111"></A>
-<A NAME="fn:mod_tiling.get"></A>
+<DD><A NAME="fn:mod_tiling.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_tiling.get()</TT>
<P>
<DL>
-<DD><A NAME="7112"></A>
-<A NAME="7113"></A>
-<A NAME="fn:mod_tiling.mkbottom"></A>
+<DD><A NAME="fn:mod_tiling.mkbottom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_tiling.mkbottom(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7114"></A>
-<A NAME="7115"></A>
-<A NAME="fn:mod_tiling.set"></A>
+<DD><A NAME="fn:mod_tiling.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_tiling.set(table tab)</TT>
<P>
<DL>
-<DD><A NAME="7116"></A>
-<A NAME="7117"></A>
-<A NAME="fn:mod_tiling.untile"></A>
+<DD><A NAME="fn:mod_tiling.untile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_tiling.untile(WTiling tiling)</TT>
<P>
<DL>
-<DD><A NAME="7119"></A>
-<A NAME="7120"></A>
-<A NAME="fn:WSplit.geom"></A>
+<DD><A NAME="fn:WSplit.geom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WSplit.geom(WSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7121"></A>
-<A NAME="7122"></A>
-<A NAME="fn:WSplit.parent"></A>
+<DD><A NAME="fn:WSplit.parent"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplitInner WSplit.parent(WSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7123"></A>
-<A NAME="7124"></A>
-<A NAME="fn:WSplit.rqgeom"></A>
+<DD><A NAME="fn:WSplit.rqgeom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WSplit.rqgeom(WSplit node, table g)</TT>
<P>
<DL>
-<DD><A NAME="7125"></A>
-<A NAME="7126"></A>
-<A NAME="fn:WSplit.transpose"></A>
+<DD><A NAME="fn:WSplit.transpose"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WSplit.transpose(WSplit node)</TT>
<P>
<DL>
-<DD><A NAME="7128"></A>
-<A NAME="7129"></A>
-<A NAME="fn:WSplitInner.current"></A>
+<DD><A NAME="fn:WSplitInner.current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WSplitInner.current(WSplitInner node)</TT>
<P>
<DL>
-<DD><A NAME="7131"></A>
-<A NAME="7132"></A>
-<A NAME="fn:WSplitRegion.reg"></A>
+<DD><A NAME="fn:WSplitRegion.reg"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WSplitRegion.reg(WSplitRegion node)</TT>
<P>
<DL>
-<DD><A NAME="7134"></A>
-<A NAME="7135"></A>
-<A NAME="fn:WSplitSplit.br"></A>
+<DD><A NAME="fn:WSplitSplit.br"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WSplitSplit.br(WSplitSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7136"></A>
-<A NAME="7137"></A>
-<A NAME="fn:WSplitSplit.dir"></A>
+<DD><A NAME="fn:WSplitSplit.dir"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WSplitSplit.dir(WSplitSplit split)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns the direction of <TT>split</TT>; either ''vertical'' or
- ''horizontal''.
+<DD>Returns the direction of <TT>split</TT>; either `<TT>vertical</TT>' or
+ `<TT>horizontal</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7138"></A>
-<A NAME="7139"></A>
-<A NAME="fn:WSplitSplit.flip"></A>
+<DD><A NAME="fn:WSplitSplit.flip"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WSplitSplit.flip(WSplitSplit split)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Flip contents of <TT>node</TT>.
+<DD>Flip contents of <TT>split</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7140"></A>
-<A NAME="7141"></A>
-<A NAME="fn:WSplitSplit.tl"></A>
+<DD><A NAME="fn:WSplitSplit.tl"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WSplitSplit.tl(WSplitSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7143"></A>
-<A NAME="7144"></A>
-<A NAME="fn:WTiling.flip_at"></A>
+<DD><A NAME="fn:WTiling.flip_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.flip_at(WTiling ws, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7145"></A>
-<A NAME="7146"></A>
-<A NAME="fn:WTiling.transpose_at"></A>
+<DD><A NAME="fn:WTiling.transpose_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.transpose_at(WTiling ws, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7147"></A>
-<A NAME="7148"></A>
-<A NAME="fn:WTiling.farthest"></A>
+<DD><A NAME="fn:WTiling.farthest"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WTiling.farthest(WTiling ws, string dirstr, bool any)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Return the most previously active region on <TT>ws</TT> with no
other regions next to it in direction <TT>dirstr</TT>
- (left/right/up/down). If <TT>any</TT> is not set, the status
- display is not considered.
+ (`<TT>left</TT>', `<TT>right</TT>', `<TT>up</TT>', or `<TT>down</TT>').
+ If <TT>any</TT> is not set, the status display is not considered.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7149"></A>
-<A NAME="7150"></A>
-<A NAME="fn:WTiling.managed_i"></A>
+<DD><A NAME="fn:WTiling.managed_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.managed_i(WTiling ws, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="7151"></A>
-<A NAME="7152"></A>
-<A NAME="fn:WTiling.nextto"></A>
+<DD><A NAME="fn:WTiling.nextto"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WTiling.nextto(WTiling ws, WRegion reg, string dirstr, bool any)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Return the most previously active region next to <TT>reg</TT> in
- direction <TT>dirstr</TT> (left/right/up/down). The region <TT>reg</TT>
+ direction <TT>dirstr</TT> (`<TT>left</TT>', `<TT>right</TT>', `<TT>up</TT>',
+ or `<TT>down</TT>'). The region <TT>reg</TT>
must be managed by <TT>ws</TT>. If <TT>any</TT> is not set, the status display
is not considered.
<P>
<DL>
-<DD><A NAME="7153"></A>
-<A NAME="7154"></A>
-<A NAME="fn:WTiling.node_of"></A>
+<DD><A NAME="fn:WTiling.node_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplitRegion WTiling.node_of(WTiling ws, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7155"></A>
-<A NAME="7156"></A>
-<A NAME="fn:WTiling.set_floating_at"></A>
+<DD><A NAME="fn:WTiling.set_floating_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.set_floating_at(WTiling ws, WRegion reg, string how, string dirstr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Toggle floating of the sides of a split containin <TT>reg</TT> as indicated
- by the parameters <TT>how</TT> (set/unset/toggle) and <TT>dirstr</TT>
- (left/right/up/down/any). The new status is returned (and <TT>false</TT>
- also on error).
+ by the parameters <TT>how</TT> (`<TT>set</TT>', `<TT>unset</TT>', or
+ `<TT>toggle</TT>') and <TT>dirstr</TT> (`<TT>left</TT>', `<TT>right</TT>',
+ `<TT>up</TT>', or `<TT>down</TT>'). The new status is returned
+ (and <TT>false</TT> also on error).
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7157"></A>
-<A NAME="7158"></A>
-<A NAME="fn:WTiling.set_floating"></A>
+<DD><A NAME="fn:WTiling.set_floating"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplitSplit WTiling.set_floating(WTiling ws, WSplitSplit split, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Toggle floating of a split's sides at <TT>split</TT> as indicated by the
- parameter <TT>how</TT> (set/unset/toggle). A split of the appropriate is
- returned, if there was a change.
+ parameter <TT>how</TT> (`<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
+ A split of the appropriate is returned, if there was a change.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7159"></A>
-<A NAME="7160"></A>
-<A NAME="fn:WTiling.split"></A>
+<DD><A NAME="fn:WTiling.split"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WFrame WTiling.split(WTiling ws, WSplit node, string dirstr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Create a new frame on <TT>ws</TT> above/below/left of/right of
- <TT>node</TT> as indicated by <TT>dirstr</TT>. If <TT>dirstr</TT> is
- prefixed with ''floating:'' a floating split is created.
+<DD>Create a new frame on <TT>ws</TT> `<TT>above</TT>', `<TT>below</TT>'
+ `<TT>left</TT>' of, or `<TT>right</TT>' of <TT>node</TT> as indicated
+ by <TT>dirstr</TT>. If <TT>dirstr</TT> is prefixed with
+ `<TT>floating:</TT>' a floating split is created.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7161"></A>
-<A NAME="7162"></A>
-<A NAME="fn:WTiling.split_at"></A>
+<DD><A NAME="fn:WTiling.split_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WFrame WTiling.split_at(WTiling ws, WFrame frame, string dirstr, bool attach_current)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Split <TT>frame</TT> creating a new frame to direction <TT>dirstr</TT>
- (one of ''left'', ''right'', ''top'' or ''bottom'') of <TT>frame</TT>.
+ (one of `<TT>left</TT>', `<TT>right</TT>', `<TT>top</TT>' or
+ `<TT>bottom</TT>') of <TT>frame</TT>.
If <TT>attach_current</TT> is set, the region currently displayed in
<TT>frame</TT>, if any, is moved to thenew frame.
- If <TT>dirstr</TT> is prefixed with ''floating:'' a floating split is
- created.
+ If <TT>dirstr</TT> is prefixed with `<TT>floating:</TT>', a floating
+ split is created.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7163"></A>
-<A NAME="7164"></A>
-<A NAME="fn:WTiling.split_top"></A>
+<DD><A NAME="fn:WTiling.split_top"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WFrame WTiling.split_top(WTiling ws, string dirstr)</TT>
<P>
<DL>
-<DD><A NAME="7165"></A>
-<A NAME="7166"></A>
-<A NAME="fn:WTiling.split_tree"></A>
+<DD><A NAME="fn:WTiling.split_tree"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WTiling.split_tree(WTiling ws)</TT>
<P>
<DL>
-<DD><A NAME="7167"></A>
-<A NAME="7168"></A>
-<A NAME="fn:WTiling.unsplit_at"></A>
+<DD><A NAME="fn:WTiling.unsplit_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WTiling.unsplit_at(WTiling ws, WRegion reg)</TT>
</H2>
<DL>
-<DD><A NAME="8171"></A>
-<A NAME="8172"></A>
-<A NAME="fn:mod_query.defcmd"></A>
+<DD><A NAME="fn:mod_query.defcmd"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.defcmd(cmd, fn)</TT>
<P>
<DL>
-<DD><A NAME="8173"></A>
-<A NAME="8174"></A>
-<A NAME="fn:mod_query.message"></A>
+<DD><A NAME="fn:mod_query.message"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.message(mplex, str)</TT>
<P>
<DL>
-<DD><A NAME="8175"></A>
-<A NAME="8176"></A>
-<A NAME="fn:mod_query.get"></A>
+<DD><A NAME="fn:mod_query.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_query.get()</TT>
<P>
<DL>
-<DD><A NAME="8177"></A>
-<A NAME="8178"></A>
-<A NAME="fn:mod_query.history_clear"></A>
+<DD><A NAME="fn:mod_query.history_clear"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_query.history_clear()</TT>
<P>
<DL>
-<DD><A NAME="8179"></A>
-<A NAME="8180"></A>
-<A NAME="fn:mod_query.history_get"></A>
+<DD><A NAME="fn:mod_query.history_get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string mod_query.history_get(integer n)</TT>
<P>
<DL>
-<DD><A NAME="8181"></A>
-<A NAME="8182"></A>
-<A NAME="fn:mod_query.history_push"></A>
+<DD><A NAME="fn:mod_query.history_push"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_query.history_push(string str)</TT>
<P>
<DL>
-<DD><A NAME="8183"></A>
-<A NAME="8184"></A>
-<A NAME="fn:mod_query.history_search"></A>
+<DD><A NAME="fn:mod_query.history_search"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer mod_query.history_search(string s, integer from, bool bwd, bool exact)</TT>
<P>
<DL>
-<DD><A NAME="8185"></A>
-<A NAME="8186"></A>
-<A NAME="fn:mod_query.history_table"></A>
+<DD><A NAME="fn:mod_query.history_table"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_query.history_table()</TT>
<P>
<DL>
-<DD><A NAME="8187"></A>
-<A NAME="8188"></A>
-<A NAME="fn:mod_query.set"></A>
+<DD><A NAME="fn:mod_query.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_query.set(table tab)</TT>
<P>
<DL>
-<DD><A NAME="8189"></A>
-<A NAME="8190"></A>
-<A NAME="fn:mod_query.popen_completions"></A>
+<DD><A NAME="fn:mod_query.popen_completions"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>mod_query.popen_completions(cp, cmd, fn, reshnd)</TT>
+<DD><TT>mod_query.popen_completions(cp, cmd, fn, reshnd, wd)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>This function can be used to read completions from an external source.
The parameter <TT>cp</TT> is the completion proxy to be used,
- and the string <TT>cmd</TT> the shell command to be executed. To its stdout,
- the command should on the first line write the <TT>common_beg</TT>
+ and the string <TT>cmd</TT> the shell command to be executed, in the directory
+ <TT>wd</TT>.
+ To its stdout, the command should on the first line write the <TT>common_beg</TT>
parameter of <A HREF="#fn:WComplProxy.set_completions"><TT>WComplProxy.set_completions</TT></A> (which <TT>fn</TT> maybe used
to override) and a single actual completion on each of the successive lines.
The function <TT>reshnd</TT> may be used to override a result table
<P>
<DL>
-<DD><A NAME="8191"></A>
-<A NAME="8192"></A>
-<A NAME="fn:mod_query.query"></A>
+<DD><A NAME="fn:mod_query.query"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query(mplex, prompt, initvalue, handler, completor,
<P>
<DL>
-<DD><A NAME="8193"></A>
-<A NAME="8194"></A>
-<A NAME="fn:mod_query.query_attachclient"></A>
+<DD><A NAME="fn:mod_query.query_attachclient"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_attachclient(mplex)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>This query asks for the name of a client window and switches
- focus to the one entered. It uses the completion function
- <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
+<DD>This query asks for the name of a client window and attaches
+ it to the frame the query was opened in. It uses the completion
+ function <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="8195"></A>
-<A NAME="8196"></A>
-<A NAME="fn:mod_query.query_editfile"></A>
+<DD><A NAME="fn:mod_query.query_editfile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_editfile(mplex, script, prompt)</TT>
<P>
<DL>
-<DD><A NAME="8197"></A>
-<A NAME="8198"></A>
-<A NAME="fn:mod_query.query_exec"></A>
+<DD><A NAME="fn:mod_query.query_exec"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_exec(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8199"></A>
-<A NAME="8200"></A>
-<A NAME="fn:mod_query.query_gotoclient"></A>
+<DD><A NAME="fn:mod_query.query_gotoclient"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_gotoclient(mplex)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>This query asks for the name of a client window and attaches
- it to the frame the query was opened in. It uses the completion
- function <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
+<DD>This query asks for the name of a client window and switches
+ focus to the one entered. It uses the completion function
+ <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="8201"></A>
-<A NAME="8202"></A>
-<A NAME="fn:mod_query.query_lua"></A>
+<DD><A NAME="fn:mod_query.query_lua"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_lua(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8203"></A>
-<A NAME="8204"></A>
-<A NAME="fn:mod_query.query_man"></A>
+<DD><A NAME="fn:mod_query.query_man"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_man(mplex, prog)</TT>
<P>
<DL>
-<DD><A NAME="8205"></A>
-<A NAME="8206"></A>
-<A NAME="fn:mod_query.query_menu"></A>
+<DD><A NAME="fn:mod_query.query_menu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_menu(mplex, sub, themenu, prompt)</TT>
<P>
<DL>
-<DD><A NAME="8207"></A>
-<A NAME="8208"></A>
-<A NAME="fn:mod_query.query_renameframe"></A>
+<DD><A NAME="fn:mod_query.query_renameframe"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_renameframe(frame)</TT>
<P>
<DL>
-<DD><A NAME="8209"></A>
-<A NAME="8210"></A>
-<A NAME="fn:mod_query.query_renameworkspace"></A>
+<DD><A NAME="fn:mod_query.query_renameworkspace"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_renameworkspace(mplex, ws)</TT>
<P>
<DL>
-<DD><A NAME="8211"></A>
-<A NAME="8212"></A>
-<A NAME="fn:mod_query.query_restart"></A>
+<DD><A NAME="fn:mod_query.query_restart"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_restart(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8213"></A>
-<A NAME="8214"></A>
-<A NAME="fn:mod_query.query_runfile"></A>
+<DD><A NAME="fn:mod_query.query_runfile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_runfile(mplex, script, prompt)</TT>
<P>
<DL>
-<DD><A NAME="8215"></A>
-<A NAME="8216"></A>
-<A NAME="fn:mod_query.query_shutdown"></A>
+<DD><A NAME="fn:mod_query.query_shutdown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_shutdown(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8217"></A>
-<A NAME="8218"></A>
-<A NAME="fn:mod_query.query_ssh"></A>
+<DD><A NAME="fn:mod_query.query_ssh"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_ssh(mplex, ssh)</TT>
<P>
<DL>
-<DD><A NAME="8220"></A>
-<A NAME="8221"></A>
-<A NAME="fn:mod_query.query_workspace"></A>
+<DD><A NAME="fn:mod_query.query_workspace"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_workspace(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8222"></A>
-<A NAME="8223"></A>
-<A NAME="fn:mod_query.query_yesno"></A>
+<DD><A NAME="fn:mod_query.query_yesno"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_yesno(mplex, prompt, handler)</TT>
<P>
<DL>
-<DD><A NAME="8224"></A>
-<A NAME="8225"></A>
-<A NAME="fn:mod_query.show_about_ion"></A>
+<DD><A NAME="fn:mod_query.show_about_ion"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.show_about_ion(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8226"></A>
-<A NAME="8227"></A>
-<A NAME="fn:mod_query.show_tree"></A>
+<DD><A NAME="fn:mod_query.show_tree"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.show_tree(mplex, reg, max_depth)</TT>
<P>
<DL>
-<DD><A NAME="8228"></A>
-<A NAME="8229"></A>
-<A NAME="fn:mod_query.warn"></A>
+<DD><A NAME="fn:mod_query.warn"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.warn(mplex, str)</TT>
<P>
<DL>
-<DD><A NAME="8231"></A>
-<A NAME="8232"></A>
-<A NAME="fn:WComplProxy.set_completions"></A>
+<DD><A NAME="fn:WComplProxy.set_completions"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WComplProxy.set_completions(WComplProxy proxy, table compls)</TT>
<P>
<DL>
-<DD><A NAME="8234"></A>
-<A NAME="8235"></A>
-<A NAME="fn:WEdln.back"></A>
+<DD><A NAME="fn:WEdln.back"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.back(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8236"></A>
-<A NAME="8237"></A>
-<A NAME="fn:WEdln.backspace"></A>
+<DD><A NAME="fn:WEdln.backspace"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.backspace(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8238"></A>
-<A NAME="8239"></A>
-<A NAME="fn:WEdln.bkill_word"></A>
+<DD><A NAME="fn:WEdln.bkill_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.bkill_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8240"></A>
-<A NAME="8241"></A>
-<A NAME="fn:WEdln.bol"></A>
+<DD><A NAME="fn:WEdln.bol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.bol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8242"></A>
-<A NAME="8243"></A>
-<A NAME="fn:WEdln.bskip_word"></A>
+<DD><A NAME="fn:WEdln.bskip_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.bskip_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8244"></A>
-<A NAME="8245"></A>
-<A NAME="fn:WEdln.clear_mark"></A>
+<DD><A NAME="fn:WEdln.clear_mark"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.clear_mark(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8246"></A>
-<A NAME="8247"></A>
-<A NAME="fn:WEdln.complete"></A>
+<DD><A NAME="fn:WEdln.complete"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.complete(WEdln wedln, string cycle, string mode)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Call completion handler with the text between the beginning of line and
current cursor position, or select next/previous completion from list if in
- auto-show-completions mode and <TT>cycle</TT> is set to ``next'' or ``prev'',
- respectively. The <TT>mode</TT> may be ``history'' or ``normal''. If it is
+ auto-show-completions mode and <TT>cycle</TT> is set to `<TT>next</TT>' or
+ `<TT>prev</TT>', respectively.
+ The <TT>mode</TT> may be `<TT>history</TT>' or `<TT>normal</TT>'. If it is
not set, the previous mode is used. Normally next entry is not cycled to
despite the setting of <TT>cycle</TT> if mode switch occurs. To override
- this, use ``next-always'' and ``prev-always'' for <TT>cycle</TT>.
+ this, use `<TT>next-always</TT>' and `<TT>prev-always</TT>' for <TT>cycle</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="8248"></A>
-<A NAME="8249"></A>
-<A NAME="fn:WEdln.contents"></A>
+<DD><A NAME="fn:WEdln.contents"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WEdln.contents(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8250"></A>
-<A NAME="8251"></A>
-<A NAME="fn:WEdln.context"></A>
+<DD><A NAME="fn:WEdln.context"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WEdln.context(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8252"></A>
-<A NAME="8253"></A>
-<A NAME="fn:WEdln.copy"></A>
+<DD><A NAME="fn:WEdln.copy"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.copy(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8254"></A>
-<A NAME="8255"></A>
-<A NAME="fn:WEdln.cut"></A>
+<DD><A NAME="fn:WEdln.cut"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.cut(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8256"></A>
-<A NAME="8257"></A>
-<A NAME="fn:WEdln.delete"></A>
+<DD><A NAME="fn:WEdln.delete"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.delete(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8258"></A>
-<A NAME="8259"></A>
-<A NAME="fn:WEdln.eol"></A>
+<DD><A NAME="fn:WEdln.eol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.eol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8260"></A>
-<A NAME="8261"></A>
-<A NAME="fn:WEdln.finish"></A>
+<DD><A NAME="fn:WEdln.finish"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.finish(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8262"></A>
-<A NAME="8263"></A>
-<A NAME="fn:WEdln.forward"></A>
+<DD><A NAME="fn:WEdln.forward"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.forward(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8264"></A>
-<A NAME="8265"></A>
-<A NAME="fn:WEdln.history_next"></A>
+<DD><A NAME="fn:WEdln.history_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.history_next(WEdln wedln, bool match)</TT>
<P>
<DL>
-<DD><A NAME="8266"></A>
-<A NAME="8267"></A>
-<A NAME="fn:WEdln.history_prev"></A>
+<DD><A NAME="fn:WEdln.history_prev"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.history_prev(WEdln wedln, bool match)</TT>
<P>
<DL>
-<DD><A NAME="8268"></A>
-<A NAME="8269"></A>
-<A NAME="fn:WEdln.insstr"></A>
+<DD><A NAME="fn:WEdln.insstr"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.insstr(WEdln wedln, string str)</TT>
<P>
<DL>
-<DD><A NAME="8270"></A>
-<A NAME="8271"></A>
-<A NAME="fn:WEdln.is_histcompl"></A>
+<DD><A NAME="fn:WEdln.is_histcompl"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WEdln.is_histcompl(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8272"></A>
-<A NAME="8273"></A>
-<A NAME="fn:WEdln.kill_line"></A>
+<DD><A NAME="fn:WEdln.kill_line"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_line(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8274"></A>
-<A NAME="8275"></A>
-<A NAME="fn:WEdln.kill_to_bol"></A>
+<DD><A NAME="fn:WEdln.kill_to_bol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_to_bol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8276"></A>
-<A NAME="8277"></A>
-<A NAME="fn:WEdln.kill_to_eol"></A>
+<DD><A NAME="fn:WEdln.kill_to_eol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_to_eol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8278"></A>
-<A NAME="8279"></A>
-<A NAME="fn:WEdln.kill_word"></A>
+<DD><A NAME="fn:WEdln.kill_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8280"></A>
-<A NAME="8281"></A>
-<A NAME="fn:WEdln.mark"></A>
+<DD><A NAME="fn:WEdln.mark"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WEdln.mark(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8282"></A>
-<A NAME="8283"></A>
-<A NAME="fn:WEdln.next_completion"></A>
+<DD><A NAME="fn:WEdln.next_completion"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WEdln.next_completion(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8284"></A>
-<A NAME="8285"></A>
-<A NAME="fn:WEdln.paste"></A>
+<DD><A NAME="fn:WEdln.paste"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.paste(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8286"></A>
-<A NAME="8287"></A>
-<A NAME="fn:WEdln.point"></A>
+<DD><A NAME="fn:WEdln.point"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WEdln.point(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8288"></A>
-<A NAME="8289"></A>
-<A NAME="fn:WEdln.prev_completion"></A>
+<DD><A NAME="fn:WEdln.prev_completion"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WEdln.prev_completion(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8290"></A>
-<A NAME="8291"></A>
-<A NAME="fn:WEdln.set_context"></A>
+<DD><A NAME="fn:WEdln.set_context"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.set_context(WEdln wedln, string context)</TT>
<P>
<DL>
-<DD><A NAME="8292"></A>
-<A NAME="8293"></A>
-<A NAME="fn:WEdln.set_mark"></A>
+<DD><A NAME="fn:WEdln.set_mark"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.set_mark(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8294"></A>
-<A NAME="8295"></A>
-<A NAME="fn:WEdln.skip_word"></A>
+<DD><A NAME="fn:WEdln.skip_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.skip_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8296"></A>
-<A NAME="8297"></A>
-<A NAME="fn:WEdln.transpose_chars"></A>
+<DD><A NAME="fn:WEdln.transpose_chars"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.transpose_chars(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8298"></A>
-<A NAME="8299"></A>
-<A NAME="fn:WEdln.transpose_words"></A>
+<DD><A NAME="fn:WEdln.transpose_words"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.transpose_words(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8301"></A>
-<A NAME="8302"></A>
-<A NAME="fn:WInput.cancel"></A>
+<DD><A NAME="fn:WInput.cancel"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInput.cancel(WInput input)</TT>
<P>
<DL>
-<DD><A NAME="8303"></A>
-<A NAME="8304"></A>
-<A NAME="fn:WInput.scrolldown"></A>
+<DD><A NAME="fn:WInput.scrolldown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInput.scrolldown(WInput input)</TT>
<P>
<DL>
-<DD><A NAME="8305"></A>
-<A NAME="8306"></A>
-<A NAME="fn:WInput.scrollup"></A>
+<DD><A NAME="fn:WInput.scrollup"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInput.scrollup(WInput input)</TT>
</H2>
<DL>
-<DD><A NAME="9122"></A>
-<A NAME="9123"></A>
-<A NAME="fn:mod_menu.grabmenu"></A>
+<DD><A NAME="fn:mod_menu.grabmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_menu.grabmenu(mplex, sub, menu_or_name, param)</TT>
<P>
<DL>
-<DD><A NAME="9124"></A>
-<A NAME="9125"></A>
-<A NAME="fn:mod_menu.menu"></A>
+<DD><A NAME="fn:mod_menu.menu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_menu.menu(mplex, sub, menu_or_name, param)</TT>
<P>
<DL>
-<DD><A NAME="9126"></A>
-<A NAME="9127"></A>
-<A NAME="fn:mod_menu.get"></A>
+<DD><A NAME="fn:mod_menu.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_menu.get()</TT>
<P>
<DL>
-<DD><A NAME="9128"></A>
-<A NAME="9129"></A>
-<A NAME="fn:mod_menu.set"></A>
+<DD><A NAME="fn:mod_menu.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_menu.set(table tab)</TT>
<P>
<DL>
-<DD><A NAME="9130"></A>
-<A NAME="9131"></A>
-<A NAME="fn:mod_menu.pmenu"></A>
+<DD><A NAME="fn:mod_menu.pmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_menu.pmenu(win, sub, menu_or_name)</TT>
<P>
<DL>
-<DD><A NAME="9133"></A>
-<A NAME="9134"></A>
-<A NAME="fn:WMenu.cancel"></A>
+<DD><A NAME="fn:WMenu.cancel"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.cancel(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9135"></A>
-<A NAME="9136"></A>
-<A NAME="fn:WMenu.finish"></A>
+<DD><A NAME="fn:WMenu.finish"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.finish(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9137"></A>
-<A NAME="9138"></A>
-<A NAME="fn:WMenu.select_next"></A>
+<DD><A NAME="fn:WMenu.select_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.select_next(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9139"></A>
-<A NAME="9140"></A>
-<A NAME="fn:WMenu.select_nth"></A>
+<DD><A NAME="fn:WMenu.select_nth"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.select_nth(WMenu menu, integer n)</TT>
<P>
<DL>
-<DD><A NAME="9141"></A>
-<A NAME="9142"></A>
-<A NAME="fn:WMenu.select_prev"></A>
+<DD><A NAME="fn:WMenu.select_prev"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.select_prev(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9143"></A>
-<A NAME="9144"></A>
-<A NAME="fn:WMenu.typeahead_clear"></A>
+<DD><A NAME="fn:WMenu.typeahead_clear"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.typeahead_clear(WMenu menu)</TT>
</H2>
<DL>
-<DD><A NAME="9342"></A>
-<A NAME="9343"></A>
-<A NAME="fn:mod_dock.set_floating_shown_on"></A>
+<DD><A NAME="fn:mod_dock.set_floating_shown_on"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_dock.set_floating_shown_on(WMPlex mplex, string how)</TT>
<P>
<DL>
-<DD><A NAME="9345"></A>
-<A NAME="9346"></A>
-<A NAME="fn:WDock.attach"></A>
+<DD><A NAME="fn:WDock.attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WDock.attach(WDock dock, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="9347"></A>
-<A NAME="9348"></A>
-<A NAME="fn:WDock.get"></A>
+<DD><A NAME="fn:WDock.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WDock.get(WDock dock)</TT>
<P>
<DL>
-<DD><A NAME="9349"></A>
-<A NAME="9350"></A>
-<A NAME="fn:WDock.resize"></A>
+<DD><A NAME="fn:WDock.resize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WDock.resize(WDock dock)</TT>
<P>
<DL>
-<DD><A NAME="9351"></A>
-<A NAME="9352"></A>
-<A NAME="fn:WDock.set"></A>
+<DD><A NAME="fn:WDock.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WDock.set(WDock dock, table conftab)</TT>
<TD ALIGN="LEFT">string in <!-- MATH
$\{t,m,b\}\times\{t,c,b\}$
-->
-<SPAN CLASS="MATH"></SPAN></TD>
+<SPAN CLASS="MATH"><IMG
+ WIDTH="142" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
+ SRC="img6.png"
+ ALT="$\{t,m,b\}\times\{t,c,b\}$"></SPAN></TD>
<TD ALIGN="LEFT">Dock position.
Can only be used in floating mode.</TD>
</TR>
</H2>
<DL>
-<DD><A NAME="9451"></A>
-<A NAME="9452"></A>
-<A NAME="fn:mod_sp.set_shown"></A>
+<DD><A NAME="fn:mod_sp.set_shown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_sp.set_shown(WFrame sp, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Toggle displayed status of <TT>sp</TT>.
- The parameter <TT>how</TT> is one of (set/unset/toggle).
+ The parameter <TT>how</TT> is one of
+ `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
+ The resulting status is returned.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="9453"></A>
-<A NAME="9454"></A>
-<A NAME="fn:mod_sp.set_shown_on"></A>
+<DD><A NAME="fn:mod_sp.set_shown_on"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_sp.set_shown_on(WMPlex mplex, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Change displayed status of some scratchpad on <TT>mplex</TT> if one is
- found. The parameter <TT>how</TT> is one of (set/unset/toggle).
+ found. The parameter <TT>how</TT> is one of
+ `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
+ The resulting status is returned.
</DD>
</DL>
</H2>
<DL>
-<DD><A NAME="9548"></A>
-<A NAME="9549"></A>
-<A NAME="fn:mod_statusbar.statusbars"></A>
+<DD><A NAME="fn:mod_statusbar.create"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.create(param)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Create a statusbar. The possible parameters in the
+ table <TT>param</TT> are:
+
+<P>
+<TABLE CELLPADDING=3 WIDTH="100%">
+<TR><TD ALIGN="LEFT">Variable</TD>
+<TD ALIGN="LEFT">Type</TD>
+<TD ALIGN="LEFT">Description</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>template</TT></TD>
+<TD ALIGN="LEFT">string</TD>
+<TD ALIGN="LEFT">The template; see
+ Section <A HREF="node4.html#sec:statusbar">3.6</A>.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>pos</TT></TD>
+<TD ALIGN="LEFT">string</TD>
+<TD ALIGN="LEFT">Position: `<TT>tl</TT>', `<TT>tr</TT>',
+ `<TT>bl</TT>' or `<TT>br</TT>'
+ (for the obvious combinations of
+ top/left/bottom/right).</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>screen</TT></TD>
+<TD ALIGN="LEFT">integer</TD>
+<TD ALIGN="LEFT">Screen number to create the statusbar on.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>fullsize</TT></TD>
+<TD ALIGN="LEFT">boolean</TD>
+<TD ALIGN="LEFT">If set, the statusbar will waste
+ space instead of adapting to layout.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>systray</TT></TD>
+<TD ALIGN="LEFT">boolaen</TD>
+<TD ALIGN="LEFT">Swallow (KDE protocol) systray icons.</TD>
+</TR>
+</TABLE>
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.inform"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.inform(name, value)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Inform of a value.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.launch_statusd"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.launch_statusd(cfg)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Load modules and launch <SPAN CLASS="textit">ion-statusd</SPAN> with configuration
+ table <TT>cfg</TT>. The options for each <SPAN CLASS="textit">ion-statusd</SPAN> monitor
+ script should be contained in the corresponding sub-table of <TT>cfg</TT>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.statusbars"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_statusbar.statusbars()</TT>
</DD>
</DL>
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.update"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.update(update_templates)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Update statusbar contents. To be called after series
+ of <A HREF="#fn:mod_statusbar.inform"><TT>mod_statusbar.inform</TT></A> calls.
+
+</DD>
+</DL>
+
<P>
<H3><A NAME="SECTION00771000000000000000">
<P>
<DL>
-<DD><A NAME="9551"></A>
-<A NAME="9552"></A>
-<A NAME="fn:WStatusBar.get_template_table"></A>
+<DD><A NAME="fn:WStatusBar.get_template_table"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WStatusBar.get_template_table(WStatusBar sb)</TT>
<P>
<DL>
-<DD><A NAME="9553"></A>
-<A NAME="9554"></A>
-<A NAME="fn:WStatusBar.is_systray_extl"></A>
+<DD><A NAME="fn:WStatusBar.is_systray"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WStatusBar.is_systray_extl(WStatusBar sb)</TT>
+<DD><TT>bool WStatusBar.is_systray(WStatusBar sb)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9555"></A>
-<A NAME="9556"></A>
-<A NAME="fn:WStatusBar.set_systray"></A>
+<DD><A NAME="fn:WStatusBar.set_systray"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WStatusBar.set_systray(WStatusBar sb, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Enable or disable use of <TT>sb</TT> as systray.
- The parameter <TT>how</TT> can be one of (set/unset/toggle).
+ The parameter <TT>how</TT> can be one of
+ `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
Resulting state is returned.
</DD>
<P>
<DL>
-<DD><A NAME="9557"></A>
-<A NAME="9558"></A>
-<A NAME="fn:WStatusBar.set_template"></A>
+<DD><A NAME="fn:WStatusBar.set_template"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WStatusBar.set_template(WStatusBar sb, string tmpl)</TT>
<P>
<DL>
-<DD><A NAME="9559"></A>
-<A NAME="9560"></A>
-<A NAME="fn:WStatusBar.set_template_table"></A>
+<DD><A NAME="fn:WStatusBar.set_template_table"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WStatusBar.set_template_table(WStatusBar sb, table t)</TT>
<P>
<DL>
-<DD><A NAME="9561"></A>
-<A NAME="9562"></A>
-<A NAME="fn:WStatusBar.update"></A>
+<DD><A NAME="fn:WStatusBar.update"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WStatusBar.update(WStatusBar sb, table t)</TT>
</H2>
<DL>
-<DD><A NAME="9672"></A>
-<A NAME="9673"></A>
-<A NAME="fn:de.defstyle"></A>
+<DD><A NAME="fn:de.defstyle"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool de.defstyle(string name, table tab)</TT>
<P>
<DL>
-<DD><A NAME="9674"></A>
-<A NAME="9675"></A>
-<A NAME="fn:de.defstyle_rootwin"></A>
+<DD><A NAME="fn:de.defstyle_rootwin"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool de.defstyle_rootwin(WRootWin rootwin, string name, table tab)</TT>
<P>
<DL>
-<DD><A NAME="9676"></A>
-<A NAME="9677"></A>
-<A NAME="fn:de.reset"></A>
+<DD><A NAME="fn:de.reset"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void de.reset()</TT>
<P>
<DL>
-<DD><A NAME="9678"></A>
-<A NAME="9679"></A>
-<A NAME="fn:de.substyle"></A>
+<DD><A NAME="fn:de.substyle"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table de.substyle(string pattern, table tab)</TT>
<P>
<DL>
-<DD><A NAME="9877"></A>
+<DD><A NAME="8264"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</TR>
<TR><TD ALIGN="LEFT"><TT>dockapp</TT></TD>
<TD ALIGN="LEFT">bool</TD>
-<TD ALIGN="LEFT">Client window is a dockapp.</TD>
+<TD ALIGN="LEFT">Client window is a dock-app.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>maprq</TT></TD>
<TD ALIGN="LEFT">bool</TD>
<P>
<DL>
-<DD><A NAME="9878"></A>
+<DD><A NAME="8265"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9879"></A>
+<DD><A NAME="8266"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9880"></A>
+<DD><A NAME="8267"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9881"></A>
+<DD><A NAME="8268"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</TR>
<TR><TD ALIGN="LEFT"><TT>mode</TT></TD>
<TD ALIGN="LEFT">string</TD>
-<TD ALIGN="LEFT"><TT>"switchonly"</TT>, <TT>"reorder"</TT>,
- <TT>"add"</TT> or <TT>"remove"</TT></TD>
+<TD ALIGN="LEFT">`<TT>switchonly</TT>', `<TT>reorder</TT>',
+ `<TT>add</TT>' or `<TT>remove</TT>'</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>sw</TT></TD>
<TD ALIGN="LEFT">bool</TD>
-<TD ALIGN="LEFT">Switch occured</TD>
+<TD ALIGN="LEFT">Switch occurred</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>sub</TT></TD>
<TD ALIGN="LEFT">WRegion</TD>
<P>
<DL>
-<DD><A NAME="9882"></A>
+<DD><A NAME="8269"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9883"></A>
+<DD><A NAME="8270"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9884"></A>
+<DD><A NAME="8271"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Called when Ion has done all initialisation and is almost ready to
- enter the mainloop, except no windows are yet being managed.
+ enter the main-loop, except no windows are yet being managed.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="9885"></A>
+<DD><A NAME="8272"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9886"></A>
+<DD><A NAME="8273"></A>
+
+</DD>
+<DT><STRONG>Hook name:</STRONG></DT>
+<DD><A NAME="ioncore_submap_ungrab_hook"></A><TT>ioncore_submap_ungrab_hook</TT>
+
+</DD>
+<DT><STRONG>Parameters:</STRONG></DT>
+<DD><TT>()</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>This hook is used to signal whenever Ion leaves the submap grab mode.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="8274"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</TR>
<TR><TD ALIGN="LEFT"><TT>res_frame</TT></TD>
<TD ALIGN="LEFT">WFrame</TD>
-<TD ALIGN="LEFT">A succesfull handler should
+<TD ALIGN="LEFT">A successful handler should
return the target frame here.</TD>
</TR>
</TABLE>
<P>
<DL>
-<DD><A NAME="9887"></A>
+<DD><A NAME="8275"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9888"></A>
+<DD><A NAME="8276"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9889"></A>
+<DD><A NAME="8277"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<TD ALIGN="LEFT">Tagging state has changed.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>pseudoactivated</TT></TD>
-<TD ALIGN="LEFT">The region has become pseudoactive
+<TD ALIGN="LEFT">The region has become pseudo-active
(see below).</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>pseudoinactivated</TT></TD>
-<TD ALIGN="LEFT">The region is no longer pseudoactive.</TD>
+<TD ALIGN="LEFT">The region is no longer pseudo-active.</TD>
</TR>
</TABLE>
<P>
-A region is pseudoactive, when a) it is itself not active (does
+A region is pseudo-active, when a) it is itself not active (does
not not have the focus, and may not even have a window that could
have it), but b) some region managed by it is active.
<P>
+<H2><A NAME="SECTION007100000000000000000"></A>
+<A NAME="sec:miscref"></A>
+<BR>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN> Miscellaneous
+</H2>
+
+<P>
+
+<H3><A NAME="SECTION007101000000000000000"></A>
+<A NAME="sec:sizepolicies"></A>
+<BR>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN>.<SPAN CLASS="arabic">1</SPAN> Size policies
+</H3>
+
+<P>
+Some functions accept a <TT>sizepolicy</TT> parameter. The possible
+values are:
+
+<P>
+<DIV ALIGN="LEFT">
+`<TT>default</TT>',
+`<TT>full</TT>',
+`<TT>full_bounds</TT>',
+`<TT>free</TT>',
+`<TT>free_glue</TT>',
+`<TT>northwest</TT>',
+`<TT>north</TT>',
+`<TT>northeast</TT>',
+`<TT>west</TT>',
+`<TT>center</TT>',
+`<TT>east</TT>',
+`<TT>southwest</TT>',
+`<TT>south</TT>',
+`<TT>southeast</TT>',
+`<TT>stretch_top</TT>',
+`<TT>stretch_bottom</TT>',
+`<TT>stretch_left</TT>',
+`<TT>stretch_right</TT>',
+`<TT>free_glue_northwest</TT>',
+`<TT>free_glue_north</TT>',
+`<TT>free_glue_northeast</TT>',
+`<TT>free_glue_west</TT>',
+`<TT>free_glue_center</TT>',
+`<TT>free_glue_east</TT>',
+`<TT>free_glue_southwest</TT>',
+`<TT>free_glue_south</TT>', and
+`<TT>free_glue_southeast</TT>'.
+
+</DIV>
+
+<P>
+The ``free'' policies allow the managed
+object to be moved around, whereas the other versions do not.
+The ``glue'' policies glue the object to some border, while allowing
+it to be moved away from it by user action, but not automatically.
+The ``stretch'' policies stretch the object along the given border,
+while the coordinate-based policies simply place the object along
+that border.
+
+<P>
+
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html355"
+<A NAME="tex2html383"
HREF="node8.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html349"
+<A NAME="tex2html377"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html343"
+<A NAME="tex2html371"
HREF="node6.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html351"
+<A NAME="tex2html379"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html353"
+<A NAME="tex2html381"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html356"
+<B> Next:</B> <A NAME="tex2html384"
HREF="node8.html">A. The GNU General</A>
-<B> Up:</B> <A NAME="tex2html350"
+<B> Up:</B> <A NAME="tex2html378"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html344"
+<B> Previous:</B> <A NAME="tex2html372"
HREF="node6.html">5. Scripting</A>
- <B> <A NAME="tex2html352"
+ <B> <A NAME="tex2html380"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html354"
+ <B> <A NAME="tex2html382"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->