]> git.decadent.org.uk Git - ion3-doc.git/blob - ionconf/node7.html
[svn-inject] Installing original source of ion3
[ion3-doc.git] / ionconf / node7.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
3 <!--Converted with LaTeX2HTML 2002-2-1 (1.71)
4 original version by:  Nikos Drakos, CBLU, University of Leeds
5 * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
6 * with significant contributions from:
7   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
8 <HTML>
9 <HEAD>
10 <TITLE>6. Function reference</TITLE>
11 <META NAME="description" CONTENT="6. Function reference">
12 <META NAME="keywords" CONTENT="ionconf">
13 <META NAME="resource-type" CONTENT="document">
14 <META NAME="distribution" CONTENT="global">
15
16 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
17 <META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
18 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
19
20 <LINK REL="STYLESHEET" HREF="ionconf.css">
21
22 <LINK REL="next" HREF="node8.html">
23 <LINK REL="previous" HREF="node6.html">
24 <LINK REL="up" HREF="ionconf.html">
25 <LINK REL="next" HREF="node8.html">
26 </HEAD>
27
28 <BODY >
29
30 <DIV CLASS="navigation"><!--Navigation Panel-->
31 <A NAME="tex2html348"
32   HREF="node8.html">
33 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
34 <A NAME="tex2html342"
35   HREF="ionconf.html">
36 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
37 <A NAME="tex2html336"
38   HREF="node6.html">
39 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
40 <A NAME="tex2html344"
41   HREF="node1.html">
42 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
43 <A NAME="tex2html346"
44   HREF="node11.html">
45 <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
46 <BR>
47 <B> Next:</B> <A NAME="tex2html349"
48   HREF="node8.html">A. The GNU General</A>
49 <B> Up:</B> <A NAME="tex2html343"
50   HREF="ionconf.html">Configuring and extending Ion3</A>
51 <B> Previous:</B> <A NAME="tex2html337"
52   HREF="node6.html">5. Scripting</A>
53  &nbsp; <B>  <A NAME="tex2html345"
54   HREF="node1.html">Contents</A></B> 
55  &nbsp; <B>  <A NAME="tex2html347"
56   HREF="node11.html">Index</A></B> 
57 <BR>
58 <BR></DIV>
59 <!--End of Navigation Panel-->
60 <!--Table of Child-Links-->
61 <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
62
63 <UL CLASS="ChildLinks">
64 <LI><A NAME="tex2html350"
65   HREF="node7.html#SECTION00710000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Functions defined in <SPAN  CLASS="textit">ioncore</SPAN></A>
66 <UL>
67 <LI><A NAME="tex2html351"
68   HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
69 <LI><A NAME="tex2html352"
70   HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
71 <LI><A NAME="tex2html353"
72   HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
73 <LI><A NAME="tex2html354"
74   HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
75 <LI><A NAME="tex2html355"
76   HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
77 <LI><A NAME="tex2html356"
78   HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
79 <LI><A NAME="tex2html357"
80   HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
81 <LI><A NAME="tex2html358"
82   HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
83 <LI><A NAME="tex2html359"
84   HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
85 <LI><A NAME="tex2html360"
86   HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
87 <LI><A NAME="tex2html361"
88   HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
89 <LI><A NAME="tex2html362"
90   HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
91 <LI><A NAME="tex2html363"
92   HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
93 <LI><A NAME="tex2html364"
94   HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
95 <LI><A NAME="tex2html365"
96   HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
97 <LI><A NAME="tex2html366"
98   HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
99 </UL>
100 <BR>
101 <LI><A NAME="tex2html367"
102   HREF="node7.html#SECTION00720000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Functions defined in <SPAN  CLASS="textit">mod_tiling</SPAN></A>
103 <UL>
104 <LI><A NAME="tex2html368"
105   HREF="node7.html#SECTION00721000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> WSplit functions</A>
106 <LI><A NAME="tex2html369"
107   HREF="node7.html#SECTION00722000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> WSplitInner functions</A>
108 <LI><A NAME="tex2html370"
109   HREF="node7.html#SECTION00723000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> WSplitRegion functions</A>
110 <LI><A NAME="tex2html371"
111   HREF="node7.html#SECTION00724000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> WSplitSplit functions</A>
112 <LI><A NAME="tex2html372"
113   HREF="node7.html#SECTION00725000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> WTiling functions</A>
114 </UL>
115 <BR>
116 <LI><A NAME="tex2html373"
117   HREF="node7.html#SECTION00730000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Functions defined in <SPAN  CLASS="textit">mod_query</SPAN></A>
118 <UL>
119 <LI><A NAME="tex2html374"
120   HREF="node7.html#SECTION00731000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> WComplProxy functions</A>
121 <LI><A NAME="tex2html375"
122   HREF="node7.html#SECTION00732000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> WEdln functions</A>
123 <LI><A NAME="tex2html376"
124   HREF="node7.html#SECTION00733000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> WInput functions</A>
125 </UL>
126 <BR>
127 <LI><A NAME="tex2html377"
128   HREF="node7.html#SECTION00740000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Functions defined in <SPAN  CLASS="textit">mod_menu</SPAN></A>
129 <UL>
130 <LI><A NAME="tex2html378"
131   HREF="node7.html#SECTION00741000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> WMenu functions</A>
132 </UL>
133 <BR>
134 <LI><A NAME="tex2html379"
135   HREF="node7.html#SECTION00750000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN> Functions defined in <SPAN  CLASS="textit">mod_dock</SPAN></A>
136 <UL>
137 <LI><A NAME="tex2html380"
138   HREF="node7.html#SECTION00751000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> WDock functions</A>
139 </UL>
140 <BR>
141 <LI><A NAME="tex2html381"
142   HREF="node7.html#SECTION00760000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN> Functions defined in <SPAN  CLASS="textit">mod_sp</SPAN></A>
143 <LI><A NAME="tex2html382"
144   HREF="node7.html#SECTION00770000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN> Functions defined in <SPAN  CLASS="textit">de</SPAN></A>
145 <LI><A NAME="tex2html383"
146   HREF="node7.html#SECTION00780000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN> Hooks</A>
147 </UL>
148 <!--End of Table of Child-Links-->
149 <HR>
150
151 <H1><A NAME="SECTION00700000000000000000"></A>
152 <A NAME="sec:exports"></A>
153 <BR>
154 <SPAN CLASS="arabic">6</SPAN>. Function reference
155 </H1>
156
157 <P>
158
159 <H2><A NAME="SECTION00710000000000000000"></A>
160 <A NAME="sec:ioncoreref"></A>
161 <BR>
162 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Functions defined in <SPAN  CLASS="textit">ioncore</SPAN>
163 </H2>
164
165   <DL>
166 <DD><A NAME="4188"></A>
167 <A NAME="4189"></A>
168 <A NAME="fn:ioncore.TR"></A>  
169 </DD>
170 <DT><STRONG>Synopsis:</STRONG></DT>
171 <DD><TT>ioncore.TR(s, ...)</TT>
172
173 </DD>
174 <DT><STRONG>Description:</STRONG></DT>
175 <DD>gettext+string.format
176   
177 </DD>
178 </DL>
179
180 <P>
181
182   <DL>
183 <DD><A NAME="4190"></A>
184 <A NAME="4191"></A>
185 <A NAME="fn:ioncore.bdoc"></A>  
186 </DD>
187 <DT><STRONG>Synopsis:</STRONG></DT>
188 <DD><TT>ioncore.bdoc(text)</TT>
189
190 </DD>
191 <DT><STRONG>Description:</STRONG></DT>
192 <DD>Used to enter documentation among bindings so that other programs
193  can read it. Does nothing.
194   
195 </DD>
196 </DL>
197
198 <P>
199
200   <DL>
201 <DD><A NAME="4192"></A>
202 <A NAME="4193"></A>
203 <A NAME="fn:ioncore.chdir_for"></A>  
204 </DD>
205 <DT><STRONG>Synopsis:</STRONG></DT>
206 <DD><TT>ioncore.chdir_for(reg, dir)</TT>
207
208 </DD>
209 <DT><STRONG>Description:</STRONG></DT>
210 <DD>Change default working directory for new programs started in <TT>reg</TT>.
211   
212 </DD>
213 </DL>
214
215 <P>
216
217   <DL>
218 <DD><A NAME="4194"></A>
219 <A NAME="4195"></A>
220 <A NAME="fn:ioncore.compile_cmd"></A>  
221 </DD>
222 <DT><STRONG>Synopsis:</STRONG></DT>
223 <DD><TT>ioncore.compile_cmd(cmd, guard)</TT>
224
225 </DD>
226 <DT><STRONG>Description:</STRONG></DT>
227 <DD>Compile string <TT>cmd</TT> into a bindable function. Within <TT>cmd</TT>, the
228  variable ''<TT>_</TT>'' (underscore) can be used to refer to the object 
229  that was selecting for the bound action and chosen to handle it.
230  The  variable ''<TT>_sub</TT>'' refers to a ''currently active'' sub-object 
231  of <TT>_</TT>, or a sub-object where the action loading to the binding 
232  being called actually occured.
233
234 <P>
235 The string <TT>guard</TT>  maybe set to pose limits on <TT>_sub</TT>. Currently 
236  supported guards are <TT>_sub:non-nil</TT> and <TT>_sub:WFoobar</TT>, where 
237  WFoobar is a class.
238   
239 </DD>
240 </DL>
241
242 <P>
243
244   <DL>
245 <DD><A NAME="4196"></A>
246 <A NAME="4197"></A>
247 <A NAME="fn:ioncore.create_ws"></A>  
248 </DD>
249 <DT><STRONG>Synopsis:</STRONG></DT>
250 <DD><TT>ioncore.create_ws(scr, tmpl, no_default)</TT>
251
252 </DD>
253 <DT><STRONG>Description:</STRONG></DT>
254 <DD>Create new workspace on screen <TT>scr</TT>. The table <TT>tmpl</TT>
255  may be used to override parts of <TT>default_ws_params</TT>,
256  and <TT>no_default</TT> may be set to <TT>true</TT> to complete ignore it.
257   
258 </DD>
259 </DL>
260
261 <P>
262
263   <DL>
264 <DD><A NAME="4198"></A>
265 <A NAME="4199"></A>
266 <A NAME="fn:ioncore.defbindings"></A>  
267 </DD>
268 <DT><STRONG>Synopsis:</STRONG></DT>
269 <DD><TT>ioncore.defbindings(context, bindings)</TT>
270
271 </DD>
272 <DT><STRONG>Description:</STRONG></DT>
273 <DD>Define bindings for context <TT>context</TT>. Here <TT>binding</TT> is
274  a table composed of entries created with <A HREF="#fn:ioncore.kpress"><TT>ioncore.kpress</TT></A>, 
275  etc.; see section <A HREF="node4.html#sec:bindings">3.3</A> for details.
276   
277 </DD>
278 </DL>
279
280 <P>
281
282   <DL>
283 <DD><A NAME="4200"></A>
284 <A NAME="4201"></A>
285 <A NAME="fn:ioncore.defctxmenu"></A>  
286 </DD>
287 <DT><STRONG>Synopsis:</STRONG></DT>
288 <DD><TT>ioncore.defctxmenu(ctx, ...)</TT>
289
290 </DD>
291 <DT><STRONG>Description:</STRONG></DT>
292 <DD>Define context menu for context <TT>ctx</TT>, <TT>tab</TT> being a table 
293  of menu entries.
294   
295 </DD>
296 </DL>
297
298 <P>
299
300   <DL>
301 <DD><A NAME="4202"></A>
302 <A NAME="4203"></A>
303 <A NAME="fn:ioncore.defmenu"></A>  
304 </DD>
305 <DT><STRONG>Synopsis:</STRONG></DT>
306 <DD><TT>ioncore.defmenu(name, tab)</TT>
307
308 </DD>
309 <DT><STRONG>Description:</STRONG></DT>
310 <DD>Define a new menu with <TT>name</TT> being the menu's name and <TT>tab</TT> 
311  being a table of menu entries. If <TT>tab.append</TT> is set, the entries 
312  are appended to previously-defined ones, if possible.
313   
314 </DD>
315 </DL>
316
317 <P>
318
319   <DL>
320 <DD><A NAME="4204"></A>
321 <A NAME="4205"></A>
322 <A NAME="fn:ioncore.defwinprop"></A>  
323 </DD>
324 <DT><STRONG>Synopsis:</STRONG></DT>
325 <DD><TT>ioncore.defwinprop(list)</TT>
326
327 </DD>
328 <DT><STRONG>Description:</STRONG></DT>
329 <DD>Define a winprop. For more information, see section <A HREF="node4.html#sec:winprops">3.5</A>.
330   
331 </DD>
332 </DL>
333
334 <P>
335
336   <DL>
337 <DD><A NAME="4206"></A>
338 <A NAME="4207"></A>
339 <A NAME="fn:ioncore.exec_on"></A>  
340 </DD>
341 <DT><STRONG>Synopsis:</STRONG></DT>
342 <DD><TT>ioncore.exec_on(reg, cmd, merr_internal)</TT>
343
344 </DD>
345 <DT><STRONG>Description:</STRONG></DT>
346 <DD>Run <TT>cmd</TT> with the environment variable DISPLAY set to point to the
347  root window of the X screen <TT>reg</TT> is on. If <TT>cmd</TT> is prefixed
348  by a colon (<TT>:</TT>), the following command is executed in an xterm
349  (or other terminal emulator) with the help of the <TT>ion-runinxterm</TT> 
350  script. If the command is prefixed by two colons, <TT>ion-runinxterm</TT>
351  will ask you to press enter after the command is finished, even if it
352  returns succesfully.
353   
354 </DD>
355 </DL>
356
357 <P>
358
359   <DL>
360 <DD><A NAME="4208"></A>
361 <A NAME="4209"></A>
362 <A NAME="fn:ioncore.read_savefile"></A>  
363 </DD>
364 <DT><STRONG>Synopsis:</STRONG></DT>
365 <DD><TT>table ioncore.read_savefile(string basename)</TT>
366
367 </DD>
368 <DT><STRONG>Description:</STRONG></DT>
369 <DD>Read a savefile.
370   
371 </DD>
372 </DL>
373
374 <P>
375
376   <DL>
377 <DD><A NAME="4210"></A>
378 <A NAME="4211"></A>
379 <A NAME="fn:ioncore.get_savefile"></A>  
380 </DD>
381 <DT><STRONG>Synopsis:</STRONG></DT>
382 <DD><TT>string ioncore.get_savefile(string basename)</TT>
383
384 </DD>
385 <DT><STRONG>Description:</STRONG></DT>
386 <DD>Get a file name to save (session) data in. The string <TT>basename</TT> 
387  should contain no path or extension components.
388   
389 </DD>
390 </DL>
391
392 <P>
393
394   <DL>
395 <DD><A NAME="4212"></A>
396 <A NAME="4213"></A>
397 <A NAME="fn:ioncore.lookup_script"></A>  
398 </DD>
399 <DT><STRONG>Synopsis:</STRONG></DT>
400 <DD><TT>string ioncore.lookup_script(string file, string sp)</TT>
401
402 </DD>
403 <DT><STRONG>Description:</STRONG></DT>
404 <DD>Lookup script <TT>file</TT>. If <TT>try_in_dir</TT> is set, it is tried
405  before the standard search path.
406   
407 </DD>
408 </DL>
409
410 <P>
411
412   <DL>
413 <DD><A NAME="4214"></A>
414 <A NAME="4215"></A>
415 <A NAME="fn:ioncore.write_savefile"></A>  
416 </DD>
417 <DT><STRONG>Synopsis:</STRONG></DT>
418 <DD><TT>bool ioncore.write_savefile(string basename, table tab)</TT>
419
420 </DD>
421 <DT><STRONG>Description:</STRONG></DT>
422 <DD>Write <TT>tab</TT> in file with basename <TT>basename</TT> in the
423  session directory.
424   
425 </DD>
426 </DL>
427
428 <P>
429
430   <DL>
431 <DD><A NAME="4216"></A>
432 <A NAME="4217"></A>
433 <A NAME="fn:ioncore.find_manager"></A>  
434 </DD>
435 <DT><STRONG>Synopsis:</STRONG></DT>
436 <DD><TT>ioncore.find_manager(obj, t)</TT>
437
438 </DD>
439 <DT><STRONG>Description:</STRONG></DT>
440 <DD>Find an object with type name <TT>t</TT> managing <TT>obj</TT> or one of
441  its managers.
442   
443 </DD>
444 </DL>
445
446 <P>
447
448   <DL>
449 <DD><A NAME="4218"></A>
450 <A NAME="4219"></A>
451 <A NAME="fn:ioncore.get_dir_for"></A>  
452 </DD>
453 <DT><STRONG>Synopsis:</STRONG></DT>
454 <DD><TT>ioncore.get_dir_for(reg)</TT>
455
456 </DD>
457 <DT><STRONG>Description:</STRONG></DT>
458 <DD>Get default working directory for new programs started in <TT>reg</TT>.
459   
460 </DD>
461 </DL>
462
463 <P>
464
465   <DL>
466 <DD><A NAME="4220"></A>
467 <A NAME="4221"></A>
468 <A NAME="fn:ioncore.getbindings"></A>  
469 </DD>
470 <DT><STRONG>Synopsis:</STRONG></DT>
471 <DD><TT>ioncore.getbindings(maybe_context)</TT>
472
473 </DD>
474 <DT><STRONG>Description:</STRONG></DT>
475 <DD>Get a table of all bindings.
476   
477 </DD>
478 </DL>
479
480 <P>
481
482   <DL>
483 <DD><A NAME="4222"></A>
484 <A NAME="4223"></A>
485 <A NAME="fn:ioncore.getctxmenu"></A>  
486 </DD>
487 <DT><STRONG>Synopsis:</STRONG></DT>
488 <DD><TT>ioncore.getctxmenu(name)</TT>
489
490 </DD>
491 <DT><STRONG>Description:</STRONG></DT>
492 <DD>Returns a context menu defined with <A HREF="#fn:ioncore.defctxmenu"><TT>ioncore.defctxmenu</TT></A>.
493   
494 </DD>
495 </DL>
496
497 <P>
498
499   <DL>
500 <DD><A NAME="4224"></A>
501 <A NAME="4225"></A>
502 <A NAME="fn:ioncore.getmenu"></A>  
503 </DD>
504 <DT><STRONG>Synopsis:</STRONG></DT>
505 <DD><TT>ioncore.getmenu(name)</TT>
506
507 </DD>
508 <DT><STRONG>Description:</STRONG></DT>
509 <DD>Returns a menu defined with <A HREF="#fn:ioncore.defmenu"><TT>ioncore.defmenu</TT></A>.
510   
511 </DD>
512 </DL>
513
514 <P>
515
516   <DL>
517 <DD><A NAME="4226"></A>
518 <A NAME="4227"></A>
519 <A NAME="fn:ioncore.getwinprop"></A>  
520 </DD>
521 <DT><STRONG>Synopsis:</STRONG></DT>
522 <DD><TT>ioncore.getwinprop(cwin)</TT>
523
524 </DD>
525 <DT><STRONG>Description:</STRONG></DT>
526 <DD>Find winprop table for <TT>cwin</TT>.
527   
528 </DD>
529 </DL>
530
531 <P>
532
533   <DL>
534 <DD><A NAME="4228"></A>
535 <A NAME="4229"></A>
536 <A NAME="fn:ioncore.aboutmsg"></A>  
537 </DD>
538 <DT><STRONG>Synopsis:</STRONG></DT>
539 <DD><TT>string ioncore.aboutmsg()</TT>
540
541 </DD>
542 <DT><STRONG>Description:</STRONG></DT>
543 <DD>Returns an about message (version, author, copyright notice).
544   
545 </DD>
546 </DL>
547
548 <P>
549
550   <DL>
551 <DD><A NAME="4230"></A>
552 <A NAME="4231"></A>
553 <A NAME="fn:ioncore.activity_first"></A>  
554 </DD>
555 <DT><STRONG>Synopsis:</STRONG></DT>
556 <DD><TT>WRegion ioncore.activity_first()</TT>
557
558 </DD>
559 <DT><STRONG>Description:</STRONG></DT>
560 <DD>Return first regio non activity list.
561   
562 </DD>
563 </DL>
564
565 <P>
566
567   <DL>
568 <DD><A NAME="4232"></A>
569 <A NAME="4233"></A>
570 <A NAME="fn:ioncore.activity_list"></A>  
571 </DD>
572 <DT><STRONG>Synopsis:</STRONG></DT>
573 <DD><TT>table ioncore.activity_list()</TT>
574
575 </DD>
576 <DT><STRONG>Description:</STRONG></DT>
577 <DD>Return list of regions with activity/urgency bit set.
578   
579 </DD>
580 </DL>
581
582 <P>
583
584   <DL>
585 <DD><A NAME="4234"></A>
586 <A NAME="4235"></A>
587 <A NAME="fn:ioncore.clear_tags"></A>  
588 </DD>
589 <DT><STRONG>Synopsis:</STRONG></DT>
590 <DD><TT>void ioncore.clear_tags()</TT>
591
592 </DD>
593 <DT><STRONG>Description:</STRONG></DT>
594 <DD>Untag all regions.
595   
596 </DD>
597 </DL>
598
599 <P>
600
601   <DL>
602 <DD><A NAME="4236"></A>
603 <A NAME="4237"></A>
604 <A NAME="fn:ioncore.clientwin_list"></A>  
605 </DD>
606 <DT><STRONG>Synopsis:</STRONG></DT>
607 <DD><TT>table ioncore.clientwin_list()</TT>
608
609 </DD>
610 <DT><STRONG>Description:</STRONG></DT>
611 <DD>Return a list of all client windows.
612   
613 </DD>
614 </DL>
615
616 <P>
617
618   <DL>
619 <DD><A NAME="4238"></A>
620 <A NAME="4239"></A>
621 <A NAME="fn:ioncore.current"></A>  
622 </DD>
623 <DT><STRONG>Synopsis:</STRONG></DT>
624 <DD><TT>WRegion ioncore.current()</TT>
625
626 </DD>
627 <DT><STRONG>Description:</STRONG></DT>
628 <DD>Returns the currently focused region, if any.
629   
630 </DD>
631 </DL>
632
633 <P>
634
635   <DL>
636 <DD><A NAME="4240"></A>
637 <A NAME="4241"></A>
638 <A NAME="fn:ioncore.defshortening"></A>  
639 </DD>
640 <DT><STRONG>Synopsis:</STRONG></DT>
641 <DD><TT>bool ioncore.defshortening(string rx, string rule, bool always)</TT>
642
643 </DD>
644 <DT><STRONG>Description:</STRONG></DT>
645 <DD>Add a rule describing how too long titles should be shortened to fit in tabs.
646  The regular expression <TT>rx</TT> (POSIX, not Lua!) is used to match titles
647  and when <TT>rx</TT> matches, <TT>rule</TT> is attempted to use as a replacement
648  for title. If <TT>always</TT> is set, the rule is used even if no shortening 
649  is necessary.
650
651 <P>
652 Similarly to sed's 's' command, <TT>rule</TT> may contain characters that are
653  inserted in the resulting string and specials as follows:
654
655 <P>
656 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
657 <TR><TD ALIGN="LEFT">Special</TD>
658 <TD ALIGN="LEFT">Description</TD>
659 </TR>
660 <TR><TD ALIGN="LEFT">$0</TD>
661 <TD ALIGN="LEFT">Place the original string here.</TD>
662 </TR>
663 <TR><TD ALIGN="LEFT">$1 to $9</TD>
664 <TD ALIGN="LEFT">Insert n:th capture here (as usual,captures are surrounded
665                  by parentheses in the regex).</TD>
666 </TR>
667 <TR><TD ALIGN="LEFT">$|</TD>
668 <TD ALIGN="LEFT">Alternative shortening separator. The shortening described
669                  before the first this kind of separator is tried first and
670                  if it fails to make the string short enough, the next is 
671                   tried, and so on.</TD>
672 </TR>
673 <TR><TD ALIGN="LEFT">$&lt;</TD>
674 <TD ALIGN="LEFT">Remove characters on the left of this marker to shorten the
675                  string.</TD>
676 </TR>
677 <TR><TD ALIGN="LEFT">$&gt;</TD>
678 <TD ALIGN="LEFT">Remove characters on the right of this marker to shorten the
679                  string. Only the first $&lt; or $&gt; within an alternative 
680                  shortening is used.</TD>
681 </TR>
682 </TABLE>
683   
684 </DD>
685 </DL>
686
687 <P>
688
689   <DL>
690 <DD><A NAME="4242"></A>
691 <A NAME="4243"></A>
692 <A NAME="fn:ioncore.exec"></A>  
693 </DD>
694 <DT><STRONG>Synopsis:</STRONG></DT>
695 <DD><TT>integer ioncore.exec(string cmd)</TT>
696
697 </DD>
698 <DT><STRONG>Description:</STRONG></DT>
699 <DD>Run <TT>cmd</TT> with the environment variable DISPLAY set to point to the
700  X display the WM is running on. No specific screen is set unlike with
701  <A HREF="#fn:WRootWin.exec_on"><TT>WRootWin.exec_on</TT></A>. The PID of the (shell executing the) new 
702  process is returned.
703   
704 </DD>
705 </DL>
706
707 <P>
708
709   <DL>
710 <DD><A NAME="4244"></A>
711 <A NAME="4245"></A>
712 <A NAME="fn:ioncore.find_screen_id"></A>  
713 </DD>
714 <DT><STRONG>Synopsis:</STRONG></DT>
715 <DD><TT>WScreen ioncore.find_screen_id(integer id)</TT>
716
717 </DD>
718 <DT><STRONG>Description:</STRONG></DT>
719 <DD>Find the screen with numerical id <TT>id</TT>. If Xinerama is
720  not present, <TT>id</TT> corresponds to X screen numbers. Otherwise
721  the ids are some arbitrary ordering of Xinerama rootwins.
722  If <TT>id</TT> is <SPAN CLASS="MATH"></SPAN>, the screen with the highest id is returned.
723   
724 </DD>
725 </DL>
726
727 <P>
728
729   <DL>
730 <DD><A NAME="4246"></A>
731 <A NAME="4247"></A>
732 <A NAME="fn:ioncore.get"></A>  
733 </DD>
734 <DT><STRONG>Synopsis:</STRONG></DT>
735 <DD><TT>table ioncore.get()</TT>
736
737 </DD>
738 <DT><STRONG>Description:</STRONG></DT>
739 <DD>Get ioncore basic settings. For details see <A HREF="#fn:ioncore.set"><TT>ioncore.set</TT></A>.
740   
741 </DD>
742 </DL>
743
744 <P>
745
746   <DL>
747 <DD><A NAME="4248"></A>
748 <A NAME="4249"></A>
749 <A NAME="fn:ioncore.get_paths"></A>  
750 </DD>
751 <DT><STRONG>Synopsis:</STRONG></DT>
752 <DD><TT>table ioncore.get_paths(table tab)</TT>
753
754 </DD>
755 <DT><STRONG>Description:</STRONG></DT>
756 <DD>Get important directories (userdir, sessiondir, searchpath).
757   
758 </DD>
759 </DL>
760
761 <P>
762
763   <DL>
764 <DD><A NAME="4250"></A>
765 <A NAME="4251"></A>
766 <A NAME="fn:ioncore.goto_activity"></A>  
767 </DD>
768 <DT><STRONG>Synopsis:</STRONG></DT>
769 <DD><TT>bool ioncore.goto_activity()</TT>
770
771 </DD>
772 <DT><STRONG>Description:</STRONG></DT>
773 <DD>Go to first region on activity list.
774   
775 </DD>
776 </DL>
777
778 <P>
779
780   <DL>
781 <DD><A NAME="4252"></A>
782 <A NAME="4253"></A>
783 <A NAME="fn:ioncore.goto_first"></A>  
784 </DD>
785 <DT><STRONG>Synopsis:</STRONG></DT>
786 <DD><TT>WRegion ioncore.goto_first(WRegion reg, string dirstr, table param)</TT>
787
788 </DD>
789 <DT><STRONG>Description:</STRONG></DT>
790 <DD>Go to first region within <TT>reg</TT> in direction <TT>dirstr</TT>
791  (up/down/left/right/beg/end/any). For information on <TT>param</TT>,
792  see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>. Additionally this function supports
793  the boolean <TT>nofront</TT> field, for not bringing the object to
794  front.
795   
796 </DD>
797 </DL>
798
799 <P>
800
801   <DL>
802 <DD><A NAME="4254"></A>
803 <A NAME="4255"></A>
804 <A NAME="fn:ioncore.goto_next"></A>  
805 </DD>
806 <DT><STRONG>Synopsis:</STRONG></DT>
807 <DD><TT>WRegion ioncore.goto_next(WRegion reg, string dirstr, table param)</TT>
808
809 </DD>
810 <DT><STRONG>Description:</STRONG></DT>
811 <DD>Go to region next from <TT>reg</TT> in direction <TT>dirstr</TT>
812  (up/down/left/right/next/prev/any). For information on <TT>param</TT>,
813  see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>. Additionally this function supports
814  the boolean <TT>nofront</TT> field, for not bringing the object to
815  front.
816   
817 </DD>
818 </DL>
819
820 <P>
821
822   <DL>
823 <DD><A NAME="4256"></A>
824 <A NAME="4257"></A>
825 <A NAME="fn:ioncore.goto_next_screen"></A>  
826 </DD>
827 <DT><STRONG>Synopsis:</STRONG></DT>
828 <DD><TT>WScreen ioncore.goto_next_screen()</TT>
829
830 </DD>
831 <DT><STRONG>Description:</STRONG></DT>
832 <DD>Switch focus to the next screen and return it.
833
834 <P>
835 Note that this function is asynchronous; the screen will not
836  actually have received the focus when this function returns.
837   
838 </DD>
839 </DL>
840
841 <P>
842
843   <DL>
844 <DD><A NAME="4258"></A>
845 <A NAME="4259"></A>
846 <A NAME="fn:ioncore.goto_nth_screen"></A>  
847 </DD>
848 <DT><STRONG>Synopsis:</STRONG></DT>
849 <DD><TT>WScreen ioncore.goto_nth_screen(integer id)</TT>
850
851 </DD>
852 <DT><STRONG>Description:</STRONG></DT>
853 <DD>Switch focus to the screen with id <TT>id</TT> and return it.
854
855 <P>
856 Note that this function is asynchronous; the screen will not
857  actually have received the focus when this function returns.
858   
859 </DD>
860 </DL>
861
862 <P>
863
864   <DL>
865 <DD><A NAME="4260"></A>
866 <A NAME="4261"></A>
867 <A NAME="fn:ioncore.goto_prev_screen"></A>  
868 </DD>
869 <DT><STRONG>Synopsis:</STRONG></DT>
870 <DD><TT>WScreen ioncore.goto_prev_screen()</TT>
871
872 </DD>
873 <DT><STRONG>Description:</STRONG></DT>
874 <DD>Switch focus to the previous screen and return it.
875
876 <P>
877 Note that this function is asynchronous; the screen will not
878  actually have received the focus when this function returns.
879   
880 </DD>
881 </DL>
882
883 <P>
884
885   <DL>
886 <DD><A NAME="4262"></A>
887 <A NAME="4263"></A>
888 <A NAME="fn:ioncore.goto_previous"></A>  
889 </DD>
890 <DT><STRONG>Synopsis:</STRONG></DT>
891 <DD><TT>WRegion ioncore.goto_previous()</TT>
892
893 </DD>
894 <DT><STRONG>Description:</STRONG></DT>
895 <DD>Go to and return to a previously active region (if any).
896
897 <P>
898 Note that this function is asynchronous; the region will not
899  actually have received the focus when this function returns.
900   
901 </DD>
902 </DL>
903
904 <P>
905
906   <DL>
907 <DD><A NAME="4264"></A>
908 <A NAME="4265"></A>
909 <A NAME="fn:ioncore.is_i18n"></A>  
910 </DD>
911 <DT><STRONG>Synopsis:</STRONG></DT>
912 <DD><TT>bool ioncore.is_i18n()</TT>
913
914 </DD>
915 <DT><STRONG>Description:</STRONG></DT>
916 <DD>Is Ion supporting locale-specifically multibyte-encoded strings?
917   
918 </DD>
919 </DL>
920
921 <P>
922
923   <DL>
924 <DD><A NAME="4266"></A>
925 <A NAME="4267"></A>
926 <A NAME="fn:ioncore.load_module"></A>  
927 </DD>
928 <DT><STRONG>Synopsis:</STRONG></DT>
929 <DD><TT>bool ioncore.load_module(string modname)</TT>
930
931 </DD>
932 <DT><STRONG>Description:</STRONG></DT>
933 <DD>Attempt to load a C-side module.
934   
935 </DD>
936 </DL>
937
938 <P>
939
940   <DL>
941 <DD><A NAME="4268"></A>
942 <A NAME="4269"></A>
943 <A NAME="fn:ioncore.lookup_clientwin"></A>  
944 </DD>
945 <DT><STRONG>Synopsis:</STRONG></DT>
946 <DD><TT>WClientWin ioncore.lookup_clientwin(string name)</TT>
947
948 </DD>
949 <DT><STRONG>Description:</STRONG></DT>
950 <DD>Attempt to find a client window with name <TT>name</TT>.
951   
952 </DD>
953 </DL>
954
955 <P>
956
957   <DL>
958 <DD><A NAME="4270"></A>
959 <A NAME="4271"></A>
960 <A NAME="fn:ioncore.lookup_region"></A>  
961 </DD>
962 <DT><STRONG>Synopsis:</STRONG></DT>
963 <DD><TT>WRegion ioncore.lookup_region(string name, string typenam)</TT>
964
965 </DD>
966 <DT><STRONG>Description:</STRONG></DT>
967 <DD>Attempt to find a non-client window region with name <TT>name</TT> and type
968  inheriting <TT>typenam</TT>.
969   
970 </DD>
971 </DL>
972
973 <P>
974
975   <DL>
976 <DD><A NAME="4272"></A>
977 <A NAME="4273"></A>
978 <A NAME="fn:ioncore.navi_first"></A>  
979 </DD>
980 <DT><STRONG>Synopsis:</STRONG></DT>
981 <DD><TT>WRegion ioncore.navi_first(WRegion reg, string dirstr, table param)</TT>
982
983 </DD>
984 <DT><STRONG>Description:</STRONG></DT>
985 <DD>Find first region within <TT>reg</TT> in direction <TT>dirstr</TT>
986  (up/down/left/right/beg/end/any). For information on <TT>param</TT>,
987  see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
988   
989 </DD>
990 </DL>
991
992 <P>
993
994   <DL>
995 <DD><A NAME="4274"></A>
996 <A NAME="4275"></A>
997 <A NAME="fn:ioncore.navi_next"></A>  
998 </DD>
999 <DT><STRONG>Synopsis:</STRONG></DT>
1000 <DD><TT>WRegion ioncore.navi_next(WRegion reg, string dirstr, table param)</TT>
1001
1002 </DD>
1003 <DT><STRONG>Description:</STRONG></DT>
1004 <DD>Find region next from <TT>reg</TT> in direction <TT>dirstr</TT>
1005  (up/down/left/right/next/prev/any). The table param may
1006  contain the boolean field <TT>nowrap</TT>, instructing not to wrap 
1007  around, and the WRegions <TT>no_ascend</TT> and <TT>no_descend</TT>,
1008  and functions <TT>ascend_filter</TT> and <TT>descend_filter</TT> from
1009  <TT>WRegion</TT>s (<TT>to</TT>, <TT>from</TT>), used to decide when to descend
1010  or ascend into another region. (TODO: more detailed explanation.)
1011   
1012 </DD>
1013 </DL>
1014
1015 <P>
1016
1017   <DL>
1018 <DD><A NAME="4276"></A>
1019 <A NAME="4277"></A>
1020 <A NAME="fn:ioncore.popen_bgread"></A>  
1021 </DD>
1022 <DT><STRONG>Synopsis:</STRONG></DT>
1023 <DD><TT>integer ioncore.popen_bgread(string cmd, function h, function errh)</TT>
1024
1025 </DD>
1026 <DT><STRONG>Description:</STRONG></DT>
1027 <DD>Run <TT>cmd</TT> with a read pipe connected to its stdout.
1028  When data is received through the pipe, <TT>handler</TT> is called
1029  with that data.
1030   
1031 </DD>
1032 </DL>
1033
1034 <P>
1035
1036   <DL>
1037 <DD><A NAME="4278"></A>
1038 <A NAME="4279"></A>
1039 <A NAME="fn:ioncore.progname"></A>  
1040 </DD>
1041 <DT><STRONG>Synopsis:</STRONG></DT>
1042 <DD><TT>string ioncore.progname()</TT>
1043
1044 </DD>
1045 <DT><STRONG>Description:</STRONG></DT>
1046 <DD>Returns the name of program using Ioncore.
1047   
1048 </DD>
1049 </DL>
1050
1051 <P>
1052
1053   <DL>
1054 <DD><A NAME="4280"></A>
1055 <A NAME="4281"></A>
1056 <A NAME="fn:ioncore.region_list"></A>  
1057 </DD>
1058 <DT><STRONG>Synopsis:</STRONG></DT>
1059 <DD><TT>table ioncore.region_list(string typenam)</TT>
1060
1061 </DD>
1062 <DT><STRONG>Description:</STRONG></DT>
1063 <DD>Find all non-client window regions inheriting <TT>typenam</TT>.
1064   
1065 </DD>
1066 </DL>
1067
1068 <P>
1069
1070   <DL>
1071 <DD><A NAME="4282"></A>
1072 <A NAME="4283"></A>
1073 <A NAME="fn:ioncore.request_selection"></A>  
1074 </DD>
1075 <DT><STRONG>Synopsis:</STRONG></DT>
1076 <DD><TT>void ioncore.request_selection(function fn)</TT>
1077
1078 </DD>
1079 <DT><STRONG>Description:</STRONG></DT>
1080 <DD>Request (string) selection. The function <TT>fn</TT> will be called 
1081  with the selection when and if it is received.
1082   
1083 </DD>
1084 </DL>
1085
1086 <P>
1087
1088   <DL>
1089 <DD><A NAME="4284"></A>
1090 <A NAME="4285"></A>
1091 <A NAME="fn:ioncore.resign"></A>  
1092 </DD>
1093 <DT><STRONG>Synopsis:</STRONG></DT>
1094 <DD><TT>void ioncore.resign()</TT>
1095
1096 </DD>
1097 <DT><STRONG>Description:</STRONG></DT>
1098 <DD>Causes the window manager to simply exit without saving
1099  state/session.
1100   
1101 </DD>
1102 </DL>
1103
1104 <P>
1105
1106   <DL>
1107 <DD><A NAME="4286"></A>
1108 <A NAME="4287"></A>
1109 <A NAME="fn:ioncore.restart"></A>  
1110 </DD>
1111 <DT><STRONG>Synopsis:</STRONG></DT>
1112 <DD><TT>void ioncore.restart()</TT>
1113
1114 </DD>
1115 <DT><STRONG>Description:</STRONG></DT>
1116 <DD>Restart, saving session first.
1117   
1118 </DD>
1119 </DL>
1120
1121 <P>
1122
1123   <DL>
1124 <DD><A NAME="4288"></A>
1125 <A NAME="4289"></A>
1126 <A NAME="fn:ioncore.restart_other"></A>  
1127 </DD>
1128 <DT><STRONG>Synopsis:</STRONG></DT>
1129 <DD><TT>void ioncore.restart_other(string cmd)</TT>
1130
1131 </DD>
1132 <DT><STRONG>Description:</STRONG></DT>
1133 <DD>Attempt to restart another window manager <TT>cmd</TT>.
1134   
1135 </DD>
1136 </DL>
1137
1138 <P>
1139
1140   <DL>
1141 <DD><A NAME="4290"></A>
1142 <A NAME="4291"></A>
1143 <A NAME="fn:ioncore.set"></A>  
1144 </DD>
1145 <DT><STRONG>Synopsis:</STRONG></DT>
1146 <DD><TT>void ioncore.set(table tab)</TT>
1147
1148 </DD>
1149 <DT><STRONG>Description:</STRONG></DT>
1150 <DD>Set ioncore basic settings. The table <TT>tab</TT> may contain the
1151  following fields.
1152
1153 <P>
1154 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
1155 <TR><TD ALIGN="LEFT">Field</TD>
1156 <TD ALIGN="LEFT">Description</TD>
1157 </TR>
1158 <TR><TD ALIGN="LEFT"><TT>opaque_resize</TT></TD>
1159 <TD ALIGN="LEFT">(boolean) Controls whether interactive move and
1160                         resize operations simply draw a rubberband during
1161                         the operation (false) or immediately affect the 
1162                         object in question at every step (true).</TD>
1163 </TR>
1164 <TR><TD ALIGN="LEFT"><TT>warp</TT></TD>
1165 <TD ALIGN="LEFT">(boolean) Should focusing operations move the 
1166                         pointer to the object to be focused?</TD>
1167 </TR>
1168 <TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
1169 <TD ALIGN="LEFT">(boolean) Should a managing WMPlex switch
1170                         to a newly mapped client window?</TD>
1171 </TR>
1172 <TR><TD ALIGN="LEFT"><TT>screen_notify</TT></TD>
1173 <TD ALIGN="LEFT">(boolean) Should notification tooltips be displayed
1174                         for hidden workspaces with activity?</TD>
1175 </TR>
1176 <TR><TD ALIGN="LEFT"><TT>frame_default_index</TT></TD>
1177 <TD ALIGN="LEFT">(string) Specifies where to add new regions
1178                         on the mutually exclusive list of a frame. One of
1179                         ''last'', ''next'' (for after current), ''next-act''
1180                         (for after current and anything with activity right
1181                         after it).</TD>
1182 </TR>
1183 <TR><TD ALIGN="LEFT"><TT>dblclick_delay</TT></TD>
1184 <TD ALIGN="LEFT">(integer) Delay between clicks of a double click.</TD>
1185 </TR>
1186 <TR><TD ALIGN="LEFT"><TT>kbresize_delay</TT></TD>
1187 <TD ALIGN="LEFT">(integer) Delay in milliseconds for ending keyboard
1188                          resize mode after inactivity.</TD>
1189 </TR>
1190 <TR><TD ALIGN="LEFT"><TT>kbresize_t_max</TT></TD>
1191 <TD ALIGN="LEFT">(integer) Controls keyboard resize acceleration. 
1192                          See description below for details.</TD>
1193 </TR>
1194 <TR><TD ALIGN="LEFT"><TT>kbresize_t_min</TT></TD>
1195 <TD ALIGN="LEFT">(integer) See below.</TD>
1196 </TR>
1197 <TR><TD ALIGN="LEFT"><TT>kbresize_step</TT></TD>
1198 <TD ALIGN="LEFT">(floating point) See below.</TD>
1199 </TR>
1200 <TR><TD ALIGN="LEFT"><TT>kbresize_maxacc</TT></TD>
1201 <TD ALIGN="LEFT">(floating point) See below.</TD>
1202 </TR>
1203 <TR><TD ALIGN="LEFT"><TT>framed_transients</TT></TD>
1204 <TD ALIGN="LEFT">(boolean) Put transients in nested frames.</TD>
1205 </TR>
1206 <TR><TD ALIGN="LEFT"><TT>float_placement_method</TT></TD>
1207 <TD ALIGN="LEFT">(string) How to place floating frames.
1208                           One of ''udlr'' (up-down, then left-right), 
1209                           ''lrud'' (left-right, then up-down) or ''random''.</TD>
1210 </TR>
1211 <TR><TD ALIGN="LEFT"><TT>default_ws_params</TT></TD>
1212 <TD ALIGN="LEFT">(table) Default workspace layout; the 
1213                           attach/creation parameters for a WGroup.</TD>
1214 </TR>
1215 </TABLE>
1216
1217 <P>
1218 When a keyboard resize function is called, and at most <TT>kbresize_t_max</TT> 
1219  milliseconds has passed from a previous call, acceleration factor is reset 
1220  to 1.0. Otherwise, if at least <TT>kbresize_t_min</TT> milliseconds have 
1221  passed from the from previous acceleration update or reset the squere root
1222  of the acceleration factor is incremented by <TT>kbresize_step</TT>. The 
1223  maximum acceleration factor (pixels/call modulo size hints) is given by 
1224  <TT>kbresize_maxacc</TT>. The default values are (200, 50, 30, 100).
1225   
1226 </DD>
1227 </DL>
1228
1229 <P>
1230
1231   <DL>
1232 <DD><A NAME="4292"></A>
1233 <A NAME="4293"></A>
1234 <A NAME="fn:ioncore.set_get_winprop_fn"></A>  
1235 </DD>
1236 <DT><STRONG>Synopsis:</STRONG></DT>
1237 <DD><TT>void ioncore.set_get_winprop_fn(function fn)</TT>
1238
1239 </DD>
1240 <DT><STRONG>Description:</STRONG></DT>
1241 <DD>Set function used to look up winprops.
1242   
1243 </DD>
1244 </DL>
1245
1246 <P>
1247
1248   <DL>
1249 <DD><A NAME="4294"></A>
1250 <A NAME="4295"></A>
1251 <A NAME="fn:ioncore.set_paths"></A>  
1252 </DD>
1253 <DT><STRONG>Synopsis:</STRONG></DT>
1254 <DD><TT>bool ioncore.set_paths(table tab)</TT>
1255
1256 </DD>
1257 <DT><STRONG>Description:</STRONG></DT>
1258 <DD>Set important directories (sessiondir, searchpath).
1259   
1260 </DD>
1261 </DL>
1262
1263 <P>
1264
1265   <DL>
1266 <DD><A NAME="4296"></A>
1267 <A NAME="4297"></A>
1268 <A NAME="fn:ioncore.set_selection"></A>  
1269 </DD>
1270 <DT><STRONG>Synopsis:</STRONG></DT>
1271 <DD><TT>void ioncore.set_selection(string p)</TT>
1272
1273 </DD>
1274 <DT><STRONG>Description:</STRONG></DT>
1275 <DD>Set primary selection and cutbuffer0 to <TT>p</TT>.
1276   
1277 </DD>
1278 </DL>
1279
1280 <P>
1281
1282   <DL>
1283 <DD><A NAME="4298"></A>
1284 <A NAME="4299"></A>
1285 <A NAME="fn:ioncore.shutdown"></A>  
1286 </DD>
1287 <DT><STRONG>Synopsis:</STRONG></DT>
1288 <DD><TT>void ioncore.shutdown()</TT>
1289
1290 </DD>
1291 <DT><STRONG>Description:</STRONG></DT>
1292 <DD>End session saving it first.
1293   
1294 </DD>
1295 </DL>
1296
1297 <P>
1298
1299   <DL>
1300 <DD><A NAME="4300"></A>
1301 <A NAME="4301"></A>
1302 <A NAME="fn:ioncore.snapshot"></A>  
1303 </DD>
1304 <DT><STRONG>Synopsis:</STRONG></DT>
1305 <DD><TT>void ioncore.snapshot()</TT>
1306
1307 </DD>
1308 <DT><STRONG>Description:</STRONG></DT>
1309 <DD>Save session.
1310   
1311 </DD>
1312 </DL>
1313
1314 <P>
1315
1316   <DL>
1317 <DD><A NAME="4302"></A>
1318 <A NAME="4303"></A>
1319 <A NAME="fn:ioncore.tagged_list"></A>  
1320 </DD>
1321 <DT><STRONG>Synopsis:</STRONG></DT>
1322 <DD><TT>table ioncore.tagged_list()</TT>
1323
1324 </DD>
1325 <DT><STRONG>Description:</STRONG></DT>
1326 <DD>Returns a list of tagged regions.
1327   
1328 </DD>
1329 </DL>
1330
1331 <P>
1332
1333   <DL>
1334 <DD><A NAME="4304"></A>
1335 <A NAME="4305"></A>
1336 <A NAME="fn:ioncore.tags_first"></A>  
1337 </DD>
1338 <DT><STRONG>Synopsis:</STRONG></DT>
1339 <DD><TT>WRegion ioncore.tags_first()</TT>
1340
1341 </DD>
1342 <DT><STRONG>Description:</STRONG></DT>
1343 <DD>Returns first tagged object.
1344   
1345 </DD>
1346 </DL>
1347
1348 <P>
1349
1350   <DL>
1351 <DD><A NAME="4306"></A>
1352 <A NAME="4307"></A>
1353 <A NAME="fn:ioncore.version"></A>  
1354 </DD>
1355 <DT><STRONG>Synopsis:</STRONG></DT>
1356 <DD><TT>string ioncore.version()</TT>
1357
1358 </DD>
1359 <DT><STRONG>Description:</STRONG></DT>
1360 <DD>Returns Ioncore version string.
1361   
1362 </DD>
1363 </DL>
1364
1365 <P>
1366
1367   <DL>
1368 <DD><A NAME="4308"></A>
1369 <A NAME="4309"></A>
1370 <A NAME="fn:ioncore.warn"></A>  
1371 </DD>
1372 <DT><STRONG>Synopsis:</STRONG></DT>
1373 <DD><TT>void ioncore.warn(string str)</TT>
1374
1375 </DD>
1376 <DT><STRONG>Description:</STRONG></DT>
1377 <DD>Issue a warning. How the message is displayed depends on the current
1378  warning handler.
1379   
1380 </DD>
1381 </DL>
1382
1383 <P>
1384
1385   <DL>
1386 <DD><A NAME="4310"></A>
1387 <A NAME="4311"></A>
1388 <A NAME="fn:ioncore.warn_traced"></A>  
1389 </DD>
1390 <DT><STRONG>Synopsis:</STRONG></DT>
1391 <DD><TT>void ioncore.warn_traced(string str)</TT>
1392
1393 </DD>
1394 <DT><STRONG>Description:</STRONG></DT>
1395 <DD>Similar to <A HREF="#fn:ioncore.warn"><TT>ioncore.warn</TT></A>, but also print Lua stack trace.
1396   
1397 </DD>
1398 </DL>
1399
1400 <P>
1401
1402   <DL>
1403 <DD><A NAME="4312"></A>
1404 <A NAME="4313"></A>
1405 <A NAME="fn:ioncore.x_change_property"></A>  
1406 </DD>
1407 <DT><STRONG>Synopsis:</STRONG></DT>
1408 <DD><TT>void ioncore.x_change_property(integer win, integer atom, integer atom_type, integer format, string mode, table tab)</TT>
1409
1410 </DD>
1411 <DT><STRONG>Description:</STRONG></DT>
1412 <DD>Modify a window property. The <TT>mode</TT> is one of
1413  <TT>"replace"</TT>, <TT>"prepend"</TT> or <TT>"append"</TT>, and format
1414  is either 8, 16 or 32. Also see <A HREF="#fn:ioncore.x_get_window_property"><TT>ioncore.x_get_window_property</TT></A>
1415  and the <TT>XChangeProperty</TT>(3) manual page.
1416   
1417 </DD>
1418 </DL>
1419
1420 <P>
1421
1422   <DL>
1423 <DD><A NAME="4314"></A>
1424 <A NAME="4315"></A>
1425 <A NAME="fn:ioncore.x_delete_property"></A>  
1426 </DD>
1427 <DT><STRONG>Synopsis:</STRONG></DT>
1428 <DD><TT>void ioncore.x_delete_property(integer win, integer atom)</TT>
1429
1430 </DD>
1431 <DT><STRONG>Description:</STRONG></DT>
1432 <DD>Delete a window property.
1433   
1434 </DD>
1435 </DL>
1436
1437 <P>
1438
1439   <DL>
1440 <DD><A NAME="4316"></A>
1441 <A NAME="4317"></A>
1442 <A NAME="fn:ioncore.x_get_atom_name"></A>  
1443 </DD>
1444 <DT><STRONG>Synopsis:</STRONG></DT>
1445 <DD><TT>string ioncore.x_get_atom_name(integer atom)</TT>
1446
1447 </DD>
1448 <DT><STRONG>Description:</STRONG></DT>
1449 <DD>Get the name of an atom. See <TT>XGetAtomName</TT>(3) manual page for 
1450  details.
1451   
1452 </DD>
1453 </DL>
1454
1455 <P>
1456
1457   <DL>
1458 <DD><A NAME="4318"></A>
1459 <A NAME="4319"></A>
1460 <A NAME="fn:ioncore.x_get_text_property"></A>  
1461 </DD>
1462 <DT><STRONG>Synopsis:</STRONG></DT>
1463 <DD><TT>table ioncore.x_get_text_property(integer win, integer atom)</TT>
1464
1465 </DD>
1466 <DT><STRONG>Description:</STRONG></DT>
1467 <DD>Get a text property for a window (<TT>STRING</TT>, <TT>COMPOUND_TEXT</TT>,
1468  or <TT>UTF8_STRING</TT> property converted). The fields in the returned
1469  table (starting from 1) are the null-separated parts of the property.
1470  See the <TT>XGetTextProperty</TT>(3) manual page for more information.
1471   
1472 </DD>
1473 </DL>
1474
1475 <P>
1476
1477   <DL>
1478 <DD><A NAME="4320"></A>
1479 <A NAME="4321"></A>
1480 <A NAME="fn:ioncore.x_get_window_property"></A>  
1481 </DD>
1482 <DT><STRONG>Synopsis:</STRONG></DT>
1483 <DD><TT>table ioncore.x_get_window_property(integer win, integer atom, integer atom_type, integer n32expected, bool more)</TT>
1484
1485 </DD>
1486 <DT><STRONG>Description:</STRONG></DT>
1487 <DD>Get a property <TT>atom</TT> of type <TT>atom_type</TT> for window <TT>win</TT>. 
1488  The <TT>n32expected</TT> parameter indicates the expected number of 32bit
1489  words, and <TT>more</TT> indicates whether all or just this amount of data
1490  should be fetched. Each 8, 16 or 32bit element of the property, as
1491  deciphered from <TT>atom_type</TT> is a field in the returned table.
1492  See <TT>XGetWindowProperty</TT>(3) manual page for more information.
1493   
1494 </DD>
1495 </DL>
1496
1497 <P>
1498
1499   <DL>
1500 <DD><A NAME="4322"></A>
1501 <A NAME="4323"></A>
1502 <A NAME="fn:ioncore.x_intern_atom"></A>  
1503 </DD>
1504 <DT><STRONG>Synopsis:</STRONG></DT>
1505 <DD><TT>integer ioncore.x_intern_atom(string name, bool only_if_exists)</TT>
1506
1507 </DD>
1508 <DT><STRONG>Description:</STRONG></DT>
1509 <DD>Create a new atom. See <TT>XInternAtom</TT>(3) manual page for details.
1510   
1511 </DD>
1512 </DL>
1513
1514 <P>
1515
1516   <DL>
1517 <DD><A NAME="4324"></A>
1518 <A NAME="4325"></A>
1519 <A NAME="fn:ioncore.x_set_text_property"></A>  
1520 </DD>
1521 <DT><STRONG>Synopsis:</STRONG></DT>
1522 <DD><TT>void ioncore.x_set_text_property(integer win, integer atom, table tab)</TT>
1523
1524 </DD>
1525 <DT><STRONG>Description:</STRONG></DT>
1526 <DD>Set a text property for a window. The fields of <TT>tab</TT> starting from
1527  1 should be the different null-separated parts of the property.
1528  See the <TT>XSetTextProperty</TT>(3) manual page for more information.
1529   
1530 </DD>
1531 </DL>
1532
1533 <P>
1534
1535   <DL>
1536 <DD><A NAME="4326"></A>
1537 <A NAME="4327"></A>
1538 <A NAME="fn:ioncore.kpress"></A>  
1539 </DD>
1540 <DT><STRONG>Synopsis:</STRONG></DT>
1541 <DD><TT>ioncore.kpress(keyspec, cmd, guard)</TT>
1542
1543 </DD>
1544 <DT><STRONG>Description:</STRONG></DT>
1545 <DD>Creates a binding description table for the action of pressing a key given 
1546  by <TT>keyspec</TT> (with possible modifiers) to the function <TT>func</TT>.
1547  For more information on bindings, see section <A HREF="node4.html#sec:bindings">3.3</A>.
1548   
1549 </DD>
1550 </DL>
1551
1552 <P>
1553
1554   <DL>
1555 <DD><A NAME="4328"></A>
1556 <A NAME="4329"></A>
1557 <A NAME="fn:ioncore.kpress_wait"></A>  
1558 </DD>
1559 <DT><STRONG>Synopsis:</STRONG></DT>
1560 <DD><TT>ioncore.kpress_wait(keyspec, cmd, guard)</TT>
1561
1562 </DD>
1563 <DT><STRONG>Description:</STRONG></DT>
1564 <DD>This is similar to <A HREF="#fn:kpress"><TT>kpress</TT></A> but after calling <TT>cmd</TT>, 
1565  Ioncore waits for all modifiers to be released before processing
1566  any further actions.
1567  For more information on bindings, see section <A HREF="node4.html#sec:bindings">3.3</A>.
1568   
1569 </DD>
1570 </DL>
1571
1572 <P>
1573
1574   <DL>
1575 <DD><A NAME="4330"></A>
1576 <A NAME="4331"></A>
1577 <A NAME="fn:ioncore.match_winprop_name"></A>  
1578 </DD>
1579 <DT><STRONG>Synopsis:</STRONG></DT>
1580 <DD><TT>ioncore.match_winprop_name(prop, cwin)</TT>
1581
1582 </DD>
1583 <DT><STRONG>Description:</STRONG></DT>
1584 <DD>The basic name-based winprop matching criteria.
1585   
1586 </DD>
1587 </DL>
1588
1589 <P>
1590
1591   <DL>
1592 <DD><A NAME="4332"></A>
1593 <A NAME="4333"></A>
1594 <A NAME="fn:ioncore.mclick"></A>  
1595 </DD>
1596 <DT><STRONG>Synopsis:</STRONG></DT>
1597 <DD><TT>ioncore.mclick(buttonspec, cmd, guard)</TT>
1598
1599 </DD>
1600 <DT><STRONG>Description:</STRONG></DT>
1601 <DD>Creates a binding description table for the action of clicking a mouse 
1602  button while possible modifier keys are pressed,
1603  both given by <TT>buttonspec</TT>, to the function <TT>func</TT>.
1604  For more information, see section <A HREF="node4.html#sec:bindings">3.3</A>.
1605   
1606 </DD>
1607 </DL>
1608
1609 <P>
1610
1611   <DL>
1612 <DD><A NAME="4334"></A>
1613 <A NAME="4335"></A>
1614 <A NAME="fn:ioncore.mdblclick"></A>  
1615 </DD>
1616 <DT><STRONG>Synopsis:</STRONG></DT>
1617 <DD><TT>ioncore.mdblclick(buttonspec, cmd, guard)</TT>
1618
1619 </DD>
1620 <DT><STRONG>Description:</STRONG></DT>
1621 <DD>Similar to <A HREF="#fn:mclick"><TT>mclick</TT></A> but for double-click.
1622  Also see section <A HREF="node4.html#sec:bindings">3.3</A>.
1623   
1624 </DD>
1625 </DL>
1626
1627 <P>
1628
1629   <DL>
1630 <DD><A NAME="4336"></A>
1631 <A NAME="4337"></A>
1632 <A NAME="fn:ioncore.mdrag"></A>  
1633 </DD>
1634 <DT><STRONG>Synopsis:</STRONG></DT>
1635 <DD><TT>ioncore.mdrag(buttonspec, cmd, guard)</TT>
1636
1637 </DD>
1638 <DT><STRONG>Description:</STRONG></DT>
1639 <DD>Creates a binding description table for the action of moving the mouse
1640  (or other pointing device) while the button given by <TT>buttonspec</TT>
1641  is held pressed and the modifiers given by <TT>buttonspec</TT> were pressed
1642  when the button was initially pressed.
1643  Also see section <A HREF="node4.html#sec:bindings">3.3</A>.
1644   
1645 </DD>
1646 </DL>
1647
1648 <P>
1649
1650   <DL>
1651 <DD><A NAME="4338"></A>
1652 <A NAME="4339"></A>
1653 <A NAME="fn:ioncore.menuentry"></A>  
1654 </DD>
1655 <DT><STRONG>Synopsis:</STRONG></DT>
1656 <DD><TT>ioncore.menuentry(name, cmd, guard)</TT>
1657
1658 </DD>
1659 <DT><STRONG>Description:</STRONG></DT>
1660 <DD>Use this function to define normal menu entries. The string <TT>name</TT> 
1661  is the string shown in the visual representation of menu, and the
1662  parameter <TT>cmd</TT> and <TT>guard</TT> are similar to those of
1663  <A HREF="#fn:ioncore.defbindings"><TT>ioncore.defbindings</TT></A>.
1664   
1665 </DD>
1666 </DL>
1667
1668 <P>
1669
1670   <DL>
1671 <DD><A NAME="4340"></A>
1672 <A NAME="4341"></A>
1673 <A NAME="fn:ioncore.mpress"></A>  
1674 </DD>
1675 <DT><STRONG>Synopsis:</STRONG></DT>
1676 <DD><TT>ioncore.mpress(buttonspec, cmd, guard)</TT>
1677
1678 </DD>
1679 <DT><STRONG>Description:</STRONG></DT>
1680 <DD>Similar to <A HREF="#fn:mclick"><TT>mclick</TT></A> but for just pressing the mouse button.
1681  Also see section <A HREF="node4.html#sec:bindings">3.3</A>.
1682   
1683 </DD>
1684 </DL>
1685
1686 <P>
1687
1688   <DL>
1689 <DD><A NAME="4342"></A>
1690 <A NAME="4343"></A>
1691 <A NAME="fn:ioncore.refresh_stylelist"></A>  
1692 </DD>
1693 <DT><STRONG>Synopsis:</STRONG></DT>
1694 <DD><TT>ioncore.refresh_stylelist()</TT>
1695
1696 </DD>
1697 <DT><STRONG>Description:</STRONG></DT>
1698 <DD>Refresh list of known style files.
1699   
1700 </DD>
1701 </DL>
1702
1703 <P>
1704
1705   <DL>
1706 <DD><A NAME="4344"></A>
1707 <A NAME="4345"></A>
1708 <A NAME="fn:ioncore.submap"></A>  
1709 </DD>
1710 <DT><STRONG>Synopsis:</STRONG></DT>
1711 <DD><TT>ioncore.submap(kcb_, list)</TT>
1712
1713 </DD>
1714 <DT><STRONG>Description:</STRONG></DT>
1715 <DD>Returns a function that creates a submap binding description table.
1716  When the key press action <TT>keyspec</TT> occurs, Ioncore will wait for
1717  a further key presse and act according to the submap.
1718  For details, see section <A HREF="node4.html#sec:bindings">3.3</A>.
1719   
1720 </DD>
1721 </DL>
1722
1723 <P>
1724
1725   <DL>
1726 <DD><A NAME="4346"></A>
1727 <A NAME="4347"></A>
1728 <A NAME="fn:ioncore.submenu"></A>  
1729 </DD>
1730 <DT><STRONG>Synopsis:</STRONG></DT>
1731 <DD><TT>ioncore.submenu(name, sub_or_name, options)</TT>
1732
1733 </DD>
1734 <DT><STRONG>Description:</STRONG></DT>
1735 <DD>Use this function to define menu entries for submenus. The parameter
1736  <A HREF="#fn:sub_or_name"><TT>sub_or_name</TT></A> is either a table of menu entries or the name
1737  of an already defined menu. The initial menu entry to highlight can be
1738  specified by <TT>options.initial</TT> as either an integer starting from 1, 
1739  or a  function that returns such a number. Another option supported is
1740  <TT>options.noautoexpand</TT> that will cause <A HREF="#fn:mod_query.query_menu"><TT>mod_query.query_menu</TT></A>
1741  to not automatically expand this submenu.
1742   
1743 </DD>
1744 </DL>
1745
1746 <P>
1747
1748 <H3><A NAME="SECTION00711000000000000000">
1749 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
1750 </H3>
1751
1752 <P>
1753
1754   <DL>
1755 <DD><A NAME="4349"></A>
1756 <A NAME="4350"></A>
1757 <A NAME="fn:WClientWin.get_ident"></A>  
1758 </DD>
1759 <DT><STRONG>Synopsis:</STRONG></DT>
1760 <DD><TT>table WClientWin.get_ident(WClientWin cwin)</TT>
1761
1762 </DD>
1763 <DT><STRONG>Description:</STRONG></DT>
1764 <DD>Returns a table containing the properties <TT>WM_CLASS</TT> (table entries
1765  <TT>instance</TT> and <TT>class</TT>) and  <TT>WM_WINDOW_ROLE</TT> (<TT>role</TT>)
1766  properties for <TT>cwin</TT>. If a property is not set, the corresponding 
1767  field(s) are unset in the  table.
1768   
1769 </DD>
1770 </DL>
1771
1772 <P>
1773
1774   <DL>
1775 <DD><A NAME="4351"></A>
1776 <A NAME="4352"></A>
1777 <A NAME="fn:WClientWin.is_fullscreen"></A>  
1778 </DD>
1779 <DT><STRONG>Synopsis:</STRONG></DT>
1780 <DD><TT>bool WClientWin.is_fullscreen(WClientWin cwin)</TT>
1781
1782 </DD>
1783 <DT><STRONG>Description:</STRONG></DT>
1784 <DD>Is <TT>cwin</TT> in full screen mode?
1785   
1786 </DD>
1787 </DL>
1788
1789 <P>
1790
1791   <DL>
1792 <DD><A NAME="4353"></A>
1793 <A NAME="4354"></A>
1794 <A NAME="fn:WClientWin.kill"></A>  
1795 </DD>
1796 <DT><STRONG>Synopsis:</STRONG></DT>
1797 <DD><TT>void WClientWin.kill(WClientWin cwin)</TT>
1798
1799 </DD>
1800 <DT><STRONG>Description:</STRONG></DT>
1801 <DD>Attempt to kill (with XKillWindow) the client that owns the X
1802  window correspoding to <TT>cwin</TT>.
1803   
1804 </DD>
1805 </DL>
1806
1807 <P>
1808
1809   <DL>
1810 <DD><A NAME="4355"></A>
1811 <A NAME="4356"></A>
1812 <A NAME="fn:WClientWin.nudge"></A>  
1813 </DD>
1814 <DT><STRONG>Synopsis:</STRONG></DT>
1815 <DD><TT>void WClientWin.nudge(WClientWin cwin)</TT>
1816
1817 </DD>
1818 <DT><STRONG>Description:</STRONG></DT>
1819 <DD>Attempts to fix window size problems with non-ICCCM compliant
1820  programs.
1821   
1822 </DD>
1823 </DL>
1824
1825 <P>
1826
1827   <DL>
1828 <DD><A NAME="4357"></A>
1829 <A NAME="4358"></A>
1830 <A NAME="fn:WClientWin.quote_next"></A>  
1831 </DD>
1832 <DT><STRONG>Synopsis:</STRONG></DT>
1833 <DD><TT>void WClientWin.quote_next(WClientWin cwin)</TT>
1834
1835 </DD>
1836 <DT><STRONG>Description:</STRONG></DT>
1837 <DD>Send next key press directly to <TT>cwin</TT>.
1838   
1839 </DD>
1840 </DL>
1841
1842 <P>
1843
1844   <DL>
1845 <DD><A NAME="4359"></A>
1846 <A NAME="4360"></A>
1847 <A NAME="fn:WClientWin.set_fullscreen"></A>  
1848 </DD>
1849 <DT><STRONG>Synopsis:</STRONG></DT>
1850 <DD><TT>bool WClientWin.set_fullscreen(WClientWin cwin, string how)</TT>
1851
1852 </DD>
1853 <DT><STRONG>Description:</STRONG></DT>
1854 <DD>Set client window <TT>cwin</TT> full screen state according to the 
1855  parameter <TT>how</TT> (set/unset/toggle). Resulting state is returned,
1856  which may not be what was requested.
1857   
1858 </DD>
1859 </DL>
1860
1861 <P>
1862
1863   <DL>
1864 <DD><A NAME="4361"></A>
1865 <A NAME="4362"></A>
1866 <A NAME="fn:WClientWin.xid"></A>  
1867 </DD>
1868 <DT><STRONG>Synopsis:</STRONG></DT>
1869 <DD><TT>double WClientWin.xid(WClientWin cwin)</TT>
1870
1871 </DD>
1872 <DT><STRONG>Description:</STRONG></DT>
1873 <DD>Return the X window id for the client window.
1874   
1875 </DD>
1876 </DL>
1877
1878 <P>
1879
1880 <H3><A NAME="SECTION00712000000000000000">
1881 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
1882 </H3>
1883
1884 <P>
1885
1886   <DL>
1887 <DD><A NAME="4364"></A>
1888 <A NAME="4365"></A>
1889 <A NAME="fn:WFrame.is_shaded"></A>  
1890 </DD>
1891 <DT><STRONG>Synopsis:</STRONG></DT>
1892 <DD><TT>bool WFrame.is_shaded(WFrame frame)</TT>
1893
1894 </DD>
1895 <DT><STRONG>Description:</STRONG></DT>
1896 <DD>Is <TT>frame</TT> shaded?
1897   
1898 </DD>
1899 </DL>
1900
1901 <P>
1902
1903   <DL>
1904 <DD><A NAME="4366"></A>
1905 <A NAME="4367"></A>
1906 <A NAME="fn:WFrame.maximize_horiz"></A>  
1907 </DD>
1908 <DT><STRONG>Synopsis:</STRONG></DT>
1909 <DD><TT>void WFrame.maximize_horiz(WFrame frame)</TT>
1910
1911 </DD>
1912 <DT><STRONG>Description:</STRONG></DT>
1913 <DD>Attempt to toggle horizontal maximisation of <TT>frame</TT>.
1914   
1915 </DD>
1916 </DL>
1917
1918 <P>
1919
1920   <DL>
1921 <DD><A NAME="4368"></A>
1922 <A NAME="4369"></A>
1923 <A NAME="fn:WFrame.maximize_vert"></A>  
1924 </DD>
1925 <DT><STRONG>Synopsis:</STRONG></DT>
1926 <DD><TT>void WFrame.maximize_vert(WFrame frame)</TT>
1927
1928 </DD>
1929 <DT><STRONG>Description:</STRONG></DT>
1930 <DD>Attempt to toggle vertical maximisation of <TT>frame</TT>.
1931   
1932 </DD>
1933 </DL>
1934
1935 <P>
1936
1937   <DL>
1938 <DD><A NAME="4370"></A>
1939 <A NAME="4371"></A>
1940 <A NAME="fn:WFrame.mode"></A>  
1941 </DD>
1942 <DT><STRONG>Synopsis:</STRONG></DT>
1943 <DD><TT>string WFrame.mode(WFrame frame)</TT>
1944
1945 </DD>
1946 <DT><STRONG>Description:</STRONG></DT>
1947 <DD>Get frame mode.
1948   
1949 </DD>
1950 </DL>
1951
1952 <P>
1953
1954   <DL>
1955 <DD><A NAME="4372"></A>
1956 <A NAME="4373"></A>
1957 <A NAME="fn:WFrame.p_switch_tab"></A>  
1958 </DD>
1959 <DT><STRONG>Synopsis:</STRONG></DT>
1960 <DD><TT>void WFrame.p_switch_tab(WFrame frame)</TT>
1961
1962 </DD>
1963 <DT><STRONG>Description:</STRONG></DT>
1964 <DD>Display the region corresponding to the tab that the user pressed on.
1965  This function should only be used by binding it to a mouse action.
1966   
1967 </DD>
1968 </DL>
1969
1970 <P>
1971
1972   <DL>
1973 <DD><A NAME="4374"></A>
1974 <A NAME="4375"></A>
1975 <A NAME="fn:WFrame.p_tabdrag"></A>  
1976 </DD>
1977 <DT><STRONG>Synopsis:</STRONG></DT>
1978 <DD><TT>void WFrame.p_tabdrag(WFrame frame)</TT>
1979
1980 </DD>
1981 <DT><STRONG>Description:</STRONG></DT>
1982 <DD>Start dragging the tab that the user pressed on with the pointing device.
1983  This function should only be used by binding it to <SPAN  CLASS="textit">mpress</SPAN> or
1984  <SPAN  CLASS="textit">mdrag</SPAN> action with area ''tab''.
1985   
1986 </DD>
1987 </DL>
1988
1989 <P>
1990
1991   <DL>
1992 <DD><A NAME="4376"></A>
1993 <A NAME="4377"></A>
1994 <A NAME="fn:WFrame.set_mode"></A>  
1995 </DD>
1996 <DT><STRONG>Synopsis:</STRONG></DT>
1997 <DD><TT>bool WFrame.set_mode(WFrame frame, string modestr)</TT>
1998
1999 </DD>
2000 <DT><STRONG>Description:</STRONG></DT>
2001 <DD>Set frame mode.
2002   
2003 </DD>
2004 </DL>
2005
2006 <P>
2007
2008   <DL>
2009 <DD><A NAME="4378"></A>
2010 <A NAME="4379"></A>
2011 <A NAME="fn:WFrame.set_numbers"></A>  
2012 </DD>
2013 <DT><STRONG>Synopsis:</STRONG></DT>
2014 <DD><TT>bool WFrame.set_numbers(WFrame frame, string how)</TT>
2015
2016 </DD>
2017 <DT><STRONG>Description:</STRONG></DT>
2018 <DD>Control whether tabs show numbers (set/unset/toggle). 
2019  Resulting state is returned, which may not be what was 
2020  requested.
2021   
2022 </DD>
2023 </DL>
2024
2025 <P>
2026
2027   <DL>
2028 <DD><A NAME="4380"></A>
2029 <A NAME="4381"></A>
2030 <A NAME="fn:WFrame.set_shaded"></A>  
2031 </DD>
2032 <DT><STRONG>Synopsis:</STRONG></DT>
2033 <DD><TT>bool WFrame.set_shaded(WFrame frame, string how)</TT>
2034
2035 </DD>
2036 <DT><STRONG>Description:</STRONG></DT>
2037 <DD>Set shading state according to the parameter <TT>how</TT> 
2038  (set/unset/toggle). Resulting state is returned, which may not be
2039  what was requested.
2040   
2041 </DD>
2042 </DL>
2043
2044 <P>
2045
2046 <H3><A NAME="SECTION00713000000000000000">
2047 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
2048 </H3>
2049
2050 <P>
2051
2052   <DL>
2053 <DD><A NAME="4383"></A>
2054 <A NAME="4384"></A>
2055 <A NAME="fn:WGroup.attach"></A>  
2056 </DD>
2057 <DT><STRONG>Synopsis:</STRONG></DT>
2058 <DD><TT>WRegion WGroup.attach(WGroup ws, WRegion reg, table param)</TT>
2059
2060 </DD>
2061 <DT><STRONG>Description:</STRONG></DT>
2062 <DD>Attach and reparent existing region <TT>reg</TT> to <TT>ws</TT>.
2063  The table <TT>param</TT> may contain the fields <TT>index</TT> and
2064  <TT>switchto</TT> that are interpreted as for <A HREF="#fn:WMPlex.attach_new"><TT>WMPlex.attach_new</TT></A>.
2065   
2066 </DD>
2067 </DL>
2068
2069 <P>
2070
2071   <DL>
2072 <DD><A NAME="4385"></A>
2073 <A NAME="4386"></A>
2074 <A NAME="fn:WGroup.attach_new"></A>  
2075 </DD>
2076 <DT><STRONG>Synopsis:</STRONG></DT>
2077 <DD><TT>WRegion WGroup.attach_new(WGroup ws, table param)</TT>
2078
2079 </DD>
2080 <DT><STRONG>Description:</STRONG></DT>
2081 <DD>Create a new region to be managed by <TT>ws</TT>. At least the following
2082  fields in <TT>param</TT> are understood:
2083
2084 <P>
2085 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
2086 <TR><TD ALIGN="LEFT">Field</TD>
2087 <TD ALIGN="LEFT">Description</TD>
2088 </TR>
2089 <TR><TD ALIGN="LEFT"><TT>type</TT></TD>
2090 <TD ALIGN="LEFT">Class name (a string) of the object to be created. Mandatory.</TD>
2091 </TR>
2092 <TR><TD ALIGN="LEFT"><TT>name</TT></TD>
2093 <TD ALIGN="LEFT">Name of the object to be created (a string). Optional.</TD>
2094 </TR>
2095 <TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
2096 <TD ALIGN="LEFT">Should the region be switched to (boolean)? Optional.</TD>
2097 </TR>
2098 <TR><TD ALIGN="LEFT"><TT>level</TT></TD>
2099 <TD ALIGN="LEFT">Stacking level; default is 1.</TD>
2100 </TR>
2101 <TR><TD ALIGN="LEFT"><TT>modal</TT></TD>
2102 <TD ALIGN="LEFT">Make object modal; ignored if level is set.</TD>
2103 </TR>
2104 <TR><TD ALIGN="LEFT"><TT>sizepolicy</TT></TD>
2105 <TD ALIGN="LEFT">Size policy.</TD>
2106 </TR>
2107 </TABLE>
2108
2109 <P>
2110 In addition parameters to the region to be created are passed in this 
2111  same table.
2112   
2113 </DD>
2114 </DL>
2115
2116 <P>
2117
2118   <DL>
2119 <DD><A NAME="4387"></A>
2120 <A NAME="4388"></A>
2121 <A NAME="fn:WGroup.bottom"></A>  
2122 </DD>
2123 <DT><STRONG>Synopsis:</STRONG></DT>
2124 <DD><TT>WRegion WGroup.bottom(WGroup ws)</TT>
2125
2126 </DD>
2127 <DT><STRONG>Description:</STRONG></DT>
2128 <DD>Returns the 'bottom' of <TT>ws</TT>.
2129   
2130 </DD>
2131 </DL>
2132
2133 <P>
2134
2135   <DL>
2136 <DD><A NAME="4389"></A>
2137 <A NAME="4390"></A>
2138 <A NAME="fn:WGroup.managed_list"></A>  
2139 </DD>
2140 <DT><STRONG>Synopsis:</STRONG></DT>
2141 <DD><TT>table WGroup.managed_list(WGroup ws)</TT>
2142
2143 </DD>
2144 <DT><STRONG>Description:</STRONG></DT>
2145 <DD>Returns a list of regions managed by the workspace (frames, mostly).
2146   
2147 </DD>
2148 </DL>
2149
2150 <P>
2151
2152 <H3><A NAME="SECTION00714000000000000000">
2153 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
2154 </H3>
2155
2156 <P>
2157
2158 <H3><A NAME="SECTION00715000000000000000">
2159 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
2160 </H3>
2161
2162 <P>
2163
2164   <DL>
2165 <DD><A NAME="4393"></A>
2166 <A NAME="4394"></A>
2167 <A NAME="fn:WGroupWS.attach_framed"></A>  
2168 </DD>
2169 <DT><STRONG>Synopsis:</STRONG></DT>
2170 <DD><TT>bool WGroupWS.attach_framed(WGroupWS ws, WRegion reg, table t)</TT>
2171
2172 </DD>
2173 <DT><STRONG>Description:</STRONG></DT>
2174 <DD>Attach region <TT>reg</TT> on <TT>ws</TT>.
2175  At least the following fields in <TT>t</TT> are supported:
2176
2177 <P>
2178 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
2179 <TR><TD ALIGN="LEFT">Field</TD>
2180 <TD ALIGN="LEFT">Description</TD>
2181 </TR>
2182 <TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
2183 <TD ALIGN="LEFT">Should the region be switched to (boolean)? Optional.</TD>
2184 </TR>
2185 <TR><TD ALIGN="LEFT"><TT>geom</TT></TD>
2186 <TD ALIGN="LEFT">Geometry; <TT>x</TT> and <TT>y</TT>, if set, indicates top-left of 
2187    the frame to be created while <TT>width</TT> and <TT>height</TT>, if set, indicate
2188    the size of the client window within that frame. Optional.</TD>
2189 </TR>
2190 </TABLE>
2191   
2192 </DD>
2193 </DL>
2194
2195 <P>
2196
2197 <H3><A NAME="SECTION00716000000000000000">
2198 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
2199 </H3>
2200
2201 <P>
2202
2203   <DL>
2204 <DD><A NAME="4396"></A>
2205 <A NAME="4397"></A>
2206 <A NAME="fn:WInfoWin.set_text"></A>  
2207 </DD>
2208 <DT><STRONG>Synopsis:</STRONG></DT>
2209 <DD><TT>void WInfoWin.set_text(WInfoWin p, string str)</TT>
2210
2211 </DD>
2212 <DT><STRONG>Description:</STRONG></DT>
2213 <DD>Set contents of the info window.
2214   
2215 </DD>
2216 </DL>
2217
2218 <P>
2219
2220 <H3><A NAME="SECTION00717000000000000000">
2221 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
2222 </H3>
2223
2224 <P>
2225
2226   <DL>
2227 <DD><A NAME="4399"></A>
2228 <A NAME="4400"></A>
2229 <A NAME="fn:WMPlex.attach"></A>  
2230 </DD>
2231 <DT><STRONG>Synopsis:</STRONG></DT>
2232 <DD><TT>WRegion WMPlex.attach(WMPlex mplex, WRegion reg, table param)</TT>
2233
2234 </DD>
2235 <DT><STRONG>Description:</STRONG></DT>
2236 <DD>Attach and reparent existing region <TT>reg</TT> to <TT>mplex</TT>.
2237  The table <TT>param</TT> may contain the fields <TT>index</TT> and
2238  <TT>switchto</TT> that are interpreted as for <A HREF="#fn:WMPlex.attach_new"><TT>WMPlex.attach_new</TT></A>.
2239   
2240 </DD>
2241 </DL>
2242
2243 <P>
2244
2245   <DL>
2246 <DD><A NAME="4401"></A>
2247 <A NAME="4402"></A>
2248 <A NAME="fn:WMPlex.attach_new"></A>  
2249 </DD>
2250 <DT><STRONG>Synopsis:</STRONG></DT>
2251 <DD><TT>WRegion WMPlex.attach_new(WMPlex mplex, table param)</TT>
2252
2253 </DD>
2254 <DT><STRONG>Description:</STRONG></DT>
2255 <DD>Create a new region to be managed by <TT>mplex</TT>. At least the following
2256  fields in <TT>param</TT> are understood (all but <TT>type</TT> are optional).
2257
2258 <P>
2259 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
2260 <TR><TD ALIGN="LEFT">Field</TD>
2261 <TD ALIGN="LEFT">Description</TD>
2262 </TR>
2263 <TR><TD ALIGN="LEFT"><TT>type</TT></TD>
2264 <TD ALIGN="LEFT">(string) Class name (a string) of the object to be created.</TD>
2265 </TR>
2266 <TR><TD ALIGN="LEFT"><TT>name</TT></TD>
2267 <TD ALIGN="LEFT">(string) Name of the object to be created (a string).</TD>
2268 </TR>
2269 <TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
2270 <TD ALIGN="LEFT">(boolean) Should the region be switched to (boolean)?</TD>
2271 </TR>
2272 <TR><TD ALIGN="LEFT"><TT>unnumbered</TT></TD>
2273 <TD ALIGN="LEFT">(boolean) Do not put on the numbered mutually 
2274                      exclusive list.</TD>
2275 </TR>
2276 <TR><TD ALIGN="LEFT"><TT>index</TT></TD>
2277 <TD ALIGN="LEFT">(integer) Index on this list, same as for 
2278                 <A HREF="#fn:WMPlex.set_index"><TT>WMPlex.set_index</TT></A>.</TD>
2279 </TR>
2280 <TR><TD ALIGN="LEFT"><TT>level</TT></TD>
2281 <TD ALIGN="LEFT">(integer) Stacking level.</TD>
2282 </TR>
2283 <TR><TD ALIGN="LEFT"><TT>modal</TT></TD>
2284 <TD ALIGN="LEFT">(boolean) Shortcut for modal stacking level.</TD>
2285 </TR>
2286 <TR><TD ALIGN="LEFT"><TT>hidden</TT></TD>
2287 <TD ALIGN="LEFT">(boolean) Attach hidden, if not prevented
2288                   by e.g. the mutually exclusive list being empty.
2289                   This option overrides <TT>switchto</TT>.</TD>
2290 </TR>
2291 <TR><TD ALIGN="LEFT"><TT>sizepolicy</TT></TD>
2292 <TD ALIGN="LEFT">(integer) Size policy.
2293                      (TODO: document them somewhere.)</TD>
2294 </TR>
2295 <TR><TD ALIGN="LEFT"><TT>geom</TT></TD>
2296 <TD ALIGN="LEFT">(table) Geometry specification.</TD>
2297 </TR>
2298 </TABLE>
2299
2300 <P>
2301 In addition parameters to the region to be created are passed in this 
2302  same table.
2303   
2304 </DD>
2305 </DL>
2306
2307 <P>
2308
2309   <DL>
2310 <DD><A NAME="4403"></A>
2311 <A NAME="4404"></A>
2312 <A NAME="fn:WMPlex.attach_tagged"></A>  
2313 </DD>
2314 <DT><STRONG>Synopsis:</STRONG></DT>
2315 <DD><TT>void WMPlex.attach_tagged(WMPlex mplex)</TT>
2316
2317 </DD>
2318 <DT><STRONG>Description:</STRONG></DT>
2319 <DD>Attach all tagged regions to <TT>mplex</TT>.
2320   
2321 </DD>
2322 </DL>
2323
2324 <P>
2325
2326   <DL>
2327 <DD><A NAME="4405"></A>
2328 <A NAME="4406"></A>
2329 <A NAME="fn:WMPlex.dec_index"></A>  
2330 </DD>
2331 <DT><STRONG>Synopsis:</STRONG></DT>
2332 <DD><TT>void WMPlex.dec_index(WMPlex mplex, WRegion r)</TT>
2333
2334 </DD>
2335 <DT><STRONG>Description:</STRONG></DT>
2336 <DD>Move <TT>r</TT> ''right'' within objects managed by <TT>mplex</TT> on list 1.
2337   
2338 </DD>
2339 </DL>
2340
2341 <P>
2342
2343   <DL>
2344 <DD><A NAME="4407"></A>
2345 <A NAME="4408"></A>
2346 <A NAME="fn:WMPlex.get_index"></A>  
2347 </DD>
2348 <DT><STRONG>Synopsis:</STRONG></DT>
2349 <DD><TT>integer WMPlex.get_index(WMPlex mplex, WRegion reg)</TT>
2350
2351 </DD>
2352 <DT><STRONG>Description:</STRONG></DT>
2353 <DD>Get index of <TT>reg</TT> within the multiplexer on list 1. The first region 
2354  managed by <TT>mplex</TT> has index zero. If <TT>reg</TT> is not managed by 
2355  <TT>mplex</TT>, -1 is returned.
2356   
2357 </DD>
2358 </DL>
2359
2360 <P>
2361
2362   <DL>
2363 <DD><A NAME="4409"></A>
2364 <A NAME="4410"></A>
2365 <A NAME="fn:WMPlex.get_stdisp"></A>  
2366 </DD>
2367 <DT><STRONG>Synopsis:</STRONG></DT>
2368 <DD><TT>table WMPlex.get_stdisp(WMPlex mplex)</TT>
2369
2370 </DD>
2371 <DT><STRONG>Description:</STRONG></DT>
2372 <DD>Get status display information. See <A HREF="#fn:WMPlex.get_stdisp"><TT>WMPlex.get_stdisp</TT></A> for
2373  information on the fields.
2374   
2375 </DD>
2376 </DL>
2377
2378 <P>
2379
2380   <DL>
2381 <DD><A NAME="4411"></A>
2382 <A NAME="4412"></A>
2383 <A NAME="fn:WMPlex.inc_index"></A>  
2384 </DD>
2385 <DT><STRONG>Synopsis:</STRONG></DT>
2386 <DD><TT>void WMPlex.inc_index(WMPlex mplex, WRegion r)</TT>
2387
2388 </DD>
2389 <DT><STRONG>Description:</STRONG></DT>
2390 <DD>Move <TT>r</TT> ''right'' within objects managed by <TT>mplex</TT> on list 1.
2391   
2392 </DD>
2393 </DL>
2394
2395 <P>
2396
2397   <DL>
2398 <DD><A NAME="4413"></A>
2399 <A NAME="4414"></A>
2400 <A NAME="fn:WMPlex.is_hidden"></A>  
2401 </DD>
2402 <DT><STRONG>Synopsis:</STRONG></DT>
2403 <DD><TT>bool WMPlex.is_hidden(WMPlex mplex, WRegion reg)</TT>
2404
2405 </DD>
2406 <DT><STRONG>Description:</STRONG></DT>
2407 <DD>Is <TT>reg</TT> on within <TT>mplex</TT> and hidden?
2408   
2409 </DD>
2410 </DL>
2411
2412 <P>
2413
2414   <DL>
2415 <DD><A NAME="4415"></A>
2416 <A NAME="4416"></A>
2417 <A NAME="fn:WMPlex.managed_list"></A>  
2418 </DD>
2419 <DT><STRONG>Synopsis:</STRONG></DT>
2420 <DD><TT>table WMPlex.managed_list(WMPlex mplex)</TT>
2421
2422 </DD>
2423 <DT><STRONG>Description:</STRONG></DT>
2424 <DD>Returns a list of all regions managed by <TT>mplex</TT>.
2425   
2426 </DD>
2427 </DL>
2428
2429 <P>
2430
2431   <DL>
2432 <DD><A NAME="4417"></A>
2433 <A NAME="4418"></A>
2434 <A NAME="fn:WMPlex.mx_count"></A>  
2435 </DD>
2436 <DT><STRONG>Synopsis:</STRONG></DT>
2437 <DD><TT>integer WMPlex.mx_count(WMPlex mplex)</TT>
2438
2439 </DD>
2440 <DT><STRONG>Description:</STRONG></DT>
2441 <DD>Returns the number of objects on the mutually exclusive list of <TT>mplex</TT>.
2442   
2443 </DD>
2444 </DL>
2445
2446 <P>
2447
2448   <DL>
2449 <DD><A NAME="4419"></A>
2450 <A NAME="4420"></A>
2451 <A NAME="fn:WMPlex.mx_current"></A>  
2452 </DD>
2453 <DT><STRONG>Synopsis:</STRONG></DT>
2454 <DD><TT>WRegion WMPlex.mx_current(WMPlex mplex)</TT>
2455
2456 </DD>
2457 <DT><STRONG>Description:</STRONG></DT>
2458 <DD>Returns the managed object currently active within the mutually exclusive
2459  list of <TT>mplex</TT>.
2460   
2461 </DD>
2462 </DL>
2463
2464 <P>
2465
2466   <DL>
2467 <DD><A NAME="4421"></A>
2468 <A NAME="4422"></A>
2469 <A NAME="fn:WMPlex.mx_list"></A>  
2470 </DD>
2471 <DT><STRONG>Synopsis:</STRONG></DT>
2472 <DD><TT>table WMPlex.mx_list(WMPlex mplex)</TT>
2473
2474 </DD>
2475 <DT><STRONG>Description:</STRONG></DT>
2476 <DD>Returns a list of regions on the numbered/mutually exclusive list of 
2477  <TT>mplex</TT>.
2478   
2479 </DD>
2480 </DL>
2481
2482 <P>
2483
2484   <DL>
2485 <DD><A NAME="4423"></A>
2486 <A NAME="4424"></A>
2487 <A NAME="fn:WMPlex.mx_nth"></A>  
2488 </DD>
2489 <DT><STRONG>Synopsis:</STRONG></DT>
2490 <DD><TT>WRegion WMPlex.mx_nth(WMPlex mplex, integer n)</TT>
2491
2492 </DD>
2493 <DT><STRONG>Description:</STRONG></DT>
2494 <DD>Returns the <TT>n</TT>:th object managed by <TT>mplex</TT> on the
2495  <TT>l</TT>:th layer.
2496   
2497 </DD>
2498 </DL>
2499
2500 <P>
2501
2502   <DL>
2503 <DD><A NAME="4425"></A>
2504 <A NAME="4426"></A>
2505 <A NAME="fn:WMPlex.set_hidden"></A>  
2506 </DD>
2507 <DT><STRONG>Synopsis:</STRONG></DT>
2508 <DD><TT>bool WMPlex.set_hidden(WMPlex mplex, WRegion reg, string how)</TT>
2509
2510 </DD>
2511 <DT><STRONG>Description:</STRONG></DT>
2512 <DD>Set the visibility of the region <TT>reg</TT> on <TT>mplex</TT>
2513  as specified with the parameter <TT>how</TT> (set/unset/toggle).
2514  The resulting state is returned.
2515   
2516 </DD>
2517 </DL>
2518
2519 <P>
2520
2521   <DL>
2522 <DD><A NAME="4427"></A>
2523 <A NAME="4428"></A>
2524 <A NAME="fn:WMPlex.set_index"></A>  
2525 </DD>
2526 <DT><STRONG>Synopsis:</STRONG></DT>
2527 <DD><TT>void WMPlex.set_index(WMPlex mplex, WRegion reg, integer index)</TT>
2528
2529 </DD>
2530 <DT><STRONG>Description:</STRONG></DT>
2531 <DD>Set index of <TT>reg</TT> within the multiplexer to <TT>index</TT> within 
2532  the mutually exclusive list. Special values for <TT>index</TT> are:
2533  <TABLE CELLPADDING=3 WIDTH="100%">
2534 <TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"></SPAN></TD>
2535 <TD ALIGN="LEFT">After <A HREF="#fn:WMPlex.mx_current"><TT>WMPlex.mx_current</TT></A>.</TD>
2536 </TR>
2537 <TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"></SPAN></TD>
2538 <TD ALIGN="LEFT">Last.</TD>
2539 </TR>
2540 </TABLE>
2541   
2542 </DD>
2543 </DL>
2544
2545 <P>
2546
2547   <DL>
2548 <DD><A NAME="4429"></A>
2549 <A NAME="4430"></A>
2550 <A NAME="fn:WMPlex.set_stdisp"></A>  
2551 </DD>
2552 <DT><STRONG>Synopsis:</STRONG></DT>
2553 <DD><TT>WRegion WMPlex.set_stdisp(WMPlex mplex, table t)</TT>
2554
2555 </DD>
2556 <DT><STRONG>Description:</STRONG></DT>
2557 <DD>Set/create status display for <TT>mplex</TT>. Table is a standard
2558  description of the object to be created (as passed to e.g. 
2559  <A HREF="#fn:WMPlex.attach_new"><TT>WMPlex.attach_new</TT></A>). In addition, the following fields are
2560  recognised:
2561
2562 <P>
2563 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
2564 <TR><TD ALIGN="LEFT">Field</TD>
2565 <TD ALIGN="LEFT">Description</TD>
2566 </TR>
2567 <TR><TD ALIGN="LEFT"><TT>pos</TT></TD>
2568 <TD ALIGN="LEFT">The corner of the screen to place the status display
2569                in. One of <TT>tl</TT>, <TT>tr</TT>, <TT>bl</TT> or <TT>br</TT>.</TD>
2570 </TR>
2571 <TR><TD ALIGN="LEFT"><TT>action</TT></TD>
2572 <TD ALIGN="LEFT">If this field is set to <TT>keep</TT>, <TT>corner</TT>
2573                   and <TT>orientation</TT> are changed for the existing
2574                   status display. If this field is set to <TT>remove</TT>,
2575                   the existing status display is removed. If this
2576                   field is not set or is set to <TT>replace</TT>, a 
2577                   new status display is created and the old, if any,
2578                   removed.</TD>
2579 </TR>
2580 </TABLE>
2581   
2582 </DD>
2583 </DL>
2584
2585 <P>
2586
2587   <DL>
2588 <DD><A NAME="4431"></A>
2589 <A NAME="4432"></A>
2590 <A NAME="fn:WMPlex.switch_next"></A>  
2591 </DD>
2592 <DT><STRONG>Synopsis:</STRONG></DT>
2593 <DD><TT>void WMPlex.switch_next(WMPlex mplex)</TT>
2594
2595 </DD>
2596 <DT><STRONG>Description:</STRONG></DT>
2597 <DD>Have <TT>mplex</TT> display next (wrt. currently selected) object managed 
2598  by it.
2599   
2600 </DD>
2601 </DL>
2602
2603 <P>
2604
2605   <DL>
2606 <DD><A NAME="4433"></A>
2607 <A NAME="4434"></A>
2608 <A NAME="fn:WMPlex.switch_nth"></A>  
2609 </DD>
2610 <DT><STRONG>Synopsis:</STRONG></DT>
2611 <DD><TT>void WMPlex.switch_nth(WMPlex mplex, integer n)</TT>
2612
2613 </DD>
2614 <DT><STRONG>Description:</STRONG></DT>
2615 <DD>Have <TT>mplex</TT> display the <TT>n</TT>:th object managed by it.
2616   
2617 </DD>
2618 </DL>
2619
2620 <P>
2621
2622   <DL>
2623 <DD><A NAME="4435"></A>
2624 <A NAME="4436"></A>
2625 <A NAME="fn:WMPlex.switch_prev"></A>  
2626 </DD>
2627 <DT><STRONG>Synopsis:</STRONG></DT>
2628 <DD><TT>void WMPlex.switch_prev(WMPlex mplex)</TT>
2629
2630 </DD>
2631 <DT><STRONG>Description:</STRONG></DT>
2632 <DD>Have <TT>mplex</TT> display previous (wrt. currently selected) object
2633  managed by it.
2634   
2635 </DD>
2636 </DL>
2637
2638 <P>
2639
2640 <H3><A NAME="SECTION00718000000000000000">
2641 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
2642 </H3>
2643
2644 <P>
2645
2646   <DL>
2647 <DD><A NAME="4438"></A>
2648 <A NAME="4439"></A>
2649 <A NAME="fn:WMoveresMode.cancel"></A>  
2650 </DD>
2651 <DT><STRONG>Synopsis:</STRONG></DT>
2652 <DD><TT>void WMoveresMode.cancel(WMoveresMode mode)</TT>
2653
2654 </DD>
2655 <DT><STRONG>Description:</STRONG></DT>
2656 <DD>Return from move/resize cancelling changes if opaque
2657  move/resize has not been enabled.
2658   
2659 </DD>
2660 </DL>
2661
2662 <P>
2663
2664   <DL>
2665 <DD><A NAME="4440"></A>
2666 <A NAME="4441"></A>
2667 <A NAME="fn:WMoveresMode.finish"></A>  
2668 </DD>
2669 <DT><STRONG>Synopsis:</STRONG></DT>
2670 <DD><TT>void WMoveresMode.finish(WMoveresMode mode)</TT>
2671
2672 </DD>
2673 <DT><STRONG>Description:</STRONG></DT>
2674 <DD>Return from move/resize mode and apply changes unless opaque
2675  move/resize is enabled.
2676   
2677 </DD>
2678 </DL>
2679
2680 <P>
2681
2682   <DL>
2683 <DD><A NAME="4442"></A>
2684 <A NAME="4443"></A>
2685 <A NAME="fn:WMoveresMode.move"></A>  
2686 </DD>
2687 <DT><STRONG>Synopsis:</STRONG></DT>
2688 <DD><TT>void WMoveresMode.move(WMoveresMode mode, integer horizmul, integer vertmul)</TT>
2689
2690 </DD>
2691 <DT><STRONG>Description:</STRONG></DT>
2692 <DD>Move resize mode target one step:
2693
2694 <P>
2695 <TABLE CELLPADDING=3 BORDER="1">
2696 <TR><TD ALIGN="RIGHT"><TT>horizmul</TT>/<TT>vertmul</TT></TD>
2697 <TD ALIGN="LEFT">effect</TD>
2698 </TR>
2699 <TR><TD ALIGN="RIGHT">-1</TD>
2700 <TD ALIGN="LEFT">Move left/up</TD>
2701 </TR>
2702 <TR><TD ALIGN="RIGHT">0</TD>
2703 <TD ALIGN="LEFT">No effect</TD>
2704 </TR>
2705 <TR><TD ALIGN="RIGHT">1</TD>
2706 <TD ALIGN="LEFT">Move right/down</TD>
2707 </TR>
2708 </TABLE>
2709   
2710 </DD>
2711 </DL>
2712
2713 <P>
2714
2715   <DL>
2716 <DD><A NAME="4444"></A>
2717 <A NAME="4445"></A>
2718 <A NAME="fn:WMoveresMode.resize"></A>  
2719 </DD>
2720 <DT><STRONG>Synopsis:</STRONG></DT>
2721 <DD><TT>void WMoveresMode.resize(WMoveresMode mode, integer left, integer right, integer top, integer bottom)</TT>
2722
2723 </DD>
2724 <DT><STRONG>Description:</STRONG></DT>
2725 <DD>Shrink or grow resize mode target one step in each direction.
2726  Acceptable values for the parameters <TT>left</TT>, <TT>right</TT>, <TT>top</TT>
2727  and <TT>bottom</TT> are as follows: -1: shrink along,
2728  0: do not change, 1: grow along corresponding border.
2729   
2730 </DD>
2731 </DL>
2732
2733 <P>
2734
2735 <H3><A NAME="SECTION00719000000000000000">
2736 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
2737 </H3>
2738
2739 <P>
2740
2741   <DL>
2742 <DD><A NAME="4447"></A>
2743 <A NAME="4448"></A>
2744 <A NAME="fn:WRegion.begin_kbresize"></A>  
2745 </DD>
2746 <DT><STRONG>Synopsis:</STRONG></DT>
2747 <DD><TT>WMoveresMode WRegion.begin_kbresize(WRegion reg)</TT>
2748
2749 </DD>
2750 <DT><STRONG>Description:</STRONG></DT>
2751 <DD>Enter move/resize mode for <TT>reg</TT>. The bindings set with
2752  <A HREF="#fn:ioncore.set_bindings"><TT>ioncore.set_bindings</TT></A> for WMoveresMode are used in 
2753  this mode. Of the functions exported by the Ion C core, only
2754  <A HREF="#fn:WMoveresMode.resize"><TT>WMoveresMode.resize</TT></A>, <A HREF="#fn:WMoveresMode.move"><TT>WMoveresMode.move</TT></A>, 
2755  <A HREF="#fn:WMoveresMode.cancel"><TT>WMoveresMode.cancel</TT></A> and <A HREF="#fn:WMoveresMode.end"><TT>WMoveresMode.end</TT></A> are
2756  allowed to be called while in this mode.
2757   
2758 </DD>
2759 </DL>
2760
2761 <P>
2762
2763   <DL>
2764 <DD><A NAME="4449"></A>
2765 <A NAME="4450"></A>
2766 <A NAME="fn:WRegion.current"></A>  
2767 </DD>
2768 <DT><STRONG>Synopsis:</STRONG></DT>
2769 <DD><TT>WRegion WRegion.current(WRegion mgr)</TT>
2770
2771 </DD>
2772 <DT><STRONG>Description:</STRONG></DT>
2773 <DD>Return the object, if any, that is considered ''currently active''
2774  within the objects managed by <TT>mplex</TT>.
2775   
2776 </DD>
2777 </DL>
2778
2779 <P>
2780
2781   <DL>
2782 <DD><A NAME="4451"></A>
2783 <A NAME="4452"></A>
2784 <A NAME="fn:WRegion.geom"></A>  
2785 </DD>
2786 <DT><STRONG>Synopsis:</STRONG></DT>
2787 <DD><TT>table WRegion.geom(WRegion reg)</TT>
2788
2789 </DD>
2790 <DT><STRONG>Description:</STRONG></DT>
2791 <DD>Returns the geometry of <TT>reg</TT> within its parent; a table with fields
2792  <TT>x</TT>, <TT>y</TT>, <TT>w</TT> and <TT>h</TT>.
2793   
2794 </DD>
2795 </DL>
2796
2797 <P>
2798
2799   <DL>
2800 <DD><A NAME="4453"></A>
2801 <A NAME="4454"></A>
2802 <A NAME="fn:WRegion.goto"></A>  
2803 </DD>
2804 <DT><STRONG>Synopsis:</STRONG></DT>
2805 <DD><TT>bool WRegion.goto(WRegion reg)</TT>
2806
2807 </DD>
2808 <DT><STRONG>Description:</STRONG></DT>
2809 <DD>Attempt to display <TT>reg</TT>, save region activity status and then
2810  warp to (or simply set focus to if warping is disabled) <TT>reg</TT>.
2811
2812 <P>
2813 Note that this function is asynchronous; the region will not
2814  actually have received the focus when this function returns.
2815   
2816 </DD>
2817 </DL>
2818
2819 <P>
2820
2821   <DL>
2822 <DD><A NAME="4455"></A>
2823 <A NAME="4456"></A>
2824 <A NAME="fn:WRegion.is_active"></A>  
2825 </DD>
2826 <DT><STRONG>Synopsis:</STRONG></DT>
2827 <DD><TT>bool WRegion.is_active(WRegion reg)</TT>
2828
2829 </DD>
2830 <DT><STRONG>Description:</STRONG></DT>
2831 <DD>Is <TT>reg</TT> active/does it or one of it's children of focus?
2832   
2833 </DD>
2834 </DL>
2835
2836 <P>
2837
2838   <DL>
2839 <DD><A NAME="4457"></A>
2840 <A NAME="4458"></A>
2841 <A NAME="fn:WRegion.is_activity"></A>  
2842 </DD>
2843 <DT><STRONG>Synopsis:</STRONG></DT>
2844 <DD><TT>bool WRegion.is_activity(WRegion reg)</TT>
2845
2846 </DD>
2847 <DT><STRONG>Description:</STRONG></DT>
2848 <DD>Is activity notification set on <TT>reg</TT>.
2849   
2850 </DD>
2851 </DL>
2852
2853 <P>
2854
2855   <DL>
2856 <DD><A NAME="4459"></A>
2857 <A NAME="4460"></A>
2858 <A NAME="fn:WRegion.is_mapped"></A>  
2859 </DD>
2860 <DT><STRONG>Synopsis:</STRONG></DT>
2861 <DD><TT>bool WRegion.is_mapped(WRegion reg)</TT>
2862
2863 </DD>
2864 <DT><STRONG>Description:</STRONG></DT>
2865 <DD>Is <TT>reg</TT> visible/is it and all it's ancestors mapped?
2866   
2867 </DD>
2868 </DL>
2869
2870 <P>
2871
2872   <DL>
2873 <DD><A NAME="4461"></A>
2874 <A NAME="4462"></A>
2875 <A NAME="fn:WRegion.is_tagged"></A>  
2876 </DD>
2877 <DT><STRONG>Synopsis:</STRONG></DT>
2878 <DD><TT>bool WRegion.is_tagged(WRegion reg)</TT>
2879
2880 </DD>
2881 <DT><STRONG>Description:</STRONG></DT>
2882 <DD>Is <TT>reg</TT> tagged?
2883   
2884 </DD>
2885 </DL>
2886
2887 <P>
2888
2889   <DL>
2890 <DD><A NAME="4463"></A>
2891 <A NAME="4464"></A>
2892 <A NAME="fn:WRegion.manager"></A>  
2893 </DD>
2894 <DT><STRONG>Synopsis:</STRONG></DT>
2895 <DD><TT>WRegion WRegion.manager(WRegion reg)</TT>
2896
2897 </DD>
2898 <DT><STRONG>Description:</STRONG></DT>
2899 <DD>Returns the region that manages <TT>reg</TT>.
2900   
2901 </DD>
2902 </DL>
2903
2904 <P>
2905
2906   <DL>
2907 <DD><A NAME="4465"></A>
2908 <A NAME="4466"></A>
2909 <A NAME="fn:WRegion.name"></A>  
2910 </DD>
2911 <DT><STRONG>Synopsis:</STRONG></DT>
2912 <DD><TT>string WRegion.name(WRegion reg)</TT>
2913
2914 </DD>
2915 <DT><STRONG>Description:</STRONG></DT>
2916 <DD>Returns the name for <TT>reg</TT>.
2917   
2918 </DD>
2919 </DL>
2920
2921 <P>
2922
2923   <DL>
2924 <DD><A NAME="4467"></A>
2925 <A NAME="4468"></A>
2926 <A NAME="fn:WRegion.parent"></A>  
2927 </DD>
2928 <DT><STRONG>Synopsis:</STRONG></DT>
2929 <DD><TT>WWindow WRegion.parent(WRegion reg)</TT>
2930
2931 </DD>
2932 <DT><STRONG>Description:</STRONG></DT>
2933 <DD>Returns the parent region of <TT>reg</TT>.
2934   
2935 </DD>
2936 </DL>
2937
2938 <P>
2939
2940   <DL>
2941 <DD><A NAME="4469"></A>
2942 <A NAME="4470"></A>
2943 <A NAME="fn:WRegion.rootwin_of"></A>  
2944 </DD>
2945 <DT><STRONG>Synopsis:</STRONG></DT>
2946 <DD><TT>WRootWin WRegion.rootwin_of(WRegion reg)</TT>
2947
2948 </DD>
2949 <DT><STRONG>Description:</STRONG></DT>
2950 <DD>Returns the root window <TT>reg</TT> is on.
2951   
2952 </DD>
2953 </DL>
2954
2955 <P>
2956
2957   <DL>
2958 <DD><A NAME="4471"></A>
2959 <A NAME="4472"></A>
2960 <A NAME="fn:WRegion.rqclose"></A>  
2961 </DD>
2962 <DT><STRONG>Synopsis:</STRONG></DT>
2963 <DD><TT>bool WRegion.rqclose(WRegion reg, bool relocate)</TT>
2964
2965 </DD>
2966 <DT><STRONG>Description:</STRONG></DT>
2967 <DD>Attempt to close/destroy <TT>reg</TT>. Whether this operation works
2968  depends on whether the particular type of region in question has
2969  implemented the feature and, in case of client windows, whether
2970  the client supports the <TT>WM_DELETE</TT> protocol (see also
2971  <A HREF="#fn:WClientWin.kill"><TT>WClientWin.kill</TT></A>). If the operation is likely to succeed,
2972  <TT>true</TT> is returned, otherwise <TT>false</TT>. In most cases the
2973  region will not have been actually destroyed when this function returns.
2974  If <TT>relocate</TT> is not set, and <TT>reg</TT> manages other regions, it
2975  will not be closed. Otherwise the managed regions will be attempted
2976  to be relocated.
2977   
2978 </DD>
2979 </DL>
2980
2981 <P>
2982
2983   <DL>
2984 <DD><A NAME="4473"></A>
2985 <A NAME="4474"></A>
2986 <A NAME="fn:WRegion.rqclose_propagate"></A>  
2987 </DD>
2988 <DT><STRONG>Synopsis:</STRONG></DT>
2989 <DD><TT>WRegion WRegion.rqclose_propagate(WRegion reg, WRegion maybe_sub)</TT>
2990
2991 </DD>
2992 <DT><STRONG>Description:</STRONG></DT>
2993 <DD>Recursively attempt to close a region or one of the regions managed by 
2994  it. If <TT>sub</TT> is set, it will be used as the managed region, otherwise
2995  <A HREF="#fn:WRegion.current"><TT>WRegion.current</TT></A><TT>(reg)</TT>. The object to be closed is
2996  returned or NULL if nothing can be closed. Also see notes for
2997  <A HREF="#fn:WRegion.rqclose"><TT>WRegion.rqclose</TT></A>.
2998   
2999 </DD>
3000 </DL>
3001
3002 <P>
3003
3004   <DL>
3005 <DD><A NAME="4475"></A>
3006 <A NAME="4476"></A>
3007 <A NAME="fn:WRegion.rqgeom"></A>  
3008 </DD>
3009 <DT><STRONG>Synopsis:</STRONG></DT>
3010 <DD><TT>table WRegion.rqgeom(WRegion reg, table g)</TT>
3011
3012 </DD>
3013 <DT><STRONG>Description:</STRONG></DT>
3014 <DD>Attempt to resize and/or move <TT>reg</TT>. The table <TT>g</TT> is a usual
3015  geometry specification (fields <TT>x</TT>, <TT>y</TT>, <TT>w</TT> and <TT>h</TT>),
3016  but may contain missing fields, in which case, <TT>reg</TT>'s manager may
3017  attempt to leave that attribute unchanged.
3018   
3019 </DD>
3020 </DL>
3021
3022 <P>
3023
3024   <DL>
3025 <DD><A NAME="4477"></A>
3026 <A NAME="4478"></A>
3027 <A NAME="fn:WRegion.rqorder"></A>  
3028 </DD>
3029 <DT><STRONG>Synopsis:</STRONG></DT>
3030 <DD><TT>bool WRegion.rqorder(WRegion reg, string ord)</TT>
3031
3032 </DD>
3033 <DT><STRONG>Description:</STRONG></DT>
3034 <DD>Request ordering. Currently supported values for <TT>ord</TT>
3035  are 'front' and 'back'.
3036   
3037 </DD>
3038 </DL>
3039
3040 <P>
3041
3042   <DL>
3043 <DD><A NAME="4479"></A>
3044 <A NAME="4480"></A>
3045 <A NAME="fn:WRegion.screen_of"></A>  
3046 </DD>
3047 <DT><STRONG>Synopsis:</STRONG></DT>
3048 <DD><TT>WScreen WRegion.screen_of(WRegion reg)</TT>
3049
3050 </DD>
3051 <DT><STRONG>Description:</STRONG></DT>
3052 <DD>Returns the screen <TT>reg</TT> is on.
3053   
3054 </DD>
3055 </DL>
3056
3057 <P>
3058
3059   <DL>
3060 <DD><A NAME="4481"></A>
3061 <A NAME="4482"></A>
3062 <A NAME="fn:WRegion.set_activity"></A>  
3063 </DD>
3064 <DT><STRONG>Synopsis:</STRONG></DT>
3065 <DD><TT>bool WRegion.set_activity(WRegion reg, string how)</TT>
3066
3067 </DD>
3068 <DT><STRONG>Description:</STRONG></DT>
3069 <DD>Set activity flag of <TT>reg</TT>. The <TT>how</TT> parameter most be
3070  one of (set/unset/toggle).
3071   
3072 </DD>
3073 </DL>
3074
3075 <P>
3076
3077   <DL>
3078 <DD><A NAME="4483"></A>
3079 <A NAME="4484"></A>
3080 <A NAME="fn:WRegion.set_name"></A>  
3081 </DD>
3082 <DT><STRONG>Synopsis:</STRONG></DT>
3083 <DD><TT>bool WRegion.set_name(WRegion reg, string p)</TT>
3084
3085 </DD>
3086 <DT><STRONG>Description:</STRONG></DT>
3087 <DD>Set the name of <TT>reg</TT> to <TT>p</TT>. If the name is already in use,
3088  an instance number suffix <TT>&lt;n&gt;</TT> will be attempted. If <TT>p</TT> has
3089  such a suffix, it will be modified, otherwise such a suffix will be
3090  added. Setting <TT>p</TT> to nil will cause current name to be removed.
3091   
3092 </DD>
3093 </DL>
3094
3095 <P>
3096
3097   <DL>
3098 <DD><A NAME="4485"></A>
3099 <A NAME="4486"></A>
3100 <A NAME="fn:WRegion.set_name_exact"></A>  
3101 </DD>
3102 <DT><STRONG>Synopsis:</STRONG></DT>
3103 <DD><TT>bool WRegion.set_name_exact(WRegion reg, string p)</TT>
3104
3105 </DD>
3106 <DT><STRONG>Description:</STRONG></DT>
3107 <DD>Similar to <A HREF="#fn:WRegion.set_name"><TT>WRegion.set_name</TT></A> except if the name is already in use,
3108  other instance numbers will not be attempted. The string <TT>p</TT> should
3109  not contain a <TT>&lt;n&gt;</TT> suffix or this function will fail.
3110   
3111 </DD>
3112 </DL>
3113
3114 <P>
3115
3116   <DL>
3117 <DD><A NAME="4487"></A>
3118 <A NAME="4488"></A>
3119 <A NAME="fn:WRegion.set_tagged"></A>  
3120 </DD>
3121 <DT><STRONG>Synopsis:</STRONG></DT>
3122 <DD><TT>bool WRegion.set_tagged(WRegion reg, string how)</TT>
3123
3124 </DD>
3125 <DT><STRONG>Description:</STRONG></DT>
3126 <DD>Change tagging state of <TT>reg</TT> as defined by <TT>how</TT>
3127  (set/unset/toggle). Resulting state is returned.
3128   
3129 </DD>
3130 </DL>
3131
3132 <P>
3133
3134   <DL>
3135 <DD><A NAME="4489"></A>
3136 <A NAME="4490"></A>
3137 <A NAME="fn:WRegion.size_hints"></A>  
3138 </DD>
3139 <DT><STRONG>Synopsis:</STRONG></DT>
3140 <DD><TT>table WRegion.size_hints(WRegion reg)</TT>
3141
3142 </DD>
3143 <DT><STRONG>Description:</STRONG></DT>
3144 <DD>Returns size hints for <TT>reg</TT>. The returned table always contains the
3145  fields <TT>min_?</TT>, <TT>base_?</TT> and sometimes the fields <TT>max_?</TT>,
3146  <TT>base_?</TT> and <TT>inc_?</TT>, where <TT>?</TT>=<TT>w</TT>, <TT>h</TT>.
3147   
3148 </DD>
3149 </DL>
3150
3151 <P>
3152
3153 <H3><A NAME="SECTION007110000000000000000">
3154 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
3155 </H3>
3156
3157 <P>
3158
3159   <DL>
3160 <DD><A NAME="4492"></A>
3161 <A NAME="4493"></A>
3162 <A NAME="fn:WRootWin.current_scr"></A>  
3163 </DD>
3164 <DT><STRONG>Synopsis:</STRONG></DT>
3165 <DD><TT>WScreen WRootWin.current_scr(WRootWin rootwin)</TT>
3166
3167 </DD>
3168 <DT><STRONG>Description:</STRONG></DT>
3169 <DD>Returns previously active screen on root window <TT>rootwin</TT>.
3170   
3171 </DD>
3172 </DL>
3173
3174 <P>
3175
3176 <H3><A NAME="SECTION007111000000000000000">
3177 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
3178 </H3>
3179
3180 <P>
3181
3182   <DL>
3183 <DD><A NAME="4495"></A>
3184 <A NAME="4496"></A>
3185 <A NAME="fn:WScreen.id"></A>  
3186 </DD>
3187 <DT><STRONG>Synopsis:</STRONG></DT>
3188 <DD><TT>integer WScreen.id(WScreen scr)</TT>
3189
3190 </DD>
3191 <DT><STRONG>Description:</STRONG></DT>
3192 <DD>Return the numerical id for screen <TT>scr</TT>.
3193   
3194 </DD>
3195 </DL>
3196
3197 <P>
3198
3199   <DL>
3200 <DD><A NAME="4497"></A>
3201 <A NAME="4498"></A>
3202 <A NAME="fn:WScreen.set_managed_offset"></A>  
3203 </DD>
3204 <DT><STRONG>Synopsis:</STRONG></DT>
3205 <DD><TT>bool WScreen.set_managed_offset(WScreen scr, table offset)</TT>
3206
3207 </DD>
3208 <DT><STRONG>Description:</STRONG></DT>
3209 <DD>Set offset of objects managed by the screen from actual screen geometry.
3210  The table <TT>offset</TT> should contain the entries <TT>x</TT>, <TT>y</TT>, 
3211  <TT>w</TT> and <TT>h</TT> indicating offsets of that component of screen 
3212  geometry.
3213   
3214 </DD>
3215 </DL>
3216
3217 <P>
3218
3219 <H3><A NAME="SECTION007112000000000000000">
3220 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
3221 </H3>
3222
3223 <P>
3224
3225   <DL>
3226 <DD><A NAME="4500"></A>
3227 <A NAME="4501"></A>
3228 <A NAME="fn:WWindow.p_move"></A>  
3229 </DD>
3230 <DT><STRONG>Synopsis:</STRONG></DT>
3231 <DD><TT>void WWindow.p_move(WWindow wwin)</TT>
3232
3233 </DD>
3234 <DT><STRONG>Description:</STRONG></DT>
3235 <DD>Start moving <TT>wwin</TT> with the mouse or other pointing device.
3236  This function should only be used by binding it to <SPAN  CLASS="textit">mpress</SPAN> or
3237  <SPAN  CLASS="textit">mdrag</SPAN> action.
3238   
3239 </DD>
3240 </DL>
3241
3242 <P>
3243
3244   <DL>
3245 <DD><A NAME="4502"></A>
3246 <A NAME="4503"></A>
3247 <A NAME="fn:WWindow.p_resize"></A>  
3248 </DD>
3249 <DT><STRONG>Synopsis:</STRONG></DT>
3250 <DD><TT>void WWindow.p_resize(WWindow wwin)</TT>
3251
3252 </DD>
3253 <DT><STRONG>Description:</STRONG></DT>
3254 <DD>Start resizing <TT>wwin</TT> with the mouse or other pointing device.
3255  This function should only be used by binding it to <SPAN  CLASS="textit">mpress</SPAN> or
3256  <SPAN  CLASS="textit">mdrag</SPAN> action.
3257   
3258 </DD>
3259 </DL>
3260
3261 <P>
3262
3263   <DL>
3264 <DD><A NAME="4504"></A>
3265 <A NAME="4505"></A>
3266 <A NAME="fn:WWindow.xid"></A>  
3267 </DD>
3268 <DT><STRONG>Synopsis:</STRONG></DT>
3269 <DD><TT>double WWindow.xid(WWindow wwin)</TT>
3270
3271 </DD>
3272 <DT><STRONG>Description:</STRONG></DT>
3273 <DD>Return the X window id for <TT>wwin</TT>.
3274   
3275 </DD>
3276 </DL>
3277
3278 <P>
3279
3280 <H3><A NAME="SECTION007113000000000000000">
3281 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
3282 </H3>
3283
3284 <P>
3285
3286   <DL>
3287 <DD><A NAME="4507"></A>
3288 <A NAME="fn:export"></A>  
3289 </DD>
3290 <DT><STRONG>Synopsis:</STRONG></DT>
3291 <DD><TT>export(lib, ...)</TT>
3292
3293 </DD>
3294 <DT><STRONG>Description:</STRONG></DT>
3295 <DD>Export a list of functions from <TT>lib</TT> into global namespace.
3296   
3297 </DD>
3298 </DL>
3299
3300 <P>
3301
3302 <H3><A NAME="SECTION007114000000000000000">
3303 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
3304 </H3>
3305
3306 <P>
3307
3308   <DL>
3309 <DD><A NAME="4509"></A>
3310 <A NAME="4510"></A>
3311 <A NAME="fn:gr.read_config"></A>  
3312 </DD>
3313 <DT><STRONG>Synopsis:</STRONG></DT>
3314 <DD><TT>void gr.read_config()</TT>
3315
3316 </DD>
3317 <DT><STRONG>Description:</STRONG></DT>
3318 <DD>Read drawing engine configuration file <SPAN  CLASS="textit">draw.lua</SPAN>.
3319   
3320 </DD>
3321 </DL>
3322
3323 <P>
3324
3325   <DL>
3326 <DD><A NAME="4511"></A>
3327 <A NAME="4512"></A>
3328 <A NAME="fn:gr.refresh"></A>  
3329 </DD>
3330 <DT><STRONG>Synopsis:</STRONG></DT>
3331 <DD><TT>void gr.refresh()</TT>
3332
3333 </DD>
3334 <DT><STRONG>Description:</STRONG></DT>
3335 <DD>Refresh objects' brushes to update them to use newly loaded style.
3336   
3337 </DD>
3338 </DL>
3339
3340 <P>
3341
3342   <DL>
3343 <DD><A NAME="4513"></A>
3344 <A NAME="4514"></A>
3345 <A NAME="fn:gr.select_engine"></A>  
3346 </DD>
3347 <DT><STRONG>Synopsis:</STRONG></DT>
3348 <DD><TT>bool gr.select_engine(string engine)</TT>
3349
3350 </DD>
3351 <DT><STRONG>Description:</STRONG></DT>
3352 <DD>Future requests for ''brushes'' are to be forwarded to the drawing engine
3353  <TT>engine</TT>. If no engine of such name is known, a module with that name
3354  is attempted to be loaded. This function is only intended to be called from
3355  colour scheme etc. configuration files and can not be used to change the
3356  look of existing objects; for that use <A HREF="#fn:gr.read_config"><TT>gr.read_config</TT></A>.
3357   
3358 </DD>
3359 </DL>
3360
3361 <P>
3362
3363 <H3><A NAME="SECTION007115000000000000000">
3364 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
3365 </H3>
3366
3367 <P>
3368
3369   <DL>
3370 <DD><A NAME="4516"></A>
3371 <A NAME="4517"></A>
3372 <A NAME="fn:string.shell_safe"></A>  
3373 </DD>
3374 <DT><STRONG>Synopsis:</STRONG></DT>
3375 <DD><TT>string.shell_safe(str)</TT>
3376
3377 </DD>
3378 <DT><STRONG>Description:</STRONG></DT>
3379 <DD>Make <TT>str</TT> shell-safe.
3380   
3381 </DD>
3382 </DL>
3383
3384 <P>
3385
3386 <H3><A NAME="SECTION007116000000000000000">
3387 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
3388 </H3>
3389
3390 <P>
3391
3392   <DL>
3393 <DD><A NAME="4519"></A>
3394 <A NAME="4520"></A>
3395 <A NAME="fn:table.append"></A>  
3396 </DD>
3397 <DT><STRONG>Synopsis:</STRONG></DT>
3398 <DD><TT>table.append(t1, t2)</TT>
3399
3400 </DD>
3401 <DT><STRONG>Description:</STRONG></DT>
3402 <DD>Add entries that do not exist in <TT>t1</TT> from <TT>t2</TT> to <TT>t1</TT>.
3403   
3404 </DD>
3405 </DL>
3406
3407 <P>
3408
3409   <DL>
3410 <DD><A NAME="4521"></A>
3411 <A NAME="4522"></A>
3412 <A NAME="fn:table.copy"></A>  
3413 </DD>
3414 <DT><STRONG>Synopsis:</STRONG></DT>
3415 <DD><TT>table.copy(t, deep)</TT>
3416
3417 </DD>
3418 <DT><STRONG>Description:</STRONG></DT>
3419 <DD>Make copy of <TT>table</TT>. If <TT>deep</TT> is unset, shallow one-level
3420  copy is made, otherwise a deep copy is made.
3421   
3422 </DD>
3423 </DL>
3424
3425 <P>
3426
3427   <DL>
3428 <DD><A NAME="4523"></A>
3429 <A NAME="4524"></A>
3430 <A NAME="fn:table.icat"></A>  
3431 </DD>
3432 <DT><STRONG>Synopsis:</STRONG></DT>
3433 <DD><TT>table.icat(t1, t2)</TT>
3434
3435 </DD>
3436 <DT><STRONG>Description:</STRONG></DT>
3437 <DD>Insert all positive integer entries from t2 into t1.
3438   
3439 </DD>
3440 </DL>
3441
3442 <P>
3443
3444   <DL>
3445 <DD><A NAME="4525"></A>
3446 <A NAME="4526"></A>
3447 <A NAME="fn:table.join"></A>  
3448 </DD>
3449 <DT><STRONG>Synopsis:</STRONG></DT>
3450 <DD><TT>table.join(t1, t2)</TT>
3451
3452 </DD>
3453 <DT><STRONG>Description:</STRONG></DT>
3454 <DD>Create a table containing all entries from <TT>t1</TT> and those from
3455  <TT>t2</TT> that are missing from <TT>t1</TT>.
3456   
3457 </DD>
3458 </DL>
3459
3460 <P>
3461
3462   <DL>
3463 <DD><A NAME="4527"></A>
3464 <A NAME="4528"></A>
3465 <A NAME="fn:table.map"></A>  
3466 </DD>
3467 <DT><STRONG>Synopsis:</STRONG></DT>
3468 <DD><TT>table.map(f, t)</TT>
3469
3470 </DD>
3471 <DT><STRONG>Description:</STRONG></DT>
3472 <DD>Map all entries of <TT>t</TT> by <TT>f</TT>.
3473   
3474 </DD>
3475 </DL>
3476
3477 <P>
3478
3479 <H2><A NAME="SECTION00720000000000000000"></A>
3480 <A NAME="sec:tilingref"></A>
3481 <BR>
3482 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Functions defined in <SPAN  CLASS="textit">mod_tiling</SPAN>
3483 </H2>
3484
3485   <DL>
3486 <DD><A NAME="6781"></A>
3487 <A NAME="6782"></A>
3488 <A NAME="fn:mod_tiling.detach"></A>  
3489 </DD>
3490 <DT><STRONG>Synopsis:</STRONG></DT>
3491 <DD><TT>bool mod_tiling.detach(WRegion reg)</TT>
3492
3493 </DD>
3494 <DT><STRONG>Description:</STRONG></DT>
3495 <DD>Detach <TT>reg</TT>, i.e. make it managed by its nearest ancestor
3496  WGroup, framed if <TT>reg</TT> is not itself WFrame.
3497   
3498 </DD>
3499 </DL>
3500
3501 <P>
3502
3503   <DL>
3504 <DD><A NAME="6783"></A>
3505 <A NAME="6784"></A>
3506 <A NAME="fn:mod_tiling.get"></A>  
3507 </DD>
3508 <DT><STRONG>Synopsis:</STRONG></DT>
3509 <DD><TT>table mod_tiling.get()</TT>
3510
3511 </DD>
3512 <DT><STRONG>Description:</STRONG></DT>
3513 <DD>Get parameters. For details see <A HREF="#fn:mod_tiling.set"><TT>mod_tiling.set</TT></A>.
3514   
3515 </DD>
3516 </DL>
3517
3518 <P>
3519
3520   <DL>
3521 <DD><A NAME="6785"></A>
3522 <A NAME="6786"></A>
3523 <A NAME="fn:mod_tiling.mkbottom"></A>  
3524 </DD>
3525 <DT><STRONG>Synopsis:</STRONG></DT>
3526 <DD><TT>bool mod_tiling.mkbottom(WRegion reg)</TT>
3527
3528 </DD>
3529 <DT><STRONG>Description:</STRONG></DT>
3530 <DD>Create a new WTiling 'bottom' for the group of <TT>reg</TT>,
3531  consisting of <TT>reg</TT>.
3532   
3533 </DD>
3534 </DL>
3535
3536 <P>
3537
3538   <DL>
3539 <DD><A NAME="6787"></A>
3540 <A NAME="6788"></A>
3541 <A NAME="fn:mod_tiling.set"></A>  
3542 </DD>
3543 <DT><STRONG>Synopsis:</STRONG></DT>
3544 <DD><TT>void mod_tiling.set(table tab)</TT>
3545
3546 </DD>
3547 <DT><STRONG>Description:</STRONG></DT>
3548 <DD>Set parameters. Currently only <TT>raise_delay</TT> (in milliseconds)
3549  is supported.
3550   
3551 </DD>
3552 </DL>
3553
3554 <P>
3555
3556 <H3><A NAME="SECTION00721000000000000000">
3557 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> WSplit functions</A>
3558 </H3>
3559
3560 <P>
3561
3562   <DL>
3563 <DD><A NAME="6790"></A>
3564 <A NAME="6791"></A>
3565 <A NAME="fn:WSplit.geom"></A>  
3566 </DD>
3567 <DT><STRONG>Synopsis:</STRONG></DT>
3568 <DD><TT>table WSplit.geom(WSplit split)</TT>
3569
3570 </DD>
3571 <DT><STRONG>Description:</STRONG></DT>
3572 <DD>Returns the area of workspace used by the regions under <TT>split</TT>.
3573   
3574 </DD>
3575 </DL>
3576
3577 <P>
3578
3579   <DL>
3580 <DD><A NAME="6792"></A>
3581 <A NAME="6793"></A>
3582 <A NAME="fn:WSplit.parent"></A>  
3583 </DD>
3584 <DT><STRONG>Synopsis:</STRONG></DT>
3585 <DD><TT>WSplitInner WSplit.parent(WSplit split)</TT>
3586
3587 </DD>
3588 <DT><STRONG>Description:</STRONG></DT>
3589 <DD>Return parent split for <TT>split</TT>.
3590   
3591 </DD>
3592 </DL>
3593
3594 <P>
3595
3596   <DL>
3597 <DD><A NAME="6794"></A>
3598 <A NAME="6795"></A>
3599 <A NAME="fn:WSplit.rqgeom"></A>  
3600 </DD>
3601 <DT><STRONG>Synopsis:</STRONG></DT>
3602 <DD><TT>table WSplit.rqgeom(WSplit node, table g)</TT>
3603
3604 </DD>
3605 <DT><STRONG>Description:</STRONG></DT>
3606 <DD>Attempt to resize and/or move the split tree starting at <TT>node</TT>.
3607  Behaviour and the <TT>g</TT> parameter are as for <A HREF="#fn:WRegion.rqgeom"><TT>WRegion.rqgeom</TT></A> 
3608  operating on <TT>node</TT> (if it were a WRegion).
3609   
3610 </DD>
3611 </DL>
3612
3613 <P>
3614
3615   <DL>
3616 <DD><A NAME="6796"></A>
3617 <A NAME="6797"></A>
3618 <A NAME="fn:WSplit.transpose"></A>  
3619 </DD>
3620 <DT><STRONG>Synopsis:</STRONG></DT>
3621 <DD><TT>void WSplit.transpose(WSplit node)</TT>
3622
3623 </DD>
3624 <DT><STRONG>Description:</STRONG></DT>
3625 <DD>Transpose contents of <TT>node</TT>.
3626   
3627 </DD>
3628 </DL>
3629
3630 <P>
3631
3632 <H3><A NAME="SECTION00722000000000000000">
3633 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> WSplitInner functions</A>
3634 </H3>
3635
3636 <P>
3637
3638   <DL>
3639 <DD><A NAME="6799"></A>
3640 <A NAME="6800"></A>
3641 <A NAME="fn:WSplitInner.current"></A>  
3642 </DD>
3643 <DT><STRONG>Synopsis:</STRONG></DT>
3644 <DD><TT>WSplit WSplitInner.current(WSplitInner node)</TT>
3645
3646 </DD>
3647 <DT><STRONG>Description:</STRONG></DT>
3648 <DD>Returns the most previously active child node of <TT>split</TT>.
3649   
3650 </DD>
3651 </DL>
3652
3653 <P>
3654
3655 <H3><A NAME="SECTION00723000000000000000">
3656 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> WSplitRegion functions</A>
3657 </H3>
3658
3659 <P>
3660
3661   <DL>
3662 <DD><A NAME="6802"></A>
3663 <A NAME="6803"></A>
3664 <A NAME="fn:WSplitRegion.reg"></A>  
3665 </DD>
3666 <DT><STRONG>Synopsis:</STRONG></DT>
3667 <DD><TT>WRegion WSplitRegion.reg(WSplitRegion node)</TT>
3668
3669 </DD>
3670 <DT><STRONG>Description:</STRONG></DT>
3671 <DD>Returns the region contained in <TT>node</TT>.
3672   
3673 </DD>
3674 </DL>
3675
3676 <P>
3677
3678 <H3><A NAME="SECTION00724000000000000000">
3679 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> WSplitSplit functions</A>
3680 </H3>
3681
3682 <P>
3683
3684   <DL>
3685 <DD><A NAME="6805"></A>
3686 <A NAME="6806"></A>
3687 <A NAME="fn:WSplitSplit.br"></A>  
3688 </DD>
3689 <DT><STRONG>Synopsis:</STRONG></DT>
3690 <DD><TT>WSplit WSplitSplit.br(WSplitSplit split)</TT>
3691
3692 </DD>
3693 <DT><STRONG>Description:</STRONG></DT>
3694 <DD>Returns the bottom or right child node of <TT>split</TT> depending
3695  on the direction of the split.
3696   
3697 </DD>
3698 </DL>
3699
3700 <P>
3701
3702   <DL>
3703 <DD><A NAME="6807"></A>
3704 <A NAME="6808"></A>
3705 <A NAME="fn:WSplitSplit.dir"></A>  
3706 </DD>
3707 <DT><STRONG>Synopsis:</STRONG></DT>
3708 <DD><TT>string WSplitSplit.dir(WSplitSplit split)</TT>
3709
3710 </DD>
3711 <DT><STRONG>Description:</STRONG></DT>
3712 <DD>Returns the direction of <TT>split</TT>; either ''vertical'' or
3713  ''horizontal''.
3714   
3715 </DD>
3716 </DL>
3717
3718 <P>
3719
3720   <DL>
3721 <DD><A NAME="6809"></A>
3722 <A NAME="6810"></A>
3723 <A NAME="fn:WSplitSplit.flip"></A>  
3724 </DD>
3725 <DT><STRONG>Synopsis:</STRONG></DT>
3726 <DD><TT>void WSplitSplit.flip(WSplitSplit split)</TT>
3727
3728 </DD>
3729 <DT><STRONG>Description:</STRONG></DT>
3730 <DD>Flip contents of <TT>node</TT>.
3731   
3732 </DD>
3733 </DL>
3734
3735 <P>
3736
3737   <DL>
3738 <DD><A NAME="6811"></A>
3739 <A NAME="6812"></A>
3740 <A NAME="fn:WSplitSplit.tl"></A>  
3741 </DD>
3742 <DT><STRONG>Synopsis:</STRONG></DT>
3743 <DD><TT>WSplit WSplitSplit.tl(WSplitSplit split)</TT>
3744
3745 </DD>
3746 <DT><STRONG>Description:</STRONG></DT>
3747 <DD>Returns the top or left child node of <TT>split</TT> depending
3748  on the direction of the split.
3749   
3750 </DD>
3751 </DL>
3752
3753 <P>
3754
3755 <H3><A NAME="SECTION00725000000000000000">
3756 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> WTiling functions</A>
3757 </H3>
3758
3759 <P>
3760
3761   <DL>
3762 <DD><A NAME="6814"></A>
3763 <A NAME="6815"></A>
3764 <A NAME="fn:WTiling.flip_at"></A>  
3765 </DD>
3766 <DT><STRONG>Synopsis:</STRONG></DT>
3767 <DD><TT>bool WTiling.flip_at(WTiling ws, WRegion reg)</TT>
3768
3769 </DD>
3770 <DT><STRONG>Description:</STRONG></DT>
3771 <DD>Flip <TT>ws</TT> at <TT>reg</TT> or root if nil.
3772   
3773 </DD>
3774 </DL>
3775
3776 <P>
3777
3778   <DL>
3779 <DD><A NAME="6816"></A>
3780 <A NAME="6817"></A>
3781 <A NAME="fn:WTiling.transpose_at"></A>  
3782 </DD>
3783 <DT><STRONG>Synopsis:</STRONG></DT>
3784 <DD><TT>bool WTiling.transpose_at(WTiling ws, WRegion reg)</TT>
3785
3786 </DD>
3787 <DT><STRONG>Description:</STRONG></DT>
3788 <DD>Transpose <TT>ws</TT> at <TT>reg</TT> or root if nil.
3789   
3790 </DD>
3791 </DL>
3792
3793 <P>
3794
3795   <DL>
3796 <DD><A NAME="6818"></A>
3797 <A NAME="6819"></A>
3798 <A NAME="fn:WTiling.farthest"></A>  
3799 </DD>
3800 <DT><STRONG>Synopsis:</STRONG></DT>
3801 <DD><TT>WRegion WTiling.farthest(WTiling ws, string dirstr, bool any)</TT>
3802
3803 </DD>
3804 <DT><STRONG>Description:</STRONG></DT>
3805 <DD>Return the most previously active region on <TT>ws</TT> with no
3806  other regions next to it in  direction <TT>dirstr</TT> 
3807  (left/right/up/down). If <TT>any</TT> is not set, the status 
3808  display is not considered.
3809   
3810 </DD>
3811 </DL>
3812
3813 <P>
3814
3815   <DL>
3816 <DD><A NAME="6820"></A>
3817 <A NAME="6821"></A>
3818 <A NAME="fn:WTiling.managed_list"></A>  
3819 </DD>
3820 <DT><STRONG>Synopsis:</STRONG></DT>
3821 <DD><TT>table WTiling.managed_list(WTiling ws)</TT>
3822
3823 </DD>
3824 <DT><STRONG>Description:</STRONG></DT>
3825 <DD>Returns a list of regions managed by the workspace (frames, mostly).
3826   
3827 </DD>
3828 </DL>
3829
3830 <P>
3831
3832   <DL>
3833 <DD><A NAME="6822"></A>
3834 <A NAME="6823"></A>
3835 <A NAME="fn:WTiling.nextto"></A>  
3836 </DD>
3837 <DT><STRONG>Synopsis:</STRONG></DT>
3838 <DD><TT>WRegion WTiling.nextto(WTiling ws, WRegion reg, string dirstr, bool any)</TT>
3839
3840 </DD>
3841 <DT><STRONG>Description:</STRONG></DT>
3842 <DD>Return the most previously active region next to <TT>reg</TT> in
3843  direction <TT>dirstr</TT> (left/right/up/down). The region <TT>reg</TT>
3844  must be managed by <TT>ws</TT>. If <TT>any</TT> is not set, the status display
3845  is not considered.
3846   
3847 </DD>
3848 </DL>
3849
3850 <P>
3851
3852   <DL>
3853 <DD><A NAME="6824"></A>
3854 <A NAME="6825"></A>
3855 <A NAME="fn:WTiling.node_of"></A>  
3856 </DD>
3857 <DT><STRONG>Synopsis:</STRONG></DT>
3858 <DD><TT>WSplitRegion WTiling.node_of(WTiling ws, WRegion reg)</TT>
3859
3860 </DD>
3861 <DT><STRONG>Description:</STRONG></DT>
3862 <DD>For region <TT>reg</TT> managed by <TT>ws</TT> return the WSplit
3863  a leaf of which <TT>reg</TT> is.
3864   
3865 </DD>
3866 </DL>
3867
3868 <P>
3869
3870   <DL>
3871 <DD><A NAME="6826"></A>
3872 <A NAME="6827"></A>
3873 <A NAME="fn:WTiling.set_floating_at"></A>  
3874 </DD>
3875 <DT><STRONG>Synopsis:</STRONG></DT>
3876 <DD><TT>bool WTiling.set_floating_at(WTiling ws, WRegion reg, string how, string dirstr)</TT>
3877
3878 </DD>
3879 <DT><STRONG>Description:</STRONG></DT>
3880 <DD>Toggle floating of the sides of a split containin <TT>reg</TT> as indicated 
3881  by the parameters <TT>how</TT> (set/unset/toggle) and <TT>dirstr</TT>
3882  (left/right/up/down/any). The new status is returned (and <TT>false</TT>
3883  also on error).
3884   
3885 </DD>
3886 </DL>
3887
3888 <P>
3889
3890   <DL>
3891 <DD><A NAME="6828"></A>
3892 <A NAME="6829"></A>
3893 <A NAME="fn:WTiling.set_floating"></A>  
3894 </DD>
3895 <DT><STRONG>Synopsis:</STRONG></DT>
3896 <DD><TT>WSplitSplit WTiling.set_floating(WTiling ws, WSplitSplit split, string how)</TT>
3897
3898 </DD>
3899 <DT><STRONG>Description:</STRONG></DT>
3900 <DD>Toggle floating of a split's sides at <TT>split</TT> as indicated by the 
3901  parameter <TT>how</TT> (set/unset/toggle). A split of the appropriate is 
3902  returned, if there was a change.
3903   
3904 </DD>
3905 </DL>
3906
3907 <P>
3908
3909   <DL>
3910 <DD><A NAME="6830"></A>
3911 <A NAME="6831"></A>
3912 <A NAME="fn:WTiling.split"></A>  
3913 </DD>
3914 <DT><STRONG>Synopsis:</STRONG></DT>
3915 <DD><TT>WFrame WTiling.split(WTiling ws, WSplit node, string dirstr)</TT>
3916
3917 </DD>
3918 <DT><STRONG>Description:</STRONG></DT>
3919 <DD>Create a new frame on <TT>ws</TT> above/below/left of/right of
3920  <TT>node</TT> as indicated by <TT>dirstr</TT>. If <TT>dirstr</TT> is 
3921  prefixed with ''floating:'' a floating split is created.
3922   
3923 </DD>
3924 </DL>
3925
3926 <P>
3927
3928   <DL>
3929 <DD><A NAME="6832"></A>
3930 <A NAME="6833"></A>
3931 <A NAME="fn:WTiling.split_at"></A>  
3932 </DD>
3933 <DT><STRONG>Synopsis:</STRONG></DT>
3934 <DD><TT>WFrame WTiling.split_at(WTiling ws, WFrame frame, string dirstr, bool attach_current)</TT>
3935
3936 </DD>
3937 <DT><STRONG>Description:</STRONG></DT>
3938 <DD>Split <TT>frame</TT> creating a new frame to direction <TT>dirstr</TT>
3939  (one of ''left'', ''right'', ''top'' or ''bottom'') of <TT>frame</TT>.
3940  If <TT>attach_current</TT> is set, the region currently displayed in
3941  <TT>frame</TT>, if any, is moved to thenew frame.
3942  If <TT>dirstr</TT> is prefixed with ''floating:'' a floating split is
3943  created.
3944   
3945 </DD>
3946 </DL>
3947
3948 <P>
3949
3950   <DL>
3951 <DD><A NAME="6834"></A>
3952 <A NAME="6835"></A>
3953 <A NAME="fn:WTiling.split_top"></A>  
3954 </DD>
3955 <DT><STRONG>Synopsis:</STRONG></DT>
3956 <DD><TT>WFrame WTiling.split_top(WTiling ws, string dirstr)</TT>
3957
3958 </DD>
3959 <DT><STRONG>Description:</STRONG></DT>
3960 <DD>Same as <A HREF="#fn:WTiling.split"><TT>WTiling.split</TT></A> at the root of the split tree.
3961   
3962 </DD>
3963 </DL>
3964
3965 <P>
3966
3967   <DL>
3968 <DD><A NAME="6836"></A>
3969 <A NAME="6837"></A>
3970 <A NAME="fn:WTiling.split_tree"></A>  
3971 </DD>
3972 <DT><STRONG>Synopsis:</STRONG></DT>
3973 <DD><TT>WSplit WTiling.split_tree(WTiling ws)</TT>
3974
3975 </DD>
3976 <DT><STRONG>Description:</STRONG></DT>
3977 <DD>Returns the root of the split tree.
3978   
3979 </DD>
3980 </DL>
3981
3982 <P>
3983
3984   <DL>
3985 <DD><A NAME="6838"></A>
3986 <A NAME="6839"></A>
3987 <A NAME="fn:WTiling.unsplit_at"></A>  
3988 </DD>
3989 <DT><STRONG>Synopsis:</STRONG></DT>
3990 <DD><TT>bool WTiling.unsplit_at(WTiling ws, WFrame frame)</TT>
3991
3992 </DD>
3993 <DT><STRONG>Description:</STRONG></DT>
3994 <DD>Try to relocate regions managed by <TT>frame</TT> to another frame
3995  and, if possible, destroy the frame.
3996   
3997 </DD>
3998 </DL>
3999
4000 <P>
4001
4002 <H2><A NAME="SECTION00730000000000000000"></A>
4003 <A NAME="sec:queryref"></A>
4004 <BR>
4005 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Functions defined in <SPAN  CLASS="textit">mod_query</SPAN>
4006 </H2>
4007
4008   <DL>
4009 <DD><A NAME="7832"></A>
4010 <A NAME="7833"></A>
4011 <A NAME="fn:mod_query.defcmd"></A>  
4012 </DD>
4013 <DT><STRONG>Synopsis:</STRONG></DT>
4014 <DD><TT>mod_query.defcmd(cmd, fn)</TT>
4015
4016 </DD>
4017 <DT><STRONG>Description:</STRONG></DT>
4018 <DD>Define a command override for the <A HREF="#fn:mod_query.query_exec"><TT>query_exec</TT></A> query.
4019   
4020 </DD>
4021 </DL>
4022
4023 <P>
4024
4025   <DL>
4026 <DD><A NAME="7834"></A>
4027 <A NAME="7835"></A>
4028 <A NAME="fn:mod_query.get"></A>  
4029 </DD>
4030 <DT><STRONG>Synopsis:</STRONG></DT>
4031 <DD><TT>table mod_query.get()</TT>
4032
4033 </DD>
4034 <DT><STRONG>Description:</STRONG></DT>
4035 <DD>Get module configuration. For more information see
4036  <A HREF="#fn:mod_query.set"><TT>mod_query.set</TT></A>.
4037   
4038 </DD>
4039 </DL>
4040
4041 <P>
4042
4043   <DL>
4044 <DD><A NAME="7836"></A>
4045 <A NAME="7837"></A>
4046 <A NAME="fn:mod_query.history_clear"></A>  
4047 </DD>
4048 <DT><STRONG>Synopsis:</STRONG></DT>
4049 <DD><TT>void mod_query.history_clear()</TT>
4050
4051 </DD>
4052 <DT><STRONG>Description:</STRONG></DT>
4053 <DD>Clear line editor history.
4054   
4055 </DD>
4056 </DL>
4057
4058 <P>
4059
4060   <DL>
4061 <DD><A NAME="7838"></A>
4062 <A NAME="7839"></A>
4063 <A NAME="fn:mod_query.history_get"></A>  
4064 </DD>
4065 <DT><STRONG>Synopsis:</STRONG></DT>
4066 <DD><TT>string mod_query.history_get(integer n)</TT>
4067
4068 </DD>
4069 <DT><STRONG>Description:</STRONG></DT>
4070 <DD>Get entry at index <TT>n</TT> in line editor history, 0 being the latest.
4071   
4072 </DD>
4073 </DL>
4074
4075 <P>
4076
4077   <DL>
4078 <DD><A NAME="7840"></A>
4079 <A NAME="7841"></A>
4080 <A NAME="fn:mod_query.history_push"></A>  
4081 </DD>
4082 <DT><STRONG>Synopsis:</STRONG></DT>
4083 <DD><TT>bool mod_query.history_push(string str)</TT>
4084
4085 </DD>
4086 <DT><STRONG>Description:</STRONG></DT>
4087 <DD>Push an entry into line editor history.
4088   
4089 </DD>
4090 </DL>
4091
4092 <P>
4093
4094   <DL>
4095 <DD><A NAME="7842"></A>
4096 <A NAME="7843"></A>
4097 <A NAME="fn:mod_query.history_search"></A>  
4098 </DD>
4099 <DT><STRONG>Synopsis:</STRONG></DT>
4100 <DD><TT>integer mod_query.history_search(string s, integer from, bool bwd)</TT>
4101
4102 </DD>
4103 <DT><STRONG>Description:</STRONG></DT>
4104 <DD>Try to find matching history entry. Returns -1 if none was
4105  found. The parameter <TT>from</TT> specifies where to start 
4106  searching from, and <TT>bwd</TT> causes backward search from
4107  that point.
4108   
4109 </DD>
4110 </DL>
4111
4112 <P>
4113
4114   <DL>
4115 <DD><A NAME="7844"></A>
4116 <A NAME="7845"></A>
4117 <A NAME="fn:mod_query.history_table"></A>  
4118 </DD>
4119 <DT><STRONG>Synopsis:</STRONG></DT>
4120 <DD><TT>table mod_query.history_table()</TT>
4121
4122 </DD>
4123 <DT><STRONG>Description:</STRONG></DT>
4124 <DD>Return table of history entries.
4125   
4126 </DD>
4127 </DL>
4128
4129 <P>
4130
4131   <DL>
4132 <DD><A NAME="7846"></A>
4133 <A NAME="7847"></A>
4134 <A NAME="fn:mod_query.message"></A>  
4135 </DD>
4136 <DT><STRONG>Synopsis:</STRONG></DT>
4137 <DD><TT>WMessage mod_query.message(WMPlex mplex, string p)</TT>
4138
4139 </DD>
4140 <DT><STRONG>Description:</STRONG></DT>
4141 <DD>Display a message in the <TT>mplex</TT>.
4142   
4143 </DD>
4144 </DL>
4145
4146 <P>
4147
4148   <DL>
4149 <DD><A NAME="7848"></A>
4150 <A NAME="7849"></A>
4151 <A NAME="fn:mod_query.set"></A>  
4152 </DD>
4153 <DT><STRONG>Synopsis:</STRONG></DT>
4154 <DD><TT>void mod_query.set(table tab)</TT>
4155
4156 </DD>
4157 <DT><STRONG>Description:</STRONG></DT>
4158 <DD>Set module configuration. The following are supported:
4159
4160 <P>
4161 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
4162 <TR><TD ALIGN="LEFT">Field</TD>
4163 <TD ALIGN="LEFT">Description</TD>
4164 </TR>
4165 <TR><TD ALIGN="LEFT"><TT>autoshowcompl</TT></TD>
4166 <TD ALIGN="LEFT">(boolean) Is auto-show-completions enabled?
4167       (default: true).</TD>
4168 </TR>
4169 <TR><TD ALIGN="LEFT"><TT>autoshowcompl_delay</TT></TD>
4170 <TD ALIGN="LEFT">(integer) auto-show-completions delay
4171       in milliseconds (default: 250).</TD>
4172 </TR>
4173 </TABLE>
4174   
4175 </DD>
4176 </DL>
4177
4178 <P>
4179
4180   <DL>
4181 <DD><A NAME="7850"></A>
4182 <A NAME="7851"></A>
4183 <A NAME="fn:mod_query.warn"></A>  
4184 </DD>
4185 <DT><STRONG>Synopsis:</STRONG></DT>
4186 <DD><TT>WMessage mod_query.warn(WMPlex mplex, string p)</TT>
4187
4188 </DD>
4189 <DT><STRONG>Description:</STRONG></DT>
4190 <DD>Display an error message box in the multiplexer <TT>mplex</TT>.
4191   
4192 </DD>
4193 </DL>
4194
4195 <P>
4196
4197   <DL>
4198 <DD><A NAME="7852"></A>
4199 <A NAME="7853"></A>
4200 <A NAME="fn:mod_query.popen_completions"></A>  
4201 </DD>
4202 <DT><STRONG>Synopsis:</STRONG></DT>
4203 <DD><TT>mod_query.popen_completions(cp, cmd, fn, reshnd)</TT>
4204
4205 </DD>
4206 <DT><STRONG>Description:</STRONG></DT>
4207 <DD>This function can be used to read completions from an external source.
4208  The parameter <TT>cp</TT> is the completion proxy to be used,
4209  and the string <TT>cmd</TT> the shell command to be executed. To its stdout, 
4210  the command should on the first line write the <TT>common_beg</TT> 
4211  parameter of <A HREF="#fn:WComplProxy.set_completions"><TT>WComplProxy.set_completions</TT></A> (which <TT>fn</TT> maybe used
4212  to override) and a single actual completion on each of the successive lines.
4213  The function <TT>reshnd</TT> may be used to override a result table
4214  building routine.
4215   
4216 </DD>
4217 </DL>
4218
4219 <P>
4220
4221   <DL>
4222 <DD><A NAME="7854"></A>
4223 <A NAME="7855"></A>
4224 <A NAME="fn:mod_query.query"></A>  
4225 </DD>
4226 <DT><STRONG>Synopsis:</STRONG></DT>
4227 <DD><TT>mod_query.query(mplex, prompt, initvalue, handler, completor,
4228                          context)</TT>
4229
4230 </DD>
4231 <DT><STRONG>Description:</STRONG></DT>
4232 <DD>Low-level query routine. <TT>mplex</TT> is the WMPlex to display
4233  the query in, <TT>prompt</TT> the prompt string, and <TT>initvalue</TT>
4234  the initial contents of the query box. <TT>handler</TT> is a function
4235  that receives (<TT>mplex</TT>, result string) as parameter when the
4236  query has been succesfully completed, <TT>completor</TT> the completor
4237  routine which receives a (<TT>cp</TT>, <TT>str</TT>, <TT>point</TT>) as parameters.
4238  The parameter <TT>str</TT> is the string to be completed and <TT>point</TT>
4239  cursor's location within it. Completions should be eventually,
4240  possibly asynchronously, set with <A HREF="#fn:WComplProxy.set_completions"><TT>WComplProxy.set_completions</TT></A> 
4241  on <TT>cp</TT>.
4242   
4243 </DD>
4244 </DL>
4245
4246 <P>
4247
4248   <DL>
4249 <DD><A NAME="7856"></A>
4250 <A NAME="7857"></A>
4251 <A NAME="fn:mod_query.query_attachclient"></A>  
4252 </DD>
4253 <DT><STRONG>Synopsis:</STRONG></DT>
4254 <DD><TT>mod_query.query_attachclient(mplex)</TT>
4255
4256 </DD>
4257 <DT><STRONG>Description:</STRONG></DT>
4258 <DD>This query asks for the name of a client window and switches
4259  focus to the one entered. It uses the completion function
4260  <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
4261   
4262 </DD>
4263 </DL>
4264
4265 <P>
4266
4267   <DL>
4268 <DD><A NAME="7858"></A>
4269 <A NAME="7859"></A>
4270 <A NAME="fn:mod_query.query_editfile"></A>  
4271 </DD>
4272 <DT><STRONG>Synopsis:</STRONG></DT>
4273 <DD><TT>mod_query.query_editfile(mplex, script, prompt)</TT>
4274
4275 </DD>
4276 <DT><STRONG>Description:</STRONG></DT>
4277 <DD>Asks for a file to be edited. This script uses 
4278  <TT>run-mailcap -mode=edit</TT> by default, but you may provide an
4279  alternative script to use. The default prompt is "Edit file:" (translated).
4280   
4281 </DD>
4282 </DL>
4283
4284 <P>
4285
4286   <DL>
4287 <DD><A NAME="7860"></A>
4288 <A NAME="7861"></A>
4289 <A NAME="fn:mod_query.query_exec"></A>  
4290 </DD>
4291 <DT><STRONG>Synopsis:</STRONG></DT>
4292 <DD><TT>mod_query.query_exec(mplex)</TT>
4293
4294 </DD>
4295 <DT><STRONG>Description:</STRONG></DT>
4296 <DD>This function asks for a command to execute with <SPAN  CLASS="textit">/bin/sh</SPAN>.
4297  If the command is prefixed with a colon (':'), the command will
4298  be run in an XTerm (or other terminal emulator) using the script
4299  <SPAN  CLASS="textit">ion-runinxterm</SPAN>. Two colons ('::') will ask you to press 
4300  enter after the command has finished.
4301   
4302 </DD>
4303 </DL>
4304
4305 <P>
4306
4307   <DL>
4308 <DD><A NAME="7862"></A>
4309 <A NAME="7863"></A>
4310 <A NAME="fn:mod_query.query_gotoclient"></A>  
4311 </DD>
4312 <DT><STRONG>Synopsis:</STRONG></DT>
4313 <DD><TT>mod_query.query_gotoclient(mplex)</TT>
4314
4315 </DD>
4316 <DT><STRONG>Description:</STRONG></DT>
4317 <DD>This query asks for the name of a client window and attaches
4318  it to the frame the query was opened in. It uses the completion
4319  function <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
4320   
4321 </DD>
4322 </DL>
4323
4324 <P>
4325
4326   <DL>
4327 <DD><A NAME="7864"></A>
4328 <A NAME="7865"></A>
4329 <A NAME="fn:mod_query.query_lua"></A>  
4330 </DD>
4331 <DT><STRONG>Synopsis:</STRONG></DT>
4332 <DD><TT>mod_query.query_lua(mplex)</TT>
4333
4334 </DD>
4335 <DT><STRONG>Description:</STRONG></DT>
4336 <DD>This query asks for Lua code to execute. It sets the variable '<TT>_</TT>'
4337  in the local environment of the string to point to the mplex where the
4338  query was created. It also sets the table <TT>arg</TT> in the local
4339  environment to <TT>{_, _:current()}</TT>.
4340   
4341 </DD>
4342 </DL>
4343
4344 <P>
4345
4346   <DL>
4347 <DD><A NAME="7866"></A>
4348 <A NAME="7867"></A>
4349 <A NAME="fn:mod_query.query_man"></A>  
4350 </DD>
4351 <DT><STRONG>Synopsis:</STRONG></DT>
4352 <DD><TT>mod_query.query_man(mplex, prog)</TT>
4353
4354 </DD>
4355 <DT><STRONG>Description:</STRONG></DT>
4356 <DD>This query asks for a manual page to display. By default it runs the
4357  <TT>man</TT> command in an <TT>xterm</TT> using <TT>ion-runinxterm</TT>,
4358  but it is possible to pass another program as the <TT>prog</TT> argument.
4359   
4360 </DD>
4361 </DL>
4362
4363 <P>
4364
4365   <DL>
4366 <DD><A NAME="7868"></A>
4367 <A NAME="7869"></A>
4368 <A NAME="fn:mod_query.query_menu"></A>  
4369 </DD>
4370 <DT><STRONG>Synopsis:</STRONG></DT>
4371 <DD><TT>mod_query.query_menu(mplex, themenu, prompt)</TT>
4372
4373 </DD>
4374 <DT><STRONG>Description:</STRONG></DT>
4375 <DD>This query can be used to create a query of a defined menu.
4376   
4377 </DD>
4378 </DL>
4379
4380 <P>
4381
4382   <DL>
4383 <DD><A NAME="7870"></A>
4384 <A NAME="7871"></A>
4385 <A NAME="fn:mod_query.query_renameframe"></A>  
4386 </DD>
4387 <DT><STRONG>Synopsis:</STRONG></DT>
4388 <DD><TT>mod_query.query_renameframe(frame)</TT>
4389
4390 </DD>
4391 <DT><STRONG>Description:</STRONG></DT>
4392 <DD>This function asks for a name new for the frame where the query
4393  was created.
4394   
4395 </DD>
4396 </DL>
4397
4398 <P>
4399
4400   <DL>
4401 <DD><A NAME="7872"></A>
4402 <A NAME="7873"></A>
4403 <A NAME="fn:mod_query.query_renameworkspace"></A>  
4404 </DD>
4405 <DT><STRONG>Synopsis:</STRONG></DT>
4406 <DD><TT>mod_query.query_renameworkspace(mplex)</TT>
4407
4408 </DD>
4409 <DT><STRONG>Description:</STRONG></DT>
4410 <DD>This function asks for a name new for the workspace on which the
4411  query resides.
4412   
4413 </DD>
4414 </DL>
4415
4416 <P>
4417
4418   <DL>
4419 <DD><A NAME="7874"></A>
4420 <A NAME="7875"></A>
4421 <A NAME="fn:mod_query.query_restart"></A>  
4422 </DD>
4423 <DT><STRONG>Synopsis:</STRONG></DT>
4424 <DD><TT>mod_query.query_restart(mplex)</TT>
4425
4426 </DD>
4427 <DT><STRONG>Description:</STRONG></DT>
4428 <DD>This query asks whether the user wants restart Ioncore.
4429  If the answer is 'y', 'Y' or 'yes', so will happen.
4430   
4431 </DD>
4432 </DL>
4433
4434 <P>
4435
4436   <DL>
4437 <DD><A NAME="7876"></A>
4438 <A NAME="7877"></A>
4439 <A NAME="fn:mod_query.query_runfile"></A>  
4440 </DD>
4441 <DT><STRONG>Synopsis:</STRONG></DT>
4442 <DD><TT>mod_query.query_runfile(mplex, script, prompt)</TT>
4443
4444 </DD>
4445 <DT><STRONG>Description:</STRONG></DT>
4446 <DD>Asks for a file to be viewed. This script uses 
4447  <TT>run-mailcap -action=view</TT> by default, but you may provide an
4448  alternative script to use. The default prompt is "View file:" (translated).
4449   
4450 </DD>
4451 </DL>
4452
4453 <P>
4454
4455   <DL>
4456 <DD><A NAME="7878"></A>
4457 <A NAME="7879"></A>
4458 <A NAME="fn:mod_query.query_shutdown"></A>  
4459 </DD>
4460 <DT><STRONG>Synopsis:</STRONG></DT>
4461 <DD><TT>mod_query.query_shutdown(mplex)</TT>
4462
4463 </DD>
4464 <DT><STRONG>Description:</STRONG></DT>
4465 <DD>This query asks whether the user wants to exit Ion (no session manager)
4466  or close the session (running under a session manager that supports such
4467  requests). If the answer is 'y', 'Y' or 'yes', so will happen.
4468   
4469 </DD>
4470 </DL>
4471
4472 <P>
4473
4474   <DL>
4475 <DD><A NAME="7880"></A>
4476 <A NAME="7881"></A>
4477 <A NAME="fn:mod_query.query_ssh"></A>  
4478 </DD>
4479 <DT><STRONG>Synopsis:</STRONG></DT>
4480 <DD><TT>mod_query.query_ssh(mplex, ssh)</TT>
4481
4482 </DD>
4483 <DT><STRONG>Description:</STRONG></DT>
4484 <DD>This query asks for a host to connect to with SSH. 
4485  Hosts to tab-complete are read from <SPAN  CLASS="textit">~/.ssh/known_hosts</SPAN>.
4486   
4487 </DD>
4488 </DL>
4489
4490 <P>
4491
4492   <DL>
4493 <DD><A NAME="7883"></A>
4494 <A NAME="7884"></A>
4495 <A NAME="fn:mod_query.query_workspace"></A>  
4496 </DD>
4497 <DT><STRONG>Synopsis:</STRONG></DT>
4498 <DD><TT>mod_query.query_workspace(mplex)</TT>
4499
4500 </DD>
4501 <DT><STRONG>Description:</STRONG></DT>
4502 <DD>This query asks for the name of a workspace. If a workspace
4503  (an object inheriting WGroupWS) with such a name exists,
4504  it will be switched to. Otherwise a new workspace with the
4505  entered name will be created and the user will be queried for
4506  the type of the workspace.
4507   
4508 </DD>
4509 </DL>
4510
4511 <P>
4512
4513   <DL>
4514 <DD><A NAME="7885"></A>
4515 <A NAME="7886"></A>
4516 <A NAME="fn:mod_query.query_yesno"></A>  
4517 </DD>
4518 <DT><STRONG>Synopsis:</STRONG></DT>
4519 <DD><TT>mod_query.query_yesno(mplex, prompt, handler)</TT>
4520
4521 </DD>
4522 <DT><STRONG>Description:</STRONG></DT>
4523 <DD>This function query will display a query with prompt <TT>prompt</TT> in
4524  <TT>mplex</TT> and if the user answers affirmately, call <TT>handler</TT>
4525  with <TT>mplex</TT> as parameter.
4526   
4527 </DD>
4528 </DL>
4529
4530 <P>
4531
4532   <DL>
4533 <DD><A NAME="7887"></A>
4534 <A NAME="7888"></A>
4535 <A NAME="fn:mod_query.show_about_ion"></A>  
4536 </DD>
4537 <DT><STRONG>Synopsis:</STRONG></DT>
4538 <DD><TT>mod_query.show_about_ion(mplex)</TT>
4539
4540 </DD>
4541 <DT><STRONG>Description:</STRONG></DT>
4542 <DD>Display an "About Ion" message in <TT>mplex</TT>.
4543   
4544 </DD>
4545 </DL>
4546
4547 <P>
4548
4549   <DL>
4550 <DD><A NAME="7889"></A>
4551 <A NAME="7890"></A>
4552 <A NAME="fn:mod_query.show_tree"></A>  
4553 </DD>
4554 <DT><STRONG>Synopsis:</STRONG></DT>
4555 <DD><TT>mod_query.show_tree(mplex, reg, max_depth)</TT>
4556
4557 </DD>
4558 <DT><STRONG>Description:</STRONG></DT>
4559 <DD>Show information about a region tree
4560   
4561 </DD>
4562 </DL>
4563
4564 <P>
4565
4566 <H3><A NAME="SECTION00731000000000000000">
4567 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> WComplProxy functions</A>
4568 </H3>
4569
4570 <P>
4571
4572   <DL>
4573 <DD><A NAME="7892"></A>
4574 <A NAME="7893"></A>
4575 <A NAME="fn:WComplProxy.set_completions"></A>  
4576 </DD>
4577 <DT><STRONG>Synopsis:</STRONG></DT>
4578 <DD><TT>bool WComplProxy.set_completions(WComplProxy proxy, table compls)</TT>
4579
4580 </DD>
4581 <DT><STRONG>Description:</STRONG></DT>
4582 <DD>Set completion list of the WEdln that <TT>proxy</TT> refers to to
4583  <TT>compls</TT>, if it is still waiting for this completion run. The 
4584  numerical indexes of <TT>compls</TT> list the found completions. If the
4585  entry <TT>common_beg</TT> (<TT>common_end</TT>) exists, it gives an extra 
4586  common prefix (suffix) of all found completions.
4587   
4588 </DD>
4589 </DL>
4590
4591 <P>
4592
4593 <H3><A NAME="SECTION00732000000000000000">
4594 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> WEdln functions</A>
4595 </H3>
4596
4597 <P>
4598
4599   <DL>
4600 <DD><A NAME="7895"></A>
4601 <A NAME="7896"></A>
4602 <A NAME="fn:WEdln.back"></A>  
4603 </DD>
4604 <DT><STRONG>Synopsis:</STRONG></DT>
4605 <DD><TT>void WEdln.back(WEdln wedln)</TT>
4606
4607 </DD>
4608 <DT><STRONG>Description:</STRONG></DT>
4609 <DD>Move backward one character.
4610   
4611 </DD>
4612 </DL>
4613
4614 <P>
4615
4616   <DL>
4617 <DD><A NAME="7897"></A>
4618 <A NAME="7898"></A>
4619 <A NAME="fn:WEdln.backspace"></A>  
4620 </DD>
4621 <DT><STRONG>Synopsis:</STRONG></DT>
4622 <DD><TT>void WEdln.backspace(WEdln wedln)</TT>
4623
4624 </DD>
4625 <DT><STRONG>Description:</STRONG></DT>
4626 <DD>Delete previous character.
4627   
4628 </DD>
4629 </DL>
4630
4631 <P>
4632
4633   <DL>
4634 <DD><A NAME="7899"></A>
4635 <A NAME="7900"></A>
4636 <A NAME="fn:WEdln.bkill_word"></A>  
4637 </DD>
4638 <DT><STRONG>Synopsis:</STRONG></DT>
4639 <DD><TT>void WEdln.bkill_word(WEdln wedln)</TT>
4640
4641 </DD>
4642 <DT><STRONG>Description:</STRONG></DT>
4643 <DD>Starting from the previous characters, delete possible whitespace and
4644  preceding alphanumeric characters until previous non-alphanumeric character.
4645   
4646 </DD>
4647 </DL>
4648
4649 <P>
4650
4651   <DL>
4652 <DD><A NAME="7901"></A>
4653 <A NAME="7902"></A>
4654 <A NAME="fn:WEdln.bol"></A>  
4655 </DD>
4656 <DT><STRONG>Synopsis:</STRONG></DT>
4657 <DD><TT>void WEdln.bol(WEdln wedln)</TT>
4658
4659 </DD>
4660 <DT><STRONG>Description:</STRONG></DT>
4661 <DD>Go to the beginning of line.
4662   
4663 </DD>
4664 </DL>
4665
4666 <P>
4667
4668   <DL>
4669 <DD><A NAME="7903"></A>
4670 <A NAME="7904"></A>
4671 <A NAME="fn:WEdln.bskip_word"></A>  
4672 </DD>
4673 <DT><STRONG>Synopsis:</STRONG></DT>
4674 <DD><TT>void WEdln.bskip_word(WEdln wedln)</TT>
4675
4676 </DD>
4677 <DT><STRONG>Description:</STRONG></DT>
4678 <DD>Go to to beginning of current sequence of alphanumeric characters
4679  followed by whitespace.
4680   
4681 </DD>
4682 </DL>
4683
4684 <P>
4685
4686   <DL>
4687 <DD><A NAME="7905"></A>
4688 <A NAME="7906"></A>
4689 <A NAME="fn:WEdln.clear_mark"></A>  
4690 </DD>
4691 <DT><STRONG>Synopsis:</STRONG></DT>
4692 <DD><TT>void WEdln.clear_mark(WEdln wedln)</TT>
4693
4694 </DD>
4695 <DT><STRONG>Description:</STRONG></DT>
4696 <DD>Clear <SPAN  CLASS="textit">mark</SPAN>.
4697   
4698 </DD>
4699 </DL>
4700
4701 <P>
4702
4703   <DL>
4704 <DD><A NAME="7907"></A>
4705 <A NAME="7908"></A>
4706 <A NAME="fn:WEdln.complete"></A>  
4707 </DD>
4708 <DT><STRONG>Synopsis:</STRONG></DT>
4709 <DD><TT>void WEdln.complete(WEdln wedln, string cycle, string mode)</TT>
4710
4711 </DD>
4712 <DT><STRONG>Description:</STRONG></DT>
4713 <DD>Call completion handler with the text between the beginning of line and
4714  current cursor position, or select next/previous completion from list if in
4715  auto-show-completions mode and <TT>cycle</TT> is set to ``next'' or ``prev'',
4716  respectively. The <TT>mode</TT> may be ``history'' or ``normal''. If it is 
4717  not set, the previous mode is used. Normally next entry is not cycled to
4718  despite the setting of <TT>cycle</TT> if mode switch occurs. To override
4719  this, use ``next-always'' and ``prev-always'' for <TT>cycle</TT>.
4720   
4721 </DD>
4722 </DL>
4723
4724 <P>
4725
4726   <DL>
4727 <DD><A NAME="7909"></A>
4728 <A NAME="7910"></A>
4729 <A NAME="fn:WEdln.contents"></A>  
4730 </DD>
4731 <DT><STRONG>Synopsis:</STRONG></DT>
4732 <DD><TT>string WEdln.contents(WEdln wedln)</TT>
4733
4734 </DD>
4735 <DT><STRONG>Description:</STRONG></DT>
4736 <DD>Get line editor contents.
4737   
4738 </DD>
4739 </DL>
4740
4741 <P>
4742
4743   <DL>
4744 <DD><A NAME="7911"></A>
4745 <A NAME="7912"></A>
4746 <A NAME="fn:WEdln.context"></A>  
4747 </DD>
4748 <DT><STRONG>Synopsis:</STRONG></DT>
4749 <DD><TT>string WEdln.context(WEdln wedln)</TT>
4750
4751 </DD>
4752 <DT><STRONG>Description:</STRONG></DT>
4753 <DD>Get history context for <TT>wedln</TT>.
4754   
4755 </DD>
4756 </DL>
4757
4758 <P>
4759
4760   <DL>
4761 <DD><A NAME="7913"></A>
4762 <A NAME="7914"></A>
4763 <A NAME="fn:WEdln.copy"></A>  
4764 </DD>
4765 <DT><STRONG>Synopsis:</STRONG></DT>
4766 <DD><TT>void WEdln.copy(WEdln wedln)</TT>
4767
4768 </DD>
4769 <DT><STRONG>Description:</STRONG></DT>
4770 <DD>Copy text between <SPAN  CLASS="textit">mark</SPAN> and current cursor position to clipboard.
4771   
4772 </DD>
4773 </DL>
4774
4775 <P>
4776
4777   <DL>
4778 <DD><A NAME="7915"></A>
4779 <A NAME="7916"></A>
4780 <A NAME="fn:WEdln.cut"></A>  
4781 </DD>
4782 <DT><STRONG>Synopsis:</STRONG></DT>
4783 <DD><TT>void WEdln.cut(WEdln wedln)</TT>
4784
4785 </DD>
4786 <DT><STRONG>Description:</STRONG></DT>
4787 <DD>Copy text between <SPAN  CLASS="textit">mark</SPAN> and current cursor position to clipboard
4788  and then delete that sequence.
4789   
4790 </DD>
4791 </DL>
4792
4793 <P>
4794
4795   <DL>
4796 <DD><A NAME="7917"></A>
4797 <A NAME="7918"></A>
4798 <A NAME="fn:WEdln.delete"></A>  
4799 </DD>
4800 <DT><STRONG>Synopsis:</STRONG></DT>
4801 <DD><TT>void WEdln.delete(WEdln wedln)</TT>
4802
4803 </DD>
4804 <DT><STRONG>Description:</STRONG></DT>
4805 <DD>Delete current character.
4806   
4807 </DD>
4808 </DL>
4809
4810 <P>
4811
4812   <DL>
4813 <DD><A NAME="7919"></A>
4814 <A NAME="7920"></A>
4815 <A NAME="fn:WEdln.eol"></A>  
4816 </DD>
4817 <DT><STRONG>Synopsis:</STRONG></DT>
4818 <DD><TT>void WEdln.eol(WEdln wedln)</TT>
4819
4820 </DD>
4821 <DT><STRONG>Description:</STRONG></DT>
4822 <DD>Go to the end of line.
4823   
4824 </DD>
4825 </DL>
4826
4827 <P>
4828
4829   <DL>
4830 <DD><A NAME="7921"></A>
4831 <A NAME="7922"></A>
4832 <A NAME="fn:WEdln.finish"></A>  
4833 </DD>
4834 <DT><STRONG>Synopsis:</STRONG></DT>
4835 <DD><TT>void WEdln.finish(WEdln wedln)</TT>
4836
4837 </DD>
4838 <DT><STRONG>Description:</STRONG></DT>
4839 <DD>Close <TT>wedln</TT> and call any handlers.
4840   
4841 </DD>
4842 </DL>
4843
4844 <P>
4845
4846   <DL>
4847 <DD><A NAME="7923"></A>
4848 <A NAME="7924"></A>
4849 <A NAME="fn:WEdln.forward"></A>  
4850 </DD>
4851 <DT><STRONG>Synopsis:</STRONG></DT>
4852 <DD><TT>void WEdln.forward(WEdln wedln)</TT>
4853
4854 </DD>
4855 <DT><STRONG>Description:</STRONG></DT>
4856 <DD>Move forward one character.
4857   
4858 </DD>
4859 </DL>
4860
4861 <P>
4862
4863   <DL>
4864 <DD><A NAME="7925"></A>
4865 <A NAME="7926"></A>
4866 <A NAME="fn:WEdln.history_next"></A>  
4867 </DD>
4868 <DT><STRONG>Synopsis:</STRONG></DT>
4869 <DD><TT>void WEdln.history_next(WEdln wedln, bool match)</TT>
4870
4871 </DD>
4872 <DT><STRONG>Description:</STRONG></DT>
4873 <DD>Replace line editor contents with next entry in history if one exists.
4874  If <TT>match</TT> is <TT>true</TT>, the initial part of the history entry
4875  must match the current line from beginning to point.
4876   
4877 </DD>
4878 </DL>
4879
4880 <P>
4881
4882   <DL>
4883 <DD><A NAME="7927"></A>
4884 <A NAME="7928"></A>
4885 <A NAME="fn:WEdln.history_prev"></A>  
4886 </DD>
4887 <DT><STRONG>Synopsis:</STRONG></DT>
4888 <DD><TT>void WEdln.history_prev(WEdln wedln, bool match)</TT>
4889
4890 </DD>
4891 <DT><STRONG>Description:</STRONG></DT>
4892 <DD>Replace line editor contents with previous in history if one exists.
4893  If <TT>match</TT> is <TT>true</TT>, the initial part of the history entry
4894  must match the current line from beginning to point.
4895   
4896 </DD>
4897 </DL>
4898
4899 <P>
4900
4901   <DL>
4902 <DD><A NAME="7929"></A>
4903 <A NAME="7930"></A>
4904 <A NAME="fn:WEdln.insstr"></A>  
4905 </DD>
4906 <DT><STRONG>Synopsis:</STRONG></DT>
4907 <DD><TT>void WEdln.insstr(WEdln wedln, string str)</TT>
4908
4909 </DD>
4910 <DT><STRONG>Description:</STRONG></DT>
4911 <DD>Input <TT>str</TT> in wedln at current editing point.
4912   
4913 </DD>
4914 </DL>
4915
4916 <P>
4917
4918   <DL>
4919 <DD><A NAME="7931"></A>
4920 <A NAME="7932"></A>
4921 <A NAME="fn:WEdln.is_histcompl"></A>  
4922 </DD>
4923 <DT><STRONG>Synopsis:</STRONG></DT>
4924 <DD><TT>bool WEdln.is_histcompl(WEdln wedln)</TT>
4925
4926 </DD>
4927 <DT><STRONG>Description:</STRONG></DT>
4928 <DD>Get history completion mode.
4929   
4930 </DD>
4931 </DL>
4932
4933 <P>
4934
4935   <DL>
4936 <DD><A NAME="7933"></A>
4937 <A NAME="7934"></A>
4938 <A NAME="fn:WEdln.kill_line"></A>  
4939 </DD>
4940 <DT><STRONG>Synopsis:</STRONG></DT>
4941 <DD><TT>void WEdln.kill_line(WEdln wedln)</TT>
4942
4943 </DD>
4944 <DT><STRONG>Description:</STRONG></DT>
4945 <DD>Delete the whole line.
4946   
4947 </DD>
4948 </DL>
4949
4950 <P>
4951
4952   <DL>
4953 <DD><A NAME="7935"></A>
4954 <A NAME="7936"></A>
4955 <A NAME="fn:WEdln.kill_to_bol"></A>  
4956 </DD>
4957 <DT><STRONG>Synopsis:</STRONG></DT>
4958 <DD><TT>void WEdln.kill_to_bol(WEdln wedln)</TT>
4959
4960 </DD>
4961 <DT><STRONG>Description:</STRONG></DT>
4962 <DD>Delete all characters from previous to beginning of line.
4963   
4964 </DD>
4965 </DL>
4966
4967 <P>
4968
4969   <DL>
4970 <DD><A NAME="7937"></A>
4971 <A NAME="7938"></A>
4972 <A NAME="fn:WEdln.kill_to_eol"></A>  
4973 </DD>
4974 <DT><STRONG>Synopsis:</STRONG></DT>
4975 <DD><TT>void WEdln.kill_to_eol(WEdln wedln)</TT>
4976
4977 </DD>
4978 <DT><STRONG>Description:</STRONG></DT>
4979 <DD>Delete all characters from current to end of line.
4980   
4981 </DD>
4982 </DL>
4983
4984 <P>
4985
4986   <DL>
4987 <DD><A NAME="7939"></A>
4988 <A NAME="7940"></A>
4989 <A NAME="fn:WEdln.kill_word"></A>  
4990 </DD>
4991 <DT><STRONG>Synopsis:</STRONG></DT>
4992 <DD><TT>void WEdln.kill_word(WEdln wedln)</TT>
4993
4994 </DD>
4995 <DT><STRONG>Description:</STRONG></DT>
4996 <DD>Starting from the current point, delete possible whitespace and
4997  following alphanumeric characters until next non-alphanumeric character.
4998   
4999 </DD>
5000 </DL>
5001
5002 <P>
5003
5004   <DL>
5005 <DD><A NAME="7941"></A>
5006 <A NAME="7942"></A>
5007 <A NAME="fn:WEdln.mark"></A>  
5008 </DD>
5009 <DT><STRONG>Synopsis:</STRONG></DT>
5010 <DD><TT>integer WEdln.mark(WEdln wedln)</TT>
5011
5012 </DD>
5013 <DT><STRONG>Description:</STRONG></DT>
5014 <DD>Get current mark (start of selection) for <TT>wedln</TT>.
5015  Return value of -1 indicates that there is no mark, and
5016  0 is the beginning of the line.
5017   
5018 </DD>
5019 </DL>
5020
5021 <P>
5022
5023   <DL>
5024 <DD><A NAME="7943"></A>
5025 <A NAME="7944"></A>
5026 <A NAME="fn:WEdln.next_completion"></A>  
5027 </DD>
5028 <DT><STRONG>Synopsis:</STRONG></DT>
5029 <DD><TT>bool WEdln.next_completion(WEdln wedln)</TT>
5030
5031 </DD>
5032 <DT><STRONG>Description:</STRONG></DT>
5033 <DD>Select next completion.
5034   
5035 </DD>
5036 </DL>
5037
5038 <P>
5039
5040   <DL>
5041 <DD><A NAME="7945"></A>
5042 <A NAME="7946"></A>
5043 <A NAME="fn:WEdln.paste"></A>  
5044 </DD>
5045 <DT><STRONG>Synopsis:</STRONG></DT>
5046 <DD><TT>void WEdln.paste(WEdln wedln)</TT>
5047
5048 </DD>
5049 <DT><STRONG>Description:</STRONG></DT>
5050 <DD>Request selection from application holding such.
5051
5052 <P>
5053 Note that this function is asynchronous; the selection will not
5054  actually be inserted before Ion receives it. This will be no
5055  earlier than Ion return to its main loop.
5056   
5057 </DD>
5058 </DL>
5059
5060 <P>
5061
5062   <DL>
5063 <DD><A NAME="7947"></A>
5064 <A NAME="7948"></A>
5065 <A NAME="fn:WEdln.point"></A>  
5066 </DD>
5067 <DT><STRONG>Synopsis:</STRONG></DT>
5068 <DD><TT>integer WEdln.point(WEdln wedln)</TT>
5069
5070 </DD>
5071 <DT><STRONG>Description:</STRONG></DT>
5072 <DD>Get current editing point. 
5073  Beginning of the edited line is point 0.
5074   
5075 </DD>
5076 </DL>
5077
5078 <P>
5079
5080   <DL>
5081 <DD><A NAME="7949"></A>
5082 <A NAME="7950"></A>
5083 <A NAME="fn:WEdln.prev_completion"></A>  
5084 </DD>
5085 <DT><STRONG>Synopsis:</STRONG></DT>
5086 <DD><TT>bool WEdln.prev_completion(WEdln wedln)</TT>
5087
5088 </DD>
5089 <DT><STRONG>Description:</STRONG></DT>
5090 <DD>Select previous completion.
5091   
5092 </DD>
5093 </DL>
5094
5095 <P>
5096
5097   <DL>
5098 <DD><A NAME="7951"></A>
5099 <A NAME="7952"></A>
5100 <A NAME="fn:WEdln.set_context"></A>  
5101 </DD>
5102 <DT><STRONG>Synopsis:</STRONG></DT>
5103 <DD><TT>void WEdln.set_context(WEdln wedln, string context)</TT>
5104
5105 </DD>
5106 <DT><STRONG>Description:</STRONG></DT>
5107 <DD>Set history context for <TT>wedln</TT>.
5108   
5109 </DD>
5110 </DL>
5111
5112 <P>
5113
5114   <DL>
5115 <DD><A NAME="7953"></A>
5116 <A NAME="7954"></A>
5117 <A NAME="fn:WEdln.set_mark"></A>  
5118 </DD>
5119 <DT><STRONG>Synopsis:</STRONG></DT>
5120 <DD><TT>void WEdln.set_mark(WEdln wedln)</TT>
5121
5122 </DD>
5123 <DT><STRONG>Description:</STRONG></DT>
5124 <DD>Set <SPAN  CLASS="textit">mark</SPAN> to current cursor position.
5125   
5126 </DD>
5127 </DL>
5128
5129 <P>
5130
5131   <DL>
5132 <DD><A NAME="7955"></A>
5133 <A NAME="7956"></A>
5134 <A NAME="fn:WEdln.skip_word"></A>  
5135 </DD>
5136 <DT><STRONG>Synopsis:</STRONG></DT>
5137 <DD><TT>void WEdln.skip_word(WEdln wedln)</TT>
5138
5139 </DD>
5140 <DT><STRONG>Description:</STRONG></DT>
5141 <DD>Go to to end of current sequence of whitespace followed by alphanumeric
5142  characters..
5143   
5144 </DD>
5145 </DL>
5146
5147 <P>
5148
5149   <DL>
5150 <DD><A NAME="7957"></A>
5151 <A NAME="7958"></A>
5152 <A NAME="fn:WEdln.transpose_chars"></A>  
5153 </DD>
5154 <DT><STRONG>Synopsis:</STRONG></DT>
5155 <DD><TT>void WEdln.transpose_chars(WEdln wedln)</TT>
5156
5157 </DD>
5158 <DT><STRONG>Description:</STRONG></DT>
5159 <DD>Transpose characters.
5160   
5161 </DD>
5162 </DL>
5163
5164 <P>
5165
5166   <DL>
5167 <DD><A NAME="7959"></A>
5168 <A NAME="7960"></A>
5169 <A NAME="fn:WEdln.transpose_words"></A>  
5170 </DD>
5171 <DT><STRONG>Synopsis:</STRONG></DT>
5172 <DD><TT>void WEdln.transpose_words(WEdln wedln)</TT>
5173
5174 </DD>
5175 <DT><STRONG>Description:</STRONG></DT>
5176 <DD>Transpose words.
5177   
5178 </DD>
5179 </DL>
5180
5181 <P>
5182
5183 <H3><A NAME="SECTION00733000000000000000">
5184 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> WInput functions</A>
5185 </H3>
5186
5187 <P>
5188
5189   <DL>
5190 <DD><A NAME="7962"></A>
5191 <A NAME="7963"></A>
5192 <A NAME="fn:WInput.cancel"></A>  
5193 </DD>
5194 <DT><STRONG>Synopsis:</STRONG></DT>
5195 <DD><TT>void WInput.cancel(WInput input)</TT>
5196
5197 </DD>
5198 <DT><STRONG>Description:</STRONG></DT>
5199 <DD>Close input not calling any possible finish handlers.
5200   
5201 </DD>
5202 </DL>
5203
5204 <P>
5205
5206   <DL>
5207 <DD><A NAME="7964"></A>
5208 <A NAME="7965"></A>
5209 <A NAME="fn:WInput.scrolldown"></A>  
5210 </DD>
5211 <DT><STRONG>Synopsis:</STRONG></DT>
5212 <DD><TT>void WInput.scrolldown(WInput input)</TT>
5213
5214 </DD>
5215 <DT><STRONG>Description:</STRONG></DT>
5216 <DD>Scroll input <TT>input</TT> text contents down.
5217   
5218 </DD>
5219 </DL>
5220
5221 <P>
5222
5223   <DL>
5224 <DD><A NAME="7966"></A>
5225 <A NAME="7967"></A>
5226 <A NAME="fn:WInput.scrollup"></A>  
5227 </DD>
5228 <DT><STRONG>Synopsis:</STRONG></DT>
5229 <DD><TT>void WInput.scrollup(WInput input)</TT>
5230
5231 </DD>
5232 <DT><STRONG>Description:</STRONG></DT>
5233 <DD>Scroll input <TT>input</TT> text contents up.
5234   
5235 </DD>
5236 </DL>
5237
5238 <P>
5239
5240 <H2><A NAME="SECTION00740000000000000000"></A>
5241 <A NAME="sec:menuref"></A>
5242 <BR>
5243 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Functions defined in <SPAN  CLASS="textit">mod_menu</SPAN>
5244 </H2>
5245
5246   <DL>
5247 <DD><A NAME="8777"></A>
5248 <A NAME="8778"></A>
5249 <A NAME="fn:mod_menu.grabmenu"></A>  
5250 </DD>
5251 <DT><STRONG>Synopsis:</STRONG></DT>
5252 <DD><TT>mod_menu.grabmenu(mplex, sub, menu_or_name, param)</TT>
5253
5254 </DD>
5255 <DT><STRONG>Description:</STRONG></DT>
5256 <DD>This function is similar to <A HREF="#fn:mod_menu.menu"><TT>mod_menu.menu</TT></A>, but input
5257  is grabbed and the key used to active the menu can be used to
5258  cycle through menu entries.
5259   
5260 </DD>
5261 </DL>
5262
5263 <P>
5264
5265   <DL>
5266 <DD><A NAME="8779"></A>
5267 <A NAME="8780"></A>
5268 <A NAME="fn:mod_menu.menu"></A>  
5269 </DD>
5270 <DT><STRONG>Synopsis:</STRONG></DT>
5271 <DD><TT>mod_menu.menu(mplex, sub, menu_or_name, param)</TT>
5272
5273 </DD>
5274 <DT><STRONG>Description:</STRONG></DT>
5275 <DD>Display a menu in the lower-left corner of <TT>mplex</TT>.
5276  The variable <TT>menu_or_name</TT> is either the name of a menu
5277  defined with <A HREF="#fn:mod_menu.defmenu"><TT>mod_menu.defmenu</TT></A> or directly a table similar
5278  to ones passesd to this function. When this function is
5279  called from a binding handler, <TT>sub</TT> should be set to
5280  the second argument of to the binding handler (<TT>_sub</TT>)
5281  so that the menu handler will get the same parameters as the
5282  binding handler. Extra options can be passed in the table
5283  <TT>param</TT>. The initial entry can be specified as the field
5284  <TT>initial</TT> as an integer starting from 1. Menus can be made
5285  to use a bigger style by setting the field <TT>big</TT> to <TT>true</TT>.
5286   
5287 </DD>
5288 </DL>
5289
5290 <P>
5291
5292   <DL>
5293 <DD><A NAME="8781"></A>
5294 <A NAME="8782"></A>
5295 <A NAME="fn:mod_menu.get"></A>  
5296 </DD>
5297 <DT><STRONG>Synopsis:</STRONG></DT>
5298 <DD><TT>table mod_menu.get()</TT>
5299
5300 </DD>
5301 <DT><STRONG>Description:</STRONG></DT>
5302 <DD>Get module basic settings. For details, see <A HREF="#fn:mod_menu.set"><TT>mod_menu.set</TT></A>.
5303   
5304 </DD>
5305 </DL>
5306
5307 <P>
5308
5309   <DL>
5310 <DD><A NAME="8783"></A>
5311 <A NAME="8784"></A>
5312 <A NAME="fn:mod_menu.set"></A>  
5313 </DD>
5314 <DT><STRONG>Synopsis:</STRONG></DT>
5315 <DD><TT>void mod_menu.set(table tab)</TT>
5316
5317 </DD>
5318 <DT><STRONG>Description:</STRONG></DT>
5319 <DD>Set module basic settings. The parameter table may contain the
5320  following fields:
5321
5322 <P>
5323 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
5324 <TR><TD ALIGN="LEFT">Field</TD>
5325 <TD ALIGN="LEFT">Description</TD>
5326 </TR>
5327 <TR><TD ALIGN="LEFT"><TT>scroll_amount</TT></TD>
5328 <TD ALIGN="LEFT">Number of pixels to scroll at a time 
5329                         pointer-controlled menus when one extends
5330                         beyond a border of the screen and the pointer
5331                         touches that border.</TD>
5332 </TR>
5333 <TR><TD ALIGN="LEFT"><TT>scroll_delay</TT></TD>
5334 <TD ALIGN="LEFT">Time between such scrolling events in 
5335                         milliseconds.</TD>
5336 </TR>
5337 </TABLE>
5338   
5339 </DD>
5340 </DL>
5341
5342 <P>
5343
5344   <DL>
5345 <DD><A NAME="8785"></A>
5346 <A NAME="8786"></A>
5347 <A NAME="fn:mod_menu.pmenu"></A>  
5348 </DD>
5349 <DT><STRONG>Synopsis:</STRONG></DT>
5350 <DD><TT>mod_menu.pmenu(win, sub, menu_or_name)</TT>
5351
5352 </DD>
5353 <DT><STRONG>Description:</STRONG></DT>
5354 <DD>This function displays a drop-down menu and should only
5355  be called from a mouse press handler. The parameters are
5356  similar to those of <A HREF="#fn:mod_menu.menu"><TT>mod_menu.menu</TT></A>.
5357   
5358 </DD>
5359 </DL>
5360
5361 <P>
5362
5363 <H3><A NAME="SECTION00741000000000000000">
5364 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> WMenu functions</A>
5365 </H3>
5366
5367 <P>
5368
5369   <DL>
5370 <DD><A NAME="8788"></A>
5371 <A NAME="8789"></A>
5372 <A NAME="fn:WMenu.cancel"></A>  
5373 </DD>
5374 <DT><STRONG>Synopsis:</STRONG></DT>
5375 <DD><TT>void WMenu.cancel(WMenu menu)</TT>
5376
5377 </DD>
5378 <DT><STRONG>Description:</STRONG></DT>
5379 <DD>Close <TT>menu</TT> not calling any possible finish handlers.
5380   
5381 </DD>
5382 </DL>
5383
5384 <P>
5385
5386   <DL>
5387 <DD><A NAME="8790"></A>
5388 <A NAME="8791"></A>
5389 <A NAME="fn:WMenu.finish"></A>  
5390 </DD>
5391 <DT><STRONG>Synopsis:</STRONG></DT>
5392 <DD><TT>void WMenu.finish(WMenu menu)</TT>
5393
5394 </DD>
5395 <DT><STRONG>Description:</STRONG></DT>
5396 <DD>If selected entry is a submenu, display that.
5397  Otherwise destroy the menu and call handler for selected entry.
5398   
5399 </DD>
5400 </DL>
5401
5402 <P>
5403
5404   <DL>
5405 <DD><A NAME="8792"></A>
5406 <A NAME="8793"></A>
5407 <A NAME="fn:WMenu.select_next"></A>  
5408 </DD>
5409 <DT><STRONG>Synopsis:</STRONG></DT>
5410 <DD><TT>void WMenu.select_next(WMenu menu)</TT>
5411
5412 </DD>
5413 <DT><STRONG>Description:</STRONG></DT>
5414 <DD>Select next entry in menu.
5415   
5416 </DD>
5417 </DL>
5418
5419 <P>
5420
5421   <DL>
5422 <DD><A NAME="8794"></A>
5423 <A NAME="8795"></A>
5424 <A NAME="fn:WMenu.select_nth"></A>  
5425 </DD>
5426 <DT><STRONG>Synopsis:</STRONG></DT>
5427 <DD><TT>void WMenu.select_nth(WMenu menu, integer n)</TT>
5428
5429 </DD>
5430 <DT><STRONG>Description:</STRONG></DT>
5431 <DD>Select <TT>n</TT>:th entry in menu.
5432   
5433 </DD>
5434 </DL>
5435
5436 <P>
5437
5438   <DL>
5439 <DD><A NAME="8796"></A>
5440 <A NAME="8797"></A>
5441 <A NAME="fn:WMenu.select_prev"></A>  
5442 </DD>
5443 <DT><STRONG>Synopsis:</STRONG></DT>
5444 <DD><TT>void WMenu.select_prev(WMenu menu)</TT>
5445
5446 </DD>
5447 <DT><STRONG>Description:</STRONG></DT>
5448 <DD>Select previous entry in menu.
5449   
5450 </DD>
5451 </DL>
5452
5453 <P>
5454
5455   <DL>
5456 <DD><A NAME="8798"></A>
5457 <A NAME="8799"></A>
5458 <A NAME="fn:WMenu.typeahead_clear"></A>  
5459 </DD>
5460 <DT><STRONG>Synopsis:</STRONG></DT>
5461 <DD><TT>void WMenu.typeahead_clear(WMenu menu)</TT>
5462
5463 </DD>
5464 <DT><STRONG>Description:</STRONG></DT>
5465 <DD>Clear typeahead buffer.
5466   
5467 </DD>
5468 </DL>
5469
5470 <P>
5471
5472 <H2><A NAME="SECTION00750000000000000000"></A>
5473 <A NAME="sec:dockref"></A>
5474 <BR>
5475 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN> Functions defined in <SPAN  CLASS="textit">mod_dock</SPAN>
5476 </H2>
5477
5478   <DL>
5479 <DD><A NAME="8997"></A>
5480 <A NAME="8998"></A>
5481 <A NAME="fn:mod_dock.set_floating_shown_on"></A>  
5482 </DD>
5483 <DT><STRONG>Synopsis:</STRONG></DT>
5484 <DD><TT>void mod_dock.set_floating_shown_on(WMPlex mplex, string how)</TT>
5485
5486 </DD>
5487 <DT><STRONG>Description:</STRONG></DT>
5488 <DD>Toggle floating docks on <TT>mplex</TT>.
5489   
5490 </DD>
5491 </DL>
5492
5493 <P>
5494
5495 <H3><A NAME="SECTION00751000000000000000">
5496 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> WDock functions</A>
5497 </H3>
5498
5499 <P>
5500
5501   <DL>
5502 <DD><A NAME="9000"></A>
5503 <A NAME="9001"></A>
5504 <A NAME="fn:WDock.attach"></A>  
5505 </DD>
5506 <DT><STRONG>Synopsis:</STRONG></DT>
5507 <DD><TT>bool WDock.attach(WDock dock, WRegion reg)</TT>
5508
5509 </DD>
5510 <DT><STRONG>Description:</STRONG></DT>
5511 <DD>Attach <TT>reg</TT> to <TT>dock</TT>.
5512   
5513 </DD>
5514 </DL>
5515
5516 <P>
5517
5518   <DL>
5519 <DD><A NAME="9002"></A>
5520 <A NAME="9003"></A>
5521 <A NAME="fn:WDock.get"></A>  
5522 </DD>
5523 <DT><STRONG>Synopsis:</STRONG></DT>
5524 <DD><TT>table WDock.get(WDock dock)</TT>
5525
5526 </DD>
5527 <DT><STRONG>Description:</STRONG></DT>
5528 <DD>Get <TT>dock</TT>'s configuration table. See <A HREF="#fn:WDock.set"><TT>WDock.set</TT></A> for a
5529  description of the table.
5530   
5531 </DD>
5532 </DL>
5533
5534 <P>
5535
5536   <DL>
5537 <DD><A NAME="9004"></A>
5538 <A NAME="9005"></A>
5539 <A NAME="fn:WDock.resize"></A>  
5540 </DD>
5541 <DT><STRONG>Synopsis:</STRONG></DT>
5542 <DD><TT>void WDock.resize(WDock dock)</TT>
5543
5544 </DD>
5545 <DT><STRONG>Description:</STRONG></DT>
5546 <DD>Resizes and refreshes <TT>dock</TT>.
5547   
5548 </DD>
5549 </DL>
5550
5551 <P>
5552
5553   <DL>
5554 <DD><A NAME="9006"></A>
5555 <A NAME="9007"></A>
5556 <A NAME="fn:WDock.set"></A>  
5557 </DD>
5558 <DT><STRONG>Synopsis:</STRONG></DT>
5559 <DD><TT>void WDock.set(WDock dock, table conftab)</TT>
5560
5561 </DD>
5562 <DT><STRONG>Description:</STRONG></DT>
5563 <DD>Configure <TT>dock</TT>. <TT>conftab</TT> is a table of key/value pairs:
5564
5565 <P>
5566 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
5567 <TR><TD ALIGN="LEFT">Key</TD>
5568 <TD ALIGN="LEFT">Values</TD>
5569 <TD ALIGN="LEFT">Description</TD>
5570 </TR>
5571 <TR><TD ALIGN="LEFT"><TT>name</TT></TD>
5572 <TD ALIGN="LEFT">string</TD>
5573 <TD ALIGN="LEFT">Name of dock</TD>
5574 </TR>
5575 <TR><TD ALIGN="LEFT"><TT>pos</TT></TD>
5576 <TD ALIGN="LEFT">string in <!-- MATH
5577  $\{t,m,b\}\times\{t,c,b\}$
5578  -->
5579 <SPAN CLASS="MATH"></SPAN></TD>
5580 <TD ALIGN="LEFT">Dock position. 
5581        Can only be used in floating mode.</TD>
5582 </TR>
5583 <TR><TD ALIGN="LEFT"><TT>grow</TT></TD>
5584 <TD ALIGN="LEFT">up/down/left/right</TD>
5585 <TD ALIGN="LEFT">Growth direction where new dockapps are added. Also
5586        sets orientation for dock when working as WMPlex status
5587        display (see <A HREF="#fn:WMPlex.set_stdisp"><TT>WMPlex.set_stdisp</TT></A>).</TD>
5588 </TR>
5589 <TR><TD ALIGN="LEFT"><TT>is_auto</TT></TD>
5590 <TD ALIGN="LEFT">bool</TD>
5591 <TD ALIGN="LEFT">Should <TT>dock</TT> automatically manage new dockapps?</TD>
5592 </TR>
5593 </TABLE>
5594
5595 <P>
5596 Any parameters not explicitly set in <TT>conftab</TT> will be left unchanged.
5597   
5598 </DD>
5599 </DL>
5600
5601 <P>
5602
5603 <H2><A NAME="SECTION00760000000000000000"></A>
5604 <A NAME="sec:spref"></A>
5605 <BR>
5606 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN> Functions defined in <SPAN  CLASS="textit">mod_sp</SPAN>
5607 </H2>
5608
5609   <DL>
5610 <DD><A NAME="9106"></A>
5611 <A NAME="9107"></A>
5612 <A NAME="fn:mod_sp.set_shown"></A>  
5613 </DD>
5614 <DT><STRONG>Synopsis:</STRONG></DT>
5615 <DD><TT>bool mod_sp.set_shown(WFrame sp, string how)</TT>
5616
5617 </DD>
5618 <DT><STRONG>Description:</STRONG></DT>
5619 <DD>Toggle displayed status of <TT>sp</TT>.
5620  The parameter <TT>how</TT> is one of (set/unset/toggle).
5621   
5622 </DD>
5623 </DL>
5624
5625 <P>
5626
5627   <DL>
5628 <DD><A NAME="9108"></A>
5629 <A NAME="9109"></A>
5630 <A NAME="fn:mod_sp.set_shown_on"></A>  
5631 </DD>
5632 <DT><STRONG>Synopsis:</STRONG></DT>
5633 <DD><TT>bool mod_sp.set_shown_on(WMPlex mplex, string how)</TT>
5634
5635 </DD>
5636 <DT><STRONG>Description:</STRONG></DT>
5637 <DD>Change displayed status of some scratchpad on <TT>mplex</TT> if one is 
5638  found. The parameter <TT>how</TT> is one of (set/unset/toggle).
5639   
5640 </DD>
5641 </DL>
5642
5643 <P>
5644
5645 <H2><A NAME="SECTION00770000000000000000"></A>
5646 <A NAME="sec:deref"></A>
5647 <BR>
5648 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN> Functions defined in <SPAN  CLASS="textit">de</SPAN>
5649 </H2>
5650
5651   <DL>
5652 <DD><A NAME="9173"></A>
5653 <A NAME="9174"></A>
5654 <A NAME="fn:de.defstyle"></A>  
5655 </DD>
5656 <DT><STRONG>Synopsis:</STRONG></DT>
5657 <DD><TT>bool de.defstyle(string name, table tab)</TT>
5658
5659 </DD>
5660 <DT><STRONG>Description:</STRONG></DT>
5661 <DD>Define a style.
5662   
5663 </DD>
5664 </DL>
5665
5666 <P>
5667
5668   <DL>
5669 <DD><A NAME="9175"></A>
5670 <A NAME="9176"></A>
5671 <A NAME="fn:de.defstyle_rootwin"></A>  
5672 </DD>
5673 <DT><STRONG>Synopsis:</STRONG></DT>
5674 <DD><TT>bool de.defstyle_rootwin(WRootWin rootwin, string name, table tab)</TT>
5675
5676 </DD>
5677 <DT><STRONG>Description:</STRONG></DT>
5678 <DD>Define a style for the root window <TT>rootwin</TT>.
5679   
5680 </DD>
5681 </DL>
5682
5683 <P>
5684
5685   <DL>
5686 <DD><A NAME="9177"></A>
5687 <A NAME="9178"></A>
5688 <A NAME="fn:de.reset"></A>  
5689 </DD>
5690 <DT><STRONG>Synopsis:</STRONG></DT>
5691 <DD><TT>void de.reset()</TT>
5692
5693 </DD>
5694 <DT><STRONG>Description:</STRONG></DT>
5695 <DD>Clear all styles from drawing engine memory.
5696   
5697 </DD>
5698 </DL>
5699
5700 <P>
5701
5702   <DL>
5703 <DD><A NAME="9179"></A>
5704 <A NAME="9180"></A>
5705 <A NAME="fn:de.substyle"></A>  
5706 </DD>
5707 <DT><STRONG>Synopsis:</STRONG></DT>
5708 <DD><TT>table de.substyle(string pattern, table tab)</TT>
5709
5710 </DD>
5711 <DT><STRONG>Description:</STRONG></DT>
5712 <DD>Define a substyle.
5713   
5714 </DD>
5715 </DL>
5716
5717 <P>
5718
5719 <H2><A NAME="SECTION00780000000000000000"></A>
5720 <A NAME="sec:hookref"></A>
5721 <BR>
5722 <SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN> Hooks
5723 </H2>
5724
5725 <P>
5726
5727   <DL>
5728 <DD><A NAME="9401"></A>
5729
5730 </DD>
5731 <DT><STRONG>Hook name:</STRONG></DT>
5732 <DD><A NAME="clientwin_do_manage_alt"></A><TT>clientwin_do_manage_alt</TT>
5733
5734 </DD>
5735 <DT><STRONG>Parameters:</STRONG></DT>
5736 <DD><TT>(WClientWin, table)</TT>
5737
5738 </DD>
5739 <DT><STRONG>Description:</STRONG></DT>
5740 <DD>Called when we want to manage a new client window.
5741       The table argument contains the following fields:
5742
5743 <P>
5744 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
5745 <TR><TD ALIGN="LEFT">Field</TD>
5746 <TD ALIGN="LEFT">Type</TD>
5747 <TD ALIGN="LEFT">Description</TD>
5748 </TR>
5749 <TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
5750 <TD ALIGN="LEFT">bool</TD>
5751 <TD ALIGN="LEFT">Do we want to switch to the client window.</TD>
5752 </TR>
5753 <TR><TD ALIGN="LEFT"><TT>jumpto</TT></TD>
5754 <TD ALIGN="LEFT">bool</TD>
5755 <TD ALIGN="LEFT">Do we want to jump to the client window.</TD>
5756 </TR>
5757 <TR><TD ALIGN="LEFT"><TT>userpos</TT></TD>
5758 <TD ALIGN="LEFT">bool</TD>
5759 <TD ALIGN="LEFT">Geometry set by user.</TD>
5760 </TR>
5761 <TR><TD ALIGN="LEFT"><TT>dockapp</TT></TD>
5762 <TD ALIGN="LEFT">bool</TD>
5763 <TD ALIGN="LEFT">Client window is a dockapp.</TD>
5764 </TR>
5765 <TR><TD ALIGN="LEFT"><TT>maprq</TT></TD>
5766 <TD ALIGN="LEFT">bool</TD>
5767 <TD ALIGN="LEFT">Map request (and not initialisation scan).</TD>
5768 </TR>
5769 <TR><TD ALIGN="LEFT"><TT>gravity</TT></TD>
5770 <TD ALIGN="LEFT">number</TD>
5771 <TD ALIGN="LEFT">Window gravity.</TD>
5772 </TR>
5773 <TR><TD ALIGN="LEFT"><TT>geom</TT></TD>
5774 <TD ALIGN="LEFT">table</TD>
5775 <TD ALIGN="LEFT">Requested geometry; <TT>x</TT>, <TT>y</TT>, <TT>w</TT>, <TT>h</TT>.</TD>
5776 </TR>
5777 <TR><TD ALIGN="LEFT"><TT>tfor</TT></TD>
5778 <TD ALIGN="LEFT">WClientWin</TD>
5779 <TD ALIGN="LEFT">Transient for window.</TD>
5780 </TR>
5781 </TABLE>
5782
5783 <P>
5784 This hook is not called in protected mode and can be used for
5785       arbitrary placement policies (deciding in which workspace a new
5786       WClientWin should go). In this case, you can call
5787 <PRE>
5788 reg:attach(cwin)
5789 </PRE>
5790       where <TT>reg</TT> is the region where the window should go, and
5791       <TT>cwin</TT> is the first argument of the function added to the
5792       hook.
5793       
5794 </DD>
5795 </DL>
5796
5797 <P>
5798
5799   <DL>
5800 <DD><A NAME="9402"></A>
5801
5802 </DD>
5803 <DT><STRONG>Hook name:</STRONG></DT>
5804 <DD><A NAME="clientwin_mapped_hook"></A><TT>clientwin_mapped_hook</TT>
5805
5806 </DD>
5807 <DT><STRONG>Parameters:</STRONG></DT>
5808 <DD><TT>WClientWin</TT>
5809
5810 </DD>
5811 <DT><STRONG>Description:</STRONG></DT>
5812 <DD>Called when we have started to manage a client window.
5813       
5814 </DD>
5815 </DL>
5816
5817 <P>
5818
5819   <DL>
5820 <DD><A NAME="9403"></A>
5821
5822 </DD>
5823 <DT><STRONG>Hook name:</STRONG></DT>
5824 <DD><A NAME="clientwin_unmapped_hook"></A><TT>clientwin_unmapped_hook</TT>
5825
5826 </DD>
5827 <DT><STRONG>Parameters:</STRONG></DT>
5828 <DD><TT>number</TT>
5829
5830 </DD>
5831 <DT><STRONG>Description:</STRONG></DT>
5832 <DD>Called when we no longer manage a client window. The parameter
5833       is the X ID of the window; see <A HREF="#fn:WClientWin.xid"><TT>WClientWin.xid</TT></A>.
5834       
5835 </DD>
5836 </DL>
5837
5838 <P>
5839
5840   <DL>
5841 <DD><A NAME="9404"></A>
5842
5843 </DD>
5844 <DT><STRONG>Hook name:</STRONG></DT>
5845 <DD><A NAME="frame_managed_changed_hook"></A><TT>frame_managed_changed_hook</TT>
5846
5847 </DD>
5848 <DT><STRONG>Parameters:</STRONG></DT>
5849 <DD><TT>table</TT>
5850
5851 </DD>
5852 <DT><STRONG>Description:</STRONG></DT>
5853 <DD>Called when there are changes in the objects managed by a frame
5854       or their order. The table parameter has the following fields:
5855
5856 <P>
5857 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
5858 <TR><TD ALIGN="LEFT">Field</TD>
5859 <TD ALIGN="LEFT">Type</TD>
5860 <TD ALIGN="LEFT">Description</TD>
5861 </TR>
5862 <TR><TD ALIGN="LEFT"><TT>reg</TT></TD>
5863 <TD ALIGN="LEFT">WFrame</TD>
5864 <TD ALIGN="LEFT">The frame in question</TD>
5865 </TR>
5866 <TR><TD ALIGN="LEFT"><TT>mode</TT></TD>
5867 <TD ALIGN="LEFT">string</TD>
5868 <TD ALIGN="LEFT"><TT>"switchonly"</TT>, <TT>"reorder"</TT>,
5869                                 <TT>"add"</TT> or <TT>"remove"</TT></TD>
5870 </TR>
5871 <TR><TD ALIGN="LEFT"><TT>sw</TT></TD>
5872 <TD ALIGN="LEFT">bool</TD>
5873 <TD ALIGN="LEFT">Switch occured</TD>
5874 </TR>
5875 <TR><TD ALIGN="LEFT"><TT>sub</TT></TD>
5876 <TD ALIGN="LEFT">WRegion</TD>
5877 <TD ALIGN="LEFT">The managed region (primarily) affected</TD>
5878 </TR>
5879 </TABLE>
5880       
5881 </DD>
5882 </DL>
5883
5884 <P>
5885
5886   <DL>
5887 <DD><A NAME="9405"></A>
5888
5889 </DD>
5890 <DT><STRONG>Hook name:</STRONG></DT>
5891 <DD><A NAME="ioncore_sigchld_hook"></A><TT>ioncore_sigchld_hook</TT>
5892
5893 </DD>
5894 <DT><STRONG>Parameters:</STRONG></DT>
5895 <DD><TT>integer</TT>
5896
5897 </DD>
5898 <DT><STRONG>Description:</STRONG></DT>
5899 <DD>Called when a child process has exited. The parameter
5900       is the PID of the process.
5901       
5902 </DD>
5903 </DL>
5904
5905 <P>
5906
5907   <DL>
5908 <DD><A NAME="9406"></A>
5909
5910 </DD>
5911 <DT><STRONG>Hook name:</STRONG></DT>
5912 <DD><A NAME="ioncore_deinit_hook"></A><TT>ioncore_deinit_hook</TT>
5913
5914 </DD>
5915 <DT><STRONG>Parameters:</STRONG></DT>
5916 <DD><TT>()</TT>
5917
5918 </DD>
5919 <DT><STRONG>Description:</STRONG></DT>
5920 <DD>Called when Ion is deinitialising and about to quit.
5921       
5922 </DD>
5923 </DL>
5924
5925 <P>
5926
5927   <DL>
5928 <DD><A NAME="9407"></A>
5929
5930 </DD>
5931 <DT><STRONG>Hook name:</STRONG></DT>
5932 <DD><A NAME="ioncore_post_layout_setup_hook"></A><TT>ioncore_post_layout_setup_hook</TT>
5933
5934 </DD>
5935 <DT><STRONG>Parameters:</STRONG></DT>
5936 <DD><TT>()</TT>
5937
5938 </DD>
5939 <DT><STRONG>Description:</STRONG></DT>
5940 <DD>Called when Ion has done all initialisation and is almost ready to
5941       enter the mainloop, except no windows are yet being managed.
5942       
5943 </DD>
5944 </DL>
5945
5946 <P>
5947
5948   <DL>
5949 <DD><A NAME="9408"></A>
5950
5951 </DD>
5952 <DT><STRONG>Hook name:</STRONG></DT>
5953 <DD><A NAME="ioncore_snapshot_hook"></A><TT>ioncore_snapshot_hook</TT>
5954
5955 </DD>
5956 <DT><STRONG>Parameters:</STRONG></DT>
5957 <DD><TT>()</TT>
5958
5959 </DD>
5960 <DT><STRONG>Description:</STRONG></DT>
5961 <DD>Called to signal scripts and modules to save their state (if any).
5962       
5963 </DD>
5964 </DL>
5965
5966 <P>
5967
5968   <DL>
5969 <DD><A NAME="9409"></A>
5970
5971 </DD>
5972 <DT><STRONG>Hook name:</STRONG></DT>
5973 <DD><A NAME="tiling_placement_alt"></A><TT>tiling_placement_alt</TT>
5974
5975 </DD>
5976 <DT><STRONG>Parameters:</STRONG></DT>
5977 <DD><TT>table</TT>
5978
5979 </DD>
5980 <DT><STRONG>Description:</STRONG></DT>
5981 <DD>Called when a client window is about to be managed by a WTiling
5982       to allow for alternative placement policies. The table has the
5983       following fields:
5984       <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
5985 <TR><TD ALIGN="LEFT">Field</TD>
5986 <TD ALIGN="LEFT">Type</TD>
5987 <TD ALIGN="LEFT">Description</TD>
5988 </TR>
5989 <TR><TD ALIGN="LEFT"><TT>tiling</TT></TD>
5990 <TD ALIGN="LEFT">WTiling</TD>
5991 <TD ALIGN="LEFT">The tiling</TD>
5992 </TR>
5993 <TR><TD ALIGN="LEFT"><TT>reg</TT></TD>
5994 <TD ALIGN="LEFT">WRegion</TD>
5995 <TD ALIGN="LEFT">The region (always a WClientWin at 
5996               the moment) to be placed</TD>
5997 </TR>
5998 <TR><TD ALIGN="LEFT"><TT>mp</TT></TD>
5999 <TD ALIGN="LEFT">table</TD>
6000 <TD ALIGN="LEFT">This table contains the same fields as
6001             the parameter of <A HREF="#fn:clientwin_do_manage_alt"><TT>clientwin_do_manage_alt</TT></A></TD>
6002 </TR>
6003 <TR><TD ALIGN="LEFT"><TT>res_frame</TT></TD>
6004 <TD ALIGN="LEFT">WFrame</TD>
6005 <TD ALIGN="LEFT">A succesfull handler should 
6006             return the target frame here.</TD>
6007 </TR>
6008 </TABLE>
6009       This hook is just for placing within a given workspace after the
6010       workspace has been decided by the default workspace selection
6011       policy. It is called in protected mode. For arbitrary placement
6012       policies, <A HREF="#fn:clientwin_do_manage_alt"><TT>clientwin_do_manage_alt</TT></A> should be used; it
6013       isn't called in protected mode,
6014       
6015 </DD>
6016 </DL>
6017
6018 <P>
6019
6020   <DL>
6021 <DD><A NAME="9410"></A>
6022
6023 </DD>
6024 <DT><STRONG>Hook name:</STRONG></DT>
6025 <DD><A NAME="panews_make_placement_alt"></A><TT>panews_make_placement_alt</TT>
6026
6027 </DD>
6028 <DT><STRONG>Parameters:</STRONG></DT>
6029 <DD><TT>table</TT>
6030
6031 </DD>
6032 <DT><STRONG>Description:</STRONG></DT>
6033 <DD>Called to make a placement on panews. The parameter table has
6034       the following fields:
6035
6036 <P>
6037 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
6038 <TR><TD ALIGN="LEFT">Field</TD>
6039 <TD ALIGN="LEFT">Type</TD>
6040 <TD ALIGN="LEFT">Description</TD>
6041 </TR>
6042 <TR><TD ALIGN="LEFT"><TT>ws</TT></TD>
6043 <TD ALIGN="LEFT">WPaneWS</TD>
6044 <TD ALIGN="LEFT">The workspace</TD>
6045 </TR>
6046 <TR><TD ALIGN="LEFT"><TT>frame</TT></TD>
6047 <TD ALIGN="LEFT">WFrame</TD>
6048 <TD ALIGN="LEFT">A frame initially allocated for the
6049               region to be placed</TD>
6050 </TR>
6051 <TR><TD ALIGN="LEFT"><TT>reg</TT></TD>
6052 <TD ALIGN="LEFT">WRegion</TD>
6053 <TD ALIGN="LEFT">The region to be placed</TD>
6054 </TR>
6055 <TR><TD ALIGN="LEFT"><TT>specifier</TT></TD>
6056 <TD ALIGN="LEFT">WRegion</TD>
6057 <TD ALIGN="LEFT">For drag&amp;drop on handling empty areas</TD>
6058 </TR>
6059 </TABLE>
6060
6061 <P>
6062 The handler should set some of these fields on success:
6063
6064 <P>
6065 <TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
6066 <TR><TD ALIGN="LEFT">Field</TD>
6067 <TD ALIGN="LEFT">Type</TD>
6068 <TD ALIGN="LEFT">Description</TD>
6069 </TR>
6070 <TR><TD ALIGN="LEFT"><TT>res_node</TT></TD>
6071 <TD ALIGN="LEFT">WSplit</TD>
6072 <TD ALIGN="LEFT">Target split</TD>
6073 </TR>
6074 <TR><TD ALIGN="LEFT"><TT>res_config</TT></TD>
6075 <TD ALIGN="LEFT">WFrame</TD>
6076 <TD ALIGN="LEFT">New configuration for it, unless
6077               WSplitRegion</TD>
6078 </TR>
6079 <TR><TD ALIGN="LEFT"><TT>res_w</TT></TD>
6080 <TD ALIGN="LEFT">integer</TD>
6081 <TD ALIGN="LEFT">New width for target split (optional)</TD>
6082 </TR>
6083 <TR><TD ALIGN="LEFT"><TT>res_h</TT></TD>
6084 <TD ALIGN="LEFT">integer</TD>
6085 <TD ALIGN="LEFT">New height for target split (optional)</TD>
6086 </TR>
6087 </TABLE>
6088       
6089 </DD>
6090 </DL>
6091
6092 <P>
6093
6094   <DL>
6095 <DD><A NAME="9411"></A>
6096
6097 </DD>
6098 <DT><STRONG>Hook name:</STRONG></DT>
6099 <DD><A NAME="region_activated_hook"></A><TT>region_activated_hook</TT>
6100
6101 </DD>
6102 <DT><STRONG>Parameters:</STRONG></DT>
6103 <DD><TT>WRegion</TT>
6104
6105 </DD>
6106 <DT><STRONG>Description:</STRONG></DT>
6107 <DD>Signalled when a region or one of its children has received the focus.
6108       
6109 </DD>
6110 </DL>
6111
6112 <P>
6113
6114   <DL>
6115 <DD><A NAME="9412"></A>
6116
6117 </DD>
6118 <DT><STRONG>Hook name:</STRONG></DT>
6119 <DD><A NAME="region_activity_hook"></A><TT>region_activity_hook</TT>
6120
6121 </DD>
6122 <DT><STRONG>Parameters:</STRONG></DT>
6123 <DD><TT>WRegion</TT>
6124
6125 </DD>
6126 <DT><STRONG>Description:</STRONG></DT>
6127 <DD>This hook is triggered when the activity flag of the parameter 
6128       region has been changed.
6129       
6130 </DD>
6131 </DL>
6132
6133 <P>
6134
6135   <DL>
6136 <DD><A NAME="9413"></A>
6137
6138 </DD>
6139 <DT><STRONG>Hook name:</STRONG></DT>
6140 <DD><A NAME="region_do_warp_alt"></A><TT>region_do_warp_alt</TT>
6141
6142 </DD>
6143 <DT><STRONG>Parameters:</STRONG></DT>
6144 <DD><TT>WRegion</TT>
6145
6146 </DD>
6147 <DT><STRONG>Description:</STRONG></DT>
6148 <DD>This alt-hook exist to allow for alternative pointer warping
6149       implementations.
6150       
6151 </DD>
6152 </DL>
6153
6154 <P>
6155
6156   <DL>
6157 <DD><A NAME="9414"></A>
6158
6159 </DD>
6160 <DT><STRONG>Hook name:</STRONG></DT>
6161 <DD><A NAME="region_inactivated_hook"></A><TT>region_inactivated_hook</TT>
6162
6163 </DD>
6164 <DT><STRONG>Parameters:</STRONG></DT>
6165 <DD><TT>WRegion</TT>
6166
6167 </DD>
6168 <DT><STRONG>Description:</STRONG></DT>
6169 <DD>Signalled when the focus has moved from the parameter region or
6170       one of its children to a non-child region of the parameter region.
6171       
6172 </DD>
6173 </DL>
6174
6175 <P>
6176
6177   <DL>
6178 <DD><A NAME="9415"></A>
6179
6180 </DD>
6181 <DT><STRONG>Hook name:</STRONG></DT>
6182 <DD><A NAME="screen_managed_changed_hook"></A><TT>screen_managed_changed_hook</TT>
6183
6184 </DD>
6185 <DT><STRONG>Parameters:</STRONG></DT>
6186 <DD><TT>table</TT>
6187
6188 </DD>
6189 <DT><STRONG>Description:</STRONG></DT>
6190 <DD>Called when there are changes in the objects managed by a screen
6191       or their order. The table parameter is similar to that of
6192       <A HREF="#fn:frame_managed_changed_hook"><TT>frame_managed_changed_hook</TT></A>.
6193       
6194 </DD>
6195 </DL>
6196
6197 <P>
6198
6199 <P>
6200
6201 <DIV CLASS="navigation"><HR>
6202 <!--Navigation Panel-->
6203 <A NAME="tex2html348"
6204   HREF="node8.html">
6205 <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
6206 <A NAME="tex2html342"
6207   HREF="ionconf.html">
6208 <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
6209 <A NAME="tex2html336"
6210   HREF="node6.html">
6211 <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
6212 <A NAME="tex2html344"
6213   HREF="node1.html">
6214 <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
6215 <A NAME="tex2html346"
6216   HREF="node11.html">
6217 <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
6218 <BR>
6219 <B> Next:</B> <A NAME="tex2html349"
6220   HREF="node8.html">A. The GNU General</A>
6221 <B> Up:</B> <A NAME="tex2html343"
6222   HREF="ionconf.html">Configuring and extending Ion3</A>
6223 <B> Previous:</B> <A NAME="tex2html337"
6224   HREF="node6.html">5. Scripting</A>
6225  &nbsp; <B>  <A NAME="tex2html345"
6226   HREF="node1.html">Contents</A></B> 
6227  &nbsp; <B>  <A NAME="tex2html347"
6228   HREF="node11.html">Index</A></B> </DIV>
6229 <!--End of Navigation Panel-->
6230
6231 </BODY>
6232 </HTML>