+2007-05-06 14:40 UTC Tuomo Valkonen <tuomov@iki.fi>
+ tagged ion-doc-3rc-20070506
+
+2007-05-06 14:25 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * mod_mgmtmode removal
+
+2007-05-06 13:09 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Removed obsolete example
+
+2007-05-04 21:46 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Fixes and updates to binding docs
+
+2007-05-04 16:13 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Documen the submap leave/enter stuff
+
+2007-04-26 22:44 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Improved string marking
+
+2007-04-26 22:28 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Drawing stuff doc improvements
+
+2007-04-22 18:14 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Document is_dockapp
+
+2007-04-22 12:29 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Winprop doc. improvements/fixes
+
+2007-04-22 00:16 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Minor fixes and improvements
+
+2007-04-20 16:36 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Document is_transient
+
+2007-04-15 12:33 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Updates to implementation notes
+
+2007-04-08 12:38 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Removed quotation abuse
+
+2007-04-08 12:37 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Size policy documentation
+
+2007-04-08 11:53 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Quote changes
+
+2007-04-08 11:49 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Fixed typos etc.
+
+2007-04-08 11:34 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Intro improvements
+
+2007-04-06 11:27 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Systray stuff improvs
+
+2007-04-06 11:23 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Year changed..
+
+2007-04-06 11:17 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Function reference building improvements
+
+2007-04-05 16:32 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Bah, stupid latex2html
+
+2007-04-05 16:27 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * mod_statusbar documentation
+
+2007-04-05 15:21 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Oops, mod_statusbar.lua was missing from sources
+
+2007-03-20 11:27 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Fixes
+
2007-03-18 20:09 UTC Tuomo Valkonen <tuomov@iki.fi>
tagged ion-doc-3ds-20070318
DOCS=ionconf ionnotes
-FNTEXES=ioncore-fns.tex mod_tiling-fns.tex \
- mod_query-fns.tex de-fns.tex mod_menu-fns.tex \
- mod_dock-fns.tex mod_sp-fns.tex mod_statusbar-fns.tex
+FNTEXES=ioncore.exports mod_tiling.exports \
+ mod_query.exports de.exports mod_menu.exports \
+ mod_dock.exports mod_sp.exports mod_statusbar.exports
# Generic rules
######################################
# Function reference rules
######################################
-ioncore-fns.tex: $(TOPDIR)/ioncore/*.c $(TOPDIR)/ioncore/*.lua
- $(MKEXPORTS) -module ioncore -mkdoc -o $@ $+
+include $(TOPDIR)/libmainloop/rx.mk
-mod_tiling-fns.tex: $(TOPDIR)/mod_tiling/*.c
- $(MKEXPORTS) -module mod_tiling -mkdoc -o $@ $+
+$(TOPDIR)/%/exports.tex:
+ $(MAKE) -C $$(dirname $@) _exports_doc
-mod_query-fns.tex: $(TOPDIR)/mod_query/*.c $(TOPDIR)/mod_query/mod_query.lua
- $(MKEXPORTS) -module mod_query -mkdoc -o $@ $+
-
-mod_menu-fns.tex: $(TOPDIR)/mod_menu/*.c $(TOPDIR)/mod_menu/mod_menu.lua
- $(MKEXPORTS) -module mod_menu -mkdoc -o $@ $+
-
-mod_dock-fns.tex: $(TOPDIR)/mod_dock/*.c
- $(MKEXPORTS) -module mod_dock -mkdoc -o $@ $+
-
-mod_sp-fns.tex: $(TOPDIR)/mod_sp/*.c
- $(MKEXPORTS) -module mod_sp -mkdoc -o $@ $+
-
-mod_statusbar-fns.tex: $(TOPDIR)/mod_statusbar/*.c
- $(MKEXPORTS) -module mod_statusbar -mkdoc -o $@ $+
-
-de-fns.tex: $(TOPDIR)/de/*.c
- $(MKEXPORTS) -module de -mkdoc -o $@ $+
+%.exports: $(TOPDIR)/%/exports.tex
+ cp $< $@
# Function list
######################################
loaded prior to defining any module-specific bindings.
Bindings are defined by calling the function
-\fnrefx{ioncore}{defbindings} with the ''context'' of the
+\fnrefx{ioncore}{defbindings} with the ``context'' of the
bindings and the a table of new bindings to make. The context is simply
string indicating one of the classes of regions (or modes such as
\type{WMoveresMode}) introduced in section \ref{sec:objects}, and fully
\end{verbatim}
There has been some confusion among users about the need to define the
-''context'' for each binding, so let me try to explain this design
+``context'' for each binding, so let me try to explain this design
decision here. The thing is that if there was a just a simple 'bind this
key to this action' method without knowledge of the context, some
limitations would have to be made on the available actions and writing
switch to $n$:th workspaces is bound to \key{Mod1+n} while the switch to
$n$:th tab is bound to the sequence \key{Mod1+k n}.
-Currently known ''contexts'' include:
-\code{WScreen},
-\code{WMPlex},
-\code{WMPlex.toplevel},
-\code{WFrame},
-\code{WFrame.toplevel},
-\code{WFrame.floating},
-\code{WFrame.tiled},
-\code{WFrame.transient},
-\code{WMoveresMode},
-\code{WGroup},
-\code{WGroupCW},
-\code{WGroupWS},
-\code{WClientWin},
-\code{WTiling}, and
-\code{WStatusBar}.
+Currently known contexts include:
+\codestr{WScreen},
+\codestr{WMPlex},
+\codestr{WMPlex.toplevel},
+\codestr{WFrame},
+\codestr{WFrame.toplevel},
+\codestr{WFrame.floating},
+\codestr{WFrame.tiled},
+\codestr{WFrame.transient},
+\codestr{WMoveresMode},
+\codestr{WGroup},
+\codestr{WGroupCW},
+\codestr{WGroupWS},
+\codestr{WClientWin},
+\codestr{WTiling}, and
+\codestr{WStatusBar}.
Most of these should be self-explanatory, corresponding to objects
-of class with the same name. The ones with \code{.toplevel} suffix
-refer to screens and ''toplevel'' frames, i.e. frames that are
-not used for transient windows. Likewise \code{.transient} refers
-to frames in transient mode, and \code{.tiled} and \code{.floating}
+of class with the same name. The ones with \codestr{.toplevel} suffix
+refer to screens and ``toplevel'' frames, i.e. frames that are
+not used for transient windows. Likewise \codestr{.transient} refers
+to frames in transient mode, and \codestr{.tiled} and \codestr{.floating}
to frames in, respectively, tiled and floating modes.
\subsection{Binding handlers and special variables}
Unlike in Ion2, in Ion3 binding handlers are not normally passed as
-''anonymous functions'', although this is still possible. The preferred
-method now is to pass the code of the handler as a string. Two special
-variables are available in this code. These are
+``anonymous functions'', although this is still possible. The preferred
+method now is to pass the code of the handler as a string. Two following
+special variables are available in this code.
\begin{tabularx}{\linewidth}{lX}
\tabhead{Variable & Description}
the binding. \\
\code{_chld} &
Object corresponding to the currently active child window of the
- object referred to by \code{_}.
+ object referred to by \code{_}. This should seldom be needed.
\end{tabularx}
-For example, supposing '\code{_}' is a \type{WFrame}, the following
-handler should move the active window to the right, if possible:
+For example, supposing \code{_} (underscore) is a \type{WFrame}, the
+following handler should move the active window to the right, if
+possible:
\begin{verbatim}
"_:inc_index(_sub)"
\subsection{Guards}
To suppress error messages, each binding handler may also be accompanied
-by a ''guard'' expression that blocks the handler from being called when
+by a ``guard'' expression that blocks the handler from being called when
the guard condition is not met. Currently the following guard expressions
are supported (for both \code{_sub} and \code{_chld}):
\begin{tabularx}{\linewidth}{lX}
\tabhead{Guard & Description}
- \code{"_sub:non-nil"} & The \code{_sub} parameter must be set. \\
- \code{"_sub:SomeClass"} & The \code{_sub} parameter must be member
+ \codestr{\_sub:non-nil} & The \code{_sub} parameter must be set. \\
+ \codestr{\_sub:SomeClass} & The \code{_sub} parameter must be member
of class \type{SomeClass}. \\
\end{tabularx}
Key presses:
\begin{itemize}
- \item \fnref{kpress}\code{(keyspec, handler [, guard])},
- \item \fnref{kpress_wait}\code{(keyspec, handler [, guard])} and
- \item \fnref{submap}\code{(keyspec, \{ ... more key bindings ... \})}.
+ \item \fnrefx{ioncore}{kpress}, and
+ \fnrefx{ioncore}{kpress_wait}\code{(keyspec, handler [, guard])}.
+ \item \fnrefx{ioncore}{submap}\code{(keyspec, \{ ... more key bindings ... \})}.
+ \item \fnrefx{ioncore}{submap_enter}, and
+ \fnrefx{ioncore}{submap_wait}\code{(handler [, guard])}.
\end{itemize}
Mouse actions:
\begin{itemize}
- \item \fnref{mclick}\code{(buttonspec, handler [, guard])},
- \item \fnref{mdblclick}\code{(buttonspec, handler [, guard])},
- \item \fnref{mpress}\code{(buttonspec, handler [, guard])} and
- \item \fnref{mdrag}\code{(buttonspec, handler [, guard])}.
+ \item \fnrefx{ioncore}{mclick},
+ \fnrefx{ioncore}{mdblclick},
+ \fnrefx{ioncore}{mpress}, and
+ \fnrefx{ioncore}{mdrag}\code{(buttonspec, handler [, guard])}.
\end{itemize}
The actions that most of these functions correspond to should be clear
-and as explained in the reference, \fnref{kpress_wait} is simply
-\fnref{kpress} with a flag set instructing Ioncore wait for all
-modifiers to be released before processing any further actions.
+and as explained in the reference, \fnrefx{ioncore}{kpress_wait} is simply
+\fnrefx{ioncore}{kpress} with a flag set instructing Ioncore wait for
+all modifiers to be released before processing any further actions.
This is to stop one from accidentally calling e.g.
-\fnref{WRegion.rqclose} multiple times in a row. The \fnref{submap}
-function is used to define submaps or ''prefix maps''. The second
-argument to this function is table listing the key press actions
-(\fnref{kpress}) in the submap
+\fnref{WRegion.rqclose} multiple times in a row. The
+\fnrefx{ioncore}{submap} function is used to define submaps or
+``prefix maps''. The second argument to this function is table listing
+the key press actions (\fnrefx{ioncore}{kpress}) in the submap.
+The \fnrefx{ioncore}{submap_enter} handler is called when the submap
+is entered, in which this handler is defined. Likewise, the
+\fnrefx{ioncore}{submap_wait} handler is called when all modifiers
+have been released while waiting for further key presses in the submap.
The parameters \var{keyspec} and \var{buttonspec} are explained below
in detail. The parameter \var{handler} is the handler for the binding,
the \key{Enter} key on the main part of the keyboard has the less common
name \key{Return} while the one the numpad is called \key{KP\_Enter}.
-The \var{keyspec} string may optionally have multiple ''modifier'' names
+The \var{keyspec} string may optionally have multiple ``modifier'' names
followed by a plus sign (\code{+}) as a prefix. X defines the following
modifiers:
-\begin{quotation}
+
\key{Shift}, \key{Control}, \key{Mod1} to \key{Mod5},
\key{AnyModifier} and \key{Lock}.
\index{Shift@\key{Shift}}
\index{ModN@\key{ModN}}
\index{AnyModifier@\key{AnyModifier}}
\index{Lock@\key{Lock}}
-\end{quotation}
X allows binding all of these modifiers to almost any key and while this
list of modifiers does not explicitly list keys such as
\key{Alt}\index{Alt@\key{Alt}} that are common on modern keyboards, such
keys are bound to one of the \key{ModN}. On systems running XFree86
\key{Alt} is usually \key{Mod1}. On Suns \key{Mod1} is the diamond key
-and \key{Alt} something else. One of the ''flying window'' keys on so
+and \key{Alt} something else. One of the ``flying window'' keys on so
called Windows-keyboards is probably mapped to \key{Mod3} if you have
such a key. Use the program \file{xmodmap}\index{xmodmap@\file{xmodmap}}
to find out what exactly is bound where.
specification may end with an optional area name following an @-sign.
Only frames currently support areas, and the supported values in this
case are
-\code{"border"}, \code{"tab"}, \code{"empty_tab"}, \code{"client"} and
-\code{nil} (for the whole frame).
+\codestr{border}, \codestr{tab}, \codestr{empty\_tab}, \codestr{client}
+and \code{nil} (for the whole frame).
For example, the following code binds dragging a tab with the first
button pressed to initiate tab drag\&drop handling:
The default binding configuration contains references to the variables
\code{META} and \code{ALTMETA} instead of directly using the default
-values of \code{"Mod1+"} and \code{""} (nothing). As explained in
+values of \codestr{Mod1+} and \codestr{} (nothing). As explained in
section \ref{sec:walkthrough}, the definitions of these variables
appear in \file{cfg\_ion.lua}. This way you can easily change the the
modifiers used by all bindings in the default configuration without
\begin{tabularx}{\linewidth}{lX}
\tabhead{Menu name & Description}
- \code{windowlist} &
+ \codestr{windowlist} &
List of all client windows. Activating an entry jumps to that window. \\
- \code{workspacelist} &
+ \codestr{workspacelist} &
List of all workspaces. Activating an entry jumps to that workspaces. \\
- \code{focuslist} &
+ \codestr{focuslist} &
List of client windows with recent activity in them, followed by
previously focused client windows. \\
- \code{focuslist_} &
+ \codestr{focuslist\_} &
List of previously focused client windows. \\
- \code{stylemenu} &
+ \codestr{stylemenu} &
List of available \file{look\_*.lua} style files. Activating an entry
loads that style and ask to save the selection. \\
- \code{ctxmenu} &
+ \codestr{ctxmenu} &
Context menu for given object. \\
\end{tabularx}
\subsection{Defining context menus}
-The ''ctxmenu'' is a special menu that is assembled from a defined context
+The ``ctxmenu'' is a special menu that is assembled from a defined context
menu for the object for which the menu was opened for, but also includes
the context menus for the manager objects as submenus.
})
\end{verbatim}
-Some of the same ''modes'' as were available for some bindings
-may also be used: \code{WFrame.tiled}, \code{WFrame.floating},
-and \code{WFrame.transient}.
+Some of the same ``modes'' as were available for some bindings
+may also be used: \codestr{WFrame.tiled}, \codestr{WFrame.floating},
+and \codestr{WFrame.transient}.
\subsection{Displaying menus}
\fnref{mod_menu.grabmenu} &
A special version of \fnref{mod_menu.menu} that grabs the keyboard
and is scrolled with a given key until all modifiers have been released,
- after which the selected entry is activated. This function is meant to
- be used for implementing, for example, Win***s-style \key{Alt-Tab}
- handling.\footnote{See the \file{wcirculate.lua} script in the Ion
- scripts repository \url{http://iki.fi/tuomov/repos/ion-scripts-3/}.} \\
+ after which the selected entry is activated. \\
\end{tabularx}
The \fnrefx{mod_menu}{grabmenu} function takes the extra key parameter, but
--- /dev/null
+\section{The statusbar}
+\label{sec:statusbar}
+
+The \file{mod\_statusbar} module provides a statusbar that adapts to
+layouts of tilings, using only the minimal space needed. Ion only
+supports one adaptive ``status display'' object per screen, so this
+statusbar is mutually exclusive with the embedded mode of \file{mod\_dock}
+docks.
+
+The statusbar is configured in \file{cfg\_statusbar.lua}. Typically,
+the configuration consists of two steps: creating a statusbar with
+\fnref{mod\_statusbar.create}, and then launching the separate
+\command{ion-statusd} status daemon process with
+\fnref{mod_statusbar.launch_statusd}. This latter phase is done
+automatically, if it was not done by the configuration file, but
+the configuration file may pass extra parameters to \command{ion-statusd}
+monitors. (See Section \ref{sec:statusd} for more information on
+writing \command{ion-statusd} monitors.)
+
+A typical \file{cfg\_statusbar.lua} configuration might look as follows:
+
+
+\begin{verbatim}
+-- Create a statusbar
+mod_statusbar.create{
+ screen = 0, -- First screen,
+ pos = 'bl', -- bottom left corner
+ systray = true, -- Swallow systray windows
+
+ -- The template
+ template = "[ %date || load:% %>load || mail:% %>mail_new/%>mail_total ]"
+ .. " %filler%systray",
+}
+
+-- Launch ion-statusd.
+mod_statusbar.launch_statusd{
+ -- Date meter
+ date={
+ -- ISO-8601 date format with additional abbreviated day name
+ date_format='%a %Y-%m-%d %H:%M',
+ },
+}
+\end{verbatim}
+
+
+\subsection{The template}
+
+The template specifies what is shown on the statusbar; for information
+on the other options to \fnref{mod_statusbar.create}, see the reference.
+Strings of the form \codestr{\%spec} tokens specially interpreter by
+the statusbar; the rest appears verbatim. The \code{spec} typically
+consists of the name of the value/meter to display (beginning with a latin
+alphabet), but may be preceded by an alignment specifier and a number
+specifying the minimum width. The alignment specifiers are: \codestr{>}
+for right, \codestr{<} for left, and \codestr{|} for centring. Additionally,
+space following \codestr{\%} (that is, the string \codestr{\% }), adds
+``stretchable space'' at that point. The special string \codestr{\%filler}
+may be used to flush the rest of the template to the right end of
+the statusbar.
+
+The stretchable space works as follows: \file{mod\_statusbar} remembers
+the widest string (in terms of graphical presentation) that it has
+seen for each meter, unless the width has been otherwise constrained.
+If there is stretchable space in the template, it tries to make the
+meter always take this much space, by stretching any space found in
+the direction indicated by the alignment specifier: the opposite
+direction for left or right alignment, and both for centring.
+
+\subsection{The systray}
+
+The special \codestr{\%systray} and \codestr{\%systray\_*}
+(\codestr{*} varying) monitors indicate where to place system tray
+windows. There may be multiple of these. KDE-protocol system tray
+icons are placed in \codestr{\%systray} automatically, unless disabled
+with the \var{systray} option. Otherwise the \var{statusbar} winprop may
+be used to place any window in any particular \codestr{\%systray\_*}.
+
+\subsection{Monitors}
+
+The part before the first
+underscore of each monitor name, describes the script/plugin/module
+that provides the meter, and any configuration should be passed
+in the a corresponding sub-table \fnref{mod_statusbar.launch_statusd}.
+Ion comes with date, load and mail (for plain old mbox)
+\command{ion-statusd} monitor scripts. More may be obtained from
+the scripts repository \cite{scripts}. These included scripts
+provide the following monitors and their options
+
+\subsubsection{Date}
+
+Options: \var{date_format}: The date format in as seen above,
+in the usual \code{strftime} format. \code{formats}: table of
+formats for additional date monitors, the key being the name
+of the monitor (without the \codestr{date\_} prefix).
+
+Monitors: \codestr{date} and other user-specified ones with the
+\codestr{date\_} prefix.
+
+
+\subsubsection{Load}
+
+Options: \var{update_interval}: Update interval in milliseconds
+(default 10s). \var{important_threshold}: Threshold above which
+the load is marked as important (default 1.5), so that the
+drawing engine may be suitably hinted. \var{critical_threshold}:
+Threshold above which the load is marked as critical (default 4.0).
+
+
+Monitors: \codestr{load} (for all three values),
+\codestr{load\_1min}, \codestr{load\_5min} and \codestr{load\_15min}.
+
+
+\subsubsection{Mail}
+
+Options: \var{update_interval}: Update interval in milliseconds
+(default 1min). \var{mbox}: mbox-format mailbox location
+(default \verb!$MAIL!).
+\var{files}: list of additional mailboxes, the key giving the
+name of the monitor.
+
+Monitors: \codestr{mail\_new}, \codestr{mail\_unread},
+\codestr{mail\_total}, and corresponding
+\codestr{mail\_*\_new}, \codestr{mail\_*\_unread}, and \codestr{mail\_*\_total}
+for the additional mailboxes (\codestr{*} varying).
\section{Winprops}
\label{sec:winprops}
-The so-called ''winprops''\index{Winprops} can be used to change how
+The so-called ``winprops''\index{Winprops} can be used to change how
specific windows are handled and to set up some kludges to deal with
badly behaving applications. They are defined by calling the function
\code{defwinprop} with a table containing the properties to set and the
\begin{winprop}{statusbar}{string}
\index{statusbar@\var{statusbar}}
Put the window in the statusbar, in the named tray component,
- (The default tray component is called simply \code{"systray"},
+ (The default tray component is called simply \codestr{systray},
and others you give names to in your custom template, always
- prefixed by \code{"systray_"}.
+ prefixed by \codestr{systray\_}.
\end{winprop}
\begin{winprop}{transient_mode}{string}
\index{transient-mode@\var{transient_mode}}
- \code{"normal"}: No change in behaviour. \code{"current"}:
+ \codestr{normal}: No change in behaviour. \codestr{current}:
The window should be thought of as a transient for the current
active client window (if any) even if it is not marked as a
- transient by the application. \code{"off"}: The window should
+ transient by the application. \codestr{off}: The window should
be handled as a normal window even if it is marked as a
transient by the application.
\end{winprop}
\subsection{Classes, roles and instances}
\label{sec:classesrolesinstances}
-The identification information in the winprop specification is usually the
+The identification information supported are
\var{class}\index{class@\var{class}!winprop},
\var{role}\index{role@\var{role}!winprop},
-\var{instance}\index{instance@\var{instance}!winprop} and
-\var{name}
-of the window. The \var{name} field is a Lua-style regular expression
-matched against the window's title and the rest are strings that must
-exactly match the corresponding window information. It is not necessary
-to specify all of these fields.
+\var{instance}\index{instance@\var{instance}!winprop},
+\var{name}\index{name@\var{name}!winprop},
+\var{is_transient}\index{is-transient@\var{is_transient}!winprop}, and
+\var{is_dockapp}\index{is-dockapp@\var{is_dockapp}!winprop}.
+It is not necessary to specify all of these fields.
+The first three are strings, and must exactly match the
+corresponding information obtained from the window's properties.
+The \var{name} field is a Lua-style regular expression matched against
+the window's title. The \var{is_transient} field is a boolean that can
+be used to include or exclude transients only, while the \var{is_dockapp}
+field is set by Ion for the dock windows of Window Maker dockapp protocol
+dockapps. Usually this is the only information available for these
+\emph{icon} windows.
Ion looks for a matching winprop in the order listed by the following
table. An 'E' indicates that the field must be set in the winprop
\begin{center}
\begin{tabular}{llll}
- \tabhead{\var{class} & \var{role} & \var{instance} & \var{name}}
+ \tabhead{\var{class} & \var{role} & \var{instance} & other}
E & E & E & E \\
E & E & E & * \\
E & E & * & E \\
\end{tabular}
\end{center}
-If there are multiple winprops with other identification information
-the same but different \var{name}, the longest match is chosen.
+If there are multiple matching winprops with the same
+\var{class}, \var{role} and \var{instance}, but other information
+different, the most recently defined one is used.
+
\subsection{Finding window identification}
This method, however, will not work on transients.
\index{transient}
-So-called ''transient windows'' are usually short-lived dialogs (although
+So-called ``transient windows'' are usually short-lived dialogs (although
some programs abuse this property) that have a parent window that they are
-''transient for''. On tiled workspaces Ion displays these windows
-simulatenously with the parent window at the bottom of the same frame.
+``transient for''. On tiled workspaces Ion displays these windows
+simultaneously with the parent window at the bottom of the same frame.
Unfortunately \command{xprop} is stupid and can't cope with this situation,
returning the parent window's properties when the transient is clicked on.
For this reason you'll have to do a little extra work to get the properties
XFree86.}
Finally, it should be mentioned that too many authors these days
-''forget'' to set this vital identification to anything meaningful:
-everything except name is the same for all of the programs's
-windows, for example.
+``forget'' to set this vital identification to anything meaningful:
+everything except name is the same for all of the program's
+windows, for example. Some other programs only set this information
+after the window has been mapped, i.e. the window manager has been
+told to start managing it, which is obviously too late.
+Gtk applications in particular are often guilty on both counts.
+
\subsection{Some common examples}
}
\end{verbatim}
-\subsubsection{Fixing a Mozilla Firebird transient}
-
-Mozilla Firebird (0.7) incorrectly does not set the \code{WM_TRANSIENT_FOR}
-property for the dialog that is used to ask the action to take for a file.
-It, however, sets the the property point to the main window for the save
-dialog. This can be annoying and confusing, as the first dialog is not
-closed before the second is displayed.
-
-We'd like the first dialog to be transient to the main window. The closest
-we can get to that is to consider it transient to the current window (if
-there's one). Unfortunately Firebird does not set any meaningful classes,
-instances or roles for the windows, so we'll have to rely on an ugly title
-match.
-
-\begin{verbatim}
-defwinprop{
- class = "MozillaFirebird-bin",
- name = "Opening .*",
- transient_mode = "current",
-}
-\end{verbatim}
-
\subsubsection{Forcing newly created windows in named frames}
The following winprop should place xterm started with command-line parameter
\end{verbatim}
For this example to work, we have to somehow create a frame named
-\code{sysmonframe}. One way to do this is to make the following
+\codestr{sysmonframe}. One way to do this is to make the following
call in the \key{Mod1+F3} Lua code query:
\begin{verbatim}
Recall that \code{_} points to the multiplexer (frame or screen) in which
the query was opened. Running this code should open a new query prefilled
with the current name of the frame. In our example we would change the
-name to \code{sysmonframe}, but we could just as well have used the
+name to \codestr{sysmonframe}, but we could just as well have used the
default name formed from the frame's class name and an instance number.
\ref{sec:walkthrough}.
How keys and mouse action are bound to functions is described in detail
in \ref{sec:bindings} and in section \ref{sec:winprops} winprops are
-explained. For a reference on exported functions, see section
-\ref{sec:exports}.
+explained. Finally, the statusbar is explained in \ref{sec:statusbar}.
+For a reference on exported functions, see section \ref{sec:exports}.
\section{The configuration files}
\label{sec:conffiles}
for a file, if no extension or path component is given, compiled \file{.lc}
files are attempted before \file{.lua} files.
-All the configuration files are named \file{cfg\_*.lua} with the ''\file{*}''
+All the configuration files are named \file{cfg\_*.lua} with the ``\file{*}''
part varying. The configuration file for each module \file{mod\_modname} is
\file{cfg\_modname.lua}, with \file{modname} varying by the module in
question. The following table summarises these and other configuration
the necessary modules and other configuration files configuring some
more specific aspects of Ion are loaded there. In this section we
take a walk through the stock \file{cfg\_ion.lua}.
-Notice that most of the settings are commented-out (\code{--} is a
+Notice that most of the settings are commented-out (\verb!--! is a
line comment in Lua) in the actual file, as they're the defaults
nevertheless.
-The first thing one in the file is to set
+The first thing done in the file, is to set
\begin{verbatim}
META="Mod1+"
ALTMETA=""
\end{verbatim}
These settings cause most of Ion's key bindings to use \key{Mod1} as the
-modifier key. If \code{ALTMETA} is set, it is used as modifier for the keys
-that don't normally use a modifier. for details on modifiers and key
-binding setup in general see section \ref{sec:bindings}.
+modifier key. If \code{ALTMETA} is set, it is used as modifier for the
+keys that don't normally use a modifier. Note that these two are Lua
+variables used in the configuration files only, and not Ion settings.
+For details on modifiers and key binding setup in general, see section
+\ref{sec:bindings}.
Next we do some basic feel configuration:
for \fnref{ioncore.set} for details.
As a next step, in the actual \file{cfg\_ion.lua} file, we load
-\file{cfg\_defaults.lua}. However, it is merely a conveniency file for
+\file{cfg\_defaults.lua}. However, it is merely a convenience file for
doing exactly what we will going through below, and what is commented
out in the actual file. If you do not want to load what
\file{cfg\_defaults.lua} loads, just comment out the corresponding
Most bindings and menus are defined in \file{cfg\_ioncore.lua}.
Details on making such definitions follow in sections \ref{sec:bindings}
and \ref{sec:menus}, respectively.
-some kludges or ''winprops'' to make some applications behave better
-under Ion are colledted in \file{cfg\_kludges.lua}; see section
+some kludges or ``winprops'' to make some applications behave better
+under Ion are collected in \file{cfg\_kludges.lua}; see section
\ref{sec:winprops} for details. In addition to these, this file
lists quite a few statements of the form
\begin{verbatim}
\input{conf-menus.tex}
\input{conf-winprops.tex}
+
+\input{conf-statusbar.tex}
+
+
\chapter{Introduction}
-This document is an ''advanced user'' manual for Ion, the X11 window manager,
-and version 3 specifically. It is an attempt attempt at documenting what is
-in Ion's configuration files, how to configure Ion by simple modifications
+This document is an ``advanced user'' manual for the X11 window manager
+Ion, version 3. It is an attempt at documenting things that go into Ion's
+configuration files, how to configure Ion by simple modifications
to these files and how to write more complex extensions in Lua, the
lightweight configuration and scripting language used by Ion.
-Readers unfamiliar with Lua is advised to first glance at the Lua manual at
+Readers unfamiliar with Lua might first want to first glance at some
+Lua documentation at
-\centerurl{http://www.lua.org/docs.html}
+\begin{center}
+ \url{http://www.lua.org/docs.html}, or \\
+ \url{http://lua-users.org/wiki/LuaTutorial},
+\end{center}
-and perhaps some tutorial pages at the lua-users wiki:
-
-\centerurl{http://lua-users.org/wiki/LuaTutorial}
+although this should not be strictly necessary for basic modifications
+of configuration files for anyone with at least some familiarity with
+programming languages.
Back in this document, first in chapter \ref{chap:prelim} some key
-concepts and relations are explained. These include the module system
-and Ion's object and class hierarchies. While it might not at first
-occur that knowing such things would be necessary to \emph{configure}
-a program, this material is essential because of the object-oriented
-nature of most of Ion's scripting interface.
-
-The new user, fed up with the default key bindings and eager to just
-quickly configure Ion to his liking may question the reasons for
-exposing the ''heavy'' internal OO structure in the scripting and
-configuration interface. I'm not the one to blame him for that.
-Sure it would be faster to configure Ion to everyone's liking
-if a simpler binding configuration interface was provided. Such an
-interface would, however, also be far more limited and make writing
-extensions more complicated and the advantages from using a real
-scripting language would be partly lost. One more advantage from
-a rich scripting and configuration interface is that it allows
-implementing scripts to read alternate configuration file formats,
-ones that could be, for example, modified by external configuration tools.
-
-In chapter \ref{chap:config} the very basic Ion configuration know-how
-is provided. All the different configuration files and their locations
-are explained and instructions are given to allow the reader to
-configure bindings and so-called ''winprops''. Chapter \ref{chap:gr}
-explains the notion of drawing engines and graphical styles and how to
-write new looks for Ion and more advanced aspects of Ion's scripting
-interface are documented in chapter \ref{chap:tricks} (a work in
-progress).
-
+concepts and relations are explained. These include the module system,
+and Ion's object (or ``region'') and class hierarchies. While it may
+not be necessary to study the latter for basic copy-paste modifications
+of configuration files -- for that you should not really need this
+manual either -- it is, however, essential to for more extensive
+customisation, due to the semi-object-oriented nature of most of
+Ion's scripting interface. Knowing the different object types also
+helps dealing with the different binding ``contexts'' (see
+Section \ref{sec:bindings}) that to some extent mirror these classes.
+
+The new user, fed up with the default key bindings and eager to
+just quickly configure Ion to his liking, may therefore just want
+to skip to Chapter \ref{chap:config}, and attempt to work from therefore.
+That chapter provides the very basic Ion configuration know-how
+is provided: all the different configuration files and their locations
+are explained, instructions are given to allow the reader to
+configure bindings and so-called ``winprops'', and the statusbar
+templates are also explained.
+
+Next, Chapter \ref{chap:gr} explains the notion of drawing engines
+and graphical styles and how to write new looks for Ion. More advanced
+aspects of Ion's scripting interface are documented in Chapter
+\ref{chap:tricks}.
Finally, most of the functions provided by Ion's scripting interface
-are listed and documented in the Function reference in chapter
-\ref{sec:exports}. At the end of the document is an alphabetical
-listing of all these functions.
-
+are listed and documented in the Function reference in Chapter
+\ref{sec:exports}. At the end of the document an alphabetical
+listing of all these functions may be found.
\section{C coding style}
-If you want to submit patches to Ion, you MUST follow my coding
+If you want to submit patches to Ion, you \textbf{must} follow my coding
style, even if you think it is the root of all evil. We don't want
the code to be an incomprehensible mess of styles and I have better
things to do than fix other people's style to match mine. The style
\subsection{Whitespace}
\begin{itemize}
- \item Indentations of 4 with \emph{tab size=4}.
+ \item Indentations of 4 with spaces.
\item No extra spaces between operators, delimiters etc. except
\begin{itemize}
This chapter first gives in section \ref{sec:engines} a general outline
of how drawing engines are used, of style specifications and then
in section \ref{sec:defaultde} describes how to specify styles
-for the default drawing engine.
+for the default drawing engine. Some additional settings and
+user attributes are explained in Sections \ref{sec:grmisc}.
+
\section{Drawing engines, style specifications and sub-styles}
\label{sec:engines}
Ion's drawing routines are abstracted into so-called drawing engine
modules that can, again depending on the system, be dynamically
-loaded as needed. The drawing engine modules provide ''brushes''
+loaded as needed. The drawing engine modules provide ``brushes''
that objects can use to draw some high-level primitives such
as borders and text boxes (in addition to simple text and rectangle
drawing) on their windows and configure e.g. the shape and
element1-element2-...-elementn
\end{verbatim}
-An example of such a style specification is \code{tab-frame};
+An example of such a style specification is \codestr{tab-frame};
see the table in subsection \ref{sec:styles} for more styles.
When an object asks for a brush of certain style, the selected
drawing engine will attempt to find the closest match to this
specification. The styles/brushes defined by the drawing engines
-may have asterisks (\verb!*!) as some of the elements indicating
+may have asterisks (\codestr{*}) as some of the elements indicating
a match to anything. Exact matches are preferred to asterisk
matches and longer matches to shorter. For example, let a brush
-for style \code{foo-bar-baz} be queried, then the following
+for style \codestr{foo-bar-baz} be queried, then the following
brushes are in order of preference:
\begin{verbatim}
\begin{tabularx}{\linewidth}{lX}
\tabhead{Style name & Description}
-\code{frame} & Style for frames.
- Substyle attributes: \code{active}/\code{inactive}
+\codestr{frame} & Style for frames.
+ Substyle attributes: \codestr{active}/\codestr{inactive}
(mutually exclusive) and
- \code{quasiactive}\nobreak/\code{not_quasiactive}.
+ \codestr{quasiactive}/\codestr{not\_quasiactive}.
A frame is ``quasiactive'' when an active region
- has a backlink to it, such as a detached window. \\
-\code{frame-tiled} & A more specific style for tiled frames.
- Substyle attributes as for \code{frame}. \\
-\code{frame-tiled-alt} & An alternative style for tiled frames.
+ has a back-link to it, such as a detached window. \\
+\codestr{frame-tiled} & A more specific style for tiled frames.
+ Substyle attributes as for \codestr{frame}. \\
+\codestr{frame-tiled-alt} & An alternative style for tiled frames.
Often used to disable the tab-bar. \\
-\code{frame-floating} & A more specific style for floating
+\codestr{frame-floating} & A more specific style for floating
frames. \\
-\code{frame-transient} & A more specific style for frames
+\codestr{frame-transient} & A more specific style for frames
containing transient windows. \\
\end{tabularx}
\begin{tabularx}{\linewidth}{lX}
\tabhead{Style name & Description}
-\code{tab} & Style for frames' tabs and menu entries.
+\codestr{tab} & Style for frames' tabs and menu entries.
Substyle attributes:
- \code{active}\nobreak/\code{inactive} and
- \code{selected}\nobreak/\code{unselected} \\
-\code{tab-frame} & A more specific style for frames' tabs.
+ \codestr{active}/\codestr{inactive} and
+ \codestr{selected}/\codestr{unselected} \\
+\codestr{tab-frame} & A more specific style for frames' tabs.
Additional substyle attributes include:
- \code{tagged}\nobreak/\code{not_tagged},
- \code{dragged}\nobreak/\code{not_dragged},
- \code{activity}\nobreak/\code{no_activity} and
- \code{quasiactive}\nobreak/\code{not_quasiactive}. \\
-\code{tab-frame-tiled}, & \\
-\code{tab-frame-tiled-alt}, & \\
-\code{tab-frame-floating}, & \\
-\code{tab-frame-transient} & More specific styles for frames in the
+ \codestr{tagged}/\codestr{not\_tagged},
+ \codestr{dragged}/\codestr{not\_dragged},
+ \codestr{activity}/\codestr{no\_activity},
+ \codestr{quasiactive}/\codestr{not\_quasiactive}. \\
+\codestr{tab-frame-tiled}, & \\
+\codestr{tab-frame-tiled-alt}, & \\
+\codestr{tab-frame-floating}, & \\
+\codestr{tab-frame-transient} & More specific styles for frames in the
different modes. \\
-\code{tab-menuentry} & A more specific style for entries in \type{WMenu}s.
- Additional substyle attributes include \code{submenu} and
- occasionally also \code{activity} is used.\\
-\code{tab-menuentry-bigmenu} &
+\codestr{tab-menuentry} & A more specific style for entries in \type{WMenu}s.
+ Additional substyle attributes include \codestr{submenu} and
+ occasionally also \codestr{activity} is used.\\
+\codestr{tab-menuentry-bigmenu} &
An alternate style for entries in \type{WMenu}s. \\
\end{tabularx}
\begin{tabularx}{\linewidth}{lX}
\tabhead{Style name & Description}
-\code{input} & A style for \type{WInput}s. \\
-\code{input-edln} & A more specific style for \type{WEdln}s.
- Substyle attributes: \code{selection} for selected text and
- \code{cursor} for the cursor indicating current editing point. \\
-\code{input-message} & A more specific style for \type{WMessage}s. \\
-\code{input-menu} & A more specific style for \type{WMenu}s. \\
-\code{input-menu-bigmenu} & An alternate style for \type{WMenu}s. \\
-\code{moveres_display} & The box displaying position/size when
+\codestr{input} & A style for \type{WInput}s. \\
+\codestr{input-edln} & A more specific style for \type{WEdln}s.
+ Substyle attributes: \codestr{selection} for selected text and
+ \codestr{cursor} for the cursor indicating current editing point. \\
+\codestr{input-message} & A more specific style for \type{WMessage}s. \\
+\codestr{input-menu} & A more specific style for \type{WMenu}s. \\
+\codestr{input-menu-bigmenu} & An alternate style for \type{WMenu}s. \\
+\codestr{moveres\_display} & The box displaying position/size when
moving or resizing frames. \\
-\code{dock} & The dock. \\
+\codestr{stdisp} & Any status display. \\
+\codestr{stdisp-dock} & The dock. \\
+\codestr{stdisp-statusbar} & The statusbar. Substyles include:
+ the name of any monitor/meter (such as \codestr{date}), and
+ the supplied hint. Typical hints are: \codestr{normal},
+ \codestr{important}, and \codestr{critical}. \\
\end{tabularx}
The \fnref{gr.select_engine} function sees if the engine
given as argument is registered (the default drawing engine is
-simply called ''de''). If the engine could not be found, it
+simply called ``de''). If the engine could not be found, it
tries to load a module of the same name. If the engine still
-is not registered, \fnref{gr.select_engine} returns \code{false}
+is not registered, \fnref{gr.select_engine} returns \codestr{false}
and in this case we also exit the style setup script.
If the engine was found, \fnref{gr.select_engine} sees that
further requests for brushes are forwarded to that engine
-and returns \code{true}.
+and returns \codestr{true}.
Before defining new styles it may be a good idea to clear old
styles from memory so if the old configuration defines more
\begin{tabularx}{\linewidth}{lX}
\tabhead{Field & Description}
\var{highlight_colour} &
- Colour for the ''highlight'' part of a border. \\
+ Colour for the ``highlight'' part of a border. \\
\var{shadow_colour} &
- Colour for the ''highlight'' part of a border. \\
+ Colour for the ``shadow'' part of a border. \\
\var{foreground_colour} &
Colour for the normal drawing operations, e.g. text. \\
\var{background_colour} &
Window background colour (unless transparency is enabled) and
background colour boxes. \\
\var{padding_colour} &
- Colour for the ''padding'' part of a border border. Set to
+ Colour for the ``padding'' part of a border border. Set to
\var{background_colour} if unset. \\
\end{tabularx}
\begin{tabularx}{\linewidth}{lX}
\tabhead{Field & Description}
\var{border_style} & A string indicating the style of border; one of
- elevated/inlaid/ridge/groove as seen in the
- above sketch. \\
+ \codestr{elevated}/\codestr{inlaid}/\codestr{ridge}/\codestr{groove}
+ as seen in the above sketch. \\
\var{border_sides} & A string indicating which sides of the border
- to draw: all/tb/lr for all, top and bottom, and
- left and right. To control between left/right
- and top/bottom, use the pixel options below. \\
+ to draw: \codestr{all}/\codestr{tb}/\codestr{lr} for all,
+ top and bottom, and left and right. To control between
+ left/right and top/bottom, use the pixel options below. \\
\var{highlight_pixels} &
Width of the highlight part of the border in pixels. \\
\var{shadow_pixels} &
\var{font} & Font to be used in text-drawing operations; standard X font
name. \\
\var{text_align} & How text is to be aligned in text boxes/tabs; one of
- the strings left\nobreak/right\nobreak/center. \\
+ the strings \codestr{left}/\codestr{right}/\codestr{center}. \\
\end{tabularx}
\subsubsection{Substyles}
As discussed in previous sections, styles may have substyles to e.g.
-indicate different states of the object being drawn. The ''de'' engine
+indicate different states of the object being drawn. The ``de'' engine
limits what can be configured in substyles to the set of colours in the
first table above, but also specifically interprets for the main style
-\code{tab-frame} the substyles \code{*-*-tagged} and \code{*-*-*-dragged}
+\codestr{tab-frame} the substyles \codestr{*-*-tagged} and \codestr{*-*-*-dragged}
by, respectively, drawing a right angle shape at the top right corner
of a tab and by shading the tab with a stipple pattern. Also for
-menus the substyles \code{*-*-submenu} are handled as a special case.
+menus the substyles \codestr{*-*-submenu} are handled as a special case.
Substyles are defined with the function \fnref{de.substyle} within the
table defining the main style. The parameters to this function are
\section{Miscellaneous settings}
+\label{sec:grmisc}
+
+
+\subsection{Frame user attributes}
+
+The function \fnref{WFrame.set_grattr} may be used to give frames
+(and their tabs) arbitrary extra attributes to be passed to the
+drawing engine. Hence, by configuring such substyles in the style
+configuration files, and turning on the attribute when needed,
+scripts may display visual cues related to the frame. There is
+also one extra attribute specially interpreted by the default
+drawing engine: the \codestr{numbered} attribute, which causes
+numbers to be displayed on the tabs.
+
+
+\subsection{Extra fields for style \codestr{frame}}
The following style fields are independent of the drawing engine used,
but are related to objects' styles and therefore configured in the drawing
engine configuration file.
-\subsection{Extra fields for style \code{frame}}
-
\begin{tabularx}{\linewidth}{lX}
\tabhead{Field & Description}
\code{bar} & Controls the style of the tab-bar. Possible values
- are the strings \code{"none"}, \code{"inside"}, \code{"outside"}
- and \code{"shaped"}, with the last providing the PWM-style
+ are the strings \codestr{none}, \codestr{inside}, \codestr{outside}
+ and \codestr{shaped}, with the last providing the PWM-style
tab-bars for floating frames. \\
\code{floatframe_tab_min_w} & Minimum tab width in pixels for
the shaped style, given that this number times number of tabs
interval $(0, 1]$.
\end{tabularx}
-\subsection{Extra fields for style \code{dock}}
+
+
+\subsection{Extra fields for style \codestr{dock}}
\begin{tabularx}{\linewidth}{lX}
\tabhead{Field & Description}
\code{outline_style} & How borders are drawn:
- \code{"none"} -- no border,
- \code{"all"} -- border around whole dock,
- \code{"each"} -- border around each dockapp. \\
-\code{tile_size} & A table with entries \code{width} and \code{height},
+ \codestr{none} -- no border,
+ \codestr{all} -- border around whole dock,
+ \codestr{each} -- border around each dockapp. \\
+\code{tile_size} & A table with entries \codestr{width} and \codestr{height},
indicating the width and height of tiles in pixels.
\end{tabularx}
when the \type{WObj}
\code{destroy_obj}\index{destroy-obj@\code{destroy_obj}}
function that calls watches, the deinit routine and frees memory may
-be called directly. In all other cases the
-\code{defer_destroy}\index{defer-destroy@\code{defer_destroy}}
+be called directly. In all other cases the \code{mainloop_defer_destroy}%
+\index{mainloop-defer-destroy@\code{mainloop_defer_destroy}}
function should be used to defer the call of \code{destroy_obj} until
Ioncore returns to its main event loop.
that wants to get rid of the object. This is the case, for example,
when the function created a frame to manage some other object but for
some reason failed to reparent the object to this frame.
- \item In a deferred action handler set with
- \code{defer_action}\index{defer-action@\code{defer_action}}.
+ \item In a deferred action handler set with \code{mainloop_defer_action}%
+ \index{mainloop-defer-action@\code{mainloop_defer_action}}.
Like deferred destroys, other deferred actions are called when
Ioncore has returned to the main loop.
\item You are absolute sure that C code outside your code has no
If there are no serious side effects from deferring destroying the
object or you're unsure whether it is safe to destroy the object
-immediately, use \code{defer_destroy}.
+immediately, use \code{mainloop_defer_destroy}.
\subsection{The types \code{char*} and \code{const char*} as function
parameters and return values}
For further reference a copy must be made. \\
\code{char*} & The string is the caller's responsibility and it
\emph{must} free it when no longer needed. &
- The called function may modify the string but the ''owner'' of
+ The called function may modify the string but the ``owner'' of
the string is case-dependant. \\
\end{tabularx}
Context:
-[TAG ion-doc-3ds-20070318
-Tuomo Valkonen <tuomov@iki.fi>**20070318200902]
+[TAG ion-doc-3rc-20070506
+Tuomo Valkonen <tuomov@iki.fi>**20070506144001]
\section{Functions defined in \file{ioncore}}
\label{sec:ioncoreref}
-\input{ioncore-fns.tex}
+\input{ioncore.exports}
\section{Functions defined in \file{mod\_tiling}}
\label{sec:tilingref}
-\input{mod_tiling-fns.tex}
+\input{mod_tiling.exports}
%\section{Functions defined in \file{mod\_panews}}
%\label{sec:panewsref}
-%\input{mod_panews-fns.tex}
+%\input{mod_panews.exports}
\section{Functions defined in \file{mod\_query}}
\label{sec:queryref}
-\input{mod_query-fns.tex}
+\input{mod_query.exports}
\section{Functions defined in \file{mod\_menu}}
\label{sec:menuref}
-\input{mod_menu-fns.tex}
+\input{mod_menu.exports}
\section{Functions defined in \file{mod\_dock}}
\label{sec:dockref}
-\input{mod_dock-fns.tex}
+\input{mod_dock.exports}
\section{Functions defined in \file{mod\_sp}}
\label{sec:spref}
-\input{mod_sp-fns.tex}
+\input{mod_sp.exports}
\section{Functions defined in \file{mod\_statusbar}}
\label{sec:statusbarref}
-\input{mod_statusbar-fns.tex}
+\input{mod_statusbar.exports}
\section{Functions defined in \file{de}}
\label{sec:deref}
-\input{de-fns.tex}
+\input{de.exports}
\section{Hooks}
\label{sec:hookref}
\input{hookref}
+
+\section{Miscellaneous}
+\label{sec:miscref}
+\input{miscref}
|-->WHook
|-->WTimer
|-->WMoveresMode
- |-->WMgmtMode (mod_mgmtmode)
|-->WRegion
| |-->WClientWin
| |-->WWindow
\var{switchto} & bool & Do we want to switch to the client window. \\
\var{jumpto} & bool & Do we want to jump to the client window. \\
\var{userpos} & bool & Geometry set by user. \\
- \var{dockapp} & bool & Client window is a dockapp. \\
+ \var{dockapp} & bool & Client window is a dock-app. \\
\var{maprq} & bool & Map request (and not initialisation scan). \\
\var{gravity} & number & Window gravity. \\
\var{geom} & table & Requested geometry; \var{x}, \var{y}, \var{w}, \var{h}.\\
\begin{tabularx}{\linewidth}{llX}
\tabhead{Field & Type & Description}
\var{reg} & WFrame & The frame in question \\
- \var{mode} & string & \var{"switchonly"}, \var{"reorder"},
- \var{"add"} or \var{"remove"} \\
- \var{sw} & bool & Switch occured \\
+ \var{mode} & string & \codestr{switchonly}, \codestr{reorder},
+ \codestr{add} or \codestr{remove} \\
+ \var{sw} & bool & Switch occurred \\
\var{sub} & WRegion & The managed region (primarily) affected \\
\end{tabularx}
\end{funcdesc}
\hookparams{()}
\begin{funcdesc}
Called when Ion has done all initialisation and is almost ready to
- enter the mainloop, except no windows are yet being managed.
+ enter the main-loop, except no windows are yet being managed.
\end{funcdesc}
\end{function}
\end{function}
+\begin{function}
+ \index{ioncore-submap-ungrab-hook@\code{ioncore_submap_ungrab_hook}}
+ \hookname{ioncore_submap_ungrab_hook}
+ \hookparams{()}
+ \begin{funcdesc}
+ This hook is used to signal whenever Ion leaves the submap grab mode.
+ \end{funcdesc}
+\end{function}
+
+
\begin{function}
\index{tiling-placement-alt@\code{tiling_placement_alt}}
\hookname{tiling_placement_alt}
the moment) to be placed \\
\var{mp} & \type{table} & This table contains the same fields as
the parameter of \fnref{clientwin_do_manage_alt} \\
- \var{res_frame} & \type{WFrame} & A succesfull handler should
+ \var{res_frame} & \type{WFrame} & A successful handler should
return the target frame here. \\
\end{tabularx}
This hook is just for placing within a given workspace after the
\code{unset_manager} & The region no longer has a manager. \\
\code{set_manager} & The region now has a manager. \\
\code{tag} & Tagging state has changed. \\
- \code{pseudoactivated} & The region has become pseudoactive
+ \code{pseudoactivated} & The region has become pseudo-active
(see below). \\
- \code{pseudoinactivated} & The region is no longer pseudoactive. \\
+ \code{pseudoinactivated} & The region is no longer pseudo-active. \\
\end{tabularx}
- A region is pseudoactive, when a) it is itself not active (does
+ A region is pseudo-active, when a) it is itself not active (does
not not have the focus, and may not even have a window that could
have it), but b) some region managed by it is active.
\end{funcdesc}
\BOOKMARK [2][-]{subsection.3.5.2}{ Classes, roles and instances}{section.3.5}
\BOOKMARK [2][-]{subsection.3.5.3}{ Finding window identification}{section.3.5}
\BOOKMARK [2][-]{subsection.3.5.4}{ Some common examples}{section.3.5}
+\BOOKMARK [1][-]{section.3.6}{ The statusbar}{chapter.3}
+\BOOKMARK [2][-]{subsection.3.6.1}{ The template}{section.3.6}
+\BOOKMARK [2][-]{subsection.3.6.2}{ The systray}{section.3.6}
+\BOOKMARK [2][-]{subsection.3.6.3}{ Monitors}{section.3.6}
\BOOKMARK [0][-]{chapter.4}{ Graphical styles}{}
\BOOKMARK [1][-]{section.4.1}{ Drawing engines, style specifications and sub-styles}{chapter.4}
\BOOKMARK [2][-]{subsection.4.1.1}{ Known styles and substyles}{section.4.1}
\BOOKMARK [2][-]{subsection.4.2.2}{ Defining the styles}{section.4.2}
\BOOKMARK [2][-]{subsection.4.2.3}{ An example}{section.4.2}
\BOOKMARK [1][-]{section.4.3}{ Miscellaneous settings}{chapter.4}
-\BOOKMARK [2][-]{lstlisting.4.-399}{ Extra fields for style !frame!}{section.4.3}
-\BOOKMARK [2][-]{lstlisting.4.-421}{ Extra fields for style !dock!}{section.4.3}
+\BOOKMARK [2][-]{subsection.4.3.1}{ Frame user attributes}{section.4.3}
+\BOOKMARK [2][-]{subsection.4.3.2}{ Extra fields for style `frame'}{section.4.3}
+\BOOKMARK [2][-]{subsection.4.3.3}{ Extra fields for style `dock'}{section.4.3}
\BOOKMARK [0][-]{chapter.5}{ Scripting}{}
\BOOKMARK [1][-]{section.5.1}{ Hooks}{chapter.5}
\BOOKMARK [1][-]{section.5.2}{ Referring to regions}{chapter.5}
\BOOKMARK [2][-]{subsection.5.2.1}{ Direct object references}{section.5.2}
\BOOKMARK [2][-]{subsection.5.2.2}{ Name-based lookups}{section.5.2}
\BOOKMARK [1][-]{section.5.3}{ Alternative winprop selection criteria}{chapter.5}
-\BOOKMARK [1][-]{lstlisting.5.-462}{ Writing !ion-statusd! monitors}{chapter.5}
+\BOOKMARK [1][-]{lstlisting.5.-266}{ Writing !ion-statusd! monitors}{chapter.5}
\BOOKMARK [0][-]{chapter.6}{ Function reference}{}
\BOOKMARK [1][-]{section.6.1}{ Functions defined in ioncore}{chapter.6}
\BOOKMARK [2][-]{subsection.6.1.1}{ WClientWin functions}{section.6.1}
\BOOKMARK [2][-]{subsection.6.1.3}{ WGroup functions}{section.6.1}
\BOOKMARK [2][-]{subsection.6.1.4}{ WGroupCW functions}{section.6.1}
\BOOKMARK [2][-]{subsection.6.1.5}{ WGroupWS functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.6}{ WInfoWin functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.7}{ WMPlex functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.8}{ WMoveresMode functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.9}{ WRegion functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.10}{ WRootWin functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.11}{ WScreen functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.12}{ WWindow functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.13}{ global functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.14}{ gr functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.15}{ string functions}{section.6.1}
-\BOOKMARK [2][-]{subsection.6.1.16}{ table functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.6}{ WHook functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.7}{ WInfoWin functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.8}{ WMPlex functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.9}{ WMoveresMode functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.10}{ WRegion functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.11}{ WRootWin functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.12}{ WScreen functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.13}{ WTimer functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.14}{ WWindow functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.15}{ global functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.16}{ gr functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.17}{ string functions}{section.6.1}
+\BOOKMARK [2][-]{subsection.6.1.18}{ table functions}{section.6.1}
\BOOKMARK [1][-]{section.6.2}{ Functions defined in mod\137tiling}{chapter.6}
\BOOKMARK [2][-]{subsection.6.2.1}{ WSplit functions}{section.6.2}
\BOOKMARK [2][-]{subsection.6.2.2}{ WSplitInner functions}{section.6.2}
\BOOKMARK [2][-]{subsection.6.7.1}{ WStatusBar functions}{section.6.7}
\BOOKMARK [1][-]{section.6.8}{ Functions defined in de}{chapter.6}
\BOOKMARK [1][-]{section.6.9}{ Hooks}{chapter.6}
+\BOOKMARK [1][-]{section.6.10}{ Miscellaneous}{chapter.6}
+\BOOKMARK [2][-]{subsection.6.10.1}{ Size policies}{section.6.10}
\BOOKMARK [0][-]{appendix.A}{ The GNU General Public License}{}
\BOOKMARK [0][-]{appendix.B}{ Full class hierarchy visible to Lua-side}{}
-\BOOKMARK [0][-]{section*.17}{Index}{}
+\BOOKMARK [0][-]{section*.19}{Index}{}
+\BOOKMARK [0][-]{section*.21}{Bibliography}{}
\title{Configuring and extending Ion3 with Lua}
\author{Tuomo Valkonen \\ tuomov at iki.fi}
-\date{2007-03-18}
+\date{2007-05-06}
\makeindex
\maketitle
Configuring and extending Ion3 with Lua\\
-Copyright \copyright\ 2003--2005 Tuomo Valkonen.
+Copyright \copyright\ 2003--2007 Tuomo Valkonen.
This document is free; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-chapter entitled ''GNU General Public License'' for more details.
+chapter entitled ``GNU General Public License'' for more details.
\tableofcontents
\printindex
+\begin{thebibliography}{9}
+ \bibitem{scripts} The Ion 3 scripts repository,
+ \url{http://iki.fi/tuomov/repos/ion-scripts-3/}.
+\end{thebibliography}
+
\end{document}
-This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.2.4) 18 MAR 2007 22:35
+This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.4.8) 6 MAY 2007 17:46
entering extended mode
**./images.tex
(./images.tex
(Font) <8> on input line 235.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 235.
-l2hSize :tex2html_wrap_inline1041:7.0626pt::0.0pt::7.1201pt.
+l2hSize :tex2html_wrap_inline1055:7.0626pt::0.0pt::7.1201pt.
[1
]
-l2hSize :tex2html_wrap_inline1045:7.48248pt::0.0pt::48.86426pt.
+l2hSize :tex2html_wrap_inline1059:7.48248pt::0.0pt::48.86426pt.
[2
]
-l2hSize :tex2html_wrap_inline2020:8.7125pt::8.7125pt::23.6642pt.
+l2hSize :tex2html_wrap_inline2241:8.7125pt::8.7125pt::23.6642pt.
[3
]
-l2hSize :tex2html_wrap_inline6387:7.5626pt::7.5626pt::14.53923pt.
+l2hSize :tex2html_wrap_inline5502:7.5626pt::7.5626pt::14.53923pt.
[4
]
-l2hSize :tex2html_wrap_inline6389:7.5626pt::7.5626pt::14.53923pt.
+l2hSize :tex2html_wrap_inline5504:7.5626pt::7.5626pt::14.53923pt.
[5
]
-l2hSize :tex2html_wrap_inline9409:8.7125pt::8.7125pt::86.9574pt.
+l2hSize :tex2html_wrap_inline7754:8.7125pt::8.7125pt::86.9574pt.
[6
] (./images.aux) )
Here is how much of TeX's memory you used:
- 4443 strings out of 94501
- 62984 string characters out of 1175795
- 122206 words of memory out of 1000000
- 7587 multiletter control sequences out of 10000+50000
+ 4467 strings out of 94501
+ 63452 string characters out of 1175795
+ 123525 words of memory out of 1000000
+ 7611 multiletter control sequences out of 10000+50000
7874 words of font info for 24 fonts, out of 500000 for 2000
580 hyphenation exceptions out of 8191
28i,5n,21p,200b,182s stack positions out of 1500i,500n,5000p,200000b,5000s
# Associate images original text with physical files.
+$key = q/-1;MSF=1.6;LFS=11;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="|."$dir".q|img4.png"
+ ALT="$-1$">|;
+
+$key = q/(0,1];MSF=1.6;LFS=11;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="42" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
+ SRC="|."$dir".q|img3.png"
+ ALT="$(0, 1]$">|;
+
+$key = q/N=1{ldots}5;MSF=1.6;LFS=11;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="82" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img2.png"
+ ALT="$N=1{\ldots} 5$">|;
+
+$key = q/-2;MSF=1.6;LFS=11;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="|."$dir".q|img5.png"
+ ALT="$-2$">|;
+
+$key = q/n;MSF=1.6;LFS=11;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
+ SRC="|."$dir".q|img1.png"
+ ALT="$n$">|;
+
+$key = q/{t,m,b}times{t,c,b};MSF=1.6;LFS=11;AAT/;
+$cached_env_img{$key} = q|<IMG
+ WIDTH="142" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
+ SRC="|."$dir".q|img6.png"
+ ALT="$\{t,m,b\}\times\{t,c,b\}$">|;
+
1;
\usepackage{calc}
-\urlstyle{rm}%
-\providecommand{\centerurl}[1]{\begin{center}\url{#1}\end{center}}
+\urlstyle{tt}
%
\providecommand{\note}[1]{\color{red}**#1**}%
%
\providecommand{\key}[1]{\textbf{#1}}%
\providecommand{\code}[1]{\texttt{#1}}%
+\providecommand{\codestr}[1]{`\texttt{#1}'}%
\providecommand{\var}[1]{\texttt{#1}}%
\providecommand{\command}[1]{\texttt{#1}}
\title{Configuring and extending Ion3 with Lua}
\author{Tuomo Valkonen \\tuomov at iki.fi}
-\date{2007-03-18}
+\date{2007-05-06}
\makeindex
\stepcounter{section}
\stepcounter{section}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline1041}%
+\lthtmlinlinemathA{tex2html_wrap_inline1055}%
$n$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline1045}%
+\lthtmlinlinemathA{tex2html_wrap_inline1059}%
$N=1{\ldots} 5$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
\stepcounter{subsubsection}
\stepcounter{subsubsection}
+\stepcounter{section}
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{subsection}
+\stepcounter{subsubsection}
+\stepcounter{subsubsection}
\stepcounter{subsubsection}
\stepcounter{chapter}
\stepcounter{section}
\stepcounter{subsection}
\stepcounter{section}
\stepcounter{subsection}
+\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline2020}%
+\lthtmlinlinemathA{tex2html_wrap_inline2241}%
$(0, 1]$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
\stepcounter{subsection}
\stepcounter{subsection}
+\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline6387}%
+\lthtmlinlinemathA{tex2html_wrap_inline5502}%
$-1$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline6389}%
+\lthtmlinlinemathA{tex2html_wrap_inline5504}%
$-2$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
\stepcounter{subsection}
\stepcounter{subsection}
+\stepcounter{subsection}
\stepcounter{section}
\stepcounter{subsection}
\stepcounter{subsection}
\stepcounter{section}
\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline9409}%
+\lthtmlinlinemathA{tex2html_wrap_inline7754}%
$\{t,m,b\}\times\{t,c,b\}$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
\stepcounter{section}
\stepcounter{section}
+\stepcounter{section}
+\stepcounter{subsection}
\appendix
\stepcounter{chapter}
\addtocounter{enumi}{-1}
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html19"
+<A NAME="tex2html18"
HREF="node1.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html13"
+<A NAME="tex2html12"
HREF="http://iki.fi/tuomov/ion/">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
-<A NAME="tex2html15"
+<A NAME="tex2html14"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html17"
+<A NAME="tex2html16"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html20"
+<B> Next:</B> <A NAME="tex2html19"
HREF="node1.html">Contents</A>
-<B> Up:</B> <A NAME="tex2html14"
+<B> Up:</B> <A NAME="tex2html13"
HREF="http://iki.fi/tuomov/ion/">Ion homepage</A>
- <B> <A NAME="tex2html16"
+ <B> <A NAME="tex2html15"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html18"
+ <B> <A NAME="tex2html17"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<P ALIGN="CENTER"><STRONG>Tuomo Valkonen</STRONG></P>
<P ALIGN="CENTER"><I>tuomov at iki.fi</I></P>
-<P ALIGN="CENTER"><STRONG>2007-03-18</STRONG></P>
+<P ALIGN="CENTER"><STRONG>2007-05-06</STRONG></P>
</DIV>
<P>
Configuring and extending Ion3 with Lua
<BR>
-Copyright © 2003-2005 Tuomo Valkonen.
+Copyright © 2003-2007 Tuomo Valkonen.
<P>
This document is free; you can redistribute it and/or modify
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-chapter entitled ''GNU General Public License'' for more details.
+chapter entitled ``GNU General Public License'' for more details.
<P>
<BR><HR>
<A NAME="CHILD_LINKS"></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html21"
+<LI><A NAME="tex2html20"
HREF="node1.html">Contents</A>
-<LI><A NAME="tex2html22"
+<LI><A NAME="tex2html21"
HREF="node2.html"><SPAN CLASS="arabic">1</SPAN>. Introduction</A>
-<LI><A NAME="tex2html23"
+<LI><A NAME="tex2html22"
HREF="node3.html"><SPAN CLASS="arabic">2</SPAN>. Preliminaries: Key concepts and relations</A>
<UL>
-<LI><A NAME="tex2html24"
+<LI><A NAME="tex2html23"
HREF="node3.html#SECTION00310000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Modules</A>
-<LI><A NAME="tex2html25"
+<LI><A NAME="tex2html24"
HREF="node3.html#SECTION00320000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Class and object hierarchies</A>
<UL>
-<LI><A NAME="tex2html26"
+<LI><A NAME="tex2html25"
HREF="node3.html#SECTION00321000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Class hierarchy</A>
-<LI><A NAME="tex2html27"
+<LI><A NAME="tex2html26"
HREF="node3.html#SECTION00322000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Object hierarchies: WRegion parents and managers</A>
<UL>
-<LI><A NAME="tex2html28"
+<LI><A NAME="tex2html27"
HREF="node3.html#SECTION00322100000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Parent-child relations</A>
-<LI><A NAME="tex2html29"
+<LI><A NAME="tex2html28"
HREF="node3.html#SECTION00322200000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Manager-managed relations</A>
</UL>
-<LI><A NAME="tex2html30"
+<LI><A NAME="tex2html29"
HREF="node3.html#SECTION00323000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Summary</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html31"
+<LI><A NAME="tex2html30"
HREF="node4.html"><SPAN CLASS="arabic">3</SPAN>. Basic configuration</A>
<UL>
-<LI><A NAME="tex2html32"
+<LI><A NAME="tex2html31"
HREF="node4.html#SECTION00410000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> The configuration files</A>
-<LI><A NAME="tex2html33"
+<LI><A NAME="tex2html32"
HREF="node4.html#SECTION00420000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> A walk through <SPAN CLASS="textit">cfg_ion.lua</SPAN></A>
-<LI><A NAME="tex2html34"
+<LI><A NAME="tex2html33"
HREF="node4.html#SECTION00430000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Keys and rodents</A>
<UL>
-<LI><A NAME="tex2html35"
+<LI><A NAME="tex2html34"
HREF="node4.html#SECTION00431000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Binding handlers and special variables</A>
-<LI><A NAME="tex2html36"
+<LI><A NAME="tex2html35"
HREF="node4.html#SECTION00432000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Guards</A>
-<LI><A NAME="tex2html37"
+<LI><A NAME="tex2html36"
HREF="node4.html#SECTION00433000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining the bindings</A>
-<LI><A NAME="tex2html38"
+<LI><A NAME="tex2html37"
HREF="node4.html#SECTION00434000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Examples</A>
-<LI><A NAME="tex2html39"
+<LI><A NAME="tex2html38"
HREF="node4.html#SECTION00435000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Key specifications</A>
-<LI><A NAME="tex2html40"
+<LI><A NAME="tex2html39"
HREF="node4.html#SECTION00436000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> Button specifications</A>
-<LI><A NAME="tex2html41"
+<LI><A NAME="tex2html40"
HREF="node4.html#SECTION00437000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">7</SPAN> A further note on the default binding configuration</A>
</UL>
-<LI><A NAME="tex2html42"
+<LI><A NAME="tex2html41"
HREF="node4.html#SECTION00440000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Menus</A>
<UL>
-<LI><A NAME="tex2html43"
+<LI><A NAME="tex2html42"
HREF="node4.html#SECTION00441000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Defining menus</A>
-<LI><A NAME="tex2html44"
+<LI><A NAME="tex2html43"
HREF="node4.html#SECTION00442000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Special menus</A>
-<LI><A NAME="tex2html45"
+<LI><A NAME="tex2html44"
HREF="node4.html#SECTION00443000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining context menus</A>
-<LI><A NAME="tex2html46"
+<LI><A NAME="tex2html45"
HREF="node4.html#SECTION00444000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> Displaying menus</A>
</UL>
-<LI><A NAME="tex2html47"
+<LI><A NAME="tex2html46"
HREF="node4.html#SECTION00450000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Winprops</A>
<UL>
-<LI><A NAME="tex2html48"
+<LI><A NAME="tex2html47"
HREF="node4.html#SECTION00451000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Sizehint winprops</A>
-<LI><A NAME="tex2html49"
+<LI><A NAME="tex2html48"
HREF="node4.html#SECTION00452000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Classes, roles and instances</A>
-<LI><A NAME="tex2html50"
+<LI><A NAME="tex2html49"
HREF="node4.html#SECTION00453000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Finding window identification</A>
-<LI><A NAME="tex2html51"
+<LI><A NAME="tex2html50"
HREF="node4.html#SECTION00454000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Some common examples</A>
<UL>
-<LI><A NAME="tex2html52"
+<LI><A NAME="tex2html51"
HREF="node4.html#SECTION00454100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
+<LI><A NAME="tex2html52"
+ HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Forcing newly created windows in named frames</A>
+</UL>
+</UL>
<LI><A NAME="tex2html53"
- HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
+ HREF="node4.html#SECTION00460000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> The statusbar</A>
+<UL>
<LI><A NAME="tex2html54"
- HREF="node4.html#SECTION00454300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
+ HREF="node4.html#SECTION00461000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> The template</A>
+<LI><A NAME="tex2html55"
+ HREF="node4.html#SECTION00462000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> The systray</A>
+<LI><A NAME="tex2html56"
+ HREF="node4.html#SECTION00463000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Monitors</A>
+<UL>
+<LI><A NAME="tex2html57"
+ HREF="node4.html#SECTION00463100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Date</A>
+<LI><A NAME="tex2html58"
+ HREF="node4.html#SECTION00463200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Load</A>
+<LI><A NAME="tex2html59"
+ HREF="node4.html#SECTION00463300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Mail</A>
</UL>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html55"
+<LI><A NAME="tex2html60"
HREF="node5.html"><SPAN CLASS="arabic">4</SPAN>. Graphical styles</A>
<UL>
-<LI><A NAME="tex2html56"
+<LI><A NAME="tex2html61"
HREF="node5.html#SECTION00510000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles</A>
<UL>
-<LI><A NAME="tex2html57"
+<LI><A NAME="tex2html62"
HREF="node5.html#SECTION00511000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Known styles and substyles</A>
<UL>
-<LI><A NAME="tex2html58"
+<LI><A NAME="tex2html63"
HREF="node5.html#SECTION00511100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frames</A>
-<LI><A NAME="tex2html59"
+<LI><A NAME="tex2html64"
HREF="node5.html#SECTION00511200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tabs and menu entries</A>
-<LI><A NAME="tex2html60"
+<LI><A NAME="tex2html65"
HREF="node5.html#SECTION00511300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> The rest</A>
</UL>
</UL>
-<LI><A NAME="tex2html61"
+<LI><A NAME="tex2html66"
HREF="node5.html#SECTION00520000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining styles for the default drawing engine</A>
<UL>
-<LI><A NAME="tex2html62"
+<LI><A NAME="tex2html67"
HREF="node5.html#SECTION00521000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> The structure of the configuration files</A>
-<LI><A NAME="tex2html63"
+<LI><A NAME="tex2html68"
HREF="node5.html#SECTION00522000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining the styles</A>
<UL>
-<LI><A NAME="tex2html64"
+<LI><A NAME="tex2html69"
HREF="node5.html#SECTION00522100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Colours</A>
-<LI><A NAME="tex2html65"
+<LI><A NAME="tex2html70"
HREF="node5.html#SECTION00522200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Borders and widths</A>
-<LI><A NAME="tex2html66"
+<LI><A NAME="tex2html71"
HREF="node5.html#SECTION00522300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Text</A>
-<LI><A NAME="tex2html67"
+<LI><A NAME="tex2html72"
HREF="node5.html#SECTION00522400000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> Miscellaneous</A>
-<LI><A NAME="tex2html68"
+<LI><A NAME="tex2html73"
HREF="node5.html#SECTION00522500000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> Substyles</A>
</UL>
-<LI><A NAME="tex2html69"
+<LI><A NAME="tex2html74"
HREF="node5.html#SECTION00523000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> An example</A>
</UL>
-<LI><A NAME="tex2html70"
+<LI><A NAME="tex2html75"
HREF="node5.html#SECTION00530000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
<UL>
-<LI><A NAME="tex2html71"
- HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Extra fields for style <TT>frame</TT></A>
-<LI><A NAME="tex2html72"
- HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style <TT>dock</TT></A>
+<LI><A NAME="tex2html76"
+ HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frame user attributes</A>
+<LI><A NAME="tex2html77"
+ HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style `<TT>frame</TT>'</A>
+<LI><A NAME="tex2html78"
+ HREF="node5.html#SECTION00533000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Extra fields for style `<TT>dock</TT>'</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html73"
+<LI><A NAME="tex2html79"
HREF="node6.html"><SPAN CLASS="arabic">5</SPAN>. Scripting</A>
<UL>
-<LI><A NAME="tex2html74"
+<LI><A NAME="tex2html80"
HREF="node6.html#SECTION00610000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Hooks</A>
-<LI><A NAME="tex2html75"
+<LI><A NAME="tex2html81"
HREF="node6.html#SECTION00620000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Referring to regions</A>
<UL>
-<LI><A NAME="tex2html76"
+<LI><A NAME="tex2html82"
HREF="node6.html#SECTION00621000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Direct object references</A>
-<LI><A NAME="tex2html77"
+<LI><A NAME="tex2html83"
HREF="node6.html#SECTION00622000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Name-based lookups</A>
</UL>
-<LI><A NAME="tex2html78"
+<LI><A NAME="tex2html84"
HREF="node6.html#SECTION00630000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Alternative winprop selection criteria</A>
-<LI><A NAME="tex2html79"
+<LI><A NAME="tex2html85"
HREF="node6.html#SECTION00640000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Writing <TT>ion-statusd</TT> monitors</A>
</UL>
<BR>
-<LI><A NAME="tex2html80"
+<LI><A NAME="tex2html86"
HREF="node7.html"><SPAN CLASS="arabic">6</SPAN>. Function reference</A>
<UL>
-<LI><A NAME="tex2html81"
+<LI><A NAME="tex2html87"
HREF="node7.html#SECTION00710000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Functions defined in <SPAN CLASS="textit">ioncore</SPAN></A>
<UL>
-<LI><A NAME="tex2html82"
- HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
-<LI><A NAME="tex2html83"
- HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
-<LI><A NAME="tex2html84"
- HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
-<LI><A NAME="tex2html85"
- HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
-<LI><A NAME="tex2html86"
- HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
-<LI><A NAME="tex2html87"
- HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
<LI><A NAME="tex2html88"
- HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
+ HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
<LI><A NAME="tex2html89"
- HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
+ HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
<LI><A NAME="tex2html90"
- HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
+ HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
<LI><A NAME="tex2html91"
- HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
+ HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
<LI><A NAME="tex2html92"
- HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
+ HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
<LI><A NAME="tex2html93"
- HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
+ HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WHook functions</A>
<LI><A NAME="tex2html94"
- HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
+ HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WInfoWin functions</A>
<LI><A NAME="tex2html95"
- HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
+ HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMPlex functions</A>
<LI><A NAME="tex2html96"
- HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
+ HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WMoveresMode functions</A>
<LI><A NAME="tex2html97"
- HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
-</UL>
+ HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRegion functions</A>
<LI><A NAME="tex2html98"
+ HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WRootWin functions</A>
+<LI><A NAME="tex2html99"
+ HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WScreen functions</A>
+<LI><A NAME="tex2html100"
+ HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> WTimer functions</A>
+<LI><A NAME="tex2html101"
+ HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> WWindow functions</A>
+<LI><A NAME="tex2html102"
+ HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> global functions</A>
+<LI><A NAME="tex2html103"
+ HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> gr functions</A>
+<LI><A NAME="tex2html104"
+ HREF="node7.html#SECTION007117000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">17</SPAN> string functions</A>
+<LI><A NAME="tex2html105"
+ HREF="node7.html#SECTION007118000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">18</SPAN> table functions</A>
+</UL>
+<LI><A NAME="tex2html106"
HREF="node7.html#SECTION00720000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Functions defined in <SPAN CLASS="textit">mod_tiling</SPAN></A>
<UL>
-<LI><A NAME="tex2html99"
+<LI><A NAME="tex2html107"
HREF="node7.html#SECTION00721000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> WSplit functions</A>
-<LI><A NAME="tex2html100"
+<LI><A NAME="tex2html108"
HREF="node7.html#SECTION00722000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> WSplitInner functions</A>
-<LI><A NAME="tex2html101"
+<LI><A NAME="tex2html109"
HREF="node7.html#SECTION00723000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> WSplitRegion functions</A>
-<LI><A NAME="tex2html102"
+<LI><A NAME="tex2html110"
HREF="node7.html#SECTION00724000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> WSplitSplit functions</A>
-<LI><A NAME="tex2html103"
+<LI><A NAME="tex2html111"
HREF="node7.html#SECTION00725000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> WTiling functions</A>
</UL>
-<LI><A NAME="tex2html104"
+<LI><A NAME="tex2html112"
HREF="node7.html#SECTION00730000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Functions defined in <SPAN CLASS="textit">mod_query</SPAN></A>
<UL>
-<LI><A NAME="tex2html105"
+<LI><A NAME="tex2html113"
HREF="node7.html#SECTION00731000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> WComplProxy functions</A>
-<LI><A NAME="tex2html106"
+<LI><A NAME="tex2html114"
HREF="node7.html#SECTION00732000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> WEdln functions</A>
-<LI><A NAME="tex2html107"
+<LI><A NAME="tex2html115"
HREF="node7.html#SECTION00733000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> WInput functions</A>
</UL>
-<LI><A NAME="tex2html108"
+<LI><A NAME="tex2html116"
HREF="node7.html#SECTION00740000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Functions defined in <SPAN CLASS="textit">mod_menu</SPAN></A>
<UL>
-<LI><A NAME="tex2html109"
+<LI><A NAME="tex2html117"
HREF="node7.html#SECTION00741000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> WMenu functions</A>
</UL>
-<LI><A NAME="tex2html110"
+<LI><A NAME="tex2html118"
HREF="node7.html#SECTION00750000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN> Functions defined in <SPAN CLASS="textit">mod_dock</SPAN></A>
<UL>
-<LI><A NAME="tex2html111"
+<LI><A NAME="tex2html119"
HREF="node7.html#SECTION00751000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> WDock functions</A>
</UL>
-<LI><A NAME="tex2html112"
+<LI><A NAME="tex2html120"
HREF="node7.html#SECTION00760000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN> Functions defined in <SPAN CLASS="textit">mod_sp</SPAN></A>
-<LI><A NAME="tex2html113"
+<LI><A NAME="tex2html121"
HREF="node7.html#SECTION00770000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN> Functions defined in <SPAN CLASS="textit">mod_statusbar</SPAN></A>
<UL>
-<LI><A NAME="tex2html114"
+<LI><A NAME="tex2html122"
HREF="node7.html#SECTION00771000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> WStatusBar functions</A>
</UL>
-<LI><A NAME="tex2html115"
+<LI><A NAME="tex2html123"
HREF="node7.html#SECTION00780000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN> Functions defined in <SPAN CLASS="textit">de</SPAN></A>
-<LI><A NAME="tex2html116"
+<LI><A NAME="tex2html124"
HREF="node7.html#SECTION00790000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN> Hooks</A>
+<LI><A NAME="tex2html125"
+ HREF="node7.html#SECTION007100000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN> Miscellaneous</A>
+<UL>
+<LI><A NAME="tex2html126"
+ HREF="node7.html#SECTION007101000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN>.<SPAN CLASS="arabic">1</SPAN> Size policies</A>
+</UL>
</UL>
<BR>
-<LI><A NAME="tex2html117"
+<LI><A NAME="tex2html127"
HREF="node8.html">A. The GNU General Public License</A>
<UL>
-<LI><A NAME="tex2html118"
+<LI><A NAME="tex2html128"
HREF="node8.html#SECTION00810000000000000000">Appendix: How to Apply These Terms to Your New Programs</A>
</UL>
<BR>
-<LI><A NAME="tex2html119"
+<LI><A NAME="tex2html129"
HREF="node9.html">B. Full class hierarchy visible to Lua-side</A>
-<LI><A NAME="tex2html120"
+<LI><A NAME="tex2html130"
HREF="node10.html">List of functions</A>
-<LI><A NAME="tex2html121"
+<LI><A NAME="tex2html131"
HREF="node11.html">Index</A>
-<LI><A NAME="tex2html122"
- HREF="node12.html">About this document ...</A>
+<LI><A NAME="tex2html132"
+ HREF="node12.html">Bibliography</A>
+<LI><A NAME="tex2html133"
+ HREF="node13.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.add/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.x_get_window_property/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.get_hook/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:ioncore.tabnum.clear/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_query.query_exec/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.insstr/;
+$key = q/fn:WClientWin.quote_next/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WClientWin.quote_next/;
+$key = q/fn:WEdln.insstr/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:sizepolicies/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:WTimer.set/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.goto_activity/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WTiling.farthest/;
+$key = q/fn:ioncore.submap_enter/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.finish/;
+$key = q/fn:WTiling.farthest/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.mark/;
+$key = q/fn:WEdln.finish/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WEdln.mark/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WMPlex.switch_prev/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.is_mapped/;
+$key = q/fn:ioncore.goto_prev_screen/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.goto_prev_screen/;
+$key = q/fn:WRegion.is_mapped/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.transpose_words/;
+$key = q/sec:ioncoreref/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/sec:ioncoreref/;
+$key = q/fn:WEdln.transpose_words/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.launch_statusd/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.getbindings/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTimer.reset/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fig:borders/;
$ref_files{$key} = "$dir".q|node5.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WStatusBar.is_systray_extl/;
-$ref_files{$key} = "$dir".q|node7.html|;
+$key = q/sec:statusbar/;
+$ref_files{$key} = "$dir".q|node4.html|;
$noresave{$key} = "$nosave";
$key = q/fn:WMenu.select_nth/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.create_timer/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WTiling.managed_i/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node3.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.tl/;
+$key = q/fn:ioncore.defctxmenu/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.defctxmenu/;
+$key = q/fn:WSplitSplit.tl/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.set_name_exact/;
+$key = q/fn:WMPlex.switch_nth/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WMPlex.switch_nth/;
+$key = q/fn:WRegion.set_name_exact/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WFrame.set_grattr/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WEdln.forward/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.tabnum.show/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/region_do_warp_alt/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.inform/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.tagged_i/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/cite_scripts/;
+$ref_files{$key} = "$dir".q|node12.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.clientwin_i/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.unsqueeze/;
+$key = q/fn:WGroup.bottom/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WGroup.bottom/;
+$key = q/fn:ioncore.unsqueeze/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node6.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.groupleader_of/;
+$key = q/fn:ioncore.get_savefile/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.get_savefile/;
+$key = q/fn:WRegion.groupleader_of/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:mod_query.history_push/;
+$key = q/fn:ioncore.lookup_clientwin/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.lookup_clientwin/;
+$key = q/fn:mod_query.history_push/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node4.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplit.parent/;
+$key = q/fn:ioncore.getctxmenu/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.getctxmenu/;
+$key = q/fn:WSplit.parent/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.defer/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WMenu.select_prev/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.listed/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.refresh_stylelist/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:string.shell_safe/;
+$key = q/fn:mod_query.query_restart/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:mod_query.query_restart/;
+$key = q/fn:string.shell_safe/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.deflayout/;
-$ref_files{$key} = "$dir".q|node7.html|;
-$noresave{$key} = "$nosave";
-
$key = q/sec:classesrolesinstances/;
$ref_files{$key} = "$dir".q|node4.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.deflayout/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.tagged_attach/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:miscref/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WClientWin.xid/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.match_winprop_dflt/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.get_paths/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node4.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WFrame.set_numbers/;
+$key = q/fn:mod_statusbar.update/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.create/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WGroup.attach/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.flip/;
+$key = q/fn:WTiling.split_top/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WTiling.split_top/;
+$key = q/fn:WSplitSplit.flip/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.defwinprop/;
+$key = q/fn:ioncore.popen_bgread/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.popen_bgread/;
+$key = q/fn:ioncore.defwinprop/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplit.transpose/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WClientWin.kill/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplit.transpose/;
+$key = q/fn:ioncore.submap_wait/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplitSplit.dir/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:table.map/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.dir/;
+$key = q/fn:WMPlex.set_stdisp/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WMPlex.set_stdisp/;
+$key = q/fn:WStatusBar.is_systray/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WInput.cancel/;
+$key = q/fn:WRegion.parent/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.parent/;
+$key = q/fn:WInput.cancel/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.match_winprop_name/;
-$ref_files{$key} = "$dir".q|node7.html|;
-$noresave{$key} = "$nosave";
-
$key = q/ioncore_sigchld_hook/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.remove/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.request_selection/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:grmisc/;
+$ref_files{$key} = "$dir".q|node5.html|;
+$noresave{$key} = "$nosave";
+
$key = q/chap:prelim/;
$ref_files{$key} = "$dir".q|node3.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:statusd/;
+$ref_files{$key} = "$dir".q|node6.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WRegion.rqgeom/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTimer.is_set/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WRegion.set_name/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/ioncore_submap_ungrab_hook/;
+$ref_files{$key} = "$dir".q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WGroup.attach_new/;
$ref_files{$key} = "$dir".q|node7.html|;
$noresave{$key} = "$nosave";
/* document-specific styles come next */
DIV.navigation { }
+DIV.flushleft { }
DIV.center { }
SPAN.sc { }
DIV.quote { }
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html19"
+<A NAME="tex2html18"
HREF="node1.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html13"
+<A NAME="tex2html12"
HREF="http://iki.fi/tuomov/ion/">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
-<A NAME="tex2html15"
+<A NAME="tex2html14"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html17"
+<A NAME="tex2html16"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html20"
+<B> Next:</B> <A NAME="tex2html19"
HREF="node1.html">Contents</A>
-<B> Up:</B> <A NAME="tex2html14"
+<B> Up:</B> <A NAME="tex2html13"
HREF="http://iki.fi/tuomov/ion/">Ion homepage</A>
- <B> <A NAME="tex2html16"
+ <B> <A NAME="tex2html15"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html18"
+ <B> <A NAME="tex2html17"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<P ALIGN="CENTER"><STRONG>Tuomo Valkonen</STRONG></P>
<P ALIGN="CENTER"><I>tuomov at iki.fi</I></P>
-<P ALIGN="CENTER"><STRONG>2007-03-18</STRONG></P>
+<P ALIGN="CENTER"><STRONG>2007-05-06</STRONG></P>
</DIV>
<P>
Configuring and extending Ion3 with Lua
<BR>
-Copyright © 2003-2005 Tuomo Valkonen.
+Copyright © 2003-2007 Tuomo Valkonen.
<P>
This document is free; you can redistribute it and/or modify
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-chapter entitled ''GNU General Public License'' for more details.
+chapter entitled ``GNU General Public License'' for more details.
<P>
<BR><HR>
<A NAME="CHILD_LINKS"></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html21"
+<LI><A NAME="tex2html20"
HREF="node1.html">Contents</A>
-<LI><A NAME="tex2html22"
+<LI><A NAME="tex2html21"
HREF="node2.html"><SPAN CLASS="arabic">1</SPAN>. Introduction</A>
-<LI><A NAME="tex2html23"
+<LI><A NAME="tex2html22"
HREF="node3.html"><SPAN CLASS="arabic">2</SPAN>. Preliminaries: Key concepts and relations</A>
<UL>
-<LI><A NAME="tex2html24"
+<LI><A NAME="tex2html23"
HREF="node3.html#SECTION00310000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Modules</A>
-<LI><A NAME="tex2html25"
+<LI><A NAME="tex2html24"
HREF="node3.html#SECTION00320000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Class and object hierarchies</A>
<UL>
-<LI><A NAME="tex2html26"
+<LI><A NAME="tex2html25"
HREF="node3.html#SECTION00321000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Class hierarchy</A>
-<LI><A NAME="tex2html27"
+<LI><A NAME="tex2html26"
HREF="node3.html#SECTION00322000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Object hierarchies: WRegion parents and managers</A>
<UL>
-<LI><A NAME="tex2html28"
+<LI><A NAME="tex2html27"
HREF="node3.html#SECTION00322100000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Parent-child relations</A>
-<LI><A NAME="tex2html29"
+<LI><A NAME="tex2html28"
HREF="node3.html#SECTION00322200000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Manager-managed relations</A>
</UL>
-<LI><A NAME="tex2html30"
+<LI><A NAME="tex2html29"
HREF="node3.html#SECTION00323000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Summary</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html31"
+<LI><A NAME="tex2html30"
HREF="node4.html"><SPAN CLASS="arabic">3</SPAN>. Basic configuration</A>
<UL>
-<LI><A NAME="tex2html32"
+<LI><A NAME="tex2html31"
HREF="node4.html#SECTION00410000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> The configuration files</A>
-<LI><A NAME="tex2html33"
+<LI><A NAME="tex2html32"
HREF="node4.html#SECTION00420000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> A walk through <SPAN CLASS="textit">cfg_ion.lua</SPAN></A>
-<LI><A NAME="tex2html34"
+<LI><A NAME="tex2html33"
HREF="node4.html#SECTION00430000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Keys and rodents</A>
<UL>
-<LI><A NAME="tex2html35"
+<LI><A NAME="tex2html34"
HREF="node4.html#SECTION00431000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Binding handlers and special variables</A>
-<LI><A NAME="tex2html36"
+<LI><A NAME="tex2html35"
HREF="node4.html#SECTION00432000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Guards</A>
-<LI><A NAME="tex2html37"
+<LI><A NAME="tex2html36"
HREF="node4.html#SECTION00433000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining the bindings</A>
-<LI><A NAME="tex2html38"
+<LI><A NAME="tex2html37"
HREF="node4.html#SECTION00434000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Examples</A>
-<LI><A NAME="tex2html39"
+<LI><A NAME="tex2html38"
HREF="node4.html#SECTION00435000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Key specifications</A>
-<LI><A NAME="tex2html40"
+<LI><A NAME="tex2html39"
HREF="node4.html#SECTION00436000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> Button specifications</A>
-<LI><A NAME="tex2html41"
+<LI><A NAME="tex2html40"
HREF="node4.html#SECTION00437000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">7</SPAN> A further note on the default binding configuration</A>
</UL>
-<LI><A NAME="tex2html42"
+<LI><A NAME="tex2html41"
HREF="node4.html#SECTION00440000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Menus</A>
<UL>
-<LI><A NAME="tex2html43"
+<LI><A NAME="tex2html42"
HREF="node4.html#SECTION00441000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Defining menus</A>
-<LI><A NAME="tex2html44"
+<LI><A NAME="tex2html43"
HREF="node4.html#SECTION00442000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Special menus</A>
-<LI><A NAME="tex2html45"
+<LI><A NAME="tex2html44"
HREF="node4.html#SECTION00443000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining context menus</A>
-<LI><A NAME="tex2html46"
+<LI><A NAME="tex2html45"
HREF="node4.html#SECTION00444000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> Displaying menus</A>
</UL>
-<LI><A NAME="tex2html47"
+<LI><A NAME="tex2html46"
HREF="node4.html#SECTION00450000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Winprops</A>
<UL>
-<LI><A NAME="tex2html48"
+<LI><A NAME="tex2html47"
HREF="node4.html#SECTION00451000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Sizehint winprops</A>
-<LI><A NAME="tex2html49"
+<LI><A NAME="tex2html48"
HREF="node4.html#SECTION00452000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Classes, roles and instances</A>
-<LI><A NAME="tex2html50"
+<LI><A NAME="tex2html49"
HREF="node4.html#SECTION00453000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Finding window identification</A>
-<LI><A NAME="tex2html51"
+<LI><A NAME="tex2html50"
HREF="node4.html#SECTION00454000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Some common examples</A>
<UL>
-<LI><A NAME="tex2html52"
+<LI><A NAME="tex2html51"
HREF="node4.html#SECTION00454100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
+<LI><A NAME="tex2html52"
+ HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Forcing newly created windows in named frames</A>
+</UL>
+</UL>
<LI><A NAME="tex2html53"
- HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
+ HREF="node4.html#SECTION00460000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> The statusbar</A>
+<UL>
<LI><A NAME="tex2html54"
- HREF="node4.html#SECTION00454300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
+ HREF="node4.html#SECTION00461000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> The template</A>
+<LI><A NAME="tex2html55"
+ HREF="node4.html#SECTION00462000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> The systray</A>
+<LI><A NAME="tex2html56"
+ HREF="node4.html#SECTION00463000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Monitors</A>
+<UL>
+<LI><A NAME="tex2html57"
+ HREF="node4.html#SECTION00463100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Date</A>
+<LI><A NAME="tex2html58"
+ HREF="node4.html#SECTION00463200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Load</A>
+<LI><A NAME="tex2html59"
+ HREF="node4.html#SECTION00463300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Mail</A>
</UL>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html55"
+<LI><A NAME="tex2html60"
HREF="node5.html"><SPAN CLASS="arabic">4</SPAN>. Graphical styles</A>
<UL>
-<LI><A NAME="tex2html56"
+<LI><A NAME="tex2html61"
HREF="node5.html#SECTION00510000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles</A>
<UL>
-<LI><A NAME="tex2html57"
+<LI><A NAME="tex2html62"
HREF="node5.html#SECTION00511000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Known styles and substyles</A>
<UL>
-<LI><A NAME="tex2html58"
+<LI><A NAME="tex2html63"
HREF="node5.html#SECTION00511100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frames</A>
-<LI><A NAME="tex2html59"
+<LI><A NAME="tex2html64"
HREF="node5.html#SECTION00511200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tabs and menu entries</A>
-<LI><A NAME="tex2html60"
+<LI><A NAME="tex2html65"
HREF="node5.html#SECTION00511300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> The rest</A>
</UL>
</UL>
-<LI><A NAME="tex2html61"
+<LI><A NAME="tex2html66"
HREF="node5.html#SECTION00520000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining styles for the default drawing engine</A>
<UL>
-<LI><A NAME="tex2html62"
+<LI><A NAME="tex2html67"
HREF="node5.html#SECTION00521000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> The structure of the configuration files</A>
-<LI><A NAME="tex2html63"
+<LI><A NAME="tex2html68"
HREF="node5.html#SECTION00522000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining the styles</A>
<UL>
-<LI><A NAME="tex2html64"
+<LI><A NAME="tex2html69"
HREF="node5.html#SECTION00522100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Colours</A>
-<LI><A NAME="tex2html65"
+<LI><A NAME="tex2html70"
HREF="node5.html#SECTION00522200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Borders and widths</A>
-<LI><A NAME="tex2html66"
+<LI><A NAME="tex2html71"
HREF="node5.html#SECTION00522300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Text</A>
-<LI><A NAME="tex2html67"
+<LI><A NAME="tex2html72"
HREF="node5.html#SECTION00522400000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> Miscellaneous</A>
-<LI><A NAME="tex2html68"
+<LI><A NAME="tex2html73"
HREF="node5.html#SECTION00522500000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> Substyles</A>
</UL>
-<LI><A NAME="tex2html69"
+<LI><A NAME="tex2html74"
HREF="node5.html#SECTION00523000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> An example</A>
</UL>
-<LI><A NAME="tex2html70"
+<LI><A NAME="tex2html75"
HREF="node5.html#SECTION00530000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
<UL>
-<LI><A NAME="tex2html71"
- HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Extra fields for style <TT>frame</TT></A>
-<LI><A NAME="tex2html72"
- HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style <TT>dock</TT></A>
+<LI><A NAME="tex2html76"
+ HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frame user attributes</A>
+<LI><A NAME="tex2html77"
+ HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style `<TT>frame</TT>'</A>
+<LI><A NAME="tex2html78"
+ HREF="node5.html#SECTION00533000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Extra fields for style `<TT>dock</TT>'</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html73"
+<LI><A NAME="tex2html79"
HREF="node6.html"><SPAN CLASS="arabic">5</SPAN>. Scripting</A>
<UL>
-<LI><A NAME="tex2html74"
+<LI><A NAME="tex2html80"
HREF="node6.html#SECTION00610000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Hooks</A>
-<LI><A NAME="tex2html75"
+<LI><A NAME="tex2html81"
HREF="node6.html#SECTION00620000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Referring to regions</A>
<UL>
-<LI><A NAME="tex2html76"
+<LI><A NAME="tex2html82"
HREF="node6.html#SECTION00621000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Direct object references</A>
-<LI><A NAME="tex2html77"
+<LI><A NAME="tex2html83"
HREF="node6.html#SECTION00622000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Name-based lookups</A>
</UL>
-<LI><A NAME="tex2html78"
+<LI><A NAME="tex2html84"
HREF="node6.html#SECTION00630000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Alternative winprop selection criteria</A>
-<LI><A NAME="tex2html79"
+<LI><A NAME="tex2html85"
HREF="node6.html#SECTION00640000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Writing <TT>ion-statusd</TT> monitors</A>
</UL>
<BR>
-<LI><A NAME="tex2html80"
+<LI><A NAME="tex2html86"
HREF="node7.html"><SPAN CLASS="arabic">6</SPAN>. Function reference</A>
<UL>
-<LI><A NAME="tex2html81"
+<LI><A NAME="tex2html87"
HREF="node7.html#SECTION00710000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Functions defined in <SPAN CLASS="textit">ioncore</SPAN></A>
<UL>
-<LI><A NAME="tex2html82"
- HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
-<LI><A NAME="tex2html83"
- HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
-<LI><A NAME="tex2html84"
- HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
-<LI><A NAME="tex2html85"
- HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
-<LI><A NAME="tex2html86"
- HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
-<LI><A NAME="tex2html87"
- HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
<LI><A NAME="tex2html88"
- HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
+ HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
<LI><A NAME="tex2html89"
- HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
+ HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
<LI><A NAME="tex2html90"
- HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
+ HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
<LI><A NAME="tex2html91"
- HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
+ HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
<LI><A NAME="tex2html92"
- HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
+ HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
<LI><A NAME="tex2html93"
- HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
+ HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WHook functions</A>
<LI><A NAME="tex2html94"
- HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
+ HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WInfoWin functions</A>
<LI><A NAME="tex2html95"
- HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
+ HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMPlex functions</A>
<LI><A NAME="tex2html96"
- HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
+ HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WMoveresMode functions</A>
<LI><A NAME="tex2html97"
- HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
-</UL>
+ HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRegion functions</A>
<LI><A NAME="tex2html98"
+ HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WRootWin functions</A>
+<LI><A NAME="tex2html99"
+ HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WScreen functions</A>
+<LI><A NAME="tex2html100"
+ HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> WTimer functions</A>
+<LI><A NAME="tex2html101"
+ HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> WWindow functions</A>
+<LI><A NAME="tex2html102"
+ HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> global functions</A>
+<LI><A NAME="tex2html103"
+ HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> gr functions</A>
+<LI><A NAME="tex2html104"
+ HREF="node7.html#SECTION007117000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">17</SPAN> string functions</A>
+<LI><A NAME="tex2html105"
+ HREF="node7.html#SECTION007118000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">18</SPAN> table functions</A>
+</UL>
+<LI><A NAME="tex2html106"
HREF="node7.html#SECTION00720000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Functions defined in <SPAN CLASS="textit">mod_tiling</SPAN></A>
<UL>
-<LI><A NAME="tex2html99"
+<LI><A NAME="tex2html107"
HREF="node7.html#SECTION00721000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> WSplit functions</A>
-<LI><A NAME="tex2html100"
+<LI><A NAME="tex2html108"
HREF="node7.html#SECTION00722000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> WSplitInner functions</A>
-<LI><A NAME="tex2html101"
+<LI><A NAME="tex2html109"
HREF="node7.html#SECTION00723000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> WSplitRegion functions</A>
-<LI><A NAME="tex2html102"
+<LI><A NAME="tex2html110"
HREF="node7.html#SECTION00724000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> WSplitSplit functions</A>
-<LI><A NAME="tex2html103"
+<LI><A NAME="tex2html111"
HREF="node7.html#SECTION00725000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> WTiling functions</A>
</UL>
-<LI><A NAME="tex2html104"
+<LI><A NAME="tex2html112"
HREF="node7.html#SECTION00730000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Functions defined in <SPAN CLASS="textit">mod_query</SPAN></A>
<UL>
-<LI><A NAME="tex2html105"
+<LI><A NAME="tex2html113"
HREF="node7.html#SECTION00731000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> WComplProxy functions</A>
-<LI><A NAME="tex2html106"
+<LI><A NAME="tex2html114"
HREF="node7.html#SECTION00732000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> WEdln functions</A>
-<LI><A NAME="tex2html107"
+<LI><A NAME="tex2html115"
HREF="node7.html#SECTION00733000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> WInput functions</A>
</UL>
-<LI><A NAME="tex2html108"
+<LI><A NAME="tex2html116"
HREF="node7.html#SECTION00740000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Functions defined in <SPAN CLASS="textit">mod_menu</SPAN></A>
<UL>
-<LI><A NAME="tex2html109"
+<LI><A NAME="tex2html117"
HREF="node7.html#SECTION00741000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> WMenu functions</A>
</UL>
-<LI><A NAME="tex2html110"
+<LI><A NAME="tex2html118"
HREF="node7.html#SECTION00750000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN> Functions defined in <SPAN CLASS="textit">mod_dock</SPAN></A>
<UL>
-<LI><A NAME="tex2html111"
+<LI><A NAME="tex2html119"
HREF="node7.html#SECTION00751000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> WDock functions</A>
</UL>
-<LI><A NAME="tex2html112"
+<LI><A NAME="tex2html120"
HREF="node7.html#SECTION00760000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN> Functions defined in <SPAN CLASS="textit">mod_sp</SPAN></A>
-<LI><A NAME="tex2html113"
+<LI><A NAME="tex2html121"
HREF="node7.html#SECTION00770000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN> Functions defined in <SPAN CLASS="textit">mod_statusbar</SPAN></A>
<UL>
-<LI><A NAME="tex2html114"
+<LI><A NAME="tex2html122"
HREF="node7.html#SECTION00771000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> WStatusBar functions</A>
</UL>
-<LI><A NAME="tex2html115"
+<LI><A NAME="tex2html123"
HREF="node7.html#SECTION00780000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN> Functions defined in <SPAN CLASS="textit">de</SPAN></A>
-<LI><A NAME="tex2html116"
+<LI><A NAME="tex2html124"
HREF="node7.html#SECTION00790000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN> Hooks</A>
+<LI><A NAME="tex2html125"
+ HREF="node7.html#SECTION007100000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN> Miscellaneous</A>
+<UL>
+<LI><A NAME="tex2html126"
+ HREF="node7.html#SECTION007101000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN>.<SPAN CLASS="arabic">1</SPAN> Size policies</A>
+</UL>
</UL>
<BR>
-<LI><A NAME="tex2html117"
+<LI><A NAME="tex2html127"
HREF="node8.html">A. The GNU General Public License</A>
<UL>
-<LI><A NAME="tex2html118"
+<LI><A NAME="tex2html128"
HREF="node8.html#SECTION00810000000000000000">Appendix: How to Apply These Terms to Your New Programs</A>
</UL>
<BR>
-<LI><A NAME="tex2html119"
+<LI><A NAME="tex2html129"
HREF="node9.html">B. Full class hierarchy visible to Lua-side</A>
-<LI><A NAME="tex2html120"
+<LI><A NAME="tex2html130"
HREF="node10.html">List of functions</A>
-<LI><A NAME="tex2html121"
+<LI><A NAME="tex2html131"
HREF="node11.html">Index</A>
-<LI><A NAME="tex2html122"
- HREF="node12.html">About this document ...</A>
+<LI><A NAME="tex2html132"
+ HREF="node12.html">Bibliography</A>
+<LI><A NAME="tex2html133"
+ HREF="node13.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.add/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.x_get_window_property/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.get_hook/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:ioncore.tabnum.clear/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_query.query_exec/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.insstr/;
+$key = q/fn:WClientWin.quote_next/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WClientWin.quote_next/;
+$key = q/fn:WEdln.insstr/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:sizepolicies/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:WTimer.set/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.goto_activity/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WTiling.farthest/;
+$key = q/fn:ioncore.submap_enter/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.finish/;
+$key = q/fn:WTiling.farthest/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.mark/;
+$key = q/fn:WEdln.finish/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WEdln.mark/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WMPlex.switch_prev/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.is_mapped/;
+$key = q/fn:ioncore.goto_prev_screen/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.goto_prev_screen/;
+$key = q/fn:WRegion.is_mapped/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.transpose_words/;
+$key = q/sec:ioncoreref/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/sec:ioncoreref/;
+$key = q/fn:WEdln.transpose_words/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.launch_statusd/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.getbindings/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTimer.reset/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fig:borders/;
$external_labels{$key} = "$URL/" . q|node5.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WStatusBar.is_systray_extl/;
-$external_labels{$key} = "$URL/" . q|node7.html|;
+$key = q/sec:statusbar/;
+$external_labels{$key} = "$URL/" . q|node4.html|;
$noresave{$key} = "$nosave";
$key = q/fn:WMenu.select_nth/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.create_timer/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WTiling.managed_i/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node3.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.tl/;
+$key = q/fn:ioncore.defctxmenu/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.defctxmenu/;
+$key = q/fn:WSplitSplit.tl/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.set_name_exact/;
+$key = q/fn:WMPlex.switch_nth/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WMPlex.switch_nth/;
+$key = q/fn:WRegion.set_name_exact/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WFrame.set_grattr/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WEdln.forward/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.tabnum.show/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/region_do_warp_alt/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.inform/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.tagged_i/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/cite_scripts/;
+$external_labels{$key} = "$URL/" . q|node12.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.clientwin_i/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.unsqueeze/;
+$key = q/fn:WGroup.bottom/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WGroup.bottom/;
+$key = q/fn:ioncore.unsqueeze/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node6.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.groupleader_of/;
+$key = q/fn:ioncore.get_savefile/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.get_savefile/;
+$key = q/fn:WRegion.groupleader_of/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:mod_query.history_push/;
+$key = q/fn:ioncore.lookup_clientwin/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.lookup_clientwin/;
+$key = q/fn:mod_query.history_push/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node4.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplit.parent/;
+$key = q/fn:ioncore.getctxmenu/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.getctxmenu/;
+$key = q/fn:WSplit.parent/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.defer/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WMenu.select_prev/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.listed/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.refresh_stylelist/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:string.shell_safe/;
+$key = q/fn:mod_query.query_restart/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:mod_query.query_restart/;
+$key = q/fn:string.shell_safe/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.deflayout/;
-$external_labels{$key} = "$URL/" . q|node7.html|;
-$noresave{$key} = "$nosave";
-
$key = q/sec:classesrolesinstances/;
$external_labels{$key} = "$URL/" . q|node4.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.deflayout/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.tagged_attach/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:miscref/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WClientWin.xid/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.match_winprop_dflt/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.get_paths/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node4.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WFrame.set_numbers/;
+$key = q/fn:mod_statusbar.update/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.create/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WGroup.attach/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.flip/;
+$key = q/fn:WTiling.split_top/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WTiling.split_top/;
+$key = q/fn:WSplitSplit.flip/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.defwinprop/;
+$key = q/fn:ioncore.popen_bgread/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.popen_bgread/;
+$key = q/fn:ioncore.defwinprop/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplit.transpose/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WClientWin.kill/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplit.transpose/;
+$key = q/fn:ioncore.submap_wait/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplitSplit.dir/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:table.map/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.dir/;
+$key = q/fn:WMPlex.set_stdisp/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WMPlex.set_stdisp/;
+$key = q/fn:WStatusBar.is_systray/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WInput.cancel/;
+$key = q/fn:WRegion.parent/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.parent/;
+$key = q/fn:WInput.cancel/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.match_winprop_name/;
-$external_labels{$key} = "$URL/" . q|node7.html|;
-$noresave{$key} = "$nosave";
-
$key = q/ioncore_sigchld_hook/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.remove/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.request_selection/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:grmisc/;
+$external_labels{$key} = "$URL/" . q|node5.html|;
+$noresave{$key} = "$nosave";
+
$key = q/chap:prelim/;
$external_labels{$key} = "$URL/" . q|node3.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/sec:statusd/;
+$external_labels{$key} = "$URL/" . q|node6.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WRegion.rqgeom/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTimer.is_set/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WRegion.set_name/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
+$key = q/ioncore_submap_ungrab_hook/;
+$external_labels{$key} = "$URL/" . q|node7.html|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WGroup.attach_new/;
$external_labels{$key} = "$URL/" . q|node7.html|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.mx_nth/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:gr.select_engine/;
-$external_latex_labels{$key} = q|6.1.14|;
+$external_latex_labels{$key} = q|6.1.16|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:WHook.add/;
+$external_latex_labels{$key} = q|6.1.6|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.x_get_window_property/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.get_hook/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:ioncore.tabnum.clear/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_query.query_exec/;
$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.insstr/;
-$external_latex_labels{$key} = q|6.3.2|;
-$noresave{$key} = "$nosave";
-
$key = q/fn:WClientWin.quote_next/;
$external_latex_labels{$key} = q|6.1.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WEdln.insstr/;
+$external_latex_labels{$key} = q|6.3.2|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_query.query_renameworkspace/;
$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
$external_latex_labels{$key} = q|6.1.2|;
$noresave{$key} = "$nosave";
+$key = q/sec:sizepolicies/;
+$external_latex_labels{$key} = q|6.10.1|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:WTimer.set/;
+$external_latex_labels{$key} = q|6.1.13|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.goto_activity/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WTiling.farthest/;
-$external_latex_labels{$key} = q|6.2.5|;
+$key = q/fn:ioncore.submap_enter/;
+$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.create_ws/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTiling.farthest/;
+$external_latex_labels{$key} = q|6.2.5|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WEdln.finish/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.mark/;
+$key = q/fn:WEdln.bskip_word/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.bskip_word/;
+$key = q/fn:WEdln.mark/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.switch_prev/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WTiling.unsplit_at/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.dec_index/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.current/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.is_mapped/;
-$external_latex_labels{$key} = q|6.1.9|;
-$noresave{$key} = "$nosave";
-
$key = q/fn:ioncore.goto_prev_screen/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WEdln.transpose_words/;
-$external_latex_labels{$key} = q|6.3.2|;
+$key = q/fn:WRegion.is_mapped/;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/sec:ioncoreref/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WEdln.transpose_words/;
+$external_latex_labels{$key} = q|6.3.2|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_statusbar.statusbars/;
$external_latex_labels{$key} = q|6.7|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WWindow.p_resize/;
-$external_latex_labels{$key} = q|6.1.12|;
+$external_latex_labels{$key} = q|6.1.14|;
$noresave{$key} = "$nosave";
$key = q/fn:WComplProxy.set_completions/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.launch_statusd/;
+$external_latex_labels{$key} = q|6.7|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.getbindings/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.get_stdisp/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.defmenu/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTimer.reset/;
+$external_latex_labels{$key} = q|6.1.13|;
+$noresave{$key} = "$nosave";
+
$key = q/fig:borders/;
$external_latex_labels{$key} = q|4.1|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WScreen.id/;
-$external_latex_labels{$key} = q|6.1.11|;
+$external_latex_labels{$key} = q|6.1.12|;
$noresave{$key} = "$nosave";
$key = q/fn:WFrame.set_mode/;
$noresave{$key} = "$nosave";
$key = q/fn:WMoveresMode.resize/;
-$external_latex_labels{$key} = q|6.1.8|;
+$external_latex_labels{$key} = q|6.1.9|;
$noresave{$key} = "$nosave";
-$key = q/fn:WStatusBar.is_systray_extl/;
-$external_latex_labels{$key} = q|6.7.1|;
+$key = q/sec:statusbar/;
+$external_latex_labels{$key} = q|3.6|;
$noresave{$key} = "$nosave";
$key = q/fn:WMenu.select_nth/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.create_timer/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WTiling.managed_i/;
$external_latex_labels{$key} = q|6.2.5|;
$noresave{$key} = "$nosave";
$external_latex_labels{$key} = q|2.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.tl/;
-$external_latex_labels{$key} = q|6.2.4|;
+$key = q/fn:ioncore.defctxmenu/;
+$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_tiling.mkbottom/;
$external_latex_labels{$key} = q|6.2|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.defctxmenu/;
-$external_latex_labels{$key} = q|6.1|;
+$key = q/fn:WSplitSplit.tl/;
+$external_latex_labels{$key} = q|6.2.4|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.set_selection/;
$external_latex_labels{$key} = q|6.3.3|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.set_name_exact/;
-$external_latex_labels{$key} = q|6.1.9|;
+$key = q/fn:WMPlex.switch_nth/;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
-$key = q/fn:WMPlex.switch_nth/;
-$external_latex_labels{$key} = q|6.1.7|;
+$key = q/fn:WRegion.set_name_exact/;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.prev_completion/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WFrame.set_grattr/;
+$external_latex_labels{$key} = q|6.1.2|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WEdln.forward/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WInfoWin.set_text/;
-$external_latex_labels{$key} = q|6.1.6|;
+$external_latex_labels{$key} = q|6.1.7|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.snapshot/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.tabnum.show/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/region_do_warp_alt/;
$external_latex_labels{$key} = q|6.9|;
$noresave{$key} = "$nosave";
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:mod_statusbar.inform/;
+$external_latex_labels{$key} = q|6.7|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.tagged_i/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WWindow.xid/;
-$external_latex_labels{$key} = q|6.1.12|;
+$external_latex_labels{$key} = q|6.1.14|;
$noresave{$key} = "$nosave";
$key = q/sec:statusbarref/;
$noresave{$key} = "$nosave";
$key = q/fn:gr.read_config/;
-$external_latex_labels{$key} = q|6.1.14|;
+$external_latex_labels{$key} = q|6.1.16|;
$noresave{$key} = "$nosave";
$key = q/fn:WTiling.split_at/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.screen_of/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.switch_next/;
-$external_latex_labels{$key} = q|6.1.7|;
-$noresave{$key} = "$nosave";
-
-$key = q/fn:ioncore.unsqueeze/;
-$external_latex_labels{$key} = q|6.1|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WGroup.bottom/;
$external_latex_labels{$key} = q|6.1.3|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.unsqueeze/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_query.history_search/;
$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WRootWin.current_scr/;
-$external_latex_labels{$key} = q|6.1.10|;
+$external_latex_labels{$key} = q|6.1.11|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.navi_first/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.set_tagged/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/app:fullhierarchy/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.groupleader_of/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.get_savefile/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:mod_query.history_push/;
-$external_latex_labels{$key} = q|6.3|;
+$key = q/fn:ioncore.lookup_clientwin/;
+$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_query.get/;
$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.lookup_clientwin/;
-$external_latex_labels{$key} = q|6.1|;
+$key = q/fn:mod_query.history_push/;
+$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.restart/;
$external_latex_labels{$key} = q|3.5|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplit.parent/;
-$external_latex_labels{$key} = q|6.2.1|;
-$noresave{$key} = "$nosave";
-
$key = q/fn:ioncore.getctxmenu/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplit.parent/;
+$external_latex_labels{$key} = q|6.2.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WMoveresMode.rqgeom/;
-$external_latex_labels{$key} = q|6.1.8|;
+$external_latex_labels{$key} = q|6.1.9|;
$noresave{$key} = "$nosave";
$key = q/fn:WStatusBar.get_template_table/;
$noresave{$key} = "$nosave";
$key = q/fn:WWindow.p_move/;
-$external_latex_labels{$key} = q|6.1.12|;
+$external_latex_labels{$key} = q|6.1.14|;
$noresave{$key} = "$nosave";
$key = q/sec:objects/;
$noresave{$key} = "$nosave";
$key = q/fn:WScreen.set_managed_offset/;
-$external_latex_labels{$key} = q|6.1.11|;
+$external_latex_labels{$key} = q|6.1.12|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.get_dir_for/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.defer/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WMenu.select_prev/;
$external_latex_labels{$key} = q|6.4.1|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:table.copy/;
-$external_latex_labels{$key} = q|6.1.16|;
+$external_latex_labels{$key} = q|6.1.18|;
$noresave{$key} = "$nosave";
$key = q/fn:WSplit.rqgeom/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.managed_i/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.set_mark/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.mx_count/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.attach/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fig:managership/;
$noresave{$key} = "$nosave";
$key = q/fn:WMoveresMode.move/;
-$external_latex_labels{$key} = q|6.1.8|;
+$external_latex_labels{$key} = q|6.1.9|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_tiling.get/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.listed/;
+$external_latex_labels{$key} = q|6.1.6|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.refresh_stylelist/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.inc_index/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.x_delete_property/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.rqclose/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.set_activity/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_query.query_runfile/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.mx_current/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_query.message/;
$external_latex_labels{$key} = q|6.2.4|;
$noresave{$key} = "$nosave";
-$key = q/fn:string.shell_safe/;
-$external_latex_labels{$key} = q|6.1.15|;
-$noresave{$key} = "$nosave";
-
$key = q/fn:mod_query.query_restart/;
$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
+$key = q/fn:string.shell_safe/;
+$external_latex_labels{$key} = q|6.1.17|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:mod_tiling.set/;
$external_latex_labels{$key} = q|6.2|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.current/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.rqclose_propagate/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/region_notify_hook/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.begin_kbresize/;
-$external_latex_labels{$key} = q|6.1.9|;
-$noresave{$key} = "$nosave";
-
-$key = q/fn:ioncore.deflayout/;
-$external_latex_labels{$key} = q|6.1|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/sec:classesrolesinstances/;
$external_latex_labels{$key} = q|3.5.2|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.deflayout/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.tagged_attach/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.is_tagged/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.next_completion/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.set_hidden/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WMenu.cancel/;
$noresave{$key} = "$nosave";
$key = q/fn:WMoveresMode.geom/;
-$external_latex_labels{$key} = q|6.1.8|;
+$external_latex_labels{$key} = q|6.1.9|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.goto_nth_screen/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/sec:miscref/;
+$external_latex_labels{$key} = q|6.10|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WClientWin.xid/;
$external_latex_labels{$key} = q|6.1.1|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.name/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.x_get_text_property/;
$noresave{$key} = "$nosave";
$key = q/fn:table.append/;
-$external_latex_labels{$key} = q|6.1.16|;
+$external_latex_labels{$key} = q|6.1.18|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.mclick/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.set_index/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_query.history_clear/;
$noresave{$key} = "$nosave";
$key = q/fn:WMoveresMode.finish/;
-$external_latex_labels{$key} = q|6.1.8|;
+$external_latex_labels{$key} = q|6.1.9|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_query.query_gotoclient/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:ioncore.match_winprop_dflt/;
+$external_latex_labels{$key} = q|6.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.get_paths/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$external_latex_labels{$key} = q|3.2|;
$noresave{$key} = "$nosave";
-$key = q/fn:WFrame.set_numbers/;
-$external_latex_labels{$key} = q|6.1.2|;
+$key = q/fn:mod_statusbar.update/;
+$external_latex_labels{$key} = q|6.7|;
$noresave{$key} = "$nosave";
$key = q/fn:WMoveresMode.cancel/;
-$external_latex_labels{$key} = q|6.1.8|;
+$external_latex_labels{$key} = q|6.1.9|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.submap/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.is_active/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.bkill_word/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.attach_new/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
+$noresave{$key} = "$nosave";
+
+$key = q/fn:mod_statusbar.create/;
+$external_latex_labels{$key} = q|6.7|;
$noresave{$key} = "$nosave";
$key = q/fn:WGroup.attach/;
$external_latex_labels{$key} = q|6.3|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.defwinprop/;
+$key = q/fn:ioncore.popen_bgread/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.popen_bgread/;
+$key = q/fn:ioncore.defwinprop/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplit.transpose/;
+$external_latex_labels{$key} = q|6.2.1|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WClientWin.kill/;
$external_latex_labels{$key} = q|6.1.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplit.transpose/;
-$external_latex_labels{$key} = q|6.2.1|;
+$key = q/fn:ioncore.submap_wait/;
+$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$key = q/ioncore_snapshot_hook/;
$external_latex_labels{$key} = q|6.9|;
$noresave{$key} = "$nosave";
+$key = q/fn:WSplitSplit.dir/;
+$external_latex_labels{$key} = q|6.2.4|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:table.map/;
-$external_latex_labels{$key} = q|6.1.16|;
+$external_latex_labels{$key} = q|6.1.18|;
$noresave{$key} = "$nosave";
-$key = q/fn:WSplitSplit.dir/;
-$external_latex_labels{$key} = q|6.2.4|;
+$key = q/fn:WMPlex.set_stdisp/;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WFrame.set_shaded/;
$external_latex_labels{$key} = q|6.1.2|;
$noresave{$key} = "$nosave";
-$key = q/fn:WMPlex.set_stdisp/;
-$external_latex_labels{$key} = q|6.1.7|;
+$key = q/fn:WStatusBar.is_systray/;
+$external_latex_labels{$key} = q|6.7.1|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.manager/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.x_change_property/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
-$key = q/fn:WInput.cancel/;
-$external_latex_labels{$key} = q|6.3.3|;
+$key = q/fn:WRegion.parent/;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
-$key = q/fn:WRegion.parent/;
-$external_latex_labels{$key} = q|6.1.9|;
+$key = q/fn:WInput.cancel/;
+$external_latex_labels{$key} = q|6.3.3|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.back/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.geom/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.kpress_wait/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.rootwin_of/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.mx_i/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/clientwin_do_manage_alt/;
$external_latex_labels{$key} = q|6.9|;
$noresave{$key} = "$nosave";
-$key = q/fn:ioncore.match_winprop_name/;
-$external_latex_labels{$key} = q|6.1|;
-$noresave{$key} = "$nosave";
-
$key = q/ioncore_sigchld_hook/;
$external_latex_labels{$key} = q|6.9|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:gr.refresh/;
-$external_latex_labels{$key} = q|6.1.14|;
+$external_latex_labels{$key} = q|6.1.16|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.rqorder/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_menu.grabmenu/;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.size_hints/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.delete/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/fn:WHook.remove/;
+$external_latex_labels{$key} = q|6.1.6|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:ioncore.request_selection/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.goto/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.goto_next_screen/;
$external_latex_labels{$key} = q|6.1|;
$noresave{$key} = "$nosave";
+$key = q/sec:grmisc/;
+$external_latex_labels{$key} = q|4.3|;
+$noresave{$key} = "$nosave";
+
$key = q/chap:prelim/;
$external_latex_labels{$key} = q|2|;
$noresave{$key} = "$nosave";
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.is_activity/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
+$noresave{$key} = "$nosave";
+
+$key = q/sec:statusd/;
+$external_latex_labels{$key} = q|5.4|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.rqgeom/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:WInput.scrolldown/;
$external_latex_labels{$key} = q|6.2|;
$noresave{$key} = "$nosave";
+$key = q/fn:WTimer.is_set/;
+$external_latex_labels{$key} = q|6.1.13|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WRegion.set_name/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:table.join/;
-$external_latex_labels{$key} = q|6.1.16|;
+$external_latex_labels{$key} = q|6.1.18|;
$noresave{$key} = "$nosave";
$key = q/fn:ioncore.activity_first/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.is_hidden/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WRegion.get_configuration/;
-$external_latex_labels{$key} = q|6.1.9|;
+$external_latex_labels{$key} = q|6.1.10|;
$noresave{$key} = "$nosave";
$key = q/fn:mod_menu.get/;
$noresave{$key} = "$nosave";
$key = q/fn:export/;
-$external_latex_labels{$key} = q|6.1.13|;
+$external_latex_labels{$key} = q|6.1.15|;
$noresave{$key} = "$nosave";
$key = q/chap:gr/;
$noresave{$key} = "$nosave";
$key = q/fn:table.icat/;
-$external_latex_labels{$key} = q|6.1.16|;
+$external_latex_labels{$key} = q|6.1.18|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.kill_line/;
$noresave{$key} = "$nosave";
$key = q/fn:WMPlex.get_index/;
-$external_latex_labels{$key} = q|6.1.7|;
+$external_latex_labels{$key} = q|6.1.8|;
$noresave{$key} = "$nosave";
$key = q/fn:WEdln.skip_word/;
$external_latex_labels{$key} = q|6.3.2|;
$noresave{$key} = "$nosave";
+$key = q/ioncore_submap_ungrab_hook/;
+$external_latex_labels{$key} = q|6.9|;
+$noresave{$key} = "$nosave";
+
$key = q/fn:WGroup.attach_new/;
$external_latex_labels{$key} = q|6.1.3|;
$noresave{$key} = "$nosave";
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html133"
+<A NAME="tex2html144"
HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html129"
+<A NAME="tex2html140"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html123"
+<A NAME="tex2html134"
HREF="ionconf.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html131"
+<A NAME="tex2html142"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html134"
+<B> Next:</B> <A NAME="tex2html145"
HREF="node2.html">1. Introduction</A>
-<B> Up:</B> <A NAME="tex2html130"
+<B> Up:</B> <A NAME="tex2html141"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html124"
+<B> Previous:</B> <A NAME="tex2html135"
HREF="ionconf.html">Configuring and extending Ion3</A>
- <B> <A NAME="tex2html132"
+ <B> <A NAME="tex2html143"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<!--Table of Contents-->
<UL CLASS="TofC">
-<LI><A NAME="tex2html135"
+<LI><A NAME="tex2html146"
HREF="node2.html">1. Introduction</A>
-<LI><A NAME="tex2html136"
+<LI><A NAME="tex2html147"
HREF="node3.html">2. Preliminaries: Key concepts and relations</A>
<UL>
-<LI><A NAME="tex2html137"
+<LI><A NAME="tex2html148"
HREF="node3.html#SECTION00310000000000000000">2.1 Modules</A>
-<LI><A NAME="tex2html138"
+<LI><A NAME="tex2html149"
HREF="node3.html#SECTION00320000000000000000">2.2 Class and object hierarchies</A>
<UL>
-<LI><A NAME="tex2html139"
+<LI><A NAME="tex2html150"
HREF="node3.html#SECTION00321000000000000000">2.2.1 Class hierarchy</A>
-<LI><A NAME="tex2html140"
+<LI><A NAME="tex2html151"
HREF="node3.html#SECTION00322000000000000000">2.2.2 Object hierarchies: WRegion parents and managers</A>
-<LI><A NAME="tex2html141"
+<LI><A NAME="tex2html152"
HREF="node3.html#SECTION00323000000000000000">2.2.3 Summary</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html142"
+<LI><A NAME="tex2html153"
HREF="node4.html">3. Basic configuration</A>
<UL>
-<LI><A NAME="tex2html143"
+<LI><A NAME="tex2html154"
HREF="node4.html#SECTION00410000000000000000">3.1 The configuration files</A>
-<LI><A NAME="tex2html144"
+<LI><A NAME="tex2html155"
HREF="node4.html#SECTION00420000000000000000">3.2 A walk through cfg_ion.lua</A>
-<LI><A NAME="tex2html145"
+<LI><A NAME="tex2html156"
HREF="node4.html#SECTION00430000000000000000">3.3 Keys and rodents</A>
<UL>
-<LI><A NAME="tex2html146"
+<LI><A NAME="tex2html157"
HREF="node4.html#SECTION00431000000000000000">3.3.1 Binding handlers and special variables</A>
-<LI><A NAME="tex2html147"
+<LI><A NAME="tex2html158"
HREF="node4.html#SECTION00432000000000000000">3.3.2 Guards</A>
-<LI><A NAME="tex2html148"
+<LI><A NAME="tex2html159"
HREF="node4.html#SECTION00433000000000000000">3.3.3 Defining the bindings</A>
-<LI><A NAME="tex2html149"
+<LI><A NAME="tex2html160"
HREF="node4.html#SECTION00434000000000000000">3.3.4 Examples</A>
-<LI><A NAME="tex2html150"
+<LI><A NAME="tex2html161"
HREF="node4.html#SECTION00435000000000000000">3.3.5 Key specifications</A>
-<LI><A NAME="tex2html151"
+<LI><A NAME="tex2html162"
HREF="node4.html#SECTION00436000000000000000">3.3.6 Button specifications</A>
-<LI><A NAME="tex2html152"
+<LI><A NAME="tex2html163"
HREF="node4.html#SECTION00437000000000000000">3.3.7 A further note on the default binding configuration</A>
</UL>
-<LI><A NAME="tex2html153"
+<LI><A NAME="tex2html164"
HREF="node4.html#SECTION00440000000000000000">3.4 Menus</A>
<UL>
-<LI><A NAME="tex2html154"
+<LI><A NAME="tex2html165"
HREF="node4.html#SECTION00441000000000000000">3.4.1 Defining menus</A>
-<LI><A NAME="tex2html155"
+<LI><A NAME="tex2html166"
HREF="node4.html#SECTION00442000000000000000">3.4.2 Special menus</A>
-<LI><A NAME="tex2html156"
+<LI><A NAME="tex2html167"
HREF="node4.html#SECTION00443000000000000000">3.4.3 Defining context menus</A>
-<LI><A NAME="tex2html157"
+<LI><A NAME="tex2html168"
HREF="node4.html#SECTION00444000000000000000">3.4.4 Displaying menus</A>
</UL>
-<LI><A NAME="tex2html158"
+<LI><A NAME="tex2html169"
HREF="node4.html#SECTION00450000000000000000">3.5 Winprops</A>
<UL>
-<LI><A NAME="tex2html159"
+<LI><A NAME="tex2html170"
HREF="node4.html#SECTION00451000000000000000">3.5.1 Sizehint winprops</A>
-<LI><A NAME="tex2html160"
+<LI><A NAME="tex2html171"
HREF="node4.html#SECTION00452000000000000000">3.5.2 Classes, roles and instances</A>
-<LI><A NAME="tex2html161"
+<LI><A NAME="tex2html172"
HREF="node4.html#SECTION00453000000000000000">3.5.3 Finding window identification</A>
-<LI><A NAME="tex2html162"
+<LI><A NAME="tex2html173"
HREF="node4.html#SECTION00454000000000000000">3.5.4 Some common examples</A>
</UL>
+<LI><A NAME="tex2html174"
+ HREF="node4.html#SECTION00460000000000000000">3.6 The statusbar</A>
+<UL>
+<LI><A NAME="tex2html175"
+ HREF="node4.html#SECTION00461000000000000000">3.6.1 The template</A>
+<LI><A NAME="tex2html176"
+ HREF="node4.html#SECTION00462000000000000000">3.6.2 The systray</A>
+<LI><A NAME="tex2html177"
+ HREF="node4.html#SECTION00463000000000000000">3.6.3 Monitors</A>
+</UL>
</UL>
<BR>
-<LI><A NAME="tex2html163"
+<LI><A NAME="tex2html178"
HREF="node5.html">4. Graphical styles</A>
<UL>
-<LI><A NAME="tex2html164"
+<LI><A NAME="tex2html179"
HREF="node5.html#SECTION00510000000000000000">4.1 Drawing engines, style specifications and sub-styles</A>
<UL>
-<LI><A NAME="tex2html165"
+<LI><A NAME="tex2html180"
HREF="node5.html#SECTION00511000000000000000">4.1.1 Known styles and substyles</A>
</UL>
-<LI><A NAME="tex2html166"
+<LI><A NAME="tex2html181"
HREF="node5.html#SECTION00520000000000000000">4.2 Defining styles for the default drawing engine</A>
<UL>
-<LI><A NAME="tex2html167"
+<LI><A NAME="tex2html182"
HREF="node5.html#SECTION00521000000000000000">4.2.1 The structure of the configuration files</A>
-<LI><A NAME="tex2html168"
+<LI><A NAME="tex2html183"
HREF="node5.html#SECTION00522000000000000000">4.2.2 Defining the styles</A>
-<LI><A NAME="tex2html169"
+<LI><A NAME="tex2html184"
HREF="node5.html#SECTION00523000000000000000">4.2.3 An example</A>
</UL>
-<LI><A NAME="tex2html170"
+<LI><A NAME="tex2html185"
HREF="node5.html#SECTION00530000000000000000">4.3 Miscellaneous settings</A>
<UL>
-<LI><A NAME="tex2html171"
- HREF="node5.html#SECTION00531000000000000000">4.3.1 Extra fields for style frame</A>
-<LI><A NAME="tex2html172"
- HREF="node5.html#SECTION00532000000000000000">4.3.2 Extra fields for style dock</A>
+<LI><A NAME="tex2html186"
+ HREF="node5.html#SECTION00531000000000000000">4.3.1 Frame user attributes</A>
+<LI><A NAME="tex2html187"
+ HREF="node5.html#SECTION00532000000000000000">4.3.2 Extra fields for style `frame'</A>
+<LI><A NAME="tex2html188"
+ HREF="node5.html#SECTION00533000000000000000">4.3.3 Extra fields for style `dock'</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html173"
+<LI><A NAME="tex2html189"
HREF="node6.html">5. Scripting</A>
<UL>
-<LI><A NAME="tex2html174"
+<LI><A NAME="tex2html190"
HREF="node6.html#SECTION00610000000000000000">5.1 Hooks</A>
-<LI><A NAME="tex2html175"
+<LI><A NAME="tex2html191"
HREF="node6.html#SECTION00620000000000000000">5.2 Referring to regions</A>
<UL>
-<LI><A NAME="tex2html176"
+<LI><A NAME="tex2html192"
HREF="node6.html#SECTION00621000000000000000">5.2.1 Direct object references</A>
-<LI><A NAME="tex2html177"
+<LI><A NAME="tex2html193"
HREF="node6.html#SECTION00622000000000000000">5.2.2 Name-based lookups</A>
</UL>
-<LI><A NAME="tex2html178"
+<LI><A NAME="tex2html194"
HREF="node6.html#SECTION00630000000000000000">5.3 Alternative winprop selection criteria</A>
-<LI><A NAME="tex2html179"
+<LI><A NAME="tex2html195"
HREF="node6.html#SECTION00640000000000000000">5.4 Writing ion-statusd monitors</A>
</UL>
<BR>
-<LI><A NAME="tex2html180"
+<LI><A NAME="tex2html196"
HREF="node7.html">6. Function reference</A>
<UL>
-<LI><A NAME="tex2html181"
+<LI><A NAME="tex2html197"
HREF="node7.html#SECTION00710000000000000000">6.1 Functions defined in ioncore</A>
<UL>
-<LI><A NAME="tex2html182"
+<LI><A NAME="tex2html198"
HREF="node7.html#SECTION00711000000000000000">6.1.1 WClientWin functions</A>
-<LI><A NAME="tex2html183"
+<LI><A NAME="tex2html199"
HREF="node7.html#SECTION00712000000000000000">6.1.2 WFrame functions</A>
-<LI><A NAME="tex2html184"
+<LI><A NAME="tex2html200"
HREF="node7.html#SECTION00713000000000000000">6.1.3 WGroup functions</A>
-<LI><A NAME="tex2html185"
+<LI><A NAME="tex2html201"
HREF="node7.html#SECTION00714000000000000000">6.1.4 WGroupCW functions</A>
-<LI><A NAME="tex2html186"
+<LI><A NAME="tex2html202"
HREF="node7.html#SECTION00715000000000000000">6.1.5 WGroupWS functions</A>
-<LI><A NAME="tex2html187"
- HREF="node7.html#SECTION00716000000000000000">6.1.6 WInfoWin functions</A>
-<LI><A NAME="tex2html188"
- HREF="node7.html#SECTION00717000000000000000">6.1.7 WMPlex functions</A>
-<LI><A NAME="tex2html189"
- HREF="node7.html#SECTION00718000000000000000">6.1.8 WMoveresMode functions</A>
-<LI><A NAME="tex2html190"
- HREF="node7.html#SECTION00719000000000000000">6.1.9 WRegion functions</A>
-<LI><A NAME="tex2html191"
- HREF="node7.html#SECTION007110000000000000000">6.1.10 WRootWin functions</A>
-<LI><A NAME="tex2html192"
- HREF="node7.html#SECTION007111000000000000000">6.1.11 WScreen functions</A>
-<LI><A NAME="tex2html193"
- HREF="node7.html#SECTION007112000000000000000">6.1.12 WWindow functions</A>
-<LI><A NAME="tex2html194"
- HREF="node7.html#SECTION007113000000000000000">6.1.13 global functions</A>
-<LI><A NAME="tex2html195"
- HREF="node7.html#SECTION007114000000000000000">6.1.14 gr functions</A>
-<LI><A NAME="tex2html196"
- HREF="node7.html#SECTION007115000000000000000">6.1.15 string functions</A>
-<LI><A NAME="tex2html197"
- HREF="node7.html#SECTION007116000000000000000">6.1.16 table functions</A>
+<LI><A NAME="tex2html203"
+ HREF="node7.html#SECTION00716000000000000000">6.1.6 WHook functions</A>
+<LI><A NAME="tex2html204"
+ HREF="node7.html#SECTION00717000000000000000">6.1.7 WInfoWin functions</A>
+<LI><A NAME="tex2html205"
+ HREF="node7.html#SECTION00718000000000000000">6.1.8 WMPlex functions</A>
+<LI><A NAME="tex2html206"
+ HREF="node7.html#SECTION00719000000000000000">6.1.9 WMoveresMode functions</A>
+<LI><A NAME="tex2html207"
+ HREF="node7.html#SECTION007110000000000000000">6.1.10 WRegion functions</A>
+<LI><A NAME="tex2html208"
+ HREF="node7.html#SECTION007111000000000000000">6.1.11 WRootWin functions</A>
+<LI><A NAME="tex2html209"
+ HREF="node7.html#SECTION007112000000000000000">6.1.12 WScreen functions</A>
+<LI><A NAME="tex2html210"
+ HREF="node7.html#SECTION007113000000000000000">6.1.13 WTimer functions</A>
+<LI><A NAME="tex2html211"
+ HREF="node7.html#SECTION007114000000000000000">6.1.14 WWindow functions</A>
+<LI><A NAME="tex2html212"
+ HREF="node7.html#SECTION007115000000000000000">6.1.15 global functions</A>
+<LI><A NAME="tex2html213"
+ HREF="node7.html#SECTION007116000000000000000">6.1.16 gr functions</A>
+<LI><A NAME="tex2html214"
+ HREF="node7.html#SECTION007117000000000000000">6.1.17 string functions</A>
+<LI><A NAME="tex2html215"
+ HREF="node7.html#SECTION007118000000000000000">6.1.18 table functions</A>
</UL>
-<LI><A NAME="tex2html198"
+<LI><A NAME="tex2html216"
HREF="node7.html#SECTION00720000000000000000">6.2 Functions defined in mod_tiling</A>
<UL>
-<LI><A NAME="tex2html199"
+<LI><A NAME="tex2html217"
HREF="node7.html#SECTION00721000000000000000">6.2.1 WSplit functions</A>
-<LI><A NAME="tex2html200"
+<LI><A NAME="tex2html218"
HREF="node7.html#SECTION00722000000000000000">6.2.2 WSplitInner functions</A>
-<LI><A NAME="tex2html201"
+<LI><A NAME="tex2html219"
HREF="node7.html#SECTION00723000000000000000">6.2.3 WSplitRegion functions</A>
-<LI><A NAME="tex2html202"
+<LI><A NAME="tex2html220"
HREF="node7.html#SECTION00724000000000000000">6.2.4 WSplitSplit functions</A>
-<LI><A NAME="tex2html203"
+<LI><A NAME="tex2html221"
HREF="node7.html#SECTION00725000000000000000">6.2.5 WTiling functions</A>
</UL>
-<LI><A NAME="tex2html204"
+<LI><A NAME="tex2html222"
HREF="node7.html#SECTION00730000000000000000">6.3 Functions defined in mod_query</A>
<UL>
-<LI><A NAME="tex2html205"
+<LI><A NAME="tex2html223"
HREF="node7.html#SECTION00731000000000000000">6.3.1 WComplProxy functions</A>
-<LI><A NAME="tex2html206"
+<LI><A NAME="tex2html224"
HREF="node7.html#SECTION00732000000000000000">6.3.2 WEdln functions</A>
-<LI><A NAME="tex2html207"
+<LI><A NAME="tex2html225"
HREF="node7.html#SECTION00733000000000000000">6.3.3 WInput functions</A>
</UL>
-<LI><A NAME="tex2html208"
+<LI><A NAME="tex2html226"
HREF="node7.html#SECTION00740000000000000000">6.4 Functions defined in mod_menu</A>
<UL>
-<LI><A NAME="tex2html209"
+<LI><A NAME="tex2html227"
HREF="node7.html#SECTION00741000000000000000">6.4.1 WMenu functions</A>
</UL>
-<LI><A NAME="tex2html210"
+<LI><A NAME="tex2html228"
HREF="node7.html#SECTION00750000000000000000">6.5 Functions defined in mod_dock</A>
<UL>
-<LI><A NAME="tex2html211"
+<LI><A NAME="tex2html229"
HREF="node7.html#SECTION00751000000000000000">6.5.1 WDock functions</A>
</UL>
-<LI><A NAME="tex2html212"
+<LI><A NAME="tex2html230"
HREF="node7.html#SECTION00760000000000000000">6.6 Functions defined in mod_sp</A>
-<LI><A NAME="tex2html213"
+<LI><A NAME="tex2html231"
HREF="node7.html#SECTION00770000000000000000">6.7 Functions defined in mod_statusbar</A>
<UL>
-<LI><A NAME="tex2html214"
+<LI><A NAME="tex2html232"
HREF="node7.html#SECTION00771000000000000000">6.7.1 WStatusBar functions</A>
</UL>
-<LI><A NAME="tex2html215"
+<LI><A NAME="tex2html233"
HREF="node7.html#SECTION00780000000000000000">6.8 Functions defined in de</A>
-<LI><A NAME="tex2html216"
+<LI><A NAME="tex2html234"
HREF="node7.html#SECTION00790000000000000000">6.9 Hooks</A>
+<LI><A NAME="tex2html235"
+ HREF="node7.html#SECTION007100000000000000000">6.10 Miscellaneous</A>
+<UL>
+<LI><A NAME="tex2html236"
+ HREF="node7.html#SECTION007101000000000000000">6.10.1 Size policies</A>
+</UL>
</UL>
<BR>
-<LI><A NAME="tex2html217"
+<LI><A NAME="tex2html237"
HREF="node8.html">A. The GNU General Public License</A>
-<LI><A NAME="tex2html218"
+<LI><A NAME="tex2html238"
HREF="node9.html">B. Full class hierarchy visible to Lua-side</A>
-<LI><A NAME="tex2html219"
+<LI><A NAME="tex2html239"
HREF="node11.html">Index</A>
+<LI><A NAME="tex2html240"
+ HREF="node12.html">Bibliography</A>
</UL>
<!--End of Table of Contents-->
<P>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html434"
+<A NAME="tex2html466"
HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html428"
+<A NAME="tex2html460"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html422"
+<A NAME="tex2html454"
HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html430"
+<A NAME="tex2html462"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html432"
+<A NAME="tex2html464"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html435"
+<B> Next:</B> <A NAME="tex2html467"
HREF="node11.html">Index</A>
-<B> Up:</B> <A NAME="tex2html429"
+<B> Up:</B> <A NAME="tex2html461"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html423"
+<B> Previous:</B> <A NAME="tex2html455"
HREF="node9.html">B. Full class hierarchy</A>
- <B> <A NAME="tex2html431"
+ <B> <A NAME="tex2html463"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html433"
+ <B> <A NAME="tex2html465"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<BR><A HREF="node7.html#fn:ioncore.chdir_for"><TT>ioncore.chdir_for</TT></A>
<BR><A HREF="node7.html#fn:ioncore.clientwin_i"><TT>ioncore.clientwin_i</TT></A>
<BR><A HREF="node7.html#fn:ioncore.compile_cmd"><TT>ioncore.compile_cmd</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.create_timer"><TT>ioncore.create_timer</TT></A>
<BR><A HREF="node7.html#fn:ioncore.create_ws"><TT>ioncore.create_ws</TT></A>
<BR><A HREF="node7.html#fn:ioncore.current"><TT>ioncore.current</TT></A>
<BR><A HREF="node7.html#fn:ioncore.defbindings"><TT>ioncore.defbindings</TT></A>
<BR><A HREF="node7.html#fn:ioncore.defctxmenu"><TT>ioncore.defctxmenu</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.defer"><TT>ioncore.defer</TT></A>
<BR><A HREF="node7.html#fn:ioncore.deflayout"><TT>ioncore.deflayout</TT></A>
<BR><A HREF="node7.html#fn:ioncore.defmenu"><TT>ioncore.defmenu</TT></A>
<BR><A HREF="node7.html#fn:ioncore.defshortening"><TT>ioncore.defshortening</TT></A>
<BR><A HREF="node7.html#fn:ioncore.getbindings"><TT>ioncore.getbindings</TT></A>
<BR><A HREF="node7.html#fn:ioncore.getctxmenu"><TT>ioncore.getctxmenu</TT></A>
<BR><A HREF="node7.html#fn:ioncore.get_dir_for"><TT>ioncore.get_dir_for</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.get_hook"><TT>ioncore.get_hook</TT></A>
<BR><A HREF="node7.html#fn:ioncore.getlayout"><TT>ioncore.getlayout</TT></A>
<BR><A HREF="node7.html#fn:ioncore.getmenu"><TT>ioncore.getmenu</TT></A>
<BR><A HREF="node7.html#fn:ioncore.get_paths"><TT>ioncore.get_paths</TT></A>
<BR><A HREF="node7.html#fn:ioncore.lookup_clientwin"><TT>ioncore.lookup_clientwin</TT></A>
<BR><A HREF="node7.html#fn:ioncore.lookup_region"><TT>ioncore.lookup_region</TT></A>
<BR><A HREF="node7.html#fn:ioncore.lookup_script"><TT>ioncore.lookup_script</TT></A>
-<BR><A HREF="node7.html#fn:ioncore.match_winprop_name"><TT>ioncore.match_winprop_name</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.match_winprop_dflt"><TT>ioncore.match_winprop_dflt</TT></A>
<BR><A HREF="node7.html#fn:ioncore.mclick"><TT>ioncore.mclick</TT></A>
<BR><A HREF="node7.html#fn:ioncore.mdblclick"><TT>ioncore.mdblclick</TT></A>
<BR><A HREF="node7.html#fn:ioncore.mdrag"><TT>ioncore.mdrag</TT></A>
<BR><A HREF="node7.html#fn:ioncore.shutdown"><TT>ioncore.shutdown</TT></A>
<BR><A HREF="node7.html#fn:ioncore.snapshot"><TT>ioncore.snapshot</TT></A>
<BR><A HREF="node7.html#fn:ioncore.submap"><TT>ioncore.submap</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.submap_enter"><TT>ioncore.submap_enter</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.submap_wait"><TT>ioncore.submap_wait</TT></A>
<BR><A HREF="node7.html#fn:ioncore.submenu"><TT>ioncore.submenu</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.tabnum.clear"><TT>ioncore.tabnum.clear</TT></A>
+<BR><A HREF="node7.html#fn:ioncore.tabnum.show"><TT>ioncore.tabnum.show</TT></A>
<BR><A HREF="node7.html#fn:ioncore.tagged_attach"><TT>ioncore.tagged_attach</TT></A>
<BR><A HREF="node7.html#fn:ioncore.tagged_clear"><TT>ioncore.tagged_clear</TT></A>
<BR><A HREF="node7.html#fn:ioncore.tagged_first"><TT>ioncore.tagged_first</TT></A>
<BR><A HREF="node7.html#fn:mod_query.warn"><TT>mod_query.warn</TT></A>
<BR><A HREF="node7.html#fn:mod_sp.set_shown"><TT>mod_sp.set_shown</TT></A>
<BR><A HREF="node7.html#fn:mod_sp.set_shown_on"><TT>mod_sp.set_shown_on</TT></A>
+<BR><A HREF="node7.html#fn:mod_statusbar.create"><TT>mod_statusbar.create</TT></A>
+<BR><A HREF="node7.html#fn:mod_statusbar.inform"><TT>mod_statusbar.inform</TT></A>
+<BR><A HREF="node7.html#fn:mod_statusbar.launch_statusd"><TT>mod_statusbar.launch_statusd</TT></A>
<BR><A HREF="node7.html#fn:mod_statusbar.statusbars"><TT>mod_statusbar.statusbars</TT></A>
+<BR><A HREF="node7.html#fn:mod_statusbar.update"><TT>mod_statusbar.update</TT></A>
<BR><A HREF="node7.html#fn:mod_tiling.get"><TT>mod_tiling.get</TT></A>
<BR><A HREF="node7.html#fn:mod_tiling.mkbottom"><TT>mod_tiling.mkbottom</TT></A>
<BR><A HREF="node7.html#fn:mod_tiling.set"><TT>mod_tiling.set</TT></A>
<BR><A HREF="node7.html#fn:WFrame.mode"><TT>WFrame.mode</TT></A>
<BR><A HREF="node7.html#fn:WFrame.p_switch_tab"><TT>WFrame.p_switch_tab</TT></A>
<BR><A HREF="node7.html#fn:WFrame.p_tabdrag"><TT>WFrame.p_tabdrag</TT></A>
+<BR><A HREF="node7.html#fn:WFrame.set_grattr"><TT>WFrame.set_grattr</TT></A>
<BR><A HREF="node7.html#fn:WFrame.set_mode"><TT>WFrame.set_mode</TT></A>
-<BR><A HREF="node7.html#fn:WFrame.set_numbers"><TT>WFrame.set_numbers</TT></A>
<BR><A HREF="node7.html#fn:WFrame.set_shaded"><TT>WFrame.set_shaded</TT></A>
<BR><A HREF="node7.html#fn:WGroup.attach"><TT>WGroup.attach</TT></A>
<BR><A HREF="node7.html#fn:WGroup.attach_new"><TT>WGroup.attach_new</TT></A>
<BR><A HREF="node7.html#fn:WGroup.set_bottom"><TT>WGroup.set_bottom</TT></A>
<BR><A HREF="node7.html#fn:WGroup.set_fullscreen"><TT>WGroup.set_fullscreen</TT></A>
<BR><A HREF="node7.html#fn:WGroupWS.attach_framed"><TT>WGroupWS.attach_framed</TT></A>
+<BR><A HREF="node7.html#fn:WHook.add"><TT>WHook.add</TT></A>
+<BR><A HREF="node7.html#fn:WHook.listed"><TT>WHook.listed</TT></A>
+<BR><A HREF="node7.html#fn:WHook.remove"><TT>WHook.remove</TT></A>
<BR><A HREF="node7.html#fn:WInfoWin.set_text"><TT>WInfoWin.set_text</TT></A>
<BR><A HREF="node7.html#fn:WInput.cancel"><TT>WInput.cancel</TT></A>
<BR><A HREF="node7.html#fn:WInput.scrolldown"><TT>WInput.scrolldown</TT></A>
<BR><A HREF="node7.html#fn:WSplitSplit.tl"><TT>WSplitSplit.tl</TT></A>
<BR><A HREF="node7.html#fn:WSplit.transpose"><TT>WSplit.transpose</TT></A>
<BR><A HREF="node7.html#fn:WStatusBar.get_template_table"><TT>WStatusBar.get_template_table</TT></A>
-<BR><A HREF="node7.html#fn:WStatusBar.is_systray_extl"><TT>WStatusBar.is_systray_extl</TT></A>
+<BR><A HREF="node7.html#fn:WStatusBar.is_systray"><TT>WStatusBar.is_systray</TT></A>
<BR><A HREF="node7.html#fn:WStatusBar.set_systray"><TT>WStatusBar.set_systray</TT></A>
<BR><A HREF="node7.html#fn:WStatusBar.set_template"><TT>WStatusBar.set_template</TT></A>
<BR><A HREF="node7.html#fn:WStatusBar.set_template_table"><TT>WStatusBar.set_template_table</TT></A>
<BR><A HREF="node7.html#fn:WTiling.split_tree"><TT>WTiling.split_tree</TT></A>
<BR><A HREF="node7.html#fn:WTiling.transpose_at"><TT>WTiling.transpose_at</TT></A>
<BR><A HREF="node7.html#fn:WTiling.unsplit_at"><TT>WTiling.unsplit_at</TT></A>
+<BR><A HREF="node7.html#fn:WTimer.is_set"><TT>WTimer.is_set</TT></A>
+<BR><A HREF="node7.html#fn:WTimer.reset"><TT>WTimer.reset</TT></A>
+<BR><A HREF="node7.html#fn:WTimer.set"><TT>WTimer.set</TT></A>
<BR><A HREF="node7.html#fn:WWindow.p_move"><TT>WWindow.p_move</TT></A>
<BR><A HREF="node7.html#fn:WWindow.p_resize"><TT>WWindow.p_resize</TT></A>
<BR><A HREF="node7.html#fn:WWindow.xid"><TT>WWindow.xid</TT></A>
<BR>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html434"
+<A NAME="tex2html466"
HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html428"
+<A NAME="tex2html460"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html422"
+<A NAME="tex2html454"
HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html430"
+<A NAME="tex2html462"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html432"
+<A NAME="tex2html464"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html435"
+<B> Next:</B> <A NAME="tex2html467"
HREF="node11.html">Index</A>
-<B> Up:</B> <A NAME="tex2html429"
+<B> Up:</B> <A NAME="tex2html461"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html423"
+<B> Previous:</B> <A NAME="tex2html455"
HREF="node9.html">B. Full class hierarchy</A>
- <B> <A NAME="tex2html431"
+ <B> <A NAME="tex2html463"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html433"
+ <B> <A NAME="tex2html465"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html446"
+<A NAME="tex2html478"
HREF="node12.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html442"
+<A NAME="tex2html474"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html436"
+<A NAME="tex2html468"
HREF="node10.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html444"
+<A NAME="tex2html476"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html447"
- HREF="node12.html">About this document ...</A>
-<B> Up:</B> <A NAME="tex2html443"
+<B> Next:</B> <A NAME="tex2html479"
+ HREF="node12.html">Bibliography</A>
+<B> Up:</B> <A NAME="tex2html475"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html437"
+<B> Previous:</B> <A NAME="tex2html469"
HREF="node10.html">List of functions</A>
- <B> <A NAME="tex2html445"
+ <B> <A NAME="tex2html477"
HREF="node1.html">Contents</A></B>
<BR>
<BR></DIV>
<H2><A NAME="SECTION001100000000000000000">
Index</A>
</H2><HR><DL>
-<DD><STRONG><TT>aboutmsg</TT></STRONG>
- : <A HREF="node7.html#4407"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>acrobatic</TT></STRONG>
- : <A HREF="node4.html#1438"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>activity_first</TT></STRONG>
- : <A HREF="node7.html#4409"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>activity_i</TT></STRONG>
- : <A HREF="node7.html#4411"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1451"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Alt</SPAN></STRONG>
- : <A HREF="node4.html#878"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#883"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">AnyModifier</SPAN></STRONG>
- : <A HREF="node4.html#876"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>append</TT></STRONG>
- : <A HREF="node7.html#4712"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
+ : <A HREF="node4.html#881"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>resizeinc</TT></STRONG>
- : <A HREF="node4.html#1453"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node4.html#1454"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>attach</TT></STRONG>
- : <A HREF="node7.html#4564"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
- | <A HREF="node7.html#4586"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
- | <A HREF="node7.html#9346"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>attach_framed</TT></STRONG>
- : <A HREF="node7.html#4580"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>attach_new</TT></STRONG>
- : <A HREF="node7.html#4566"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
- | <A HREF="node7.html#4588"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>back</TT></STRONG>
- : <A HREF="node7.html#8235"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>backspace</TT></STRONG>
- : <A HREF="node7.html#8237"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>bdoc</TT></STRONG>
- : <A HREF="node7.html#4365"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>begin_kbresize</TT></STRONG>
- : <A HREF="node7.html#4636"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>bkill_word</TT></STRONG>
- : <A HREF="node7.html#8239"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>bol</TT></STRONG>
- : <A HREF="node7.html#8241"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>bottom</TT></STRONG>
- : <A HREF="node7.html#4568"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>br</TT></STRONG>
- : <A HREF="node7.html#7135"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>bskip_word</TT></STRONG>
- : <A HREF="node7.html#8243"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node4.html#1466"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ | <A HREF="node4.html#1467"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Button-n</SPAN></STRONG>
- : <A HREF="node4.html#882"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-<DD><STRONG><TT>cancel</TT></STRONG>
- : <A HREF="node7.html#4623"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
- | <A HREF="node7.html#8302"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
- | <A HREF="node7.html#9134"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>chdir_for</TT></STRONG>
- : <A HREF="node7.html#4367"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#887"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
<DD><STRONG><TT>class</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1460"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1473"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
-<DD><STRONG><TT>clear_mark</TT></STRONG>
- : <A HREF="node7.html#8245"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
<DD><STRONG><TT>clientwin_do_manage_alt</TT></STRONG>
- : <A HREF="node7.html#9877"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>clientwin_i</TT></STRONG>
- : <A HREF="node7.html#4413"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node7.html#8232"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>clientwin_mapped_hook</TT></STRONG>
- : <A HREF="node7.html#9878"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8233"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>clientwin_property_change_hook</TT></STRONG>
- : <A HREF="node7.html#9879"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8234"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>clientwin_unmapped_hook</TT></STRONG>
- : <A HREF="node7.html#9880"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>compile_cmd</TT></STRONG>
- : <A HREF="node7.html#4369"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>complete</TT></STRONG>
- : <A HREF="node7.html#8247"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>contents</TT></STRONG>
- : <A HREF="node7.html#8249"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>context</TT></STRONG>
- : <A HREF="node7.html#8251"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node7.html#8235"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Control</SPAN></STRONG>
- : <A HREF="node4.html#874"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>copy</TT></STRONG>
- : <A HREF="node7.html#4714"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
- | <A HREF="node7.html#8253"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>create_ws</TT></STRONG>
- : <A HREF="node7.html#4371"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>current</TT></STRONG>
- : <A HREF="node7.html#4415"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4638"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
- | <A HREF="node7.html#7129"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>current_scr</TT></STRONG>
- : <A HREF="node7.html#4685"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN></A>
-<DD><STRONG><TT>cut</TT></STRONG>
- : <A HREF="node7.html#8255"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>de</TT></STRONG><DL>
-<DD><STRONG><TT>defstyle</TT></STRONG> : <A HREF="node7.html#9672"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>defstyle_rootwin</TT></STRONG> : <A HREF="node7.html#9674"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>reset</TT></STRONG> : <A HREF="node7.html#9676"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>substyle</TT></STRONG> : <A HREF="node7.html#9678"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-</DL>
-<DD><STRONG><TT>dec_index</TT></STRONG>
- : <A HREF="node7.html#4590"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>defbindings</TT></STRONG>
- : <A HREF="node7.html#4373"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defcmd</TT></STRONG>
- : <A HREF="node7.html#8172"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>defctxmenu</TT></STRONG>
- : <A HREF="node7.html#4375"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>deflayout</TT></STRONG>
- : <A HREF="node7.html#4377"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#879"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>defmenu</TT></STRONG>
- : <A HREF="node4.html#1185"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4379"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defshortening</TT></STRONG>
- : <A HREF="node7.html#4417"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defstyle</TT></STRONG>
- : <A HREF="node7.html#9673"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>defstyle_rootwin</TT></STRONG>
- : <A HREF="node7.html#9675"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>defwinprop</TT></STRONG>
- : <A HREF="node7.html#4381"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>delete</TT></STRONG>
- : <A HREF="node7.html#8257"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>detach</TT></STRONG>
- : <A HREF="node7.html#4419"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>dir</TT></STRONG>
- : <A HREF="node7.html#7137"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
+ : <A HREF="node4.html#1198"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>drawing engine</STRONG>
- : <A HREF="node5.html#1709"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>eol</TT></STRONG>
- : <A HREF="node7.html#8259"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node5.html#1888"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ETCDIR</TT></STRONG>
- : <A HREF="node4.html#591"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>exec</TT></STRONG>
- : <A HREF="node7.html#4421"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>exec_on</TT></STRONG>
- : <A HREF="node7.html#4383"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>export</TT></STRONG>
- : <A HREF="node7.html#4699"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN></A>
-<DD><STRONG><TT>farthest</TT></STRONG>
- : <A HREF="node7.html#7148"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>find_manager</TT></STRONG>
- : <A HREF="node7.html#4393"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>find_screen_id</TT></STRONG>
- : <A HREF="node7.html#4423"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>finish</TT></STRONG>
- : <A HREF="node7.html#4625"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
- | <A HREF="node7.html#8261"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
- | <A HREF="node7.html#9136"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>flip</TT></STRONG>
- : <A HREF="node7.html#7139"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>flip_at</TT></STRONG>
- : <A HREF="node7.html#7144"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#583"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>float</TT></STRONG>
- : <A HREF="node4.html#1439"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>focushistory_i</TT></STRONG>
- : <A HREF="node7.html#4425"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>forward</TT></STRONG>
- : <A HREF="node7.html#8263"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node4.html#1452"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>frame_managed_changed_hook</TT></STRONG>
- : <A HREF="node7.html#9881"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8236"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>fullscreen</TT></STRONG>
- : <A HREF="node4.html#1440"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>geom</TT></STRONG>
- : <A HREF="node7.html#4627"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
- | <A HREF="node7.html#4640"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
- | <A HREF="node7.html#7120"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get</TT></STRONG>
- : <A HREF="node7.html#4427"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#7111"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
- | <A HREF="node7.html#8176"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
- | <A HREF="node7.html#9127"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
- | <A HREF="node7.html#9348"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_configuration</TT></STRONG>
- : <A HREF="node7.html#4642"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>get_dir_for</TT></STRONG>
- : <A HREF="node7.html#4395"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_ident</TT></STRONG>
- : <A HREF="node7.html#4534"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_index</TT></STRONG>
- : <A HREF="node7.html#4592"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>get_paths</TT></STRONG>
- : <A HREF="node7.html#4429"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_savefile</TT></STRONG>
- : <A HREF="node7.html#4387"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_stdisp</TT></STRONG>
- : <A HREF="node7.html#4594"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>get_template_table</TT></STRONG>
- : <A HREF="node7.html#9552"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getbindings</TT></STRONG>
- : <A HREF="node7.html#4397"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getctxmenu</TT></STRONG>
- : <A HREF="node7.html#4399"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getlayout</TT></STRONG>
- : <A HREF="node7.html#4401"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getmenu</TT></STRONG>
- : <A HREF="node7.html#4403"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getwinprop</TT></STRONG>
- : <A HREF="node7.html#4405"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto</TT></STRONG>
- : <A HREF="node7.html#4644"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>goto_activity</TT></STRONG>
- : <A HREF="node7.html#4431"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_first</TT></STRONG>
- : <A HREF="node7.html#4433"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_next</TT></STRONG>
- : <A HREF="node7.html#4435"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_next_screen</TT></STRONG>
- : <A HREF="node7.html#4437"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_nth_screen</TT></STRONG>
- : <A HREF="node7.html#4439"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_prev_screen</TT></STRONG>
- : <A HREF="node7.html#4441"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_previous</TT></STRONG>
- : <A HREF="node7.html#4443"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>gr</TT></STRONG><DL>
-<DD><STRONG><TT>read_config</TT></STRONG> : <A HREF="node7.html#4701"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN></A>
-<DD><STRONG><TT>refresh</TT></STRONG> : <A HREF="node7.html#4703"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN></A>
-<DD><STRONG><TT>select_engine</TT></STRONG> : <A HREF="node7.html#4705"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN></A>
-</DL>
-<DD><STRONG><TT>grabmenu</TT></STRONG>
- : <A HREF="node7.html#9123"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>groupleader_of</TT></STRONG>
- : <A HREF="node7.html#4646"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>history_clear</TT></STRONG>
- : <A HREF="node7.html#8178"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_get</TT></STRONG>
- : <A HREF="node7.html#8180"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_next</TT></STRONG>
- : <A HREF="node7.html#8265"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>history_prev</TT></STRONG>
- : <A HREF="node7.html#8267"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>history_push</TT></STRONG>
- : <A HREF="node7.html#8182"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_search</TT></STRONG>
- : <A HREF="node7.html#8184"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_table</TT></STRONG>
- : <A HREF="node7.html#8186"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>icat</TT></STRONG>
- : <A HREF="node7.html#4716"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-<DD><STRONG><TT>id</TT></STRONG>
- : <A HREF="node7.html#4688"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN></A>
+ : <A HREF="node4.html#1453"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>ignore_resizeinc</TT></STRONG>
- : <A HREF="node4.html#1457"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node4.html#1458"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1470"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ | <A HREF="node4.html#1471"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ignore_cfgrq</TT></STRONG>
- : <A HREF="node4.html#1441"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1454"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>ignore_max_size</TT></STRONG>
- : <A HREF="node4.html#1455"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1468"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ignore_min_size</TT></STRONG>
- : <A HREF="node4.html#1456"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1469"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ignore_net_active_window</TT></STRONG>
- : <A HREF="node4.html#1442"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>inc_index</TT></STRONG>
- : <A HREF="node7.html#4596"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>insstr</TT></STRONG>
- : <A HREF="node7.html#8269"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node4.html#1455"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>instance</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1462"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-</DL>
-<DD><STRONG><TT>ioncore</TT></STRONG><DL>
-<DD><STRONG><TT>aboutmsg</TT></STRONG> : <A HREF="node7.html#4406"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>activity_first</TT></STRONG> : <A HREF="node7.html#4408"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>activity_i</TT></STRONG> : <A HREF="node7.html#4410"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>bdoc</TT></STRONG> : <A HREF="node7.html#4364"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>chdir_for</TT></STRONG> : <A HREF="node7.html#4366"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>clientwin_i</TT></STRONG> : <A HREF="node7.html#4412"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>compile_cmd</TT></STRONG> : <A HREF="node7.html#4368"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>create_ws</TT></STRONG> : <A HREF="node7.html#4370"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>current</TT></STRONG> : <A HREF="node7.html#4414"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defbindings</TT></STRONG> : <A HREF="node7.html#4372"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defctxmenu</TT></STRONG> : <A HREF="node7.html#4374"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>deflayout</TT></STRONG> : <A HREF="node7.html#4376"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defmenu</TT></STRONG> : <A HREF="node7.html#4378"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defshortening</TT></STRONG> : <A HREF="node7.html#4416"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defwinprop</TT></STRONG> : <A HREF="node7.html#4380"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>detach</TT></STRONG> : <A HREF="node7.html#4418"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>exec</TT></STRONG> : <A HREF="node7.html#4420"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>exec_on</TT></STRONG> : <A HREF="node7.html#4382"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>find_manager</TT></STRONG> : <A HREF="node7.html#4392"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>find_screen_id</TT></STRONG> : <A HREF="node7.html#4422"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>focushistory_i</TT></STRONG> : <A HREF="node7.html#4424"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get</TT></STRONG> : <A HREF="node7.html#4426"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_dir_for</TT></STRONG> : <A HREF="node7.html#4394"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_paths</TT></STRONG> : <A HREF="node7.html#4428"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get_savefile</TT></STRONG> : <A HREF="node7.html#4386"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getbindings</TT></STRONG> : <A HREF="node7.html#4396"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getctxmenu</TT></STRONG> : <A HREF="node7.html#4398"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getlayout</TT></STRONG> : <A HREF="node7.html#4400"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getmenu</TT></STRONG> : <A HREF="node7.html#4402"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>getwinprop</TT></STRONG> : <A HREF="node7.html#4404"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_activity</TT></STRONG> : <A HREF="node7.html#4430"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_first</TT></STRONG> : <A HREF="node7.html#4432"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_next</TT></STRONG> : <A HREF="node7.html#4434"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_next_screen</TT></STRONG> : <A HREF="node7.html#4436"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_nth_screen</TT></STRONG> : <A HREF="node7.html#4438"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_prev_screen</TT></STRONG> : <A HREF="node7.html#4440"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>goto_previous</TT></STRONG> : <A HREF="node7.html#4442"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>is_i18n</TT></STRONG> : <A HREF="node7.html#4444"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>kpress</TT></STRONG> : <A HREF="node7.html#4508"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>kpress_wait</TT></STRONG> : <A HREF="node7.html#4510"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>load_module</TT></STRONG> : <A HREF="node7.html#4446"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>lookup_clientwin</TT></STRONG> : <A HREF="node7.html#4448"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>lookup_region</TT></STRONG> : <A HREF="node7.html#4450"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>lookup_script</TT></STRONG> : <A HREF="node7.html#4388"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>match_winprop_name</TT></STRONG> : <A HREF="node7.html#4512"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mclick</TT></STRONG> : <A HREF="node7.html#4514"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mdblclick</TT></STRONG> : <A HREF="node7.html#4516"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mdrag</TT></STRONG> : <A HREF="node7.html#4518"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>menuentry</TT></STRONG> : <A HREF="node7.html#4520"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mpress</TT></STRONG> : <A HREF="node7.html#4522"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>navi_first</TT></STRONG> : <A HREF="node7.html#4452"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>navi_next</TT></STRONG> : <A HREF="node7.html#4454"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>popen_bgread</TT></STRONG> : <A HREF="node7.html#4456"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>progname</TT></STRONG> : <A HREF="node7.html#4458"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>read_savefile</TT></STRONG> : <A HREF="node7.html#4384"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>refresh_stylelist</TT></STRONG> : <A HREF="node7.html#4524"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>region_i</TT></STRONG> : <A HREF="node7.html#4460"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>request_selection</TT></STRONG> : <A HREF="node7.html#4462"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>resign</TT></STRONG> : <A HREF="node7.html#4464"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>restart</TT></STRONG> : <A HREF="node7.html#4466"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>restart_other</TT></STRONG> : <A HREF="node7.html#4468"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set</TT></STRONG> : <A HREF="node7.html#4470"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_paths</TT></STRONG> : <A HREF="node7.html#4472"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_selection</TT></STRONG> : <A HREF="node7.html#4474"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>shutdown</TT></STRONG> : <A HREF="node7.html#4476"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>snapshot</TT></STRONG> : <A HREF="node7.html#4478"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>submap</TT></STRONG> : <A HREF="node7.html#4526"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>submenu</TT></STRONG> : <A HREF="node7.html#4528"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_attach</TT></STRONG> : <A HREF="node7.html#4530"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_clear</TT></STRONG> : <A HREF="node7.html#4480"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_first</TT></STRONG> : <A HREF="node7.html#4482"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_i</TT></STRONG> : <A HREF="node7.html#4484"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>TR</TT></STRONG> : <A HREF="node7.html#4362"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>unsqueeze</TT></STRONG> : <A HREF="node7.html#4486"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>version</TT></STRONG> : <A HREF="node7.html#4488"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>warn</TT></STRONG> : <A HREF="node7.html#4490"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>warn_traced</TT></STRONG> : <A HREF="node7.html#4492"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>write_savefile</TT></STRONG> : <A HREF="node7.html#4390"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_change_property</TT></STRONG> : <A HREF="node7.html#4494"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_delete_property</TT></STRONG> : <A HREF="node7.html#4496"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_get_atom_name</TT></STRONG> : <A HREF="node7.html#4498"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_get_text_property</TT></STRONG> : <A HREF="node7.html#4500"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_get_window_property</TT></STRONG> : <A HREF="node7.html#4502"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_intern_atom</TT></STRONG> : <A HREF="node7.html#4504"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_set_text_property</TT></STRONG> : <A HREF="node7.html#4506"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1475"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG><TT>ioncore_deinit_hook</TT></STRONG>
- : <A HREF="node7.html#9883"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8238"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_post_layout_setup_hook</TT></STRONG>
- : <A HREF="node7.html#9884"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8239"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_sigchld_hook</TT></STRONG>
- : <A HREF="node7.html#9882"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8237"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_snapshot_hook</TT></STRONG>
- : <A HREF="node7.html#9885"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_active</TT></STRONG>
- : <A HREF="node7.html#4648"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_activity</TT></STRONG>
- : <A HREF="node7.html#4650"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_fullscreen</TT></STRONG>
- : <A HREF="node7.html#4570"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>is_hidden</TT></STRONG>
- : <A HREF="node7.html#4598"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>is_histcompl</TT></STRONG>
- : <A HREF="node7.html#8271"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>is_i18n</TT></STRONG>
- : <A HREF="node7.html#4445"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>is_mapped</TT></STRONG>
- : <A HREF="node7.html#4652"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_shaded</TT></STRONG>
- : <A HREF="node7.html#4545"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>is_systray_extl</TT></STRONG>
- : <A HREF="node7.html#9554"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>is_tagged</TT></STRONG>
- : <A HREF="node7.html#4654"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>join</TT></STRONG>
- : <A HREF="node7.html#4718"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
+ : <A HREF="node7.html#8240"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+<DD><STRONG><TT>ioncore_submap_ungrab_hook</TT></STRONG>
+ : <A HREF="node7.html#8241"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+<DD><STRONG><TT>is_dockapp</TT></STRONG><DL>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1478"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+</DL>
+<DD><STRONG><TT>is_transient</TT></STRONG><DL>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1477"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+</DL>
<DD><STRONG><TT>jumpto</TT></STRONG>
- : <A HREF="node4.html#1443"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1456"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textit">keysymdef.h</SPAN></STRONG>
- : <A HREF="node4.html#872"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>kill</TT></STRONG>
- : <A HREF="node7.html#4536"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>kill_line</TT></STRONG>
- : <A HREF="node7.html#8273"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_to_bol</TT></STRONG>
- : <A HREF="node7.html#8275"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_to_eol</TT></STRONG>
- : <A HREF="node7.html#8277"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_word</TT></STRONG>
- : <A HREF="node7.html#8279"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kpress</TT></STRONG>
- : <A HREF="node7.html#4509"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>kpress_wait</TT></STRONG>
- : <A HREF="node7.html#4511"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>load_module</TT></STRONG>
- : <A HREF="node7.html#4447"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><SPAN CLASS="textbf">Lock</SPAN></STRONG>
: <A HREF="node4.html#877"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>lookup_clientwin</TT></STRONG>
- : <A HREF="node7.html#4449"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>lookup_region</TT></STRONG>
- : <A HREF="node7.html#4451"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>lookup_script</TT></STRONG>
- : <A HREF="node7.html#4389"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>managed_i</TT></STRONG>
- : <A HREF="node7.html#4572"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
- | <A HREF="node7.html#4600"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
- | <A HREF="node7.html#7150"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>manager</TT></STRONG>
- : <A HREF="node3.html#390"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4656"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>map</TT></STRONG>
- : <A HREF="node7.html#4720"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-<DD><STRONG><TT>mark</TT></STRONG>
- : <A HREF="node7.html#8281"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>match_winprop_name</TT></STRONG>
- : <A HREF="node7.html#4513"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG><SPAN CLASS="textbf">Lock</SPAN></STRONG>
+ : <A HREF="node4.html#882"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+<DD><STRONG>manager</STRONG>
+ : <A HREF="node3.html#382"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>max_size</TT></STRONG>
- : <A HREF="node4.html#1451"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>maximize_horiz</TT></STRONG>
- : <A HREF="node7.html#4547"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>maximize_vert</TT></STRONG>
- : <A HREF="node7.html#4549"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>mclick</TT></STRONG>
- : <A HREF="node7.html#4515"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mdblclick</TT></STRONG>
- : <A HREF="node7.html#4517"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mdrag</TT></STRONG>
- : <A HREF="node7.html#4519"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>menu</TT></STRONG>
- : <A HREF="node7.html#9125"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
+ : <A HREF="node4.html#1464"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>menuentry</TT></STRONG>
- : <A HREF="node4.html#1186"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4521"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1199"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>menus</STRONG>
- : <A HREF="node4.html#1128"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>message</TT></STRONG>
- : <A HREF="node7.html#8174"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#1144"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>min_size</TT></STRONG>
- : <A HREF="node4.html#1452"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mkbottom</TT></STRONG>
- : <A HREF="node7.html#7113"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>mod_dock</TT></STRONG><DL>
-<DD><STRONG><TT>set_floating_shown_on</TT></STRONG> : <A HREF="node7.html#9342"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-</DL>
-<DD><STRONG><TT>mod_menu</TT></STRONG><DL>
-<DD><STRONG><TT>get</TT></STRONG> : <A HREF="node7.html#9126"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>grabmenu</TT></STRONG> : <A HREF="node7.html#9122"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>menu</TT></STRONG> : <A HREF="node7.html#9124"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>pmenu</TT></STRONG> : <A HREF="node7.html#9130"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>set</TT></STRONG> : <A HREF="node7.html#9128"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-</DL>
-<DD><STRONG><TT>mod_query</TT></STRONG><DL>
-<DD><STRONG><TT>defcmd</TT></STRONG> : <A HREF="node7.html#8171"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>get</TT></STRONG> : <A HREF="node7.html#8175"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_clear</TT></STRONG> : <A HREF="node7.html#8177"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_get</TT></STRONG> : <A HREF="node7.html#8179"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_push</TT></STRONG> : <A HREF="node7.html#8181"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_search</TT></STRONG> : <A HREF="node7.html#8183"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>history_table</TT></STRONG> : <A HREF="node7.html#8185"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>message</TT></STRONG> : <A HREF="node7.html#8173"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>popen_completions</TT></STRONG> : <A HREF="node7.html#8189"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query</TT></STRONG> : <A HREF="node7.html#8191"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_attachclient</TT></STRONG> : <A HREF="node7.html#8193"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_editfile</TT></STRONG> : <A HREF="node7.html#8195"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_exec</TT></STRONG> : <A HREF="node7.html#8197"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_gotoclient</TT></STRONG> : <A HREF="node7.html#8199"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_lua</TT></STRONG> : <A HREF="node7.html#8201"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_man</TT></STRONG> : <A HREF="node7.html#8203"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_menu</TT></STRONG> : <A HREF="node7.html#8205"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_renameframe</TT></STRONG> : <A HREF="node7.html#8207"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_renameworkspace</TT></STRONG> : <A HREF="node7.html#8209"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_restart</TT></STRONG> : <A HREF="node7.html#8211"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_runfile</TT></STRONG> : <A HREF="node7.html#8213"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_shutdown</TT></STRONG> : <A HREF="node7.html#8215"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_ssh</TT></STRONG> : <A HREF="node7.html#8217"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_workspace</TT></STRONG> : <A HREF="node7.html#8220"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_yesno</TT></STRONG> : <A HREF="node7.html#8222"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>set</TT></STRONG> : <A HREF="node7.html#8187"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>show_about_ion</TT></STRONG> : <A HREF="node7.html#8224"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>show_tree</TT></STRONG> : <A HREF="node7.html#8226"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>warn</TT></STRONG> : <A HREF="node7.html#8228"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-</DL>
-<DD><STRONG><TT>mod_sp</TT></STRONG><DL>
-<DD><STRONG><TT>set_shown</TT></STRONG> : <A HREF="node7.html#9451"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-<DD><STRONG><TT>set_shown_on</TT></STRONG> : <A HREF="node7.html#9453"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-</DL>
-<DD><STRONG><TT>mod_statusbar</TT></STRONG><DL>
-<DD><STRONG><TT>statusbars</TT></STRONG> : <A HREF="node7.html#9548"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-</DL>
-<DD><STRONG><TT>mod_tiling</TT></STRONG><DL>
-<DD><STRONG><TT>get</TT></STRONG> : <A HREF="node7.html#7110"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>mkbottom</TT></STRONG> : <A HREF="node7.html#7112"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set</TT></STRONG> : <A HREF="node7.html#7114"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>untile</TT></STRONG> : <A HREF="node7.html#7116"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-</DL>
-<DD><STRONG><TT>mode</TT></STRONG>
- : <A HREF="node7.html#4551"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node4.html#1465"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">ModN</SPAN></STRONG>
- : <A HREF="node4.html#875"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>move</TT></STRONG>
- : <A HREF="node7.html#4629"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>mpress</TT></STRONG>
- : <A HREF="node7.html#4523"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>mx_count</TT></STRONG>
- : <A HREF="node7.html#4602"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_current</TT></STRONG>
- : <A HREF="node7.html#4604"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_i</TT></STRONG>
- : <A HREF="node7.html#4606"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_nth</TT></STRONG>
- : <A HREF="node7.html#4608"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>name</TT></STRONG>
- : <A HREF="node7.html#4658"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>navi_first</TT></STRONG>
- : <A HREF="node7.html#4453"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>navi_next</TT></STRONG>
- : <A HREF="node7.html#4455"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#880"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+<DD><STRONG><TT>name</TT></STRONG><DL>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1476"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+</DL>
<DD><STRONG><TT>new_group</TT></STRONG>
- : <A HREF="node4.html#1444"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>next_completion</TT></STRONG>
- : <A HREF="node7.html#8283"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>nextto</TT></STRONG>
- : <A HREF="node7.html#7152"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>node_of</TT></STRONG>
- : <A HREF="node7.html#7154"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>nudge</TT></STRONG>
- : <A HREF="node7.html#4538"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1457"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">NumLock</SPAN></STRONG>
- : <A HREF="node4.html#880"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#885"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>Obj</STRONG>
- : <A HREF="node3.html#418"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node3.html#410"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>oneshot</TT></STRONG>
- : <A HREF="node4.html#1445"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>p_move</TT></STRONG>
- : <A HREF="node7.html#4693"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN></A>
-<DD><STRONG><TT>p_resize</TT></STRONG>
- : <A HREF="node7.html#4695"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN></A>
-<DD><STRONG><TT>p_switch_tab</TT></STRONG>
- : <A HREF="node7.html#4553"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>p_tabdrag</TT></STRONG>
- : <A HREF="node7.html#4555"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>parent</TT></STRONG>
- : <A HREF="node3.html#375"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4660"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
- | <A HREF="node7.html#7122"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>paste</TT></STRONG>
- : <A HREF="node7.html#8285"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>pmenu</TT></STRONG>
- : <A HREF="node7.html#9131"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>point</TT></STRONG>
- : <A HREF="node7.html#8287"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>popen_bgread</TT></STRONG>
- : <A HREF="node7.html#4457"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>popen_completions</TT></STRONG>
- : <A HREF="node7.html#8190"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#1458"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+<DD><STRONG>parent</STRONG>
+ : <A HREF="node3.html#367"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>PREFIX</TT></STRONG>
- : <A HREF="node4.html#590"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>prev_completion</TT></STRONG>
- : <A HREF="node7.html#8289"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>progname</TT></STRONG>
- : <A HREF="node7.html#4459"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>query</TT></STRONG>
- : <A HREF="node7.html#8192"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_attachclient</TT></STRONG>
- : <A HREF="node7.html#8194"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_editfile</TT></STRONG>
- : <A HREF="node7.html#8196"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_exec</TT></STRONG>
- : <A HREF="node7.html#8198"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_gotoclient</TT></STRONG>
- : <A HREF="node7.html#8200"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_lua</TT></STRONG>
- : <A HREF="node7.html#8202"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_man</TT></STRONG>
- : <A HREF="node7.html#8204"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_menu</TT></STRONG>
- : <A HREF="node7.html#8206"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_renameframe</TT></STRONG>
- : <A HREF="node7.html#8208"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_renameworkspace</TT></STRONG>
- : <A HREF="node7.html#8210"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_restart</TT></STRONG>
- : <A HREF="node7.html#8212"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_runfile</TT></STRONG>
- : <A HREF="node7.html#8214"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_shutdown</TT></STRONG>
- : <A HREF="node7.html#8216"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_ssh</TT></STRONG>
- : <A HREF="node7.html#8218"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_workspace</TT></STRONG>
- : <A HREF="node7.html#8221"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>query_yesno</TT></STRONG>
- : <A HREF="node7.html#8223"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>quote_next</TT></STRONG>
- : <A HREF="node7.html#4540"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>read_config</TT></STRONG>
- : <A HREF="node7.html#4702"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN></A>
-<DD><STRONG><TT>read_savefile</TT></STRONG>
- : <A HREF="node7.html#4385"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>refresh</TT></STRONG>
- : <A HREF="node7.html#4704"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN></A>
-<DD><STRONG><TT>refresh_stylelist</TT></STRONG>
- : <A HREF="node7.html#4525"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>reg</TT></STRONG>
- : <A HREF="node7.html#7132"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#582"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>region_do_warp_alt</TT></STRONG>
- : <A HREF="node7.html#9887"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>region_i</TT></STRONG>
- : <A HREF="node7.html#4461"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node7.html#8243"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>region_notify_hook</TT></STRONG>
- : <A HREF="node7.html#9889"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>request_selection</TT></STRONG>
- : <A HREF="node7.html#4463"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>reset</TT></STRONG>
- : <A HREF="node7.html#9677"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>resign</TT></STRONG>
- : <A HREF="node7.html#4465"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>resize</TT></STRONG>
- : <A HREF="node7.html#4631"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
- | <A HREF="node7.html#9350"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>restart</TT></STRONG>
- : <A HREF="node7.html#4467"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>restart_other</TT></STRONG>
- : <A HREF="node7.html#4469"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node7.html#8245"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>role</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1461"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1474"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG>root window</STRONG>
- : <A HREF="node3.html#336"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>rootwin_of</TT></STRONG>
- : <A HREF="node7.html#4662"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqclose</TT></STRONG>
- : <A HREF="node7.html#4664"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqclose_propagate</TT></STRONG>
- : <A HREF="node7.html#4666"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqgeom</TT></STRONG>
- : <A HREF="node7.html#4633"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
- | <A HREF="node7.html#4668"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
- | <A HREF="node7.html#7124"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>rqorder</TT></STRONG>
- : <A HREF="node7.html#4670"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node3.html#331"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>screen</STRONG><DL>
-<DD><STRONG>physical</STRONG> : <A HREF="node3.html#338"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG>X</STRONG> : <A HREF="node3.html#337"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>physical</STRONG> : <A HREF="node3.html#334"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>X</STRONG> : <A HREF="node3.html#332"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
</DL>
<DD><STRONG><TT>screen_managed_changed_hook</TT></STRONG>
- : <A HREF="node7.html#9888"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>screen_of</TT></STRONG>
- : <A HREF="node7.html#4672"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>scrolldown</TT></STRONG>
- : <A HREF="node7.html#8304"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node7.html#8244"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">ScrollLock</SPAN></STRONG>
- : <A HREF="node4.html#881"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>scrollup</TT></STRONG>
- : <A HREF="node7.html#8306"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>select_engine</TT></STRONG>
- : <A HREF="node7.html#4706"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN></A>
-<DD><STRONG><TT>select_next</TT></STRONG>
- : <A HREF="node7.html#9138"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>select_nth</TT></STRONG>
- : <A HREF="node7.html#9140"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>select_prev</TT></STRONG>
- : <A HREF="node7.html#9142"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set</TT></STRONG>
- : <A HREF="node7.html#4471"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#7115"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
- | <A HREF="node7.html#8188"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
- | <A HREF="node7.html#9129"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
- | <A HREF="node7.html#9352"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_activity</TT></STRONG>
- : <A HREF="node7.html#4674"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_bottom</TT></STRONG>
- : <A HREF="node7.html#4574"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>set_completions</TT></STRONG>
- : <A HREF="node7.html#8232"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_context</TT></STRONG>
- : <A HREF="node7.html#8291"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_floating</TT></STRONG>
- : <A HREF="node7.html#7158"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>set_floating_at</TT></STRONG>
- : <A HREF="node7.html#7156"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>set_floating_shown_on</TT></STRONG>
- : <A HREF="node7.html#9343"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>set_fullscreen</TT></STRONG>
- : <A HREF="node7.html#4576"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>set_hidden</TT></STRONG>
- : <A HREF="node7.html#4610"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>set_index</TT></STRONG>
- : <A HREF="node7.html#4612"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>set_managed_offset</TT></STRONG>
- : <A HREF="node7.html#4690"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN></A>
-<DD><STRONG><TT>set_mark</TT></STRONG>
- : <A HREF="node7.html#8293"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_mode</TT></STRONG>
- : <A HREF="node7.html#4557"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_name</TT></STRONG>
- : <A HREF="node7.html#4676"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_name_exact</TT></STRONG>
- : <A HREF="node7.html#4678"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_numbers</TT></STRONG>
- : <A HREF="node7.html#4559"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_paths</TT></STRONG>
- : <A HREF="node7.html#4473"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_selection</TT></STRONG>
- : <A HREF="node7.html#4475"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_shaded</TT></STRONG>
- : <A HREF="node7.html#4561"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_shown</TT></STRONG>
- : <A HREF="node7.html#9452"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-<DD><STRONG><TT>set_shown_on</TT></STRONG>
- : <A HREF="node7.html#9454"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-<DD><STRONG><TT>set_stdisp</TT></STRONG>
- : <A HREF="node7.html#4614"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>set_systray</TT></STRONG>
- : <A HREF="node7.html#9556"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_tagged</TT></STRONG>
- : <A HREF="node7.html#4680"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_template</TT></STRONG>
- : <A HREF="node7.html#9558"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_template_table</TT></STRONG>
- : <A HREF="node7.html#9560"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_text</TT></STRONG>
- : <A HREF="node7.html#4583"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-<DD><STRONG><TT>shell_safe</TT></STRONG>
- : <A HREF="node7.html#4709"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN></A>
+ : <A HREF="node4.html#886"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Shift</SPAN></STRONG>
- : <A HREF="node4.html#873"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>show_about_ion</TT></STRONG>
- : <A HREF="node7.html#8225"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>show_tree</TT></STRONG>
- : <A HREF="node7.html#8227"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>shutdown</TT></STRONG>
- : <A HREF="node7.html#4477"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>size_hints</TT></STRONG>
- : <A HREF="node7.html#4682"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>skip_word</TT></STRONG>
- : <A HREF="node7.html#8295"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>snapshot</TT></STRONG>
- : <A HREF="node7.html#4479"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>split</TT></STRONG>
- : <A HREF="node7.html#7160"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split_at</TT></STRONG>
- : <A HREF="node7.html#7162"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split_top</TT></STRONG>
- : <A HREF="node7.html#7164"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split_tree</TT></STRONG>
- : <A HREF="node7.html#7166"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#878"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>statusbar</TT></STRONG>
- : <A HREF="node4.html#1446"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>statusbars</TT></STRONG>
- : <A HREF="node7.html#9549"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>string</TT></STRONG><DL>
-<DD><STRONG><TT>shell_safe</TT></STRONG> : <A HREF="node7.html#4708"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN></A>
-</DL>
+ : <A HREF="node4.html#1459"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>style</STRONG>
- : <A HREF="node5.html#1708"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>submap</TT></STRONG>
- : <A HREF="node7.html#4527"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node5.html#1887"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>submenu</TT></STRONG>
- : <A HREF="node4.html#1187"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4529"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>substyle</TT></STRONG>
- : <A HREF="node5.html#1720"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#9679"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>switch_next</TT></STRONG>
- : <A HREF="node7.html#4616"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>switch_nth</TT></STRONG>
- : <A HREF="node7.html#4618"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>switch_prev</TT></STRONG>
- : <A HREF="node7.html#4620"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
+ : <A HREF="node4.html#1200"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>substyle</STRONG>
+ : <A HREF="node5.html#1900"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>switchto</TT></STRONG>
- : <A HREF="node4.html#1447"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1460"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textit">system.mk</SPAN></STRONG>
- : <A HREF="node4.html#592"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>table</TT></STRONG><DL>
-<DD><STRONG><TT>append</TT></STRONG> : <A HREF="node7.html#4711"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-<DD><STRONG><TT>copy</TT></STRONG> : <A HREF="node7.html#4713"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-<DD><STRONG><TT>icat</TT></STRONG> : <A HREF="node7.html#4715"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-<DD><STRONG><TT>join</TT></STRONG> : <A HREF="node7.html#4717"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-<DD><STRONG><TT>map</TT></STRONG> : <A HREF="node7.html#4719"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN></A>
-</DL>
-<DD><STRONG><TT>tagged_attach</TT></STRONG>
- : <A HREF="node7.html#4531"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_clear</TT></STRONG>
- : <A HREF="node7.html#4481"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_first</TT></STRONG>
- : <A HREF="node7.html#4483"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>tagged_i</TT></STRONG>
- : <A HREF="node7.html#4485"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#584"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>target</TT></STRONG>
- : <A HREF="node4.html#1448"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1461"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>tiling_placement_alt</TT></STRONG>
- : <A HREF="node7.html#9886"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>tl</TT></STRONG>
- : <A HREF="node7.html#7141"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>TR</TT></STRONG>
- : <A HREF="node7.html#4363"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node7.html#8242"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG>transient</STRONG>
- : <A HREF="node4.html#1415"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#1432"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG><TT>transient_mode</TT></STRONG>
- : <A HREF="node4.html#1449"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1462"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>transparent</TT></STRONG>
- : <A HREF="node4.html#1450"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>transpose</TT></STRONG>
- : <A HREF="node7.html#7126"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>transpose_at</TT></STRONG>
- : <A HREF="node7.html#7146"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>transpose_chars</TT></STRONG>
- : <A HREF="node7.html#8297"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>transpose_words</TT></STRONG>
- : <A HREF="node7.html#8299"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>typeahead_clear</TT></STRONG>
- : <A HREF="node7.html#9144"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>unsplit_at</TT></STRONG>
- : <A HREF="node7.html#7168"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>unsqueeze</TT></STRONG>
- : <A HREF="node7.html#4487"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>untile</TT></STRONG>
- : <A HREF="node7.html#7117"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>update</TT></STRONG>
- : <A HREF="node7.html#9562"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1463"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>userpos</TT></STRONG>
- : <A HREF="node4.html#1459"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>version</TT></STRONG>
- : <A HREF="node7.html#4489"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>warn</TT></STRONG>
- : <A HREF="node7.html#4491"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#8229"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>warn_traced</TT></STRONG>
- : <A HREF="node7.html#4493"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>WClientWin</TT></STRONG>
- : <A HREF="node3.html#420"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>get_ident</TT></STRONG> : <A HREF="node7.html#4533"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>kill</TT></STRONG> : <A HREF="node7.html#4535"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>nudge</TT></STRONG> : <A HREF="node7.html#4537"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>quote_next</TT></STRONG> : <A HREF="node7.html#4539"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>xid</TT></STRONG> : <A HREF="node7.html#4541"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-</DL>
-<DD><STRONG><TT>WComplProxy</TT></STRONG><DL>
-<DD><STRONG><TT>set_completions</TT></STRONG> : <A HREF="node7.html#8231"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-</DL>
-<DD><STRONG><TT>WDock</TT></STRONG><DL>
-<DD><STRONG><TT>attach</TT></STRONG> : <A HREF="node7.html#9345"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>get</TT></STRONG> : <A HREF="node7.html#9347"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>resize</TT></STRONG> : <A HREF="node7.html#9349"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set</TT></STRONG> : <A HREF="node7.html#9351"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-</DL>
-<DD><STRONG><TT>WEdln</TT></STRONG>
- : <A HREF="node3.html#433"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>back</TT></STRONG> : <A HREF="node7.html#8234"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>backspace</TT></STRONG> : <A HREF="node7.html#8236"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>bkill_word</TT></STRONG> : <A HREF="node7.html#8238"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>bol</TT></STRONG> : <A HREF="node7.html#8240"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>bskip_word</TT></STRONG> : <A HREF="node7.html#8242"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>clear_mark</TT></STRONG> : <A HREF="node7.html#8244"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>complete</TT></STRONG> : <A HREF="node7.html#8246"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>contents</TT></STRONG> : <A HREF="node7.html#8248"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>context</TT></STRONG> : <A HREF="node7.html#8250"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>copy</TT></STRONG> : <A HREF="node7.html#8252"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>cut</TT></STRONG> : <A HREF="node7.html#8254"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>delete</TT></STRONG> : <A HREF="node7.html#8256"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>eol</TT></STRONG> : <A HREF="node7.html#8258"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>finish</TT></STRONG> : <A HREF="node7.html#8260"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>forward</TT></STRONG> : <A HREF="node7.html#8262"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>history_next</TT></STRONG> : <A HREF="node7.html#8264"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>history_prev</TT></STRONG> : <A HREF="node7.html#8266"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>insstr</TT></STRONG> : <A HREF="node7.html#8268"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>is_histcompl</TT></STRONG> : <A HREF="node7.html#8270"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_line</TT></STRONG> : <A HREF="node7.html#8272"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_to_bol</TT></STRONG> : <A HREF="node7.html#8274"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_to_eol</TT></STRONG> : <A HREF="node7.html#8276"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>kill_word</TT></STRONG> : <A HREF="node7.html#8278"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>mark</TT></STRONG> : <A HREF="node7.html#8280"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>next_completion</TT></STRONG> : <A HREF="node7.html#8282"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>paste</TT></STRONG> : <A HREF="node7.html#8284"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>point</TT></STRONG> : <A HREF="node7.html#8286"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>prev_completion</TT></STRONG> : <A HREF="node7.html#8288"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_context</TT></STRONG> : <A HREF="node7.html#8290"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_mark</TT></STRONG> : <A HREF="node7.html#8292"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>skip_word</TT></STRONG> : <A HREF="node7.html#8294"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>transpose_chars</TT></STRONG> : <A HREF="node7.html#8296"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>transpose_words</TT></STRONG> : <A HREF="node7.html#8298"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-</DL>
-<DD><STRONG><TT>WFrame</TT></STRONG>
- : <A HREF="node3.html#424"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>is_shaded</TT></STRONG> : <A HREF="node7.html#4544"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>maximize_horiz</TT></STRONG> : <A HREF="node7.html#4546"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>maximize_vert</TT></STRONG> : <A HREF="node7.html#4548"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>mode</TT></STRONG> : <A HREF="node7.html#4550"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>p_switch_tab</TT></STRONG> : <A HREF="node7.html#4552"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>p_tabdrag</TT></STRONG> : <A HREF="node7.html#4554"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_mode</TT></STRONG> : <A HREF="node7.html#4556"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_numbers</TT></STRONG> : <A HREF="node7.html#4558"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>set_shaded</TT></STRONG> : <A HREF="node7.html#4560"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-</DL>
-<DD><STRONG><TT>WGroup</TT></STRONG>
+ : <A HREF="node4.html#1472"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WClientWin</STRONG>
+ : <A HREF="node3.html#412"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WEdln</STRONG>
: <A HREF="node3.html#425"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>attach</TT></STRONG> : <A HREF="node7.html#4563"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>attach_new</TT></STRONG> : <A HREF="node7.html#4565"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>bottom</TT></STRONG> : <A HREF="node7.html#4567"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>is_fullscreen</TT></STRONG> : <A HREF="node7.html#4569"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>managed_i</TT></STRONG> : <A HREF="node7.html#4571"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>set_bottom</TT></STRONG> : <A HREF="node7.html#4573"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>set_fullscreen</TT></STRONG> : <A HREF="node7.html#4575"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-</DL>
+<DD><STRONG>WFrame</STRONG>
+ : <A HREF="node3.html#416"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WGroup</STRONG>
+ : <A HREF="node3.html#417"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WGroupCW</STRONG>
- : <A HREF="node3.html#427"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>WGroupWS</TT></STRONG>
- : <A HREF="node3.html#426"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>attach_framed</TT></STRONG> : <A HREF="node7.html#4579"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-</DL>
-<DD><STRONG><TT>WInfoWin</TT></STRONG><DL>
-<DD><STRONG><TT>set_text</TT></STRONG> : <A HREF="node7.html#4582"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
-</DL>
+ : <A HREF="node3.html#419"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WGroupWS</STRONG>
+ : <A HREF="node3.html#418"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>Winprops</STRONG>
- : <A HREF="node4.html#1283"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>WInput</TT></STRONG>
- : <A HREF="node3.html#432"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>cancel</TT></STRONG> : <A HREF="node7.html#8301"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>scrolldown</TT></STRONG> : <A HREF="node7.html#8303"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-<DD><STRONG><TT>scrollup</TT></STRONG> : <A HREF="node7.html#8305"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-</DL>
-<DD><STRONG><TT>WMenu</TT></STRONG><DL>
-<DD><STRONG><TT>cancel</TT></STRONG> : <A HREF="node7.html#9133"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>finish</TT></STRONG> : <A HREF="node7.html#9135"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>select_next</TT></STRONG> : <A HREF="node7.html#9137"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>select_nth</TT></STRONG> : <A HREF="node7.html#9139"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>select_prev</TT></STRONG> : <A HREF="node7.html#9141"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>typeahead_clear</TT></STRONG> : <A HREF="node7.html#9143"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-</DL>
+ : <A HREF="node4.html#1291"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+<DD><STRONG>WInput</STRONG>
+ : <A HREF="node3.html#424"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WMessage</STRONG>
- : <A HREF="node3.html#434"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>WMoveresMode</TT></STRONG><DL>
-<DD><STRONG><TT>cancel</TT></STRONG> : <A HREF="node7.html#4622"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>finish</TT></STRONG> : <A HREF="node7.html#4624"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>geom</TT></STRONG> : <A HREF="node7.html#4626"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>move</TT></STRONG> : <A HREF="node7.html#4628"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>resize</TT></STRONG> : <A HREF="node7.html#4630"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-<DD><STRONG><TT>rqgeom</TT></STRONG> : <A HREF="node7.html#4632"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN></A>
-</DL>
-<DD><STRONG><TT>WMPlex</TT></STRONG><DL>
-<DD><STRONG><TT>attach</TT></STRONG> : <A HREF="node7.html#4585"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>attach_new</TT></STRONG> : <A HREF="node7.html#4587"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>dec_index</TT></STRONG> : <A HREF="node7.html#4589"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>get_index</TT></STRONG> : <A HREF="node7.html#4591"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>get_stdisp</TT></STRONG> : <A HREF="node7.html#4593"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>inc_index</TT></STRONG> : <A HREF="node7.html#4595"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>is_hidden</TT></STRONG> : <A HREF="node7.html#4597"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>managed_i</TT></STRONG> : <A HREF="node7.html#4599"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_count</TT></STRONG> : <A HREF="node7.html#4601"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_current</TT></STRONG> : <A HREF="node7.html#4603"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_i</TT></STRONG> : <A HREF="node7.html#4605"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>mx_nth</TT></STRONG> : <A HREF="node7.html#4607"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>set_hidden</TT></STRONG> : <A HREF="node7.html#4609"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>set_index</TT></STRONG> : <A HREF="node7.html#4611"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>set_stdisp</TT></STRONG> : <A HREF="node7.html#4613"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>switch_next</TT></STRONG> : <A HREF="node7.html#4615"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>switch_nth</TT></STRONG> : <A HREF="node7.html#4617"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-<DD><STRONG><TT>switch_prev</TT></STRONG> : <A HREF="node7.html#4619"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN></A>
-</DL>
-<DD><STRONG><TT>WRegion</TT></STRONG>
- : <A HREF="node3.html#419"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>begin_kbresize</TT></STRONG> : <A HREF="node7.html#4635"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>current</TT></STRONG> : <A HREF="node7.html#4637"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>geom</TT></STRONG> : <A HREF="node7.html#4639"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>get_configuration</TT></STRONG> : <A HREF="node7.html#4641"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>goto</TT></STRONG> : <A HREF="node7.html#4643"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>groupleader_of</TT></STRONG> : <A HREF="node7.html#4645"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_active</TT></STRONG> : <A HREF="node7.html#4647"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_activity</TT></STRONG> : <A HREF="node7.html#4649"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_mapped</TT></STRONG> : <A HREF="node7.html#4651"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>is_tagged</TT></STRONG> : <A HREF="node7.html#4653"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>manager</TT></STRONG> : <A HREF="node7.html#4655"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>name</TT></STRONG> : <A HREF="node7.html#4657"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>parent</TT></STRONG> : <A HREF="node7.html#4659"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rootwin_of</TT></STRONG> : <A HREF="node7.html#4661"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqclose</TT></STRONG> : <A HREF="node7.html#4663"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqclose_propagate</TT></STRONG> : <A HREF="node7.html#4665"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqgeom</TT></STRONG> : <A HREF="node7.html#4667"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>rqorder</TT></STRONG> : <A HREF="node7.html#4669"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>screen_of</TT></STRONG> : <A HREF="node7.html#4671"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_activity</TT></STRONG> : <A HREF="node7.html#4673"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_name</TT></STRONG> : <A HREF="node7.html#4675"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_name_exact</TT></STRONG> : <A HREF="node7.html#4677"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>set_tagged</TT></STRONG> : <A HREF="node7.html#4679"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-<DD><STRONG><TT>size_hints</TT></STRONG> : <A HREF="node7.html#4681"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
-</DL>
-<DD><STRONG><TT>write_savefile</TT></STRONG>
- : <A HREF="node7.html#4391"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>WRootWin</TT></STRONG>
+ : <A HREF="node3.html#426"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WRegion</STRONG>
+ : <A HREF="node3.html#411"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WRootWin</STRONG>
+ : <A HREF="node3.html#415"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WScreen</STRONG>
+ : <A HREF="node3.html#414"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WSplit</STRONG>
: <A HREF="node3.html#422"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>current_scr</TT></STRONG> : <A HREF="node7.html#4684"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN></A>
-</DL>
-<DD><STRONG><TT>WScreen</TT></STRONG>
- : <A HREF="node3.html#423"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>id</TT></STRONG> : <A HREF="node7.html#4687"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN></A>
-<DD><STRONG><TT>set_managed_offset</TT></STRONG> : <A HREF="node7.html#4689"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN></A>
-</DL>
-<DD><STRONG><TT>WSplit</TT></STRONG>
- : <A HREF="node3.html#430"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>geom</TT></STRONG> : <A HREF="node7.html#7119"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>parent</TT></STRONG> : <A HREF="node7.html#7121"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>rqgeom</TT></STRONG> : <A HREF="node7.html#7123"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>transpose</TT></STRONG> : <A HREF="node7.html#7125"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-</DL>
-<DD><STRONG><TT>WSplitInner</TT></STRONG><DL>
-<DD><STRONG><TT>current</TT></STRONG> : <A HREF="node7.html#7128"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-</DL>
-<DD><STRONG><TT>WSplitRegion</TT></STRONG><DL>
-<DD><STRONG><TT>reg</TT></STRONG> : <A HREF="node7.html#7131"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
-</DL>
-<DD><STRONG><TT>WSplitSplit</TT></STRONG><DL>
-<DD><STRONG><TT>br</TT></STRONG> : <A HREF="node7.html#7134"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>dir</TT></STRONG> : <A HREF="node7.html#7136"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>flip</TT></STRONG> : <A HREF="node7.html#7138"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-<DD><STRONG><TT>tl</TT></STRONG> : <A HREF="node7.html#7140"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
-</DL>
-<DD><STRONG><TT>WStatusBar</TT></STRONG><DL>
-<DD><STRONG><TT>get_template_table</TT></STRONG> : <A HREF="node7.html#9551"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>is_systray_extl</TT></STRONG> : <A HREF="node7.html#9553"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_systray</TT></STRONG> : <A HREF="node7.html#9555"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_template</TT></STRONG> : <A HREF="node7.html#9557"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>set_template_table</TT></STRONG> : <A HREF="node7.html#9559"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>update</TT></STRONG> : <A HREF="node7.html#9561"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-</DL>
-<DD><STRONG><TT>WTiling</TT></STRONG>
- : <A HREF="node3.html#429"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>farthest</TT></STRONG> : <A HREF="node7.html#7147"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>flip_at</TT></STRONG> : <A HREF="node7.html#7143"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>managed_i</TT></STRONG> : <A HREF="node7.html#7149"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>nextto</TT></STRONG> : <A HREF="node7.html#7151"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>node_of</TT></STRONG> : <A HREF="node7.html#7153"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>set_floating</TT></STRONG> : <A HREF="node7.html#7157"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>set_floating_at</TT></STRONG> : <A HREF="node7.html#7155"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split</TT></STRONG> : <A HREF="node7.html#7159"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split_at</TT></STRONG> : <A HREF="node7.html#7161"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split_top</TT></STRONG> : <A HREF="node7.html#7163"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>split_tree</TT></STRONG> : <A HREF="node7.html#7165"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>transpose_at</TT></STRONG> : <A HREF="node7.html#7145"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-<DD><STRONG><TT>unsplit_at</TT></STRONG> : <A HREF="node7.html#7167"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
-</DL>
-<DD><STRONG><TT>WWindow</TT></STRONG>
+<DD><STRONG>WTiling</STRONG>
: <A HREF="node3.html#421"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DL>
-<DD><STRONG><TT>p_move</TT></STRONG> : <A HREF="node7.html#4692"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN></A>
-<DD><STRONG><TT>p_resize</TT></STRONG> : <A HREF="node7.html#4694"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN></A>
-<DD><STRONG><TT>xid</TT></STRONG> : <A HREF="node7.html#4696"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN></A>
-</DL>
-<DD><STRONG><TT>x_change_property</TT></STRONG>
- : <A HREF="node7.html#4495"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_delete_property</TT></STRONG>
- : <A HREF="node7.html#4497"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_get_atom_name</TT></STRONG>
- : <A HREF="node7.html#4499"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_get_text_property</TT></STRONG>
- : <A HREF="node7.html#4501"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_get_window_property</TT></STRONG>
- : <A HREF="node7.html#4503"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_intern_atom</TT></STRONG>
- : <A HREF="node7.html#4505"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>x_set_text_property</TT></STRONG>
- : <A HREF="node7.html#4507"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>xid</TT></STRONG>
- : <A HREF="node7.html#4542"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node7.html#4697"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN></A>
+<DD><STRONG>WWindow</STRONG>
+ : <A HREF="node3.html#413"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>Xinerama</STRONG>
- : <A HREF="node3.html#339"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node3.html#335"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><SPAN CLASS="textit">xmodmap</SPAN></STRONG>
- : <A HREF="node4.html#879"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#884"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>xprop</STRONG>
- : <A HREF="node4.html#1411"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#1428"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
</DL>
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
-<TITLE>About this document ...</TITLE>
-<META NAME="description" CONTENT="About this document ...">
+<TITLE>Bibliography</TITLE>
+<META NAME="description" CONTENT="Bibliography">
<META NAME="keywords" CONTENT="ionconf">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL="STYLESHEET" HREF="ionconf.css">
+<LINK REL="next" HREF="node13.html">
<LINK REL="previous" HREF="node11.html">
<LINK REL="up" HREF="ionconf.html">
+<LINK REL="next" HREF="node13.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
-<A NAME="tex2html452"
+<A NAME="tex2html492"
+ HREF="node13.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
+<A NAME="tex2html486"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html448"
+<A NAME="tex2html480"
HREF="node11.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html454"
+<A NAME="tex2html488"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html456"
+<A NAME="tex2html490"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Up:</B> <A NAME="tex2html453"
+<B> Next:</B> <A NAME="tex2html493"
+ HREF="node13.html">About this document ...</A>
+<B> Up:</B> <A NAME="tex2html487"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html449"
+<B> Previous:</B> <A NAME="tex2html481"
HREF="node11.html">Index</A>
- <B> <A NAME="tex2html455"
+ <B> <A NAME="tex2html489"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html457"
+ <B> <A NAME="tex2html491"
HREF="node11.html">Index</A></B>
-<BR>
-<BR></DIV>
+<BR><BR></DIV>
<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION001200000000000000000">
+Bibliography</A>
+</H2><DL COMPACT><DD><P></P><DT><A NAME="scripts">1</A>
+<DD> The Ion 3 scripts repository,
+ <TT><A NAME="tex2html11"
+ HREF="http://iki.fi/tuomov/repos/ion-scripts-3/">http://iki.fi/tuomov/repos/ion-scripts-3/</A></TT>.
+</DL>
-<H1><A NAME="SECTION001200000000000000000">
-About this document ...</A>
-</H1>
- <STRONG>Configuring and extending Ion3 with Lua</STRONG><P>
-This document was generated using the
-<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
-<P>
-Copyright © 1993, 1994, 1995, 1996,
-Nikos Drakos,
-Computer Based Learning Unit, University of Leeds.
-<BR>
-Copyright © 1997, 1998, 1999,
-<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
-Mathematics Department, Macquarie University, Sydney.
-<P>
-The command line arguments were: <BR>
- <STRONG>latex2html</STRONG> <TT>-show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 3 ionconf</TT>
<P>
-The translation was initiated by tuomov on 2007-03-18
<BR><HR>
</BODY>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="ionconf">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ionconf.css">
+
+<LINK REL="previous" HREF="node12.html">
+<LINK REL="up" HREF="ionconf.html">
+</HEAD>
+
+<BODY >
+
+<DIV CLASS="navigation"><!--Navigation Panel-->
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
+<A NAME="tex2html498"
+ HREF="ionconf.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
+<A NAME="tex2html494"
+ HREF="node12.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
+<A NAME="tex2html500"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
+<A NAME="tex2html502"
+ HREF="node11.html">
+<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
+<BR>
+<B> Up:</B> <A NAME="tex2html499"
+ HREF="ionconf.html">Configuring and extending Ion3</A>
+<B> Previous:</B> <A NAME="tex2html495"
+ HREF="node12.html">Bibliography</A>
+ <B> <A NAME="tex2html501"
+ HREF="node1.html">Contents</A></B>
+ <B> <A NAME="tex2html503"
+ HREF="node11.html">Index</A></B>
+<BR>
+<BR></DIV>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION001300000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG>Configuring and extending Ion3 with Lua</STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+Nikos Drakos,
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 3 ionconf</TT>
+<P>
+The translation was initiated by tuomov on 2007-05-06
+<BR><HR>
+
+</BODY>
+</HTML>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html232"
+<A NAME="tex2html253"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html226"
+<A NAME="tex2html247"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html220"
+<A NAME="tex2html241"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html228"
+<A NAME="tex2html249"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html230"
+<A NAME="tex2html251"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html233"
+<B> Next:</B> <A NAME="tex2html254"
HREF="node3.html">2. Preliminaries: Key concepts</A>
-<B> Up:</B> <A NAME="tex2html227"
+<B> Up:</B> <A NAME="tex2html248"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html221"
+<B> Previous:</B> <A NAME="tex2html242"
HREF="node1.html">Contents</A>
- <B> <A NAME="tex2html229"
+ <B> <A NAME="tex2html250"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html231"
+ <B> <A NAME="tex2html252"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
</H1>
<P>
-This document is an ''advanced user'' manual for Ion, the X11 window manager,
-and version 3 specifically. It is an attempt attempt at documenting what is
-in Ion's configuration files, how to configure Ion by simple modifications
+This document is an ``advanced user'' manual for the X11 window manager
+Ion, version 3. It is an attempt at documenting things that go into Ion's
+configuration files, how to configure Ion by simple modifications
to these files and how to write more complex extensions in Lua, the
lightweight configuration and scripting language used by Ion.
<P>
-Readers unfamiliar with Lua is advised to first glance at the Lua manual at
+Readers unfamiliar with Lua might first want to first glance at some
+Lua documentation at
<P>
<DIV ALIGN="CENTER">
<TT><A NAME="tex2html1"
- HREF="http://www.lua.org/docs.html">http://www.lua.org/docs.html</A></TT>
-</DIV>
-
-<P>
-and perhaps some tutorial pages at the lua-users wiki:
+ HREF="http://www.lua.org/docs.html">http://www.lua.org/docs.html</A></TT>, or
+<BR> <TT><A NAME="tex2html2"
+ HREF="http://lua-users.org/wiki/LuaTutorial">http://lua-users.org/wiki/LuaTutorial</A></TT>,
-<P>
-<DIV ALIGN="CENTER">
-<TT><A NAME="tex2html2"
- HREF="http://lua-users.org/wiki/LuaTutorial">http://lua-users.org/wiki/LuaTutorial</A></TT>
</DIV>
<P>
-Back in this document, first in chapter <A HREF="node3.html#chap:prelim">2</A> some key
-concepts and relations are explained. These include the module system
-and Ion's object and class hierarchies. While it might not at first
-occur that knowing such things would be necessary to <SPAN CLASS="textit">configure</SPAN>
-a program, this material is essential because of the object-oriented
-nature of most of Ion's scripting interface.
+although this should not be strictly necessary for basic modifications
+of configuration files for anyone with at least some familiarity with
+programming languages.
<P>
-The new user, fed up with the default key bindings and eager to just
-quickly configure Ion to his liking may question the reasons for
-exposing the ''heavy'' internal OO structure in the scripting and
-configuration interface. I'm not the one to blame him for that.
-Sure it would be faster to configure Ion to everyone's liking
-if a simpler binding configuration interface was provided. Such an
-interface would, however, also be far more limited and make writing
-extensions more complicated and the advantages from using a real
-scripting language would be partly lost. One more advantage from
-a rich scripting and configuration interface is that it allows
-implementing scripts to read alternate configuration file formats,
-ones that could be, for example, modified by external configuration tools.
+Back in this document, first in chapter <A HREF="node3.html#chap:prelim">2</A> some key
+concepts and relations are explained. These include the module system,
+and Ion's object (or ``region'') and class hierarchies. While it may
+not be necessary to study the latter for basic copy-paste modifications
+of configuration files - for that you should not really need this
+manual either - it is, however, essential to for more extensive
+customisation, due to the semi-object-oriented nature of most of
+Ion's scripting interface. Knowing the different object types also
+helps dealing with the different binding ``contexts'' (see
+Section <A HREF="node4.html#sec:bindings">3.3</A>) that to some extent mirror these classes.
<P>
-In chapter <A HREF="node4.html#chap:config">3</A> the very basic Ion configuration know-how
-is provided. All the different configuration files and their locations
-are explained and instructions are given to allow the reader to
-configure bindings and so-called ''winprops''. Chapter <A HREF="node5.html#chap:gr">4</A>
-explains the notion of drawing engines and graphical styles and how to
-write new looks for Ion and more advanced aspects of Ion's scripting
-interface are documented in chapter <A HREF="node6.html#chap:tricks">5</A> (a work in
-progress).
+The new user, fed up with the default key bindings and eager to
+just quickly configure Ion to his liking, may therefore just want
+to skip to Chapter <A HREF="node4.html#chap:config">3</A>, and attempt to work from therefore.
+That chapter provides the very basic Ion configuration know-how
+is provided: all the different configuration files and their locations
+are explained, instructions are given to allow the reader to
+configure bindings and so-called ``winprops'', and the statusbar
+templates are also explained.
<P>
+Next, Chapter <A HREF="node5.html#chap:gr">4</A> explains the notion of drawing engines
+and graphical styles and how to write new looks for Ion. More advanced
+aspects of Ion's scripting interface are documented in Chapter
+<A HREF="node6.html#chap:tricks">5</A>.
Finally, most of the functions provided by Ion's scripting interface
-are listed and documented in the Function reference in chapter
-<A HREF="node7.html#sec:exports">6</A>. At the end of the document is an alphabetical
-listing of all these functions.
-
-<P>
+are listed and documented in the Function reference in Chapter
+<A HREF="node7.html#sec:exports">6</A>. At the end of the document an alphabetical
+listing of all these functions may be found.
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html232"
+<A NAME="tex2html253"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html226"
+<A NAME="tex2html247"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html220"
+<A NAME="tex2html241"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html228"
+<A NAME="tex2html249"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html230"
+<A NAME="tex2html251"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html233"
+<B> Next:</B> <A NAME="tex2html254"
HREF="node3.html">2. Preliminaries: Key concepts</A>
-<B> Up:</B> <A NAME="tex2html227"
+<B> Up:</B> <A NAME="tex2html248"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html221"
+<B> Previous:</B> <A NAME="tex2html242"
HREF="node1.html">Contents</A>
- <B> <A NAME="tex2html229"
+ <B> <A NAME="tex2html250"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html231"
+ <B> <A NAME="tex2html252"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html246"
+<A NAME="tex2html267"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html240"
+<A NAME="tex2html261"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html234"
+<A NAME="tex2html255"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html242"
+<A NAME="tex2html263"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html244"
+<A NAME="tex2html265"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html247"
+<B> Next:</B> <A NAME="tex2html268"
HREF="node4.html">3. Basic configuration</A>
-<B> Up:</B> <A NAME="tex2html241"
+<B> Up:</B> <A NAME="tex2html262"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html235"
+<B> Previous:</B> <A NAME="tex2html256"
HREF="node2.html">1. Introduction</A>
- <B> <A NAME="tex2html243"
+ <B> <A NAME="tex2html264"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html245"
+ <B> <A NAME="tex2html266"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html248"
+<LI><A NAME="tex2html269"
HREF="node3.html#SECTION00310000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Modules</A>
-<LI><A NAME="tex2html249"
+<LI><A NAME="tex2html270"
HREF="node3.html#SECTION00320000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Class and object hierarchies</A>
<UL>
-<LI><A NAME="tex2html250"
+<LI><A NAME="tex2html271"
HREF="node3.html#SECTION00321000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Class hierarchy</A>
-<LI><A NAME="tex2html251"
+<LI><A NAME="tex2html272"
HREF="node3.html#SECTION00322000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Object hierarchies: WRegion parents and managers</A>
<UL>
-<LI><A NAME="tex2html252"
+<LI><A NAME="tex2html273"
HREF="node3.html#SECTION00322100000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Parent-child relations</A>
-<LI><A NAME="tex2html253"
+<LI><A NAME="tex2html274"
HREF="node3.html#SECTION00322200000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Manager-managed relations</A>
</UL>
-<LI><A NAME="tex2html254"
+<LI><A NAME="tex2html275"
HREF="node3.html#SECTION00323000000000000000"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Summary</A>
</UL></UL>
<!--End of Table of Child-Links-->
</DD>
<DT><STRONG><SPAN CLASS="textit">mod_dock</SPAN></STRONG></DT>
-<DD>Module for docking Window Maker dockapps.
+<DD>Module for docking Window Maker dock-apps.
The dock can both float and be embedded as the statusbar.
</DD>
be toggled on/off everywhere. Think of the 'console' in some
first-person shooters.
-</DD>
-<DT><STRONG><SPAN CLASS="textit">mod_mgmtmode</SPAN></STRONG></DT>
-<DD>Support module for implementing ''management
- modes'' with a XOR-frame similar to move/resize mode around selected
- region.
-
</DD>
<DT><STRONG><SPAN CLASS="textit">mod_sm</SPAN></STRONG></DT>
<DD>Session management support module.
but they are not discussed here; see chapter <A HREF="node5.html#chap:gr">4</A>.
<P>
-The stock configuration for the 'ion3' executable loads all of the modules
-mentioned above except <SPAN CLASS="textit">mod_dock</SPAN> and filemod_mgmtmode.
-The stock configuration for the 'pwm3' executable (which differs from the
-'ion3' executable in a few configuration details, such as Xinerama usage)
+The stock configuration for the <SPAN CLASS="textit">ion3</SPAN> executable loads all of the
+modules mentioned above except <SPAN CLASS="textit">mod_dock</SPAN>.
+The stock configuration for the <SPAN CLASS="textit">pwm3</SPAN> executable (which differs
+from the <SPAN CLASS="textit">ion3</SPAN> executable in a few configuration details)
loads another set of modules.
<P>
<P>
While Ion does not not have a truly object-oriented design
<A NAME="tex2html3"
- HREF="#foot306"><SUP><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A>,
+ HREF="#foot297"><SUP><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A>,
things that appear on the computer screen are, however, quite
-naturally expressed as such ''objects''. Therefore Ion implements
+naturally expressed as such ``objects''. Therefore Ion implements
a rather primitive OO system for these screen objects and some
other things.
<P>
For simplicity we consider only the essential-for-basic-configuration
Ioncore, <SPAN CLASS="textit">mod_tiling</SPAN> and <SPAN CLASS="textit">mod_query</SPAN> classes.
-See Appendix <A HREF="node9.html#app:fullhierarchy">B</A> for the full class hierachy visible
+See Appendix <A HREF="node9.html#app:fullhierarchy">B</A> for the full class hierarchy visible
to Lua side.
<P>
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:classhierarchy"></A><A NAME="412"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:classhierarchy"></A><A NAME="404"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2.1:</STRONG>
Partial Ioncore, <SPAN CLASS="textit">mod_tiling</SPAN> and <SPAN CLASS="textit">mod_query</SPAN>
<P>
<DL>
<DT><STRONG>Obj</STRONG></DT>
-<DD><A NAME="418"></A>
+<DD><A NAME="410"></A>
Is the base of Ion's object system.
<P>
</DD>
<DT><STRONG>WRegion</STRONG></DT>
-<DD><A NAME="419"></A>
+<DD><A NAME="411"></A>
is the base class for everything corresponding to something on the
screen. Each object of type WRegion has a size and position
relative to the parent WRegion. While a big part of Ion
operates on these instead of more specialised classes, WRegion
- is a ''virtual'' base class in that there are no objects of ''pure''
+ is a ``virtual'' base class in that there are no objects of ``pure''
type WRegion; all concrete regions are objects of some class
that inherits WRegion.
<P>
</DD>
<DT><STRONG>WClientWin</STRONG></DT>
-<DD><A NAME="420"></A> is a class for
+<DD><A NAME="412"></A> is a class for
client window objects, the objects that window managers are
supposed to manage.
<P>
</DD>
<DT><STRONG>WWindow</STRONG></DT>
-<DD><A NAME="421"></A> is the base class for all
+<DD><A NAME="413"></A> is the base class for all
internal objects having an X window associated to them
(WClientWins also have X windows associated to them).
-<P>
-</DD>
-<DT><STRONG>WRootWin</STRONG></DT>
-<DD><A NAME="422"></A> is the class for
- root windows<A NAME="336"></A> of X screens<A NAME="337"></A>.
- Note that an ''X screen'' or root window is not necessarily a
- single physical screen<A NAME="338"></A> as a root window
- may be split over multiple screens when hacks such as
- Xinerama<A NAME="339"></A> are used. (Actually there can be only
- one root window when Xinerama is used.)
-
<P>
</DD>
<DT><STRONG>WMPlex</STRONG></DT>
-<DD>is a base class for all regions that''multiplex''
+<DD>is a base class for all regions that ``multiplex''
other regions. This means that of the regions managed by the multiplexer,
- only one can be displayed at a time. Classes that inhereit WMPlex
- include screens and frames.
+ only one can be displayed at a time.
<P>
</DD>
<DT><STRONG>WScreen</STRONG></DT>
-<DD><A NAME="423"></A> is the class for objects
- corresponding to physical screens. Screens may share a root
- window when the Xinerama extension is used as explained above.
+<DD><A NAME="414"></A> is an instance of WMPlex
+ for screens.
+
+<P>
+</DD>
+<DT><STRONG>WRootWin</STRONG></DT>
+<DD><A NAME="415"></A> is the class for
+ root windows<A NAME="331"></A> of X screens<A NAME="332"></A>.
+ It is an instance of WScreen.
+ Note that an ``X screen'' or root window is not necessarily a
+ single physical screen<A NAME="334"></A> as a root window
+ may be split over multiple screens when ugly hacks such as
+ Xinerama<A NAME="335"></A> are used. (Actually there can be only
+ one root window when Xinerama is used.)
<P>
</DD>
<DT><STRONG>WFrame</STRONG></DT>
-<DD><A NAME="424"></A> is the class for frames.
- While most Ion's objects have no graphical presentation, frames basically
- add to WMPlexes the decorations around client windows
- (borders, tabs).
+<DD><A NAME="416"></A> is the class for frames.
+ While most Ion's objects have no graphical presentation, frames
+ basically add to WMPlexes the decorations around client
+ windows (borders, tabs).
<P>
</DD>
<DT><STRONG>WGroup</STRONG></DT>
-<DD><A NAME="425"></A> is the base class for groups.
+<DD><A NAME="417"></A> is the base class for groups.
Particular types of groups are workspaces
- (WGroupWS<A NAME="426"></A>)
+ (WGroupWS<A NAME="418"></A>)
and groups of client windows
- (WGroupCW<A NAME="427"></A>).
+ (WGroupCW<A NAME="419"></A>).
</DD>
</DL>
<P>
<DL>
<DT><STRONG>WTiling</STRONG></DT>
-<DD><A NAME="429"></A> is the class for tilings
+<DD><A NAME="421"></A> is the class for tilings
of frames.
</DD>
<DT><STRONG>WSplit</STRONG></DT>
-<DD><A NAME="430"></A> (or, more specifically, classes
+<DD><A NAME="422"></A> (or, more specifically, classes
that inherit it) encode the WTiling tree structure.
</DD>
</DL>
<P>
<DL>
<DT><STRONG>WInput</STRONG></DT>
-<DD><A NAME="432"></A> is a virtual base class for the
+<DD><A NAME="424"></A> is a virtual base class for the
two classes below.
</DD>
<DT><STRONG>WEdln</STRONG></DT>
-<DD><A NAME="433"></A> is the class for the ''queries'',
+<DD><A NAME="425"></A> is the class for the ``queries'',
the text inputs that usually appear at bottoms of frames and sometimes
- screens. Queries are the functional equivalent of ''mini buffers'' in
+ screens. Queries are the functional equivalent of ``mini buffers'' in
many text editors.
</DD>
<DT><STRONG>WMessage</STRONG></DT>
-<DD><A NAME="434"></A> implements the boxes for
+<DD><A NAME="426"></A> implements the boxes for
warning and other messages that Ion may wish to display to the user.
These also usually appear at bottoms of frames.
</DD>
</DL>
<P>
-There are also some other ''proxy'' classes that do not refer
+There are also some other ``proxy'' classes that do not refer
to objects on the screen. The only important one of these for
basic configuration is WMoveresMode that is used for
binding callbacks in the move and resize mode.
<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Parent-child relations</A>
</H4>
Each object of type WRegion has a parent and possibly a manager
-associated to it. The parent<A NAME="375"></A> for an object is always a
+associated to it. The parent<A NAME="367"></A> for an object is always a
WWindow and for WRegion with an X window (WClientWin,
WWindow) the parent WWindow is given by the same relation of
the X windows. For other WRegions the relation is not as clear.
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:parentship"></A><A NAME="386"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:parentship"></A><A NAME="378"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2.2:</STRONG>
Most common parent-child relations</CAPTION>
<P>
WRegions have very little control over their children as a parent.
-The manager<A NAME="390"></A> WRegion has much more control over its
+The manager<A NAME="382"></A> WRegion has much more control over its
managed WRegions. Managers, for example, handle resize requests,
focusing and displaying of the managed regions. Indeed the manager--managed
relationship gives a better picture of the logical ordering of objects on
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:managership"></A><A NAME="398"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:managership"></A><A NAME="390"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2.3:</STRONG>
Most common manager-managed relations</CAPTION>
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot306">... design</A><A
+<DT><A NAME="foot297">... design</A><A
HREF="node3.html#tex2html3"><SUP><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
<DD>the author doesn't like such artificial designs
</DL>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html246"
+<A NAME="tex2html267"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html240"
+<A NAME="tex2html261"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html234"
+<A NAME="tex2html255"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html242"
+<A NAME="tex2html263"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html244"
+<A NAME="tex2html265"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html247"
+<B> Next:</B> <A NAME="tex2html268"
HREF="node4.html">3. Basic configuration</A>
-<B> Up:</B> <A NAME="tex2html241"
+<B> Up:</B> <A NAME="tex2html262"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html235"
+<B> Previous:</B> <A NAME="tex2html256"
HREF="node2.html">1. Introduction</A>
- <B> <A NAME="tex2html243"
+ <B> <A NAME="tex2html264"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html245"
+ <B> <A NAME="tex2html266"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html267"
+<A NAME="tex2html288"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html261"
+<A NAME="tex2html282"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html255"
+<A NAME="tex2html276"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html263"
+<A NAME="tex2html284"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html265"
+<A NAME="tex2html286"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html268"
+<B> Next:</B> <A NAME="tex2html289"
HREF="node5.html">4. Graphical styles</A>
-<B> Up:</B> <A NAME="tex2html262"
+<B> Up:</B> <A NAME="tex2html283"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html256"
+<B> Previous:</B> <A NAME="tex2html277"
HREF="node3.html">2. Preliminaries: Key concepts</A>
- <B> <A NAME="tex2html264"
+ <B> <A NAME="tex2html285"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html266"
+ <B> <A NAME="tex2html287"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html269"
+<LI><A NAME="tex2html290"
HREF="node4.html#SECTION00410000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> The configuration files</A>
-<LI><A NAME="tex2html270"
+<LI><A NAME="tex2html291"
HREF="node4.html#SECTION00420000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> A walk through <SPAN CLASS="textit">cfg_ion.lua</SPAN></A>
-<LI><A NAME="tex2html271"
+<LI><A NAME="tex2html292"
HREF="node4.html#SECTION00430000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Keys and rodents</A>
<UL>
-<LI><A NAME="tex2html272"
+<LI><A NAME="tex2html293"
HREF="node4.html#SECTION00431000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Binding handlers and special variables</A>
-<LI><A NAME="tex2html273"
+<LI><A NAME="tex2html294"
HREF="node4.html#SECTION00432000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Guards</A>
-<LI><A NAME="tex2html274"
+<LI><A NAME="tex2html295"
HREF="node4.html#SECTION00433000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining the bindings</A>
-<LI><A NAME="tex2html275"
+<LI><A NAME="tex2html296"
HREF="node4.html#SECTION00434000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Examples</A>
-<LI><A NAME="tex2html276"
+<LI><A NAME="tex2html297"
HREF="node4.html#SECTION00435000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Key specifications</A>
-<LI><A NAME="tex2html277"
+<LI><A NAME="tex2html298"
HREF="node4.html#SECTION00436000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> Button specifications</A>
-<LI><A NAME="tex2html278"
+<LI><A NAME="tex2html299"
HREF="node4.html#SECTION00437000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">7</SPAN> A further note on the default binding configuration</A>
</UL>
<BR>
-<LI><A NAME="tex2html279"
+<LI><A NAME="tex2html300"
HREF="node4.html#SECTION00440000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Menus</A>
<UL>
-<LI><A NAME="tex2html280"
+<LI><A NAME="tex2html301"
HREF="node4.html#SECTION00441000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Defining menus</A>
-<LI><A NAME="tex2html281"
+<LI><A NAME="tex2html302"
HREF="node4.html#SECTION00442000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Special menus</A>
-<LI><A NAME="tex2html282"
+<LI><A NAME="tex2html303"
HREF="node4.html#SECTION00443000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining context menus</A>
-<LI><A NAME="tex2html283"
+<LI><A NAME="tex2html304"
HREF="node4.html#SECTION00444000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> Displaying menus</A>
</UL>
<BR>
-<LI><A NAME="tex2html284"
+<LI><A NAME="tex2html305"
HREF="node4.html#SECTION00450000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Winprops</A>
<UL>
-<LI><A NAME="tex2html285"
+<LI><A NAME="tex2html306"
HREF="node4.html#SECTION00451000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Sizehint winprops</A>
-<LI><A NAME="tex2html286"
+<LI><A NAME="tex2html307"
HREF="node4.html#SECTION00452000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Classes, roles and instances</A>
-<LI><A NAME="tex2html287"
+<LI><A NAME="tex2html308"
HREF="node4.html#SECTION00453000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Finding window identification</A>
-<LI><A NAME="tex2html288"
+<LI><A NAME="tex2html309"
HREF="node4.html#SECTION00454000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Some common examples</A>
<UL>
-<LI><A NAME="tex2html289"
+<LI><A NAME="tex2html310"
HREF="node4.html#SECTION00454100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
-<LI><A NAME="tex2html290"
- HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
-<LI><A NAME="tex2html291"
- HREF="node4.html#SECTION00454300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
+<LI><A NAME="tex2html311"
+ HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Forcing newly created windows in named frames</A>
+</UL>
+</UL>
+<BR>
+<LI><A NAME="tex2html312"
+ HREF="node4.html#SECTION00460000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> The statusbar</A>
+<UL>
+<LI><A NAME="tex2html313"
+ HREF="node4.html#SECTION00461000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> The template</A>
+<LI><A NAME="tex2html314"
+ HREF="node4.html#SECTION00462000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> The systray</A>
+<LI><A NAME="tex2html315"
+ HREF="node4.html#SECTION00463000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Monitors</A>
+<UL>
+<LI><A NAME="tex2html316"
+ HREF="node4.html#SECTION00463100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Date</A>
+<LI><A NAME="tex2html317"
+ HREF="node4.html#SECTION00463200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Load</A>
+<LI><A NAME="tex2html318"
+ HREF="node4.html#SECTION00463300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Mail</A>
</UL></UL></UL>
<!--End of Table of Child-Links-->
<HR>
<A HREF="#sec:walkthrough">3.2</A>.
How keys and mouse action are bound to functions is described in detail
in <A HREF="#sec:bindings">3.3</A> and in section <A HREF="#sec:winprops">3.5</A> winprops are
-explained. For a reference on exported functions, see section
-<A HREF="node7.html#sec:exports">6</A>.
+explained. Finally, the statusbar is explained in <A HREF="#sec:statusbar">3.6</A>.
+For a reference on exported functions, see section <A HREF="node7.html#sec:exports">6</A>.
<P>
Ion3, to which document applies, stores its stock configuration files in
<SPAN CLASS="textit">/usr/local/etc/ion3/</SPAN> unless you, the OS package maintainer or
whoever installed the package on the system has modified the variables
-<TT>PREFIX</TT><A NAME="590"></A> or
-<TT>ETCDIR</TT><A NAME="591"></A> in
-<SPAN CLASS="textit">system.mk</SPAN><A NAME="592"></A> before compiling Ion.
+<TT>PREFIX</TT><A NAME="582"></A> or
+<TT>ETCDIR</TT><A NAME="583"></A> in
+<SPAN CLASS="textit">system.mk</SPAN><A NAME="584"></A> before compiling Ion.
In the first case you probably know where to find the files and in
the other case the system administrator or the OS package maintainer
should have provided documentation to point to the correct location.
files are attempted before <SPAN CLASS="textit">.lua</SPAN> files.
<P>
-All the configuration files are named <SPAN CLASS="textit">cfg_*.lua</SPAN> with the ''<SPAN CLASS="textit">*</SPAN>''
+All the configuration files are named <SPAN CLASS="textit">cfg_*.lua</SPAN> with the ``<SPAN CLASS="textit">*</SPAN>''
part varying. The configuration file for each module <SPAN CLASS="textit">mod_modname</SPAN> is
<SPAN CLASS="textit">cfg_modname.lua</SPAN>, with <SPAN CLASS="textit">modname</SPAN> varying by the module in
question. The following table summarises these and other configuration
the necessary modules and other configuration files configuring some
more specific aspects of Ion are loaded there. In this section we
take a walk through the stock <SPAN CLASS="textit">cfg_ion.lua</SPAN>.
-Notice that most of the settings are commented-out (<TT>-</TT> is a
+Notice that most of the settings are commented-out (<code>--</code> is a
line comment in Lua) in the actual file, as they're the defaults
nevertheless.
<P>
-The first thing one in the file is to set
+The first thing done in the file, is to set
<PRE>
META="Mod1+"
ALTMETA=""
</PRE>
These settings cause most of Ion's key bindings to use <SPAN CLASS="textbf">Mod1</SPAN> as the
-modifier key. If <TT>ALTMETA</TT> is set, it is used as modifier for the keys
-that don't normally use a modifier. for details on modifiers and key
-binding setup in general see section <A HREF="#sec:bindings">3.3</A>.
+modifier key. If <TT>ALTMETA</TT> is set, it is used as modifier for the
+keys that don't normally use a modifier. Note that these two are Lua
+variables used in the configuration files only, and not Ion settings.
+For details on modifiers and key binding setup in general, see section
+<A HREF="#sec:bindings">3.3</A>.
<P>
Next we do some basic feel configuration:
<P>
As a next step, in the actual <SPAN CLASS="textit">cfg_ion.lua</SPAN> file, we load
-<SPAN CLASS="textit">cfg_defaults.lua</SPAN>. However, it is merely a conveniency file for
+<SPAN CLASS="textit">cfg_defaults.lua</SPAN>. However, it is merely a convenience file for
doing exactly what we will going through below, and what is commented
out in the actual file. If you do not want to load what
<SPAN CLASS="textit">cfg_defaults.lua</SPAN> loads, just comment out the corresponding
Most bindings and menus are defined in <SPAN CLASS="textit">cfg_ioncore.lua</SPAN>.
Details on making such definitions follow in sections <A HREF="#sec:bindings">3.3</A>
and <A HREF="#sec:menus">3.4</A>, respectively.
-some kludges or ''winprops'' to make some applications behave better
-under Ion are colledted in <SPAN CLASS="textit">cfg_kludges.lua</SPAN>; see section
+some kludges or ``winprops'' to make some applications behave better
+under Ion are collected in <SPAN CLASS="textit">cfg_kludges.lua</SPAN>; see section
<A HREF="#sec:winprops">3.5</A> for details. In addition to these, this file
lists quite a few statements of the form
<PRE>
<P>
Bindings are defined by calling the function
-<A HREF="node7.html#fn:ioncore.defbindings"><TT>defbindings</TT></A> with the ''context'' of the
+<A HREF="node7.html#fn:ioncore.defbindings"><TT>defbindings</TT></A> with the ``context'' of the
bindings and the a table of new bindings to make. The context is simply
string indicating one of the classes of regions (or modes such as
WMoveresMode) introduced in section <A HREF="node3.html#sec:objects">2.2</A>, and fully
<P>
There has been some confusion among users about the need to define the
-''context'' for each binding, so let me try to explain this design
+``context'' for each binding, so let me try to explain this design
decision here. The thing is that if there was a just a simple 'bind this
key to this action' method without knowledge of the context, some
limitations would have to be made on the available actions and writing
bind the same function to different key for different types of objects.
Indeed, the workspace and frame tab switching functions are the same both
classes being based on WMPlex, and in the stock configuration the
-switch to <SPAN CLASS="MATH"></SPAN>:th workspaces is bound to <SPAN CLASS="textbf">Mod1+n</SPAN> while the switch to
-<SPAN CLASS="MATH"></SPAN>:th tab is bound to the sequence <SPAN CLASS="textbf">Mod1+k n</SPAN>.
-
-<P>
-Currently known ''contexts'' include:
-<TT>WScreen</TT>,
-<TT>WMPlex</TT>,
-<TT>WMPlex.toplevel</TT>,
-<TT>WFrame</TT>,
-<TT>WFrame.toplevel</TT>,
-<TT>WFrame.floating</TT>,
-<TT>WFrame.tiled</TT>,
-<TT>WFrame.transient</TT>,
-<TT>WMoveresMode</TT>,
-<TT>WGroup</TT>,
-<TT>WGroupCW</TT>,
-<TT>WGroupWS</TT>,
-<TT>WClientWin</TT>,
-<TT>WTiling</TT>, and
-<TT>WStatusBar</TT>.
+switch to <SPAN CLASS="MATH"><IMG
+ WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
+ SRC="img1.png"
+ ALT="$n$"></SPAN>:th workspaces is bound to <SPAN CLASS="textbf">Mod1+n</SPAN> while the switch to
+<SPAN CLASS="MATH"><IMG
+ WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
+ SRC="img1.png"
+ ALT="$n$"></SPAN>:th tab is bound to the sequence <SPAN CLASS="textbf">Mod1+k n</SPAN>.
+
+<P>
+Currently known contexts include:
+`<TT>WScreen</TT>',
+`<TT>WMPlex</TT>',
+`<TT>WMPlex.toplevel</TT>',
+`<TT>WFrame</TT>',
+`<TT>WFrame.toplevel</TT>',
+`<TT>WFrame.floating</TT>',
+`<TT>WFrame.tiled</TT>',
+`<TT>WFrame.transient</TT>',
+`<TT>WMoveresMode</TT>',
+`<TT>WGroup</TT>',
+`<TT>WGroupCW</TT>',
+`<TT>WGroupWS</TT>',
+`<TT>WClientWin</TT>',
+`<TT>WTiling</TT>', and
+`<TT>WStatusBar</TT>'.
Most of these should be self-explanatory, corresponding to objects
-of class with the same name. The ones with <TT>.toplevel</TT> suffix
-refer to screens and ''toplevel'' frames, i.e. frames that are
-not used for transient windows. Likewise <TT>.transient</TT> refers
-to frames in transient mode, and <TT>.tiled</TT> and <TT>.floating</TT>
+of class with the same name. The ones with `<TT>.toplevel</TT>' suffix
+refer to screens and ``toplevel'' frames, i.e. frames that are
+not used for transient windows. Likewise `<TT>.transient</TT>' refers
+to frames in transient mode, and `<TT>.tiled</TT>' and `<TT>.floating</TT>'
to frames in, respectively, tiled and floating modes.
<P>
<P>
Unlike in Ion2, in Ion3 binding handlers are not normally passed as
-''anonymous functions'', although this is still possible. The preferred
-method now is to pass the code of the handler as a string. Two special
-variables are available in this code. These are
+``anonymous functions'', although this is still possible. The preferred
+method now is to pass the code of the handler as a string. Two following
+special variables are available in this code.
<P>
<TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
</TR>
<TR><TD ALIGN="LEFT"><TT>_chld</TT></TD>
<TD ALIGN="LEFT">Object corresponding to the currently active child window of the
- object referred to by <TT>_</TT>.</TD>
+ object referred to by <TT>_</TT>. This should seldom be needed.</TD>
</TR>
</TABLE>
<P>
-For example, supposing '<TT>_</TT>' is a WFrame, the following
-handler should move the active window to the right, if possible:
+For example, supposing <TT>_</TT> (underscore) is a WFrame, the
+following handler should move the active window to the right, if
+possible:
<P>
<PRE>
<P>
To suppress error messages, each binding handler may also be accompanied
-by a ''guard'' expression that blocks the handler from being called when
+by a ``guard'' expression that blocks the handler from being called when
the guard condition is not met. Currently the following guard expressions
are supported (for both <TT>_sub</TT> and <TT>_chld</TT>):
<TR><TD ALIGN="LEFT">Guard</TD>
<TD ALIGN="LEFT">Description</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>"_sub:non-nil"</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>_sub:non-nil</TT>'</TD>
<TD ALIGN="LEFT">The <TT>_sub</TT> parameter must be set.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>"_sub:SomeClass"</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>_sub:SomeClass</TT>'</TD>
<TD ALIGN="LEFT">The <TT>_sub</TT> parameter must be member
of class SomeClass.</TD>
</TR>
Key presses:
<UL>
-<LI><A HREF="#fn:kpress"><TT>kpress</TT></A><TT>(keyspec, handler [, guard])</TT>,
+<LI><A HREF="node7.html#fn:ioncore.kpress"><TT>kpress</TT></A>, and
+ <A HREF="node7.html#fn:ioncore.kpress_wait"><TT>kpress_wait</TT></A><TT>(keyspec, handler [, guard])</TT>.
</LI>
-<LI><A HREF="#fn:kpress_wait"><TT>kpress_wait</TT></A><TT>(keyspec, handler [, guard])</TT> and
+<LI><A HREF="node7.html#fn:ioncore.submap"><TT>submap</TT></A><TT>(keyspec, { ... more key bindings ... })</TT>.
</LI>
-<LI><A HREF="#fn:submap"><TT>submap</TT></A><TT>(keyspec, { ... more key bindings ... })</TT>.
+<LI><A HREF="node7.html#fn:ioncore.submap_enter"><TT>submap_enter</TT></A>, and
+ <A HREF="node7.html#fn:ioncore.submap_wait"><TT>submap_wait</TT></A><TT>(handler [, guard])</TT>.
</LI>
</UL>
Mouse actions:
<UL>
-<LI><A HREF="#fn:mclick"><TT>mclick</TT></A><TT>(buttonspec, handler [, guard])</TT>,
-</LI>
-<LI><A HREF="#fn:mdblclick"><TT>mdblclick</TT></A><TT>(buttonspec, handler [, guard])</TT>,
-</LI>
-<LI><A HREF="#fn:mpress"><TT>mpress</TT></A><TT>(buttonspec, handler [, guard])</TT> and
-</LI>
-<LI><A HREF="#fn:mdrag"><TT>mdrag</TT></A><TT>(buttonspec, handler [, guard])</TT>.
+<LI><A HREF="node7.html#fn:ioncore.mclick"><TT>mclick</TT></A>,
+ <A HREF="node7.html#fn:ioncore.mdblclick"><TT>mdblclick</TT></A>,
+ <A HREF="node7.html#fn:ioncore.mpress"><TT>mpress</TT></A>, and
+ <A HREF="node7.html#fn:ioncore.mdrag"><TT>mdrag</TT></A><TT>(buttonspec, handler [, guard])</TT>.
</LI>
</UL>
<P>
The actions that most of these functions correspond to should be clear
-and as explained in the reference, <A HREF="#fn:kpress_wait"><TT>kpress_wait</TT></A> is simply
-<A HREF="#fn:kpress"><TT>kpress</TT></A> with a flag set instructing Ioncore wait for all
-modifiers to be released before processing any further actions.
+and as explained in the reference, <A HREF="node7.html#fn:ioncore.kpress_wait"><TT>kpress_wait</TT></A> is simply
+<A HREF="node7.html#fn:ioncore.kpress"><TT>kpress</TT></A> with a flag set instructing Ioncore wait for
+all modifiers to be released before processing any further actions.
This is to stop one from accidentally calling e.g.
-<A HREF="node7.html#fn:WRegion.rqclose"><TT>WRegion.rqclose</TT></A> multiple times in a row. The <A HREF="#fn:submap"><TT>submap</TT></A>
-function is used to define submaps or ''prefix maps''. The second
-argument to this function is table listing the key press actions
-(<A HREF="#fn:kpress"><TT>kpress</TT></A>) in the submap
+<A HREF="node7.html#fn:WRegion.rqclose"><TT>WRegion.rqclose</TT></A> multiple times in a row. The
+<A HREF="node7.html#fn:ioncore.submap"><TT>submap</TT></A> function is used to define submaps or
+``prefix maps''. The second argument to this function is table listing
+the key press actions (<A HREF="node7.html#fn:ioncore.kpress"><TT>kpress</TT></A>) in the submap.
+The <A HREF="node7.html#fn:ioncore.submap_enter"><TT>submap_enter</TT></A> handler is called when the submap
+is entered, in which this handler is defined. Likewise, the
+<A HREF="node7.html#fn:ioncore.submap_wait"><TT>submap_wait</TT></A> handler is called when all modifiers
+have been released while waiting for further key presses in the submap.
<P>
The parameters <TT>keyspec</TT> and <TT>buttonspec</TT> are explained below
As seen above, the functions that create key binding specifications require
a <TT>keyspec</TT> argument. This argument should be a string containing the
name of a key as listed in the X header file <SPAN CLASS="textit">keysymdef.h</SPAN><A NAME="tex2html7"
- HREF="#foot871"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A> without the <TT>XK_</TT> prefix.
-<A NAME="872"></A>
+ HREF="#foot876"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A> without the <TT>XK_</TT> prefix.
+<A NAME="877"></A>
Most of the key names are quite intuitive while some are not. For example,
the <SPAN CLASS="textbf">Enter</SPAN> key on the main part of the keyboard has the less common
name <SPAN CLASS="textbf">Return</SPAN> while the one the numpad is called <SPAN CLASS="textbf">KP_Enter</SPAN>.
<P>
-The <TT>keyspec</TT> string may optionally have multiple ''modifier'' names
+The <TT>keyspec</TT> string may optionally have multiple ``modifier'' names
followed by a plus sign (<TT>+</TT>) as a prefix. X defines the following
modifiers:
-<BLOCKQUOTE>
+
+<P>
<SPAN CLASS="textbf">Shift</SPAN>, <SPAN CLASS="textbf">Control</SPAN>, <SPAN CLASS="textbf">Mod1</SPAN> to <SPAN CLASS="textbf">Mod5</SPAN>,
<SPAN CLASS="textbf">AnyModifier</SPAN> and <SPAN CLASS="textbf">Lock</SPAN>.
-<A NAME="873"></A>
-<A NAME="874"></A>
-<A NAME="875"></A>
-<A NAME="876"></A>
-<A NAME="877"></A>
-
-</BLOCKQUOTE>
+<A NAME="878"></A>
+<A NAME="879"></A>
+<A NAME="880"></A>
+<A NAME="881"></A>
+<A NAME="882"></A>
<P>
X allows binding all of these modifiers to almost any key and while this
list of modifiers does not explicitly list keys such as
-<SPAN CLASS="textbf">Alt</SPAN><A NAME="878"></A> that are common on modern keyboards, such
+<SPAN CLASS="textbf">Alt</SPAN><A NAME="883"></A> that are common on modern keyboards, such
keys are bound to one of the <SPAN CLASS="textbf">ModN</SPAN>. On systems running XFree86
<SPAN CLASS="textbf">Alt</SPAN> is usually <SPAN CLASS="textbf">Mod1</SPAN>. On Suns <SPAN CLASS="textbf">Mod1</SPAN> is the diamond key
-and <SPAN CLASS="textbf">Alt</SPAN> something else. One of the ''flying window'' keys on so
+and <SPAN CLASS="textbf">Alt</SPAN> something else. One of the ``flying window'' keys on so
called Windows-keyboards is probably mapped to <SPAN CLASS="textbf">Mod3</SPAN> if you have
-such a key. Use the program <SPAN CLASS="textit">xmodmap</SPAN><A NAME="879"></A>
+such a key. Use the program <SPAN CLASS="textit">xmodmap</SPAN><A NAME="884"></A>
to find out what exactly is bound where.
<P>
default.
<P>
-Ion ignores the <SPAN CLASS="textbf">Lock</SPAN> modifier and any <SPAN CLASS="textbf">ModN</SPAN> (<SPAN CLASS="MATH"></SPAN>)
-bound to <SPAN CLASS="textbf">NumLock</SPAN><A NAME="880"></A> or
-<SPAN CLASS="textbf">ScrollLock</SPAN><A NAME="881"></A>
+Ion ignores the <SPAN CLASS="textbf">Lock</SPAN> modifier and any <SPAN CLASS="textbf">ModN</SPAN> (<SPAN CLASS="MATH"><IMG
+ WIDTH="82" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
+ SRC="img2.png"
+ ALT="$N=1{\ldots} 5$"></SPAN>)
+bound to <SPAN CLASS="textbf">NumLock</SPAN><A NAME="885"></A> or
+<SPAN CLASS="textbf">ScrollLock</SPAN><A NAME="886"></A>
by default because such<A NAME="tex2html8"
- HREF="#foot850"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A> locking keys may otherwise
+ HREF="#foot855"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A> locking keys may otherwise
cause confusion.
<P>
Button specifications are similar to key definitions but now
instead of specifying modifiers and a key, you specify modifiers
and one of the button names <SPAN CLASS="textbf">Button1</SPAN> to
-<SPAN CLASS="textbf">Button5</SPAN><A NAME="882"></A>. Additionally the
+<SPAN CLASS="textbf">Button5</SPAN><A NAME="887"></A>. Additionally the
specification may end with an optional area name following an @-sign.
Only frames currently support areas, and the supported values in this
case are
-<TT>"border"</TT>, <TT>"tab"</TT>, <TT>"empty_tab"</TT>, <TT>"client"</TT> and
-<TT>nil</TT> (for the whole frame).
+`<TT>border</TT>', `<TT>tab</TT>', `<TT>empty_tab</TT>', `<TT>client</TT>'
+and <TT>nil</TT> (for the whole frame).
<P>
For example, the following code binds dragging a tab with the first
<P>
The default binding configuration contains references to the variables
<TT>META</TT> and <TT>ALTMETA</TT> instead of directly using the default
-values of <TT>"Mod1+"</TT> and <TT>""</TT> (nothing). As explained in
+values of `<TT>Mod1+</TT>' and `' (nothing). As explained in
section <A HREF="#sec:walkthrough">3.2</A>, the definitions of these variables
appear in <SPAN CLASS="textit">cfg_ion.lua</SPAN>. This way you can easily change the the
modifiers used by all bindings in the default configuration without
</H3>
<P>
-<A NAME="1128"></A>
-<A NAME="1185"></A>
-<A NAME="1186"></A>
-<A NAME="1187"></A>
+<A NAME="1144"></A>
+<A NAME="1198"></A>
+<A NAME="1199"></A>
+<A NAME="1200"></A>
In the stock configuration file setup, menus are defined in the file
<SPAN CLASS="textit">cfg_menus.lua</SPAN> as previously mentioned. The <SPAN CLASS="textit">mod_menu</SPAN> module
must be loaded for one to be able to define menus, and this is done with
<TR><TD ALIGN="LEFT">Menu name</TD>
<TD ALIGN="LEFT">Description</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>windowlist</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>windowlist</TT>'</TD>
<TD ALIGN="LEFT">List of all client windows. Activating an entry jumps to that window.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>workspacelist</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>workspacelist</TT>'</TD>
<TD ALIGN="LEFT">List of all workspaces. Activating an entry jumps to that workspaces.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>focuslist</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>focuslist</TT>'</TD>
<TD ALIGN="LEFT">List of client windows with recent activity in them, followed by
previously focused client windows.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>focuslist_</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>focuslist_</TT>'</TD>
<TD ALIGN="LEFT">List of previously focused client windows.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>stylemenu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>stylemenu</TT>'</TD>
<TD ALIGN="LEFT">List of available <SPAN CLASS="textit">look_*.lua</SPAN> style files. Activating an entry
loads that style and ask to save the selection.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>ctxmenu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>ctxmenu</TT>'</TD>
<TD ALIGN="LEFT">Context menu for given object.</TD>
</TR>
</TABLE>
</H3>
<P>
-The ''ctxmenu'' is a special menu that is assembled from a defined context
+The ``ctxmenu'' is a special menu that is assembled from a defined context
menu for the object for which the menu was opened for, but also includes
the context menus for the manager objects as submenus.
</PRE>
<P>
-Some of the same ''modes'' as were available for some bindings
-may also be used: <TT>WFrame.tiled</TT>, <TT>WFrame.floating</TT>,
-and <TT>WFrame.transient</TT>.
+Some of the same ``modes'' as were available for some bindings
+may also be used: `<TT>WFrame.tiled</TT>', `<TT>WFrame.floating</TT>',
+and `<TT>WFrame.transient</TT>'.
<P>
<TR><TD ALIGN="LEFT"><A HREF="node7.html#fn:mod_menu.grabmenu"><TT>mod_menu.grabmenu</TT></A></TD>
<TD ALIGN="LEFT">A special version of <A HREF="node7.html#fn:mod_menu.menu"><TT>mod_menu.menu</TT></A> that grabs the keyboard
and is scrolled with a given key until all modifiers have been released,
- after which the selected entry is activated. This function is meant to
- be used for implementing, for example, Win***s-style <SPAN CLASS="textbf">Alt-Tab</SPAN>
- handling.<A NAME="tex2html9"
- HREF="#foot1188"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></TD>
+ after which the selected entry is activated.</TD>
</TR>
</TABLE>
</H2>
<P>
-The so-called ''winprops''<A NAME="1283"></A> can be used to change how
+The so-called ``winprops''<A NAME="1291"></A> can be used to change how
specific windows are handled and to set up some kludges to deal with
badly behaving applications. They are defined by calling the function
<TT>defwinprop</TT> with a table containing the properties to set and the
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1438"></A>
+<DD><A NAME="1451"></A>
Set this to <TT>true</TT> for Acrobat Reader. It has an annoying
habit of trying to manage its dialogs instead of setting them as
transients and letting the window manager do its job, causing
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1439"></A>
+<DD><A NAME="1452"></A>
Set this to open the window in a floating frame, when
in a group.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1440"></A>
+<DD><A NAME="1453"></A>
Should the window be initially in full screen mode?
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1441"></A>
+<DD><A NAME="1454"></A>
Should configure requests on the window be ignored?
Only has effect on floating windows.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1442"></A>
+<DD><A NAME="1455"></A>
Ignore extended WM hints <TT>_NET_ACTIVE_WINDOW</TT> request.
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1443"></A>
+<DD><A NAME="1456"></A>
Should a newly created client window always be made
active, even if the allocated frame isn't.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1444"></A>
+<DD><A NAME="1457"></A>
If the region specified by <TT>target</TT> winprop does not exist
(or that winprop is not set), create a new workspace using the
previously stored layout (see <A HREF="node7.html#fn:ioncore.deflayout"><TT>ioncore.deflayout</TT></A>) named by
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1445"></A>
+<DD><A NAME="1458"></A>
Discard this winprop after first use.
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1446"></A>
+<DD><A NAME="1459"></A>
Put the window in the statusbar, in the named tray component,
- (The default tray component is called simply <TT>"systray"</TT>,
+ (The default tray component is called simply `<TT>systray</TT>',
and others you give names to in your custom template, always
- prefixed by <TT>"systray_"</TT>.
+ prefixed by `<TT>systray_</TT>'.
</DD>
</DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1447"></A>
+<DD><A NAME="1460"></A>
Should a newly mapped client window be switched to within
its frame.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1448"></A>
+<DD><A NAME="1461"></A>
The name of an object (workspace, frame) that should manage
windows of this type. See also <TT>new_group</TT>.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1449"></A>
- <TT>"normal"</TT>: No change in behaviour. <TT>"current"</TT>:
+<DD><A NAME="1462"></A>
+ `<TT>normal</TT>': No change in behaviour. `<TT>current</TT>':
The window should be thought of as a transient for the current
active client window (if any) even if it is not marked as a
- transient by the application. <TT>"off"</TT>: The window should
+ transient by the application. `<TT>off</TT>': The window should
be handled as a normal window even if it is marked as a
transient by the application.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1450"></A>
+<DD><A NAME="1463"></A>
Should frames be made transparent when this window is selected?
<BR>
<P>
Additionally, the winprops
-<TT>max_size</TT><A NAME="1451"></A>,
-<TT>min_size</TT><A NAME="1452"></A>,
-<TT>aspect</TT><A NAME="1453"></A>,
-<TT>resizeinc</TT><A NAME="1454"></A>,
+<TT>max_size</TT><A NAME="1464"></A>,
+<TT>min_size</TT><A NAME="1465"></A>,
+<TT>aspect</TT><A NAME="1466"></A>,
+<TT>resizeinc</TT><A NAME="1467"></A>,
and
-<TT>ignore_max_size</TT><A NAME="1455"></A>,
-<TT>ignore_min_size</TT><A NAME="1456"></A>,
-<TT>ignore_aspect</TT><A NAME="1457"></A>,
-<TT>ignore_resizeinc</TT><A NAME="1458"></A>,
+<TT>ignore_max_size</TT><A NAME="1468"></A>,
+<TT>ignore_min_size</TT><A NAME="1469"></A>,
+<TT>ignore_aspect</TT><A NAME="1470"></A>,
+<TT>ignore_resizeinc</TT><A NAME="1471"></A>,
may be used to override application-supplied size hints. The four
first ones are tables with the fields <TT>w</TT> and <TT>h</TT>, indicating
the width and height size hints in pixels, and the latter ignore
<P>
Finally, the boolean
-<TT>userpos</TT><A NAME="1459"></A> option may be used to
+<TT>userpos</TT><A NAME="1472"></A> option may be used to
override the <TT>USPosition</TT> flag of the size hints. Normally,
when this flag is set, Ion tries to respect the supplied window
position more than when it is not set. Obviously, this makes sense
</H3>
<P>
-The identification information in the winprop specification is usually the
-<TT>class</TT><A NAME="1460"></A>,
-<TT>role</TT><A NAME="1461"></A>,
-<TT>instance</TT><A NAME="1462"></A> and
-<TT>name</TT>
-of the window. The <TT>name</TT> field is a Lua-style regular expression
-matched against the window's title and the rest are strings that must
-exactly match the corresponding window information. It is not necessary
-to specify all of these fields.
+The identification information supported are
+<TT>class</TT><A NAME="1473"></A>,
+<TT>role</TT><A NAME="1474"></A>,
+<TT>instance</TT><A NAME="1475"></A>,
+<TT>name</TT><A NAME="1476"></A>,
+<TT>is_transient</TT><A NAME="1477"></A>, and
+<TT>is_dockapp</TT><A NAME="1478"></A>.
+It is not necessary to specify all of these fields.
+The first three are strings, and must exactly match the
+corresponding information obtained from the window's properties.
+The <TT>name</TT> field is a Lua-style regular expression matched against
+the window's title. The <TT>is_transient</TT> field is a boolean that can
+be used to include or exclude transients only, while the <TT>is_dockapp</TT>
+field is set by Ion for the dock windows of Window Maker dockapp protocol
+dockapps. Usually this is the only information available for these
+<SPAN CLASS="textit">icon</SPAN> windows.
<P>
Ion looks for a matching winprop in the order listed by the following
<TR><TD ALIGN="LEFT"><TT>class</TT></TD>
<TD ALIGN="LEFT"><TT>role</TT></TD>
<TD ALIGN="LEFT"><TT>instance</TT></TD>
-<TD ALIGN="LEFT"><TT>name</TT></TD>
+<TD ALIGN="LEFT">other</TD>
</TR>
<TR><TD ALIGN="LEFT">E</TD>
<TD ALIGN="LEFT">E</TD>
</DIV>
<P>
-If there are multiple winprops with other identification information
-the same but different <TT>name</TT>, the longest match is chosen.
+If there are multiple matching winprops with the same
+<TT>class</TT>, <TT>role</TT> and <TT>instance</TT>, but other information
+different, the most recently defined one is used.
<P>
for a window and all the transient windows managed within it.
<P>
-<A NAME="1411"></A>
+<A NAME="1428"></A>
Another way to get the identification information is to use <TT>xprop</TT>.
Simply run To get class and instance, simply run <TT>xprop WM_CLASS</TT>
and click on the particular window of interest. The class is the latter of
This method, however, will not work on transients.
<P>
-<A NAME="1415"></A>
-So-called ''transient windows'' are usually short-lived dialogs (although
+<A NAME="1432"></A>
+So-called ``transient windows'' are usually short-lived dialogs (although
some programs abuse this property) that have a parent window that they are
-''transient for''. On tiled workspaces Ion displays these windows
-simulatenously with the parent window at the bottom of the same frame.
+``transient for''. On tiled workspaces Ion displays these windows
+simultaneously with the parent window at the bottom of the same frame.
Unfortunately <TT>xprop</TT> is stupid and can't cope with this situation,
returning the parent window's properties when the transient is clicked on.
For this reason you'll have to do a little extra work to get the properties
-for that window.<A NAME="tex2html11"
- HREF="#foot1464"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A>
+for that window.<A NAME="tex2html9"
+ HREF="#foot1480"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A>
<P>
Finally, it should be mentioned that too many authors these days
-''forget'' to set this vital identification to anything meaningful:
-everything except name is the same for all of the programs's
-windows, for example.
+``forget'' to set this vital identification to anything meaningful:
+everything except name is the same for all of the program's
+windows, for example. Some other programs only set this information
+after the window has been mapped, i.e. the window manager has been
+told to start managing it, which is obviously too late.
+Gtk applications in particular are often guilty on both counts.
<P>
<P>
<H4><A NAME="SECTION00454200000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
-</H4>
-
-<P>
-Mozilla Firebird (0.7) incorrectly does not set the <TT>WM_TRANSIENT_FOR</TT>
-property for the dialog that is used to ask the action to take for a file.
-It, however, sets the the property point to the main window for the save
-dialog. This can be annoying and confusing, as the first dialog is not
-closed before the second is displayed.
-
-<P>
-We'd like the first dialog to be transient to the main window. The closest
-we can get to that is to consider it transient to the current window (if
-there's one). Unfortunately Firebird does not set any meaningful classes,
-instances or roles for the windows, so we'll have to rely on an ugly title
-match.
-
-<P>
-<PRE>
-defwinprop{
- class = "MozillaFirebird-bin",
- name = "Opening .*",
- transient_mode = "current",
-}
-</PRE>
-
-<P>
-
-<H4><A NAME="SECTION00454300000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Forcing newly created windows in named frames</A>
</H4>
<P>
<P>
For this example to work, we have to somehow create a frame named
-<TT>sysmonframe</TT>. One way to do this is to make the following
+`<TT>sysmonframe</TT>'. One way to do this is to make the following
call in the <SPAN CLASS="textbf">Mod1+F3</SPAN> Lua code query:
<P>
Recall that <TT>_</TT> points to the multiplexer (frame or screen) in which
the query was opened. Running this code should open a new query prefilled
with the current name of the frame. In our example we would change the
-name to <TT>sysmonframe</TT>, but we could just as well have used the
+name to `<TT>sysmonframe</TT>', but we could just as well have used the
default name formed from the frame's class name and an instance number.
<P>
+<H2><A NAME="SECTION00460000000000000000"></A>
+<A NAME="sec:statusbar"></A>
+<BR>
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> The statusbar
+</H2>
+
+<P>
+The <SPAN CLASS="textit">mod_statusbar</SPAN> module provides a statusbar that adapts to
+layouts of tilings, using only the minimal space needed. Ion only
+supports one adaptive ``status display'' object per screen, so this
+statusbar is mutually exclusive with the embedded mode of <SPAN CLASS="textit">mod_dock</SPAN>
+docks.
+
+<P>
+The statusbar is configured in <SPAN CLASS="textit">cfg_statusbar.lua</SPAN>. Typically,
+the configuration consists of two steps: creating a statusbar with
+<A HREF="node7.html#fn:mod_statusbar.create"><TT>mod_statusbar.create</TT></A>, and then launching the separate
+<TT>ion-statusd</TT> status daemon process with
+<A HREF="node7.html#fn:mod_statusbar.launch_statusd"><TT>mod_statusbar.launch_statusd</TT></A>. This latter phase is done
+automatically, if it was not done by the configuration file, but
+the configuration file may pass extra parameters to <TT>ion-statusd</TT>
+monitors. (See Section <A HREF="node6.html#sec:statusd">5.4</A> for more information on
+writing <TT>ion-statusd</TT> monitors.)
+
+<P>
+A typical <SPAN CLASS="textit">cfg_statusbar.lua</SPAN> configuration might look as follows:
+
+<P>
+<PRE>
+-- Create a statusbar
+mod_statusbar.create{
+ screen = 0, -- First screen,
+ pos = 'bl', -- bottom left corner
+ systray = true, -- Swallow systray windows
+
+ -- The template
+ template = "[ %date || load:% %>load || mail:% %>mail_new/%>mail_total ]"
+ .. " %filler%systray",
+}
+
+-- Launch ion-statusd.
+mod_statusbar.launch_statusd{
+ -- Date meter
+ date={
+ -- ISO-8601 date format with additional abbreviated day name
+ date_format='%a %Y-%m-%d %H:%M',
+ },
+}
+</PRE>
+
+<P>
+
+<H3><A NAME="SECTION00461000000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> The template</A>
+</H3>
+
+<P>
+The template specifies what is shown on the statusbar; for information
+on the other options to <A HREF="node7.html#fn:mod_statusbar.create"><TT>mod_statusbar.create</TT></A>, see the reference.
+Strings of the form `<TT>%spec</TT>' tokens specially interpreter by
+the statusbar; the rest appears verbatim. The <TT>spec</TT> typically
+consists of the name of the value/meter to display (beginning with a latin
+alphabet), but may be preceded by an alignment specifier and a number
+specifying the minimum width. The alignment specifiers are: `<TT>></TT>'
+for right, `<TT><</TT>' for left, and `<TT>|</TT>' for centring. Additionally,
+space following `<TT>%</TT>' (that is, the string `<TT>% </TT>'), adds
+``stretchable space'' at that point. The special string `<TT>%filler</TT>'
+may be used to flush the rest of the template to the right end of
+the statusbar.
+
+<P>
+The stretchable space works as follows: <SPAN CLASS="textit">mod_statusbar</SPAN> remembers
+the widest string (in terms of graphical presentation) that it has
+seen for each meter, unless the width has been otherwise constrained.
+If there is stretchable space in the template, it tries to make the
+meter always take this much space, by stretching any space found in
+the direction indicated by the alignment specifier: the opposite
+direction for left or right alignment, and both for centring.
+
+<P>
+
+<H3><A NAME="SECTION00462000000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> The systray</A>
+</H3>
+
+<P>
+The special `<TT>%systray</TT>' and `<TT>%systray_*</TT>'
+(`<TT>*</TT>' varying) monitors indicate where to place system tray
+windows. There may be multiple of these. KDE-protocol system tray
+icons are placed in `<TT>%systray</TT>' automatically, unless disabled
+with the <TT>systray</TT> option. Otherwise the <TT>statusbar</TT> winprop may
+be used to place any window in any particular `<TT>%systray_*</TT>'.
+
+<P>
+
+<H3><A NAME="SECTION00463000000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Monitors</A>
+</H3>
+
+<P>
+The part before the first
+underscore of each monitor name, describes the script/plugin/module
+that provides the meter, and any configuration should be passed
+in the a corresponding sub-table <A HREF="node7.html#fn:mod_statusbar.launch_statusd"><TT>mod_statusbar.launch_statusd</TT></A>.
+Ion comes with date, load and mail (for plain old mbox)
+<TT>ion-statusd</TT> monitor scripts. More may be obtained from
+the scripts repository [<A
+ HREF="node12.html#scripts">1</A>]. These included scripts
+provide the following monitors and their options
+
+<P>
+
+<H4><A NAME="SECTION00463100000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Date</A>
+</H4>
+
+<P>
+Options: <TT>date_format</TT>: The date format in as seen above,
+in the usual <TT>strftime</TT> format. <TT>formats</TT>: table of
+formats for additional date monitors, the key being the name
+of the monitor (without the `<TT>date_</TT>' prefix).
+
+<P>
+Monitors: `<TT>date</TT>' and other user-specified ones with the
+`<TT>date_</TT>' prefix.
+
+<P>
+
+<H4><A NAME="SECTION00463200000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Load</A>
+</H4>
+
+<P>
+Options: <TT>update_interval</TT>: Update interval in milliseconds
+(default 10s). <TT>important_threshold</TT>: Threshold above which
+the load is marked as important (default 1.5), so that the
+drawing engine may be suitably hinted. <TT>critical_threshold</TT>:
+Threshold above which the load is marked as critical (default 4.0).
+
+<P>
+Monitors: `<TT>load</TT>' (for all three values),
+`<TT>load_1min</TT>', `<TT>load_5min</TT>' and `<TT>load_15min</TT>'.
+
+<P>
+
+<H4><A NAME="SECTION00463300000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Mail</A>
+</H4>
+
+<P>
+Options: <TT>update_interval</TT>: Update interval in milliseconds
+(default 1min). <TT>mbox</TT>: mbox-format mailbox location
+(default <code>$MAIL</code>).
+<TT>files</TT>: list of additional mailboxes, the key giving the
+name of the monitor.
+
+<P>
+Monitors: `<TT>mail_new</TT>', `<TT>mail_unread</TT>',
+`<TT>mail_total</TT>', and corresponding
+`<TT>mail_*_new</TT>', `<TT>mail_*_unread</TT>', and `<TT>mail_*_total</TT>'
+for the additional mailboxes (`<TT>*</TT>' varying).
+
+<P>
+
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot871">...keysymdef.h</A><A
+<DT><A NAME="foot876">...keysymdef.h</A><A
HREF="node4.html#tex2html7"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
<DD>This file can usually be found in the directory
<SPAN CLASS="textit">/usr/X11R6/include/X11/</SPAN>.
</DD>
-<DT><A NAME="foot850">... such</A><A
+<DT><A NAME="foot855">... such</A><A
HREF="node4.html#tex2html8"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
<DD>Completely useless keys that should be
gotten rid of in the author's opinion.
</DD>
-<DT><A NAME="foot1188">... handling.</A><A
+<DT><A NAME="foot1480">... window.</A><A
HREF="node4.html#tex2html9"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
-<DD>See the <SPAN CLASS="textit">wcirculate.lua</SPAN> script in the Ion
- scripts repository <TT><A NAME="tex2html10"
- HREF="http://iki.fi/tuomov/repos/ion-scripts-3/">http://iki.fi/tuomov/repos/ion-scripts-3/</A></TT>.
-
-</DD>
-<DT><A NAME="foot1464">... window.</A><A
- HREF="node4.html#tex2html11"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
<DD>There's a patch to <TT>xprop</TT> to
fix this, but nothing seems to be happening with respect to including it in
XFree86.
</DL>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html267"
+<A NAME="tex2html288"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html261"
+<A NAME="tex2html282"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html255"
+<A NAME="tex2html276"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html263"
+<A NAME="tex2html284"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html265"
+<A NAME="tex2html286"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html268"
+<B> Next:</B> <A NAME="tex2html289"
HREF="node5.html">4. Graphical styles</A>
-<B> Up:</B> <A NAME="tex2html262"
+<B> Up:</B> <A NAME="tex2html283"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html256"
+<B> Previous:</B> <A NAME="tex2html277"
HREF="node3.html">2. Preliminaries: Key concepts</A>
- <B> <A NAME="tex2html264"
+ <B> <A NAME="tex2html285"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html266"
+ <B> <A NAME="tex2html287"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html304"
+<A NAME="tex2html331"
HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html298"
+<A NAME="tex2html325"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html292"
+<A NAME="tex2html319"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html300"
+<A NAME="tex2html327"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html302"
+<A NAME="tex2html329"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html305"
+<B> Next:</B> <A NAME="tex2html332"
HREF="node6.html">5. Scripting</A>
-<B> Up:</B> <A NAME="tex2html299"
+<B> Up:</B> <A NAME="tex2html326"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html293"
+<B> Previous:</B> <A NAME="tex2html320"
HREF="node4.html">3. Basic configuration</A>
- <B> <A NAME="tex2html301"
+ <B> <A NAME="tex2html328"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html303"
+ <B> <A NAME="tex2html330"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html306"
+<LI><A NAME="tex2html333"
HREF="node5.html#SECTION00510000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles</A>
<UL>
-<LI><A NAME="tex2html307"
+<LI><A NAME="tex2html334"
HREF="node5.html#SECTION00511000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Known styles and substyles</A>
<UL>
-<LI><A NAME="tex2html308"
+<LI><A NAME="tex2html335"
HREF="node5.html#SECTION00511100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frames</A>
-<LI><A NAME="tex2html309"
+<LI><A NAME="tex2html336"
HREF="node5.html#SECTION00511200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> Tabs and menu entries</A>
-<LI><A NAME="tex2html310"
+<LI><A NAME="tex2html337"
HREF="node5.html#SECTION00511300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> The rest</A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html311"
+<LI><A NAME="tex2html338"
HREF="node5.html#SECTION00520000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining styles for the default drawing engine</A>
<UL>
-<LI><A NAME="tex2html312"
+<LI><A NAME="tex2html339"
HREF="node5.html#SECTION00521000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> The structure of the configuration files</A>
-<LI><A NAME="tex2html313"
+<LI><A NAME="tex2html340"
HREF="node5.html#SECTION00522000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Defining the styles</A>
<UL>
-<LI><A NAME="tex2html314"
+<LI><A NAME="tex2html341"
HREF="node5.html#SECTION00522100000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Colours</A>
-<LI><A NAME="tex2html315"
+<LI><A NAME="tex2html342"
HREF="node5.html#SECTION00522200000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Borders and widths</A>
-<LI><A NAME="tex2html316"
+<LI><A NAME="tex2html343"
HREF="node5.html#SECTION00522300000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> Text</A>
-<LI><A NAME="tex2html317"
+<LI><A NAME="tex2html344"
HREF="node5.html#SECTION00522400000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> Miscellaneous</A>
-<LI><A NAME="tex2html318"
+<LI><A NAME="tex2html345"
HREF="node5.html#SECTION00522500000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> Substyles</A>
</UL>
-<LI><A NAME="tex2html319"
+<LI><A NAME="tex2html346"
HREF="node5.html#SECTION00523000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> An example</A>
</UL>
<BR>
-<LI><A NAME="tex2html320"
+<LI><A NAME="tex2html347"
HREF="node5.html#SECTION00530000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
<UL>
-<LI><A NAME="tex2html321"
- HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Extra fields for style <TT>frame</TT></A>
-<LI><A NAME="tex2html322"
- HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style <TT>dock</TT></A>
+<LI><A NAME="tex2html348"
+ HREF="node5.html#SECTION00531000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frame user attributes</A>
+<LI><A NAME="tex2html349"
+ HREF="node5.html#SECTION00532000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style `<TT>frame</TT>'</A>
+<LI><A NAME="tex2html350"
+ HREF="node5.html#SECTION00533000000000000000"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Extra fields for style `<TT>dock</TT>'</A>
</UL></UL>
<!--End of Table of Child-Links-->
<HR>
This chapter first gives in section <A HREF="#sec:engines">4.1</A> a general outline
of how drawing engines are used, of style specifications and then
in section <A HREF="#sec:defaultde">4.2</A> describes how to specify styles
-for the default drawing engine.
+for the default drawing engine. Some additional settings and
+user attributes are explained in Sections <A HREF="#sec:grmisc">4.3</A>.
<P>
<H2><A NAME="SECTION00510000000000000000"></A>
-<A NAME="sec:engines"></A><A NAME="1708"></A><A NAME="1709"></A>
+<A NAME="sec:engines"></A><A NAME="1887"></A><A NAME="1888"></A>
<BR>
<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles
</H2>
<P>
Ion's drawing routines are abstracted into so-called drawing engine
modules that can, again depending on the system, be dynamically
-loaded as needed. The drawing engine modules provide ''brushes''
+loaded as needed. The drawing engine modules provide ``brushes''
that objects can use to draw some high-level primitives such
as borders and text boxes (in addition to simple text and rectangle
drawing) on their windows and configure e.g. the shape and
</PRE>
<P>
-An example of such a style specification is <TT>tab-frame</TT>;
+An example of such a style specification is `<TT>tab-frame</TT>';
see the table in subsection <A HREF="#sec:styles">4.1.1</A> for more styles.
<P>
When an object asks for a brush of certain style, the selected
drawing engine will attempt to find the closest match to this
specification. The styles/brushes defined by the drawing engines
-may have asterisks (<code>*</code>) as some of the elements indicating
+may have asterisks (`<TT>*</TT>') as some of the elements indicating
a match to anything. Exact matches are preferred to asterisk
matches and longer matches to shorter. For example, let a brush
-for style <TT>foo-bar-baz</TT> be queried, then the following
+for style `<TT>foo-bar-baz</TT>' be queried, then the following
brushes are in order of preference:
<P>
<PRE>
attr1-attr2-...-attrn
</PRE>
-These extra attributes are called <SPAN CLASS="textit">substyles</SPAN><A NAME="1720"></A>
+These extra attributes are called <SPAN CLASS="textit">substyles</SPAN><A NAME="1900"></A>
and allow, for example, the state of the object to be indicated
by different colour sets while keeping the interface at an
abstract level and the drawing engine completely ignorant
<TR><TD ALIGN="LEFT">Style name</TD>
<TD ALIGN="LEFT">Description</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>frame</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame</TT>'</TD>
<TD ALIGN="LEFT">Style for frames.
- Substyle attributes: <TT>active</TT>/<TT>inactive</TT>
+ Substyle attributes: `<TT>active</TT>'/`<TT>inactive</TT>'
(mutually exclusive) and
- <TT>quasiactive</TT>/<TT>not_quasiactive</TT>.
+ `<TT>quasiactive</TT>'/`<TT>not_quasiactive</TT>'.
A frame is ``quasiactive'' when an active region
- has a backlink to it, such as a detached window.</TD>
+ has a back-link to it, such as a detached window.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>frame-tiled</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-tiled</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for tiled frames.
- Substyle attributes as for <TT>frame</TT>.</TD>
+ Substyle attributes as for `<TT>frame</TT>'.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>frame-tiled-alt</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-tiled-alt</TT>'</TD>
<TD ALIGN="LEFT">An alternative style for tiled frames.
Often used to disable the tab-bar.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>frame-floating</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-floating</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for floating
frames.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>frame-transient</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>frame-transient</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for frames
containing transient windows.</TD>
</TR>
<TR><TD ALIGN="LEFT">Style name</TD>
<TD ALIGN="LEFT">Description</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab</TT>'</TD>
<TD ALIGN="LEFT">Style for frames' tabs and menu entries.
Substyle attributes:
- <TT>active</TT>/<TT>inactive</TT> and
- <TT>selected</TT>/<TT>unselected</TT></TD>
+ `<TT>active</TT>'/`<TT>inactive</TT>' and
+ `<TT>selected</TT>'/`<TT>unselected</TT>'</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for frames' tabs.
Additional substyle attributes include:
- <TT>tagged</TT>/<TT>not_tagged</TT>,
- <TT>dragged</TT>/<TT>not_dragged</TT>,
- <TT>activity</TT>/<TT>no_activity</TT> and
- <TT>quasiactive</TT>/<TT>not_quasiactive</TT>.</TD>
+ `<TT>tagged</TT>'/`<TT>not_tagged</TT>',
+ `<TT>dragged</TT>'/`<TT>not_dragged</TT>',
+ `<TT>activity</TT>'/`<TT>no_activity</TT>',
+ `<TT>quasiactive</TT>'/`<TT>not_quasiactive</TT>'.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-tiled</TT>,</TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-tiled</TT>',</TD>
<TD ALIGN="LEFT"> </TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-tiled-alt</TT>,</TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-tiled-alt</TT>',</TD>
<TD ALIGN="LEFT"> </TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-floating</TT>,</TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-floating</TT>',</TD>
<TD ALIGN="LEFT"> </TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-frame-transient</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-frame-transient</TT>'</TD>
<TD ALIGN="LEFT">More specific styles for frames in the
different modes.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-menuentry</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-menuentry</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for entries in WMenus.
- Additional substyle attributes include <TT>submenu</TT> and
- occasionally also <TT>activity</TT> is used.</TD>
+ Additional substyle attributes include `<TT>submenu</TT>' and
+ occasionally also `<TT>activity</TT>' is used.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>tab-menuentry-bigmenu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>tab-menuentry-bigmenu</TT>'</TD>
<TD ALIGN="LEFT">An alternate style for entries in WMenus.</TD>
</TR>
</TABLE>
<TR><TD ALIGN="LEFT">Style name</TD>
<TD ALIGN="LEFT">Description</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>input</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input</TT>'</TD>
<TD ALIGN="LEFT">A style for WInputs.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>input-edln</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-edln</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for WEdlns.
- Substyle attributes: <TT>selection</TT> for selected text and
- <TT>cursor</TT> for the cursor indicating current editing point.</TD>
+ Substyle attributes: `<TT>selection</TT>' for selected text and
+ `<TT>cursor</TT>' for the cursor indicating current editing point.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>input-message</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-message</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for WMessages.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>input-menu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-menu</TT>'</TD>
<TD ALIGN="LEFT">A more specific style for WMenus.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>input-menu-bigmenu</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>input-menu-bigmenu</TT>'</TD>
<TD ALIGN="LEFT">An alternate style for WMenus.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>moveres_display</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>moveres_display</TT>'</TD>
<TD ALIGN="LEFT">The box displaying position/size when
moving or resizing frames.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><TT>dock</TT></TD>
+<TR><TD ALIGN="LEFT">`<TT>stdisp</TT>'</TD>
+<TD ALIGN="LEFT">Any status display.</TD>
+</TR>
+<TR><TD ALIGN="LEFT">`<TT>stdisp-dock</TT>'</TD>
<TD ALIGN="LEFT">The dock.</TD>
</TR>
+<TR><TD ALIGN="LEFT">`<TT>stdisp-statusbar</TT>'</TD>
+<TD ALIGN="LEFT">The statusbar. Substyles include:
+ the name of any monitor/meter (such as `<TT>date</TT>'), and
+ the supplied hint. Typical hints are: `<TT>normal</TT>',
+ `<TT>important</TT>', and `<TT>critical</TT>'.</TD>
+</TR>
</TABLE>
<P>
<P>
The <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> function sees if the engine
given as argument is registered (the default drawing engine is
-simply called ''de''). If the engine could not be found, it
+simply called ``de''). If the engine could not be found, it
tries to load a module of the same name. If the engine still
-is not registered, <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> returns <TT>false</TT>
+is not registered, <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> returns `<TT>false</TT>'
and in this case we also exit the style setup script.
If the engine was found, <A HREF="node7.html#fn:gr.select_engine"><TT>gr.select_engine</TT></A> sees that
further requests for brushes are forwarded to that engine
-and returns <TT>true</TT>.
+and returns `<TT>true</TT>'.
<P>
Before defining new styles it may be a good idea to clear old
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="1817"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="2003"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4.1:</STRONG>
Sketch of different border styles and elements</CAPTION>
<TD ALIGN="LEFT">Description</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>highlight_colour</TT></TD>
-<TD ALIGN="LEFT">Colour for the ''highlight'' part of a border.</TD>
+<TD ALIGN="LEFT">Colour for the ``highlight'' part of a border.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>shadow_colour</TT></TD>
-<TD ALIGN="LEFT">Colour for the ''highlight'' part of a border.</TD>
+<TD ALIGN="LEFT">Colour for the ``shadow'' part of a border.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>foreground_colour</TT></TD>
<TD ALIGN="LEFT">Colour for the normal drawing operations, e.g. text.</TD>
background colour boxes.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>padding_colour</TT></TD>
-<TD ALIGN="LEFT">Colour for the ''padding'' part of a border border. Set to
+<TD ALIGN="LEFT">Colour for the ``padding'' part of a border border. Set to
<TT>background_colour</TT> if unset.</TD>
</TR>
</TABLE>
</TR>
<TR><TD ALIGN="LEFT"><TT>border_style</TT></TD>
<TD ALIGN="LEFT">A string indicating the style of border; one of
- elevated/inlaid/ridge/groove as seen in the
- above sketch.</TD>
+ `<TT>elevated</TT>'/`<TT>inlaid</TT>'/`<TT>ridge</TT>'/`<TT>groove</TT>'
+ as seen in the above sketch.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>border_sides</TT></TD>
<TD ALIGN="LEFT">A string indicating which sides of the border
- to draw: all/tb/lr for all, top and bottom, and
- left and right. To control between left/right
- and top/bottom, use the pixel options below.</TD>
+ to draw: `<TT>all</TT>'/`<TT>tb</TT>'/`<TT>lr</TT>' for all,
+ top and bottom, and left and right. To control between
+ left/right and top/bottom, use the pixel options below.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>highlight_pixels</TT></TD>
<TD ALIGN="LEFT">Width of the highlight part of the border in pixels.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>text_align</TT></TD>
<TD ALIGN="LEFT">How text is to be aligned in text boxes/tabs; one of
- the strings left/right/center.</TD>
+ the strings `<TT>left</TT>'/`<TT>right</TT>'/`<TT>center</TT>'.</TD>
</TR>
</TABLE>
<P>
As discussed in previous sections, styles may have substyles to e.g.
-indicate different states of the object being drawn. The ''de'' engine
+indicate different states of the object being drawn. The ``de'' engine
limits what can be configured in substyles to the set of colours in the
first table above, but also specifically interprets for the main style
-<TT>tab-frame</TT> the substyles <TT>*-*-tagged</TT> and <TT>*-*-*-dragged</TT>
+`<TT>tab-frame</TT>' the substyles `<TT>*-*-tagged</TT>' and `<TT>*-*-*-dragged</TT>'
by, respectively, drawing a right angle shape at the top right corner
of a tab and by shading the tab with a stipple pattern. Also for
-menus the substyles <TT>*-*-submenu</TT> are handled as a special case.
+menus the substyles `<TT>*-*-submenu</TT>' are handled as a special case.
<P>
Substyles are defined with the function <A HREF="node7.html#fn:de.substyle"><TT>de.substyle</TT></A> within the
<P>
-<H2><A NAME="SECTION00530000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings</A>
+<H2><A NAME="SECTION00530000000000000000"></A>
+<A NAME="sec:grmisc"></A>
+<BR>
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Miscellaneous settings
</H2>
<P>
-The following style fields are independent of the drawing engine used,
-but are related to objects' styles and therefore configured in the drawing
-engine configuration file.
+
+<H3><A NAME="SECTION00531000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Frame user attributes</A>
+</H3>
<P>
+The function <A HREF="node7.html#fn:WFrame.set_grattr"><TT>WFrame.set_grattr</TT></A> may be used to give frames
+(and their tabs) arbitrary extra attributes to be passed to the
+drawing engine. Hence, by configuring such substyles in the style
+configuration files, and turning on the attribute when needed,
+scripts may display visual cues related to the frame. There is
+also one extra attribute specially interpreted by the default
+drawing engine: the `<TT>numbered</TT>' attribute, which causes
+numbers to be displayed on the tabs.
-<H3><A NAME="SECTION00531000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Extra fields for style <TT>frame</TT></A>
+<P>
+
+<H3><A NAME="SECTION00532000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style `<TT>frame</TT>'</A>
</H3>
+<P>
+The following style fields are independent of the drawing engine used,
+but are related to objects' styles and therefore configured in the drawing
+engine configuration file.
+
<P>
<TABLE CELLPADDING=3 BORDER="1" WIDTH="100%">
<TR><TD ALIGN="LEFT">Field</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>bar</TT></TD>
<TD ALIGN="LEFT">Controls the style of the tab-bar. Possible values
- are the strings <TT>"none"</TT>, <TT>"inside"</TT>, <TT>"outside"</TT>
- and <TT>"shaped"</TT>, with the last providing the PWM-style
+ are the strings `<TT>none</TT>', `<TT>inside</TT>', `<TT>outside</TT>'
+ and `<TT>shaped</TT>', with the last providing the PWM-style
tab-bars for floating frames.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>floatframe_tab_min_w</TT></TD>
<TR><TD ALIGN="LEFT"><TT>floatframe_bar_max_w_q</TT></TD>
<TD ALIGN="LEFT">Maximum tab-bar width quotient of
frame width for the shaped styles. A number in the
- interval <SPAN CLASS="MATH"></SPAN>.</TD>
+ interval <SPAN CLASS="MATH"><IMG
+ WIDTH="42" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
+ SRC="img3.png"
+ ALT="$(0, 1]$"></SPAN>.</TD>
</TR>
</TABLE>
<P>
-<H3><A NAME="SECTION00532000000000000000">
-<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Extra fields for style <TT>dock</TT></A>
+<H3><A NAME="SECTION00533000000000000000">
+<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Extra fields for style `<TT>dock</TT>'</A>
</H3>
<P>
</TR>
<TR><TD ALIGN="LEFT"><TT>outline_style</TT></TD>
<TD ALIGN="LEFT">How borders are drawn:
- <TT>"none"</TT> - no border,
- <TT>"all"</TT> - border around whole dock,
- <TT>"each"</TT> - border around each dockapp.</TD>
+ `<TT>none</TT>' - no border,
+ `<TT>all</TT>' - border around whole dock,
+ `<TT>each</TT>' - border around each dockapp.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>tile_size</TT></TD>
-<TD ALIGN="LEFT">A table with entries <TT>width</TT> and <TT>height</TT>,
+<TD ALIGN="LEFT">A table with entries `<TT>width</TT>' and `<TT>height</TT>',
indicating the width and height of tiles in pixels.</TD>
</TR>
</TABLE>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html304"
+<A NAME="tex2html331"
HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html298"
+<A NAME="tex2html325"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html292"
+<A NAME="tex2html319"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html300"
+<A NAME="tex2html327"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html302"
+<A NAME="tex2html329"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html305"
+<B> Next:</B> <A NAME="tex2html332"
HREF="node6.html">5. Scripting</A>
-<B> Up:</B> <A NAME="tex2html299"
+<B> Up:</B> <A NAME="tex2html326"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html293"
+<B> Previous:</B> <A NAME="tex2html320"
HREF="node4.html">3. Basic configuration</A>
- <B> <A NAME="tex2html301"
+ <B> <A NAME="tex2html328"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html303"
+ <B> <A NAME="tex2html330"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html335"
+<A NAME="tex2html363"
HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html329"
+<A NAME="tex2html357"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html323"
+<A NAME="tex2html351"
HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html331"
+<A NAME="tex2html359"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html333"
+<A NAME="tex2html361"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html336"
+<B> Next:</B> <A NAME="tex2html364"
HREF="node7.html">6. Function reference</A>
-<B> Up:</B> <A NAME="tex2html330"
+<B> Up:</B> <A NAME="tex2html358"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html324"
+<B> Previous:</B> <A NAME="tex2html352"
HREF="node5.html">4. Graphical styles</A>
- <B> <A NAME="tex2html332"
+ <B> <A NAME="tex2html360"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html334"
+ <B> <A NAME="tex2html362"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html337"
+<LI><A NAME="tex2html365"
HREF="node6.html#SECTION00610000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Hooks</A>
-<LI><A NAME="tex2html338"
+<LI><A NAME="tex2html366"
HREF="node6.html#SECTION00620000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Referring to regions</A>
<UL>
-<LI><A NAME="tex2html339"
+<LI><A NAME="tex2html367"
HREF="node6.html#SECTION00621000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Direct object references</A>
-<LI><A NAME="tex2html340"
+<LI><A NAME="tex2html368"
HREF="node6.html#SECTION00622000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> Name-based lookups</A>
</UL>
<BR>
-<LI><A NAME="tex2html341"
+<LI><A NAME="tex2html369"
HREF="node6.html#SECTION00630000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Alternative winprop selection criteria</A>
-<LI><A NAME="tex2html342"
+<LI><A NAME="tex2html370"
HREF="node6.html#SECTION00640000000000000000"><SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Writing <TT>ion-statusd</TT> monitors</A>
</UL>
<!--End of Table of Child-Links-->
<P>
This chapter documents some additional features of the Ion configuration
and scripting interface that can be used for more advanced scripting than
-the basic configuration exlained in chapter <A HREF="node4.html#chap:config">3</A>.
+the basic configuration explained in chapter <A HREF="node4.html#chap:config">3</A>.
<P>
<P>
Hooks are lists of functions to be called when a certain event occurs.
-There are two types of them; normal and ''alternative'' hooks. Normal
+There are two types of them; normal and ``alternative'' hooks. Normal
hooks do not return anything, but alt-hooks should return a boolean
-indicating whether it handled its assigned task succesfully. In the case
+indicating whether it handled its assigned task successfully. In the case
that <TT>true</TT> is returned, remaining handlers are not called.
<P>
Hook handlers are registered by first finding the hook
-with <A HREF="#fn:ioncore.get_hook"><TT>ioncore.get_hook</TT></A> and then calling <A HREF="#fn:WHook.add"><TT>WHook.add</TT></A>
-on the (succesfull) result with the handler as parameter. Similarly
-handlers are unregistered with <A HREF="#fn:WHook.remove"><TT>WHook.remove</TT></A>. For example:
+with <A HREF="node7.html#fn:ioncore.get_hook"><TT>ioncore.get_hook</TT></A> and then calling <A HREF="node7.html#fn:WHook.add"><TT>WHook.add</TT></A>
+on the (successful) result with the handler as parameter. Similarly
+handlers are unregistered with <A HREF="node7.html#fn:WHook.remove"><TT>WHook.remove</TT></A>. For example:
<P>
<PRE>
the hook reference, section <A HREF="node7.html#sec:hookref">6.9</A>.
<P>
-Note that many of the hooks are called in ''protected mode'' and can not
+Note that many of the hooks are called in ``protected mode'' and can not
use any functions that modify Ion's internal state. TODO: More detailed
documentation when this is final.
</H3>
<P>
-All Ion objects are passed to Lua scriptss as 'userdatas', and you may
+All Ion objects are passed to Lua scripts as 'userdatas', and you may
safely store such object references for future use. The C-side object
may be destroyed while Lua still refers to the object. All exported
functions gracefully fail in such a case, but if you need to explicitly
<P>
-<H2><A NAME="SECTION00640000000000000000">
-<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Writing <TT>ion-statusd</TT> monitors</A>
+<H2><A NAME="SECTION00640000000000000000"></A>
+<A NAME="sec:statusd"></A>
+<BR>
+<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Writing <TT>ion-statusd</TT> monitors
</H2>
<P>
go in the separate <TT>ion-statusd</TT> program.
<P>
-Whenever the user requests a meter <TT>%foo</TT> or <TT>%foo_bar</TT> to be
-inserted in a statusbar, <SPAN CLASS="textit">mod_statusbar</SPAN> asks <TT>ion-statusd</TT> to
-load <A HREF="#fn:statusd_foo.lua"><TT>statusd_foo.lua</TT></A> on its search path (same as that for Ion-side
+Whenever the user requests a meter `<TT>%foo</TT>' or `<TT>%foo_bar</TT>' to
+be inserted in a statusbar, <SPAN CLASS="textit">mod_statusbar</SPAN> asks <TT>ion-statusd</TT>
+to load <A HREF="#fn:statusd_foo.lua"><TT>statusd_foo.lua</TT></A> on its search path (same as that for Ion-side
scripts). This script should then supply all meters with the initial part
-'<TT>foo</TT>'.
+`<TT>foo</TT>'.
<P>
To provide this value, the script should simply call <TT>statusd.inform</TT>
facilitate expected width calculation by <SPAN CLASS="textit">mod_statusbar</SPAN>, and
may provide a 'hint' for colour-coding the value. The interpretation
of hints depends on the graphical style in use, and currently the
-stock styles support the <TT>normal</TT>, <TT>important</TT> and
-<TT>critical</TT> hints.
+stock styles support the `<TT>normal</TT>', `<TT>important</TT>' and
+`<TT>critical</TT>' hints.
<P>
-In our example of the 'foo monitor', at script init we might broadcast
+In our example of the 'foo monitor', at script initialisation we might broadcast
the template as follows:
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html335"
+<A NAME="tex2html363"
HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html329"
+<A NAME="tex2html357"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html323"
+<A NAME="tex2html351"
HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html331"
+<A NAME="tex2html359"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html333"
+<A NAME="tex2html361"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html336"
+<B> Next:</B> <A NAME="tex2html364"
HREF="node7.html">6. Function reference</A>
-<B> Up:</B> <A NAME="tex2html330"
+<B> Up:</B> <A NAME="tex2html358"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html324"
+<B> Previous:</B> <A NAME="tex2html352"
HREF="node5.html">4. Graphical styles</A>
- <B> <A NAME="tex2html332"
+ <B> <A NAME="tex2html360"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html334"
+ <B> <A NAME="tex2html362"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html355"
+<A NAME="tex2html383"
HREF="node8.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html349"
+<A NAME="tex2html377"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html343"
+<A NAME="tex2html371"
HREF="node6.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html351"
+<A NAME="tex2html379"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html353"
+<A NAME="tex2html381"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html356"
+<B> Next:</B> <A NAME="tex2html384"
HREF="node8.html">A. The GNU General</A>
-<B> Up:</B> <A NAME="tex2html350"
+<B> Up:</B> <A NAME="tex2html378"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html344"
+<B> Previous:</B> <A NAME="tex2html372"
HREF="node6.html">5. Scripting</A>
- <B> <A NAME="tex2html352"
+ <B> <A NAME="tex2html380"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html354"
+ <B> <A NAME="tex2html382"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html357"
+<LI><A NAME="tex2html385"
HREF="node7.html#SECTION00710000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN> Functions defined in <SPAN CLASS="textit">ioncore</SPAN></A>
<UL>
-<LI><A NAME="tex2html358"
+<LI><A NAME="tex2html386"
HREF="node7.html#SECTION00711000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN> WClientWin functions</A>
-<LI><A NAME="tex2html359"
+<LI><A NAME="tex2html387"
HREF="node7.html#SECTION00712000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN> WFrame functions</A>
-<LI><A NAME="tex2html360"
+<LI><A NAME="tex2html388"
HREF="node7.html#SECTION00713000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">3</SPAN> WGroup functions</A>
-<LI><A NAME="tex2html361"
+<LI><A NAME="tex2html389"
HREF="node7.html#SECTION00714000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">4</SPAN> WGroupCW functions</A>
-<LI><A NAME="tex2html362"
+<LI><A NAME="tex2html390"
HREF="node7.html#SECTION00715000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">5</SPAN> WGroupWS functions</A>
-<LI><A NAME="tex2html363"
- HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
-<LI><A NAME="tex2html364"
- HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
-<LI><A NAME="tex2html365"
- HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
-<LI><A NAME="tex2html366"
- HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
-<LI><A NAME="tex2html367"
- HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
-<LI><A NAME="tex2html368"
- HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
-<LI><A NAME="tex2html369"
- HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
-<LI><A NAME="tex2html370"
- HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
-<LI><A NAME="tex2html371"
- HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
-<LI><A NAME="tex2html372"
- HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
-<LI><A NAME="tex2html373"
- HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
+<LI><A NAME="tex2html391"
+ HREF="node7.html#SECTION00716000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WHook functions</A>
+<LI><A NAME="tex2html392"
+ HREF="node7.html#SECTION00717000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WInfoWin functions</A>
+<LI><A NAME="tex2html393"
+ HREF="node7.html#SECTION00718000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMPlex functions</A>
+<LI><A NAME="tex2html394"
+ HREF="node7.html#SECTION00719000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WMoveresMode functions</A>
+<LI><A NAME="tex2html395"
+ HREF="node7.html#SECTION007110000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRegion functions</A>
+<LI><A NAME="tex2html396"
+ HREF="node7.html#SECTION007111000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WRootWin functions</A>
+<LI><A NAME="tex2html397"
+ HREF="node7.html#SECTION007112000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WScreen functions</A>
+<LI><A NAME="tex2html398"
+ HREF="node7.html#SECTION007113000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> WTimer functions</A>
+<LI><A NAME="tex2html399"
+ HREF="node7.html#SECTION007114000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> WWindow functions</A>
+<LI><A NAME="tex2html400"
+ HREF="node7.html#SECTION007115000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> global functions</A>
+<LI><A NAME="tex2html401"
+ HREF="node7.html#SECTION007116000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> gr functions</A>
+<LI><A NAME="tex2html402"
+ HREF="node7.html#SECTION007117000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">17</SPAN> string functions</A>
+<LI><A NAME="tex2html403"
+ HREF="node7.html#SECTION007118000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">18</SPAN> table functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html374"
+<LI><A NAME="tex2html404"
HREF="node7.html#SECTION00720000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN> Functions defined in <SPAN CLASS="textit">mod_tiling</SPAN></A>
<UL>
-<LI><A NAME="tex2html375"
+<LI><A NAME="tex2html405"
HREF="node7.html#SECTION00721000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> WSplit functions</A>
-<LI><A NAME="tex2html376"
+<LI><A NAME="tex2html406"
HREF="node7.html#SECTION00722000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN> WSplitInner functions</A>
-<LI><A NAME="tex2html377"
+<LI><A NAME="tex2html407"
HREF="node7.html#SECTION00723000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">3</SPAN> WSplitRegion functions</A>
-<LI><A NAME="tex2html378"
+<LI><A NAME="tex2html408"
HREF="node7.html#SECTION00724000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">4</SPAN> WSplitSplit functions</A>
-<LI><A NAME="tex2html379"
+<LI><A NAME="tex2html409"
HREF="node7.html#SECTION00725000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">5</SPAN> WTiling functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html380"
+<LI><A NAME="tex2html410"
HREF="node7.html#SECTION00730000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN> Functions defined in <SPAN CLASS="textit">mod_query</SPAN></A>
<UL>
-<LI><A NAME="tex2html381"
+<LI><A NAME="tex2html411"
HREF="node7.html#SECTION00731000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> WComplProxy functions</A>
-<LI><A NAME="tex2html382"
+<LI><A NAME="tex2html412"
HREF="node7.html#SECTION00732000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> WEdln functions</A>
-<LI><A NAME="tex2html383"
+<LI><A NAME="tex2html413"
HREF="node7.html#SECTION00733000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> WInput functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html384"
+<LI><A NAME="tex2html414"
HREF="node7.html#SECTION00740000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN> Functions defined in <SPAN CLASS="textit">mod_menu</SPAN></A>
<UL>
-<LI><A NAME="tex2html385"
+<LI><A NAME="tex2html415"
HREF="node7.html#SECTION00741000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> WMenu functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html386"
+<LI><A NAME="tex2html416"
HREF="node7.html#SECTION00750000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN> Functions defined in <SPAN CLASS="textit">mod_dock</SPAN></A>
<UL>
-<LI><A NAME="tex2html387"
+<LI><A NAME="tex2html417"
HREF="node7.html#SECTION00751000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> WDock functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html388"
+<LI><A NAME="tex2html418"
HREF="node7.html#SECTION00760000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">6</SPAN> Functions defined in <SPAN CLASS="textit">mod_sp</SPAN></A>
-<LI><A NAME="tex2html389"
+<LI><A NAME="tex2html419"
HREF="node7.html#SECTION00770000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN> Functions defined in <SPAN CLASS="textit">mod_statusbar</SPAN></A>
<UL>
-<LI><A NAME="tex2html390"
+<LI><A NAME="tex2html420"
HREF="node7.html#SECTION00771000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">7</SPAN>.<SPAN CLASS="arabic">1</SPAN> WStatusBar functions</A>
</UL>
<BR>
-<LI><A NAME="tex2html391"
+<LI><A NAME="tex2html421"
HREF="node7.html#SECTION00780000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">8</SPAN> Functions defined in <SPAN CLASS="textit">de</SPAN></A>
-<LI><A NAME="tex2html392"
+<LI><A NAME="tex2html422"
HREF="node7.html#SECTION00790000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN> Hooks</A>
-</UL>
+<LI><A NAME="tex2html423"
+ HREF="node7.html#SECTION007100000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN> Miscellaneous</A>
+<UL>
+<LI><A NAME="tex2html424"
+ HREF="node7.html#SECTION007101000000000000000"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN>.<SPAN CLASS="arabic">1</SPAN> Size policies</A>
+</UL></UL>
<!--End of Table of Child-Links-->
<HR>
</H2>
<DL>
-<DD><A NAME="4362"></A>
-<A NAME="4363"></A>
-<A NAME="fn:ioncore.TR"></A>
+<DD><A NAME="fn:ioncore.TR"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.TR(s, ...)</TT>
<P>
<DL>
-<DD><A NAME="4364"></A>
-<A NAME="4365"></A>
-<A NAME="fn:ioncore.bdoc"></A>
+<DD><A NAME="fn:ioncore.bdoc"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.bdoc(text)</TT>
<P>
<DL>
-<DD><A NAME="4366"></A>
-<A NAME="4367"></A>
-<A NAME="fn:ioncore.chdir_for"></A>
+<DD><A NAME="fn:ioncore.chdir_for"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.chdir_for(reg, dir)</TT>
<P>
<DL>
-<DD><A NAME="4368"></A>
-<A NAME="4369"></A>
-<A NAME="fn:ioncore.compile_cmd"></A>
+<DD><A NAME="fn:ioncore.compile_cmd"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.compile_cmd(cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4370"></A>
-<A NAME="4371"></A>
-<A NAME="fn:ioncore.create_ws"></A>
+<DD><A NAME="fn:ioncore.create_timer"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>WTimer ioncore.create_timer()</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Create a new timer.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.create_ws"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.create_ws(scr, tmpl, layout)</TT>
<P>
<DL>
-<DD><A NAME="4372"></A>
-<A NAME="4373"></A>
-<A NAME="fn:ioncore.defbindings"></A>
+<DD><A NAME="fn:ioncore.defbindings"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defbindings(context, bindings)</TT>
<P>
<DL>
-<DD><A NAME="4374"></A>
-<A NAME="4375"></A>
-<A NAME="fn:ioncore.defctxmenu"></A>
+<DD><A NAME="fn:ioncore.defctxmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defctxmenu(ctx, ...)</TT>
<P>
<DL>
-<DD><A NAME="4376"></A>
-<A NAME="4377"></A>
-<A NAME="fn:ioncore.deflayout"></A>
+<DD><A NAME="fn:ioncore.deflayout"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.deflayout(name, tab)</TT>
<P>
<DL>
-<DD><A NAME="4378"></A>
-<A NAME="4379"></A>
-<A NAME="fn:ioncore.defmenu"></A>
+<DD><A NAME="fn:ioncore.defmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defmenu(name, tab)</TT>
<P>
<DL>
-<DD><A NAME="4380"></A>
-<A NAME="4381"></A>
-<A NAME="fn:ioncore.defwinprop"></A>
+<DD><A NAME="fn:ioncore.defwinprop"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.defwinprop(list)</TT>
<P>
<DL>
-<DD><A NAME="4382"></A>
-<A NAME="4383"></A>
-<A NAME="fn:ioncore.exec_on"></A>
+<DD><A NAME="fn:ioncore.exec_on"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.exec_on(reg, cmd, merr_internal)</TT>
<P>
<DL>
-<DD><A NAME="4384"></A>
-<A NAME="4385"></A>
-<A NAME="fn:ioncore.read_savefile"></A>
+<DD><A NAME="fn:ioncore.read_savefile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.read_savefile(string basename)</TT>
<P>
<DL>
-<DD><A NAME="4386"></A>
-<A NAME="4387"></A>
-<A NAME="fn:ioncore.get_savefile"></A>
+<DD><A NAME="fn:ioncore.get_savefile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.get_savefile(string basename)</TT>
<P>
<DL>
-<DD><A NAME="4388"></A>
-<A NAME="4389"></A>
-<A NAME="fn:ioncore.lookup_script"></A>
+<DD><A NAME="fn:ioncore.lookup_script"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.lookup_script(string file, string sp)</TT>
<P>
<DL>
-<DD><A NAME="4390"></A>
-<A NAME="4391"></A>
-<A NAME="fn:ioncore.write_savefile"></A>
+<DD><A NAME="fn:ioncore.write_savefile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.write_savefile(string basename, table tab)</TT>
<P>
<DL>
-<DD><A NAME="4392"></A>
-<A NAME="4393"></A>
-<A NAME="fn:ioncore.find_manager"></A>
+<DD><A NAME="fn:ioncore.find_manager"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.find_manager(obj, t)</TT>
<P>
<DL>
-<DD><A NAME="4394"></A>
-<A NAME="4395"></A>
-<A NAME="fn:ioncore.get_dir_for"></A>
+<DD><A NAME="fn:ioncore.get_dir_for"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.get_dir_for(reg)</TT>
<P>
<DL>
-<DD><A NAME="4396"></A>
-<A NAME="4397"></A>
-<A NAME="fn:ioncore.getbindings"></A>
+<DD><A NAME="fn:ioncore.getbindings"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getbindings(maybe_context)</TT>
<P>
<DL>
-<DD><A NAME="4398"></A>
-<A NAME="4399"></A>
-<A NAME="fn:ioncore.getctxmenu"></A>
+<DD><A NAME="fn:ioncore.getctxmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getctxmenu(name)</TT>
<P>
<DL>
-<DD><A NAME="4400"></A>
-<A NAME="4401"></A>
-<A NAME="fn:ioncore.getlayout"></A>
+<DD><A NAME="fn:ioncore.getlayout"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getlayout(name, all)</TT>
<P>
<DL>
-<DD><A NAME="4402"></A>
-<A NAME="4403"></A>
-<A NAME="fn:ioncore.getmenu"></A>
+<DD><A NAME="fn:ioncore.getmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getmenu(name)</TT>
<P>
<DL>
-<DD><A NAME="4404"></A>
-<A NAME="4405"></A>
-<A NAME="fn:ioncore.getwinprop"></A>
+<DD><A NAME="fn:ioncore.getwinprop"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.getwinprop(cwin)</TT>
<P>
<DL>
-<DD><A NAME="4406"></A>
-<A NAME="4407"></A>
-<A NAME="fn:ioncore.aboutmsg"></A>
+<DD><A NAME="fn:ioncore.aboutmsg"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.aboutmsg()</TT>
<P>
<DL>
-<DD><A NAME="4408"></A>
-<A NAME="4409"></A>
-<A NAME="fn:ioncore.activity_first"></A>
+<DD><A NAME="fn:ioncore.activity_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.activity_first()</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Return first regio non activity list.
+<DD>Returns first region on activity list.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4410"></A>
-<A NAME="4411"></A>
-<A NAME="fn:ioncore.activity_i"></A>
+<DD><A NAME="fn:ioncore.activity_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.activity_i(function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4412"></A>
-<A NAME="4413"></A>
-<A NAME="fn:ioncore.clientwin_i"></A>
+<DD><A NAME="fn:ioncore.clientwin_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.clientwin_i(function fn)</TT>
<P>
<DL>
-<DD><A NAME="4414"></A>
-<A NAME="4415"></A>
-<A NAME="fn:ioncore.current"></A>
+<DD><A NAME="fn:ioncore.current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.current()</TT>
<P>
<DL>
-<DD><A NAME="4416"></A>
-<A NAME="4417"></A>
-<A NAME="fn:ioncore.defshortening"></A>
+<DD><A NAME="fn:ioncore.defshortening"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.defshortening(string rx, string rule, bool always)</TT>
<P>
<DL>
-<DD><A NAME="4418"></A>
-<A NAME="4419"></A>
-<A NAME="fn:ioncore.detach"></A>
+<DD><A NAME="fn:ioncore.detach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.detach(WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Detach or reattach <TT>reg</TT>, depending on whether <TT>how</TT>
- is 'set'/'unset'/'toggle'. (Detaching means making <TT>reg</TT>
- managed by its nearest ancestor WGroup, framed if <TT>reg</TT> is
- not itself WFrame. Reattaching means making it managed where
- it used to be managed, if a return-placeholder exists.)
- If <TT>reg</TT> is the 'bottom' of some group, the whole group is
+ is `<TT>set</TT>', `<TT>unset</TT>' or `<TT>toggle</TT>'. (Detaching
+ means making <TT>reg</TT> managed by its nearest ancestor WGroup,
+ framed if <TT>reg</TT> is not itself WFrame. Reattaching means
+ making it managed where it used to be managed, if a return-placeholder
+ exists.)
+ If <TT>reg</TT> is the `bottom' of some group, the whole group is
detached. If <TT>reg</TT> is a WWindow, it is put into a
frame.
<P>
<DL>
-<DD><A NAME="4420"></A>
-<A NAME="4421"></A>
-<A NAME="fn:ioncore.exec"></A>
+<DD><A NAME="fn:ioncore.exec"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer ioncore.exec(string cmd)</TT>
<P>
<DL>
-<DD><A NAME="4422"></A>
-<A NAME="4423"></A>
-<A NAME="fn:ioncore.find_screen_id"></A>
+<DD><A NAME="fn:ioncore.find_screen_id"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.find_screen_id(integer id)</TT>
<P>
<DL>
-<DD><A NAME="4424"></A>
-<A NAME="4425"></A>
-<A NAME="fn:ioncore.focushistory_i"></A>
+<DD><A NAME="fn:ioncore.focushistory_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.focushistory_i(function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4426"></A>
-<A NAME="4427"></A>
-<A NAME="fn:ioncore.get"></A>
+<DD><A NAME="fn:ioncore.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.get()</TT>
<P>
<DL>
-<DD><A NAME="4428"></A>
-<A NAME="4429"></A>
-<A NAME="fn:ioncore.get_paths"></A>
+<DD><A NAME="fn:ioncore.get_paths"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.get_paths(table tab)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Get important directories (userdir, sessiondir, searchpath).
+<DD>Get important directories (the fields <TT>userdir</TT>,
+ <TT>sessiondir</TT>, <TT>searchpath</TT> in the returned table).
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4430"></A>
-<A NAME="4431"></A>
-<A NAME="fn:ioncore.goto_activity"></A>
+<DD><A NAME="fn:ioncore.goto_activity"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.goto_activity()</TT>
<P>
<DL>
-<DD><A NAME="4432"></A>
-<A NAME="4433"></A>
-<A NAME="fn:ioncore.goto_first"></A>
+<DD><A NAME="fn:ioncore.goto_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.goto_first(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Go to first region within <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/beg/end/any). For information on <TT>param</TT>,
- see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>. Additionally this function supports
- the boolean <TT>nofront</TT> field, for not bringing the object to
- front.
+<DD>Go to first region within <TT>reg</TT> in direction <TT>dirstr</TT>.
+ For information on <TT>param</TT>, see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
+ Additionally this function supports the boolean <TT>nofront</TT> field,
+ for not bringing the object to front.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4434"></A>
-<A NAME="4435"></A>
-<A NAME="fn:ioncore.goto_next"></A>
+<DD><A NAME="fn:ioncore.goto_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.goto_next(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Go to region next from <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/next/prev/any). For information on <TT>param</TT>,
- see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>. Additionally this function supports
- the boolean <TT>nofront</TT> field, for not bringing the object to
- front.
+<DD>Go to region next from <TT>reg</TT> in direction <TT>dirstr</TT>.
+ For information on <TT>param</TT>, see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
+ Additionally this function supports the boolean <TT>nofront</TT>
+ field, for not bringing the object to front.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4436"></A>
-<A NAME="4437"></A>
-<A NAME="fn:ioncore.goto_next_screen"></A>
+<DD><A NAME="fn:ioncore.goto_next_screen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.goto_next_screen()</TT>
<P>
<DL>
-<DD><A NAME="4438"></A>
-<A NAME="4439"></A>
-<A NAME="fn:ioncore.goto_nth_screen"></A>
+<DD><A NAME="fn:ioncore.goto_nth_screen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.goto_nth_screen(integer id)</TT>
<P>
<DL>
-<DD><A NAME="4440"></A>
-<A NAME="4441"></A>
-<A NAME="fn:ioncore.goto_prev_screen"></A>
+<DD><A NAME="fn:ioncore.goto_prev_screen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen ioncore.goto_prev_screen()</TT>
<P>
<DL>
-<DD><A NAME="4442"></A>
-<A NAME="4443"></A>
-<A NAME="fn:ioncore.goto_previous"></A>
+<DD><A NAME="fn:ioncore.goto_previous"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.goto_previous()</TT>
<P>
<DL>
-<DD><A NAME="4444"></A>
-<A NAME="4445"></A>
-<A NAME="fn:ioncore.is_i18n"></A>
+<DD><A NAME="fn:ioncore.is_i18n"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.is_i18n()</TT>
<P>
<DL>
-<DD><A NAME="4446"></A>
-<A NAME="4447"></A>
-<A NAME="fn:ioncore.load_module"></A>
+<DD><A NAME="fn:ioncore.load_module"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.load_module(string modname)</TT>
<P>
<DL>
-<DD><A NAME="4448"></A>
-<A NAME="4449"></A>
-<A NAME="fn:ioncore.lookup_clientwin"></A>
+<DD><A NAME="fn:ioncore.lookup_clientwin"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WClientWin ioncore.lookup_clientwin(string name)</TT>
<P>
<DL>
-<DD><A NAME="4450"></A>
-<A NAME="4451"></A>
-<A NAME="fn:ioncore.lookup_region"></A>
+<DD><A NAME="fn:ioncore.lookup_region"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.lookup_region(string name, string typenam)</TT>
<P>
<DL>
-<DD><A NAME="4452"></A>
-<A NAME="4453"></A>
-<A NAME="fn:ioncore.navi_first"></A>
+<DD><A NAME="fn:ioncore.navi_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.navi_first(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Find first region within <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/beg/end/any). For information on <TT>param</TT>,
- see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
+<DD>Find first region within <TT>reg</TT> in direction <TT>dirstr</TT>.
+ For information on <TT>param</TT>, see <A HREF="#fn:ioncore.navi_next"><TT>ioncore.navi_next</TT></A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4454"></A>
-<A NAME="4455"></A>
-<A NAME="fn:ioncore.navi_next"></A>
+<DD><A NAME="fn:ioncore.navi_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.navi_next(WRegion reg, string dirstr, table param)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Find region next from <TT>reg</TT> in direction <TT>dirstr</TT>
- (up/down/left/right/next/prev/any). The table <TT>param</TT> may
- contain the boolean field <TT>nowrap</TT>, instructing not to wrap
+ (`<TT>up</TT>', `<TT>down</TT>', `<TT>left</TT>', `<TT>right</TT>',
+ `<TT>next</TT>', `<TT>prev</TT>', or `<TT>any</TT>'). The table <TT>param</TT>
+ may contain the boolean field <TT>nowrap</TT>, instructing not to wrap
around, and the WRegions <TT>no_ascend</TT> and <TT>no_descend</TT>,
and boolean functions <TT>ascend_filter</TT> and <TT>descend_filter</TT>
on <TT>WRegion</TT> pairs (<TT>to</TT>, <TT>from</TT>), are used to decide when
<P>
<DL>
-<DD><A NAME="4456"></A>
-<A NAME="4457"></A>
-<A NAME="fn:ioncore.popen_bgread"></A>
+<DD><A NAME="fn:ioncore.popen_bgread"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer ioncore.popen_bgread(string cmd, function h, function errh)</TT>
<P>
<DL>
-<DD><A NAME="4458"></A>
-<A NAME="4459"></A>
-<A NAME="fn:ioncore.progname"></A>
+<DD><A NAME="fn:ioncore.progname"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.progname()</TT>
<P>
<DL>
-<DD><A NAME="4460"></A>
-<A NAME="4461"></A>
-<A NAME="fn:ioncore.region_i"></A>
+<DD><A NAME="fn:ioncore.region_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.region_i(function fn, string typenam)</TT>
<P>
<DL>
-<DD><A NAME="4462"></A>
-<A NAME="4463"></A>
-<A NAME="fn:ioncore.request_selection"></A>
+<DD><A NAME="fn:ioncore.request_selection"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.request_selection(function fn)</TT>
<P>
<DL>
-<DD><A NAME="4464"></A>
-<A NAME="4465"></A>
-<A NAME="fn:ioncore.resign"></A>
+<DD><A NAME="fn:ioncore.resign"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.resign()</TT>
<P>
<DL>
-<DD><A NAME="4466"></A>
-<A NAME="4467"></A>
-<A NAME="fn:ioncore.restart"></A>
+<DD><A NAME="fn:ioncore.restart"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.restart()</TT>
<P>
<DL>
-<DD><A NAME="4468"></A>
-<A NAME="4469"></A>
-<A NAME="fn:ioncore.restart_other"></A>
+<DD><A NAME="fn:ioncore.restart_other"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.restart_other(string cmd)</TT>
<P>
<DL>
-<DD><A NAME="4470"></A>
-<A NAME="4471"></A>
-<A NAME="fn:ioncore.set"></A>
+<DD><A NAME="fn:ioncore.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.set(table tab)</TT>
<TR><TD ALIGN="LEFT"><TT>frame_default_index</TT></TD>
<TD ALIGN="LEFT">(string) Specifies where to add new regions
on the mutually exclusive list of a frame. One of
- ''last'', ''next'' (for after current), ''next-act''
+ `<TT>last</TT>', `<TT>next</TT>', (for after current),
+ or `<TT>next-act</TT>'
(for after current and anything with activity right
after it).</TD>
</TR>
</TR>
<TR><TD ALIGN="LEFT"><TT>float_placement_method</TT></TD>
<TD ALIGN="LEFT">(string) How to place floating frames.
- One of ''udlr'' (up-down, then left-right),
- ''lrud'' (left-right, then up-down) or ''random''.</TD>
+ One of `<TT>udlr</TT>' (up-down, then left-right),
+ `<TT>lrud</TT>' (left-right, then up-down), or
+ `<TT>random</TT>'.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>mousefocus</TT></TD>
-<TD ALIGN="LEFT">String: ''disable'' or ''sloppy''.</TD>
+<TD ALIGN="LEFT">(string) Mouse focus mode:
+ `<TT>disable</TT>' or `<TT>sloppy</TT>'.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>unsqueeze</TT></TD>
<TD ALIGN="LEFT">(boolean) Auto-unsqueeze transients/menus/queries/etc.</TD>
<P>
<DL>
-<DD><A NAME="4472"></A>
-<A NAME="4473"></A>
-<A NAME="fn:ioncore.set_paths"></A>
+<DD><A NAME="fn:ioncore.set_paths"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.set_paths(table tab)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Set important directories (sessiondir, searchpath).
+<DD>Set important directories (the fields <TT>sessiondir</TT>, <TT>searchpath</TT>
+ of <TT>tab</TT>).
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4474"></A>
-<A NAME="4475"></A>
-<A NAME="fn:ioncore.set_selection"></A>
+<DD><A NAME="fn:ioncore.set_selection"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.set_selection(string p)</TT>
<P>
<DL>
-<DD><A NAME="4476"></A>
-<A NAME="4477"></A>
-<A NAME="fn:ioncore.shutdown"></A>
+<DD><A NAME="fn:ioncore.shutdown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.shutdown()</TT>
<P>
<DL>
-<DD><A NAME="4478"></A>
-<A NAME="4479"></A>
-<A NAME="fn:ioncore.snapshot"></A>
+<DD><A NAME="fn:ioncore.snapshot"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.snapshot()</TT>
<P>
<DL>
-<DD><A NAME="4480"></A>
-<A NAME="4481"></A>
-<A NAME="fn:ioncore.tagged_clear"></A>
+<DD><A NAME="fn:ioncore.tagged_clear"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.tagged_clear()</TT>
<P>
<DL>
-<DD><A NAME="4482"></A>
-<A NAME="4483"></A>
-<A NAME="fn:ioncore.tagged_first"></A>
+<DD><A NAME="fn:ioncore.tagged_first"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion ioncore.tagged_first(bool untag)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns first tagged object, untagging it as well if <TT>untag</TT>is set.
+<DD>Returns first tagged object, untagging it as well if <TT>untag</TT> is set.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4484"></A>
-<A NAME="4485"></A>
-<A NAME="fn:ioncore.tagged_i"></A>
+<DD><A NAME="fn:ioncore.tagged_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool ioncore.tagged_i(function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4486"></A>
-<A NAME="4487"></A>
-<A NAME="fn:ioncore.unsqueeze"></A>
+<DD><A NAME="fn:ioncore.unsqueeze"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.unsqueeze(WRegion reg, bool override)</TT>
<P>
<DL>
-<DD><A NAME="4488"></A>
-<A NAME="4489"></A>
-<A NAME="fn:ioncore.version"></A>
+<DD><A NAME="fn:ioncore.version"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.version()</TT>
<P>
<DL>
-<DD><A NAME="4490"></A>
-<A NAME="4491"></A>
-<A NAME="fn:ioncore.warn"></A>
+<DD><A NAME="fn:ioncore.warn"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.warn(string str)</TT>
<P>
<DL>
-<DD><A NAME="4492"></A>
-<A NAME="4493"></A>
-<A NAME="fn:ioncore.warn_traced"></A>
+<DD><A NAME="fn:ioncore.warn_traced"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.warn_traced(string str)</TT>
<P>
<DL>
-<DD><A NAME="4494"></A>
-<A NAME="4495"></A>
-<A NAME="fn:ioncore.x_change_property"></A>
+<DD><A NAME="fn:ioncore.x_change_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.x_change_property(integer win, integer atom, integer atom_type, integer format, string mode, table tab)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Modify a window property. The <TT>mode</TT> is one of
- <TT>"replace"</TT>, <TT>"prepend"</TT> or <TT>"append"</TT>, and format
+ `<TT>replace</TT>', `<TT>prepend</TT>' or `<TT>append</TT>', and format
is either 8, 16 or 32. Also see <A HREF="#fn:ioncore.x_get_window_property"><TT>ioncore.x_get_window_property</TT></A>
and the <TT>XChangeProperty</TT>(3) manual page.
<P>
<DL>
-<DD><A NAME="4496"></A>
-<A NAME="4497"></A>
-<A NAME="fn:ioncore.x_delete_property"></A>
+<DD><A NAME="fn:ioncore.x_delete_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.x_delete_property(integer win, integer atom)</TT>
<P>
<DL>
-<DD><A NAME="4498"></A>
-<A NAME="4499"></A>
-<A NAME="fn:ioncore.x_get_atom_name"></A>
+<DD><A NAME="fn:ioncore.x_get_atom_name"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string ioncore.x_get_atom_name(integer atom)</TT>
<P>
<DL>
-<DD><A NAME="4500"></A>
-<A NAME="4501"></A>
-<A NAME="fn:ioncore.x_get_text_property"></A>
+<DD><A NAME="fn:ioncore.x_get_text_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.x_get_text_property(integer win, integer atom)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Get a text property for a window (<TT>STRING</TT>, <TT>COMPOUND_TEXT</TT>,
- or <TT>UTF8_STRING</TT> property converted). The fields in the returned
+<DD>Get a text property for a window. The fields in the returned
table (starting from 1) are the null-separated parts of the property.
See the <TT>XGetTextProperty</TT>(3) manual page for more information.
<P>
<DL>
-<DD><A NAME="4502"></A>
-<A NAME="4503"></A>
-<A NAME="fn:ioncore.x_get_window_property"></A>
+<DD><A NAME="fn:ioncore.x_get_window_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table ioncore.x_get_window_property(integer win, integer atom, integer atom_type, integer n32expected, bool more)</TT>
<P>
<DL>
-<DD><A NAME="4504"></A>
-<A NAME="4505"></A>
-<A NAME="fn:ioncore.x_intern_atom"></A>
+<DD><A NAME="fn:ioncore.x_intern_atom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer ioncore.x_intern_atom(string name, bool only_if_exists)</TT>
<P>
<DL>
-<DD><A NAME="4506"></A>
-<A NAME="4507"></A>
-<A NAME="fn:ioncore.x_set_text_property"></A>
+<DD><A NAME="fn:ioncore.x_set_text_property"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void ioncore.x_set_text_property(integer win, integer atom, table tab)</TT>
<P>
<DL>
-<DD><A NAME="4508"></A>
-<A NAME="4509"></A>
-<A NAME="fn:ioncore.kpress"></A>
+<DD><A NAME="fn:ioncore.kpress"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.kpress(keyspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4510"></A>
-<A NAME="4511"></A>
-<A NAME="fn:ioncore.kpress_wait"></A>
+<DD><A NAME="fn:ioncore.kpress_wait"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.kpress_wait(keyspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4512"></A>
-<A NAME="4513"></A>
-<A NAME="fn:ioncore.match_winprop_name"></A>
+<DD><A NAME="fn:ioncore.defer"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool ioncore.defer(function fn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Defer execution of <TT>fn</TT> until the main loop.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.get_hook"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>ioncore.match_winprop_name(prop, cwin)</TT>
+<DD><TT>WHook ioncore.get_hook(string name)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Find named hook <TT>name</TT>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.match_winprop_dflt"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.match_winprop_dflt(prop, cwin, id)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="4514"></A>
-<A NAME="4515"></A>
-<A NAME="fn:ioncore.mclick"></A>
+<DD><A NAME="fn:ioncore.mclick"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mclick(buttonspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4516"></A>
-<A NAME="4517"></A>
-<A NAME="fn:ioncore.mdblclick"></A>
+<DD><A NAME="fn:ioncore.mdblclick"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mdblclick(buttonspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4518"></A>
-<A NAME="4519"></A>
-<A NAME="fn:ioncore.mdrag"></A>
+<DD><A NAME="fn:ioncore.mdrag"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mdrag(buttonspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4520"></A>
-<A NAME="4521"></A>
-<A NAME="fn:ioncore.menuentry"></A>
+<DD><A NAME="fn:ioncore.menuentry"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.menuentry(name, cmd, guard_or_opts)</TT>
<P>
<DL>
-<DD><A NAME="4522"></A>
-<A NAME="4523"></A>
-<A NAME="fn:ioncore.mpress"></A>
+<DD><A NAME="fn:ioncore.mpress"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.mpress(buttonspec, cmd, guard)</TT>
<P>
<DL>
-<DD><A NAME="4524"></A>
-<A NAME="4525"></A>
-<A NAME="fn:ioncore.refresh_stylelist"></A>
+<DD><A NAME="fn:ioncore.refresh_stylelist"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.refresh_stylelist()</TT>
<P>
<DL>
-<DD><A NAME="4526"></A>
-<A NAME="4527"></A>
-<A NAME="fn:ioncore.submap"></A>
+<DD><A NAME="fn:ioncore.submap"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.submap(kcb_, list)</TT>
<P>
<DL>
-<DD><A NAME="4528"></A>
-<A NAME="4529"></A>
-<A NAME="fn:ioncore.submenu"></A>
+<DD><A NAME="fn:ioncore.submap_enter"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.submap_enter(cmd, guard)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Submap enter event for bindings.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.submap_wait"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.submap_wait(cmd, guard)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Submap modifier release event for bindings.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.submenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.submenu(name, sub_or_name, options)</TT>
<P>
<DL>
-<DD><A NAME="4530"></A>
-<A NAME="4531"></A>
-<A NAME="fn:ioncore.tagged_attach"></A>
+<DD><A NAME="fn:ioncore.tabnum.clear"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.tabnum.clear()</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Clear all tab numbers set by <A HREF="#fn:ioncore.tabnum.show"><TT>ioncore.tabnum.show</TT></A>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.tabnum.show"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>ioncore.tabnum.show(frame, delay)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Show tab numbers on <TT>frame</TT>, clearing them when submap
+ grab is released the next time. If <TT>delay</TT> is given, in
+ milliseconds, the numbers are not actually displayed until this
+ time has passed.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:ioncore.tagged_attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>ioncore.tagged_attach(reg, param)</TT>
<P>
<DL>
-<DD><A NAME="4533"></A>
-<A NAME="4534"></A>
-<A NAME="fn:WClientWin.get_ident"></A>
+<DD><A NAME="fn:WClientWin.get_ident"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WClientWin.get_ident(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4535"></A>
-<A NAME="4536"></A>
-<A NAME="fn:WClientWin.kill"></A>
+<DD><A NAME="fn:WClientWin.kill"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WClientWin.kill(WClientWin cwin)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Attempt to kill (with XKillWindow) the client that owns the X
- window correspoding to <TT>cwin</TT>.
+<DD>Attempt to kill (with <TT>XKillWindow</TT>) the client that owns
+ the X window correspoding to <TT>cwin</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4537"></A>
-<A NAME="4538"></A>
-<A NAME="fn:WClientWin.nudge"></A>
+<DD><A NAME="fn:WClientWin.nudge"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WClientWin.nudge(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4539"></A>
-<A NAME="4540"></A>
-<A NAME="fn:WClientWin.quote_next"></A>
+<DD><A NAME="fn:WClientWin.quote_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WClientWin.quote_next(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4541"></A>
-<A NAME="4542"></A>
-<A NAME="fn:WClientWin.xid"></A>
+<DD><A NAME="fn:WClientWin.xid"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>double WClientWin.xid(WClientWin cwin)</TT>
<P>
<DL>
-<DD><A NAME="4544"></A>
-<A NAME="4545"></A>
-<A NAME="fn:WFrame.is_shaded"></A>
+<DD><A NAME="fn:WFrame.is_shaded"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WFrame.is_shaded(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4546"></A>
-<A NAME="4547"></A>
-<A NAME="fn:WFrame.maximize_horiz"></A>
+<DD><A NAME="fn:WFrame.maximize_horiz"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.maximize_horiz(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4548"></A>
-<A NAME="4549"></A>
-<A NAME="fn:WFrame.maximize_vert"></A>
+<DD><A NAME="fn:WFrame.maximize_vert"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.maximize_vert(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4550"></A>
-<A NAME="4551"></A>
-<A NAME="fn:WFrame.mode"></A>
+<DD><A NAME="fn:WFrame.mode"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WFrame.mode(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4552"></A>
-<A NAME="4553"></A>
-<A NAME="fn:WFrame.p_switch_tab"></A>
+<DD><A NAME="fn:WFrame.p_switch_tab"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.p_switch_tab(WFrame frame)</TT>
<P>
<DL>
-<DD><A NAME="4554"></A>
-<A NAME="4555"></A>
-<A NAME="fn:WFrame.p_tabdrag"></A>
+<DD><A NAME="fn:WFrame.p_tabdrag"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WFrame.p_tabdrag(WFrame frame)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Start dragging the tab that the user pressed on with the pointing device.
This function should only be used by binding it to <SPAN CLASS="textit">mpress</SPAN> or
- <SPAN CLASS="textit">mdrag</SPAN> action with area ''tab''.
+ <SPAN CLASS="textit">mdrag</SPAN> action with area `<TT>tab</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4556"></A>
-<A NAME="4557"></A>
-<A NAME="fn:WFrame.set_mode"></A>
+<DD><A NAME="fn:WFrame.set_grattr"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WFrame.set_mode(WFrame frame, string modestr)</TT>
+<DD><TT>bool WFrame.set_grattr(WFrame frame, string attr, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Set frame mode.
+<DD>Set extra drawing engine attributes for the frame.
+ The parameter <TT>attr</TT> is the attribute, and <TT>how</TT> is
+ one of `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4558"></A>
-<A NAME="4559"></A>
-<A NAME="fn:WFrame.set_numbers"></A>
+<DD><A NAME="fn:WFrame.set_mode"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WFrame.set_numbers(WFrame frame, string how)</TT>
+<DD><TT>bool WFrame.set_mode(WFrame frame, string modestr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Control whether tabs show numbers (set/unset/toggle).
- Resulting state is returned, which may not be what was
- requested.
+<DD>Set frame mode.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4560"></A>
-<A NAME="4561"></A>
-<A NAME="fn:WFrame.set_shaded"></A>
+<DD><A NAME="fn:WFrame.set_shaded"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WFrame.set_shaded(WFrame frame, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set shading state according to the parameter <TT>how</TT>
- (set/unset/toggle). Resulting state is returned, which may not be
+ (`<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
+ Resulting state is returned, which may not be
what was requested.
</DD>
<P>
<DL>
-<DD><A NAME="4563"></A>
-<A NAME="4564"></A>
-<A NAME="fn:WGroup.attach"></A>
+<DD><A NAME="fn:WGroup.attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WGroup.attach(WGroup ws, WRegion reg, table param)</TT>
<P>
<DL>
-<DD><A NAME="4565"></A>
-<A NAME="4566"></A>
-<A NAME="fn:WGroup.attach_new"></A>
+<DD><A NAME="fn:WGroup.attach_new"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WGroup.attach_new(WGroup ws, table param)</TT>
<TD ALIGN="LEFT">Description</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>type</TT></TD>
-<TD ALIGN="LEFT">Class name (a string) of the object to be created. Mandatory.</TD>
+<TD ALIGN="LEFT">(string) Class of the object to be created. Mandatory.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>name</TT></TD>
-<TD ALIGN="LEFT">Name of the object to be created (a string). Optional.</TD>
+<TD ALIGN="LEFT">(string) Name of the object to be created.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>switchto</TT></TD>
-<TD ALIGN="LEFT">Should the region be switched to (boolean)? Optional.</TD>
+<TD ALIGN="LEFT">(boolean) Should the region be switched to?</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>level</TT></TD>
-<TD ALIGN="LEFT">Stacking level; default is 1.</TD>
+<TD ALIGN="LEFT">(integer) Stacking level; default is 1.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>modal</TT></TD>
-<TD ALIGN="LEFT">Make object modal; ignored if level is set.</TD>
+<TD ALIGN="LEFT">(boolean) Make object modal; ignored if level is set.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>sizepolicy</TT></TD>
-<TD ALIGN="LEFT">Size policy.</TD>
+<TD ALIGN="LEFT">(string) Size policy; see Section <A HREF="#sec:sizepolicies">6.10.1</A>.</TD>
</TR>
</TABLE>
<P>
<DL>
-<DD><A NAME="4567"></A>
-<A NAME="4568"></A>
-<A NAME="fn:WGroup.bottom"></A>
+<DD><A NAME="fn:WGroup.bottom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WGroup.bottom(WGroup ws)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns the 'bottom' of <TT>ws</TT>.
+<DD>Returns the `bottom' of <TT>ws</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4569"></A>
-<A NAME="4570"></A>
-<A NAME="fn:WGroup.is_fullscreen"></A>
+<DD><A NAME="fn:WGroup.is_fullscreen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.is_fullscreen(WGroup grp)</TT>
<P>
<DL>
-<DD><A NAME="4571"></A>
-<A NAME="4572"></A>
-<A NAME="fn:WGroup.managed_i"></A>
+<DD><A NAME="fn:WGroup.managed_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.managed_i(WGroup ws, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4573"></A>
-<A NAME="4574"></A>
-<A NAME="fn:WGroup.set_bottom"></A>
+<DD><A NAME="fn:WGroup.set_bottom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.set_bottom(WGroup ws, WRegion reg)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Sets the 'bottom' of <TT>ws</TT>. The region <TT>reg</TT> must already
+<DD>Sets the `bottom' of <TT>ws</TT>. The region <TT>reg</TT> must already
be managed by <TT>ws</TT>, unless <TT>nil</TT>.
</DD>
<P>
<DL>
-<DD><A NAME="4575"></A>
-<A NAME="4576"></A>
-<A NAME="fn:WGroup.set_fullscreen"></A>
+<DD><A NAME="fn:WGroup.set_fullscreen"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroup.set_fullscreen(WGroup grp, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set client window <TT>reg</TT> full screen state according to the
- parameter <TT>how</TT> (set/unset/toggle). Resulting state is returned,
- which may not be what was requested.
+ parameter <TT>how</TT> (one of `<TT>set</TT>', `<TT>unset</TT>', or
+ `<TT>toggle</TT>'). Resulting state is returned, which may not be
+ what was requested.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4579"></A>
-<A NAME="4580"></A>
-<A NAME="fn:WGroupWS.attach_framed"></A>
+<DD><A NAME="fn:WGroupWS.attach_framed"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WGroupWS.attach_framed(WGroupWS ws, WRegion reg, table t)</TT>
<P>
<H3><A NAME="SECTION00716000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WInfoWin functions</A>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">6</SPAN> WHook functions</A>
+</H3>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WHook.add"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WHook.add(WHook hk, function efn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Add <TT>efn</TT> to the list of functions to be called when the
+ hook <TT>hk</TT> is triggered.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WHook.listed"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WHook.listed(WHook hk, function efn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Is <TT>fn</TT> hooked to hook <TT>hk</TT>?
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WHook.remove"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WHook.remove(WHook hk, function efn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Remove <TT>efn</TT> from the list of functions to be called when the
+ hook <TT>hk</TT> is triggered.
+
+</DD>
+</DL>
+
+<P>
+
+<H3><A NAME="SECTION00717000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WInfoWin functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4582"></A>
-<A NAME="4583"></A>
-<A NAME="fn:WInfoWin.set_text"></A>
+<DD><A NAME="fn:WInfoWin.set_text"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInfoWin.set_text(WInfoWin p, string str, integer maxw)</TT>
<P>
-<H3><A NAME="SECTION00717000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">7</SPAN> WMPlex functions</A>
+<H3><A NAME="SECTION00718000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMPlex functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4585"></A>
-<A NAME="4586"></A>
-<A NAME="fn:WMPlex.attach"></A>
+<DD><A NAME="fn:WMPlex.attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.attach(WMPlex mplex, WRegion reg, table param)</TT>
<P>
<DL>
-<DD><A NAME="4587"></A>
-<A NAME="4588"></A>
-<A NAME="fn:WMPlex.attach_new"></A>
+<DD><A NAME="fn:WMPlex.attach_new"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.attach_new(WMPlex mplex, table param)</TT>
by e.g. the mutually exclusive list being empty.
This option overrides <TT>switchto</TT>.</TD>
</TR>
+<TR><TD ALIGN="LEFT"><TT>pseudomodal</TT></TD>
+<TD ALIGN="LEFT">(boolean) The attached region is ``pseudomodal''
+ if the stacking level dictates it to be modal.
+ This means that the region may be hidden to display
+ regions with lesser stacking levels.</TD>
+</TR>
<TR><TD ALIGN="LEFT"><TT>sizepolicy</TT></TD>
-<TD ALIGN="LEFT">(integer) Size policy.</TD>
+<TD ALIGN="LEFT">(string) Size policy; see Section <A HREF="#sec:sizepolicies">6.10.1</A>.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>geom</TT></TD>
<TD ALIGN="LEFT">(table) Geometry specification.</TD>
<P>
<DL>
-<DD><A NAME="4589"></A>
-<A NAME="4590"></A>
-<A NAME="fn:WMPlex.dec_index"></A>
+<DD><A NAME="fn:WMPlex.dec_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.dec_index(WMPlex mplex, WRegion r)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Move <TT>r</TT> ''right'' within objects managed by <TT>mplex</TT> on list 1.
+<DD>Move <TT>r</TT> ``left'' within objects managed by <TT>mplex</TT> on list 1.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4591"></A>
-<A NAME="4592"></A>
-<A NAME="fn:WMPlex.get_index"></A>
+<DD><A NAME="fn:WMPlex.get_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WMPlex.get_index(WMPlex mplex, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4593"></A>
-<A NAME="4594"></A>
-<A NAME="fn:WMPlex.get_stdisp"></A>
+<DD><A NAME="fn:WMPlex.get_stdisp"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WMPlex.get_stdisp(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4595"></A>
-<A NAME="4596"></A>
-<A NAME="fn:WMPlex.inc_index"></A>
+<DD><A NAME="fn:WMPlex.inc_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.inc_index(WMPlex mplex, WRegion r)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Move <TT>r</TT> ''right'' within objects managed by <TT>mplex</TT> on list 1.
+<DD>Move <TT>r</TT> ``right'' within objects managed by <TT>mplex</TT> on list 1.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4597"></A>
-<A NAME="4598"></A>
-<A NAME="fn:WMPlex.is_hidden"></A>
+<DD><A NAME="fn:WMPlex.is_hidden"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.is_hidden(WMPlex mplex, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4599"></A>
-<A NAME="4600"></A>
-<A NAME="fn:WMPlex.managed_i"></A>
+<DD><A NAME="fn:WMPlex.managed_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.managed_i(WMPlex mplex, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4601"></A>
-<A NAME="4602"></A>
-<A NAME="fn:WMPlex.mx_count"></A>
+<DD><A NAME="fn:WMPlex.mx_count"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WMPlex.mx_count(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4603"></A>
-<A NAME="4604"></A>
-<A NAME="fn:WMPlex.mx_current"></A>
+<DD><A NAME="fn:WMPlex.mx_current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.mx_current(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4605"></A>
-<A NAME="4606"></A>
-<A NAME="fn:WMPlex.mx_i"></A>
+<DD><A NAME="fn:WMPlex.mx_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.mx_i(WMPlex mplex, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="4607"></A>
-<A NAME="4608"></A>
-<A NAME="fn:WMPlex.mx_nth"></A>
+<DD><A NAME="fn:WMPlex.mx_nth"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.mx_nth(WMPlex mplex, integer n)</TT>
<P>
<DL>
-<DD><A NAME="4609"></A>
-<A NAME="4610"></A>
-<A NAME="fn:WMPlex.set_hidden"></A>
+<DD><A NAME="fn:WMPlex.set_hidden"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WMPlex.set_hidden(WMPlex mplex, WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set the visibility of the region <TT>reg</TT> on <TT>mplex</TT>
- as specified with the parameter <TT>how</TT> (set/unset/toggle).
+ as specified with the parameter <TT>how</TT>
+ (one of `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
The resulting state is returned.
</DD>
<P>
<DL>
-<DD><A NAME="4611"></A>
-<A NAME="4612"></A>
-<A NAME="fn:WMPlex.set_index"></A>
+<DD><A NAME="fn:WMPlex.set_index"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.set_index(WMPlex mplex, WRegion reg, integer index)</TT>
<DD>Set index of <TT>reg</TT> to <TT>index</TT> within the mutually exclusive
list of <TT>mplex</TT>. Special values for <TT>index</TT> are:
<TABLE CELLPADDING=3 WIDTH="100%">
-<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"></SPAN></TD>
+<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"><IMG
+ WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="img4.png"
+ ALT="$-1$"></SPAN></TD>
<TD ALIGN="LEFT">Last.</TD>
</TR>
-<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"></SPAN></TD>
+<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"><IMG
+ WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="img5.png"
+ ALT="$-2$"></SPAN></TD>
<TD ALIGN="LEFT">After <A HREF="#fn:WMPlex.mx_current"><TT>WMPlex.mx_current</TT></A>.</TD>
</TR>
</TABLE>
<P>
<DL>
-<DD><A NAME="4613"></A>
-<A NAME="4614"></A>
-<A NAME="fn:WMPlex.set_stdisp"></A>
+<DD><A NAME="fn:WMPlex.set_stdisp"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WMPlex.set_stdisp(WMPlex mplex, table t)</TT>
</TR>
<TR><TD ALIGN="LEFT"><TT>pos</TT></TD>
<TD ALIGN="LEFT">The corner of the screen to place the status display
- in. One of <TT>tl</TT>, <TT>tr</TT>, <TT>bl</TT> or <TT>br</TT>.</TD>
+ in: one of `<TT>tl</TT>', `<TT>tr</TT>', `<TT>bl</TT>'
+ or `<TT>br</TT>'.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>action</TT></TD>
-<TD ALIGN="LEFT">If this field is set to <TT>keep</TT>, <TT>corner</TT>
+<TD ALIGN="LEFT">If this field is set to `<TT>keep</TT>', <TT>corner</TT>
and <TT>orientation</TT> are changed for the existing
- status display. If this field is set to <TT>remove</TT>,
+ status display. If this field is set to `<TT>remove</TT>',
the existing status display is removed. If this
- field is not set or is set to <TT>replace</TT>, a
+ field is not set or is set to `<TT>replace</TT>', a
new status display is created and the old, if any,
removed.</TD>
</TR>
<P>
<DL>
-<DD><A NAME="4615"></A>
-<A NAME="4616"></A>
-<A NAME="fn:WMPlex.switch_next"></A>
+<DD><A NAME="fn:WMPlex.switch_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.switch_next(WMPlex mplex)</TT>
<P>
<DL>
-<DD><A NAME="4617"></A>
-<A NAME="4618"></A>
-<A NAME="fn:WMPlex.switch_nth"></A>
+<DD><A NAME="fn:WMPlex.switch_nth"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.switch_nth(WMPlex mplex, integer n)</TT>
<P>
<DL>
-<DD><A NAME="4619"></A>
-<A NAME="4620"></A>
-<A NAME="fn:WMPlex.switch_prev"></A>
+<DD><A NAME="fn:WMPlex.switch_prev"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMPlex.switch_prev(WMPlex mplex)</TT>
<P>
-<H3><A NAME="SECTION00718000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">8</SPAN> WMoveresMode functions</A>
+<H3><A NAME="SECTION00719000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WMoveresMode functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4622"></A>
-<A NAME="4623"></A>
-<A NAME="fn:WMoveresMode.cancel"></A>
+<DD><A NAME="fn:WMoveresMode.cancel"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.cancel(WMoveresMode mode)</TT>
<P>
<DL>
-<DD><A NAME="4624"></A>
-<A NAME="4625"></A>
-<A NAME="fn:WMoveresMode.finish"></A>
+<DD><A NAME="fn:WMoveresMode.finish"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.finish(WMoveresMode mode)</TT>
<P>
<DL>
-<DD><A NAME="4626"></A>
-<A NAME="4627"></A>
-<A NAME="fn:WMoveresMode.geom"></A>
+<DD><A NAME="fn:WMoveresMode.geom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WMoveresMode.geom(WMoveresMode mode)</TT>
<P>
<DL>
-<DD><A NAME="4628"></A>
-<A NAME="4629"></A>
-<A NAME="fn:WMoveresMode.move"></A>
+<DD><A NAME="fn:WMoveresMode.move"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.move(WMoveresMode mode, integer horizmul, integer vertmul)</TT>
<P>
<DL>
-<DD><A NAME="4630"></A>
-<A NAME="4631"></A>
-<A NAME="fn:WMoveresMode.resize"></A>
+<DD><A NAME="fn:WMoveresMode.resize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMoveresMode.resize(WMoveresMode mode, integer left, integer right, integer top, integer bottom)</TT>
<P>
<DL>
-<DD><A NAME="4632"></A>
-<A NAME="4633"></A>
-<A NAME="fn:WMoveresMode.rqgeom"></A>
+<DD><A NAME="fn:WMoveresMode.rqgeom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WMoveresMode.rqgeom(WMoveresMode mode, table g)</TT>
<P>
-<H3><A NAME="SECTION00719000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">9</SPAN> WRegion functions</A>
+<H3><A NAME="SECTION007110000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRegion functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4635"></A>
-<A NAME="4636"></A>
-<A NAME="fn:WRegion.begin_kbresize"></A>
+<DD><A NAME="fn:WRegion.begin_kbresize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WMoveresMode WRegion.begin_kbresize(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4637"></A>
-<A NAME="4638"></A>
-<A NAME="fn:WRegion.current"></A>
+<DD><A NAME="fn:WRegion.current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.current(WRegion mgr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Return the object, if any, that is considered ''currently active''
+<DD>Return the object, if any, that is considered ``currently active''
within the objects managed by <TT>mplex</TT>.
</DD>
<P>
<DL>
-<DD><A NAME="4639"></A>
-<A NAME="4640"></A>
-<A NAME="fn:WRegion.geom"></A>
+<DD><A NAME="fn:WRegion.geom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.geom(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4641"></A>
-<A NAME="4642"></A>
-<A NAME="fn:WRegion.get_configuration"></A>
+<DD><A NAME="fn:WRegion.get_configuration"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.get_configuration(WRegion reg, bool clientwins)</TT>
<P>
<DL>
-<DD><A NAME="4643"></A>
-<A NAME="4644"></A>
-<A NAME="fn:WRegion.goto"></A>
+<DD><A NAME="fn:WRegion.goto"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.goto(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4645"></A>
-<A NAME="4646"></A>
-<A NAME="fn:WRegion.groupleader_of"></A>
+<DD><A NAME="fn:WRegion.groupleader_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.groupleader_of(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4647"></A>
-<A NAME="4648"></A>
-<A NAME="fn:WRegion.is_active"></A>
+<DD><A NAME="fn:WRegion.is_active"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_active(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4649"></A>
-<A NAME="4650"></A>
-<A NAME="fn:WRegion.is_activity"></A>
+<DD><A NAME="fn:WRegion.is_activity"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_activity(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4651"></A>
-<A NAME="4652"></A>
-<A NAME="fn:WRegion.is_mapped"></A>
+<DD><A NAME="fn:WRegion.is_mapped"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_mapped(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4653"></A>
-<A NAME="4654"></A>
-<A NAME="fn:WRegion.is_tagged"></A>
+<DD><A NAME="fn:WRegion.is_tagged"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.is_tagged(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4655"></A>
-<A NAME="4656"></A>
-<A NAME="fn:WRegion.manager"></A>
+<DD><A NAME="fn:WRegion.manager"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.manager(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4657"></A>
-<A NAME="4658"></A>
-<A NAME="fn:WRegion.name"></A>
+<DD><A NAME="fn:WRegion.name"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WRegion.name(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4659"></A>
-<A NAME="4660"></A>
-<A NAME="fn:WRegion.parent"></A>
+<DD><A NAME="fn:WRegion.parent"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WWindow WRegion.parent(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4661"></A>
-<A NAME="4662"></A>
-<A NAME="fn:WRegion.rootwin_of"></A>
+<DD><A NAME="fn:WRegion.rootwin_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRootWin WRegion.rootwin_of(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4663"></A>
-<A NAME="4664"></A>
-<A NAME="fn:WRegion.rqclose"></A>
+<DD><A NAME="fn:WRegion.rqclose"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WRegion.rqclose(WRegion reg, bool relocate)</TT>
the client supports the <TT>WM_DELETE</TT> protocol (see also
<A HREF="#fn:WClientWin.kill"><TT>WClientWin.kill</TT></A>). The region will not be destroyed when
this function returns. To find out if and when it is destroyed,
- use the "deinit" notification. If <TT>relocate</TT> is not set, and
- <TT>reg</TT> manages other regions, it will not be closed. Otherwise
+ use the `<TT>deinit</TT>' notification. If <TT>relocate</TT> is not set,
+ and <TT>reg</TT> manages other regions, it will not be closed. Otherwise
the managed regions will be attempted to be relocated.
</DD>
<P>
<DL>
-<DD><A NAME="4665"></A>
-<A NAME="4666"></A>
-<A NAME="fn:WRegion.rqclose_propagate"></A>
+<DD><A NAME="fn:WRegion.rqclose_propagate"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WRegion.rqclose_propagate(WRegion reg, WRegion maybe_sub)</TT>
<P>
<DL>
-<DD><A NAME="4667"></A>
-<A NAME="4668"></A>
-<A NAME="fn:WRegion.rqgeom"></A>
+<DD><A NAME="fn:WRegion.rqgeom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.rqgeom(WRegion reg, table g)</TT>
<P>
<DL>
-<DD><A NAME="4669"></A>
-<A NAME="4670"></A>
-<A NAME="fn:WRegion.rqorder"></A>
+<DD><A NAME="fn:WRegion.rqorder"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.rqorder(WRegion reg, string ord)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Request ordering. Currently supported values for <TT>ord</TT>
- are 'front' and 'back'.
+ are `<TT>front</TT>' and `<TT>back</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4671"></A>
-<A NAME="4672"></A>
-<A NAME="fn:WRegion.screen_of"></A>
+<DD><A NAME="fn:WRegion.screen_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen WRegion.screen_of(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="4673"></A>
-<A NAME="4674"></A>
-<A NAME="fn:WRegion.set_activity"></A>
+<DD><A NAME="fn:WRegion.set_activity"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_activity(WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Set activity flag of <TT>reg</TT>. The <TT>how</TT> parameter most be
- one of (set/unset/toggle).
+<DD>Set activity flag of <TT>reg</TT>. The <TT>how</TT> parameter must be
+ one of `<TT>set</TT>', `<TT>unset</TT>' or `<TT>toggle</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4675"></A>
-<A NAME="4676"></A>
-<A NAME="fn:WRegion.set_name"></A>
+<DD><A NAME="fn:WRegion.set_name"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_name(WRegion reg, string p)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Set the name of <TT>reg</TT> to <TT>p</TT>. If the name is already in use,
- an instance number suffix <TT><n></TT> will be attempted. If <TT>p</TT> has
+ an instance number suffix `<TT><n></TT>' will be attempted. If <TT>p</TT> has
such a suffix, it will be modified, otherwise such a suffix will be
added. Setting <TT>p</TT> to nil will cause current name to be removed.
<P>
<DL>
-<DD><A NAME="4677"></A>
-<A NAME="4678"></A>
-<A NAME="fn:WRegion.set_name_exact"></A>
+<DD><A NAME="fn:WRegion.set_name_exact"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_name_exact(WRegion reg, string p)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Similar to <A HREF="#fn:WRegion.set_name"><TT>WRegion.set_name</TT></A> except if the name is already in use,
other instance numbers will not be attempted. The string <TT>p</TT> should
- not contain a <TT><n></TT> suffix or this function will fail.
+ not contain a `<TT><n></TT>' suffix or this function will fail.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4679"></A>
-<A NAME="4680"></A>
-<A NAME="fn:WRegion.set_tagged"></A>
+<DD><A NAME="fn:WRegion.set_tagged"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WRegion.set_tagged(WRegion reg, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Change tagging state of <TT>reg</TT> as defined by <TT>how</TT>
- (set/unset/toggle). Resulting state is returned.
+ (one of `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
+ The resulting state is returned.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4681"></A>
-<A NAME="4682"></A>
-<A NAME="fn:WRegion.size_hints"></A>
+<DD><A NAME="fn:WRegion.size_hints"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WRegion.size_hints(WRegion reg)</TT>
<P>
-<H3><A NAME="SECTION007110000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">10</SPAN> WRootWin functions</A>
+<H3><A NAME="SECTION007111000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WRootWin functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4684"></A>
-<A NAME="4685"></A>
-<A NAME="fn:WRootWin.current_scr"></A>
+<DD><A NAME="fn:WRootWin.current_scr"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WScreen WRootWin.current_scr(WRootWin rootwin)</TT>
<P>
-<H3><A NAME="SECTION007111000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">11</SPAN> WScreen functions</A>
+<H3><A NAME="SECTION007112000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WScreen functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4687"></A>
-<A NAME="4688"></A>
-<A NAME="fn:WScreen.id"></A>
+<DD><A NAME="fn:WScreen.id"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WScreen.id(WScreen scr)</TT>
<P>
<DL>
-<DD><A NAME="4689"></A>
-<A NAME="4690"></A>
-<A NAME="fn:WScreen.set_managed_offset"></A>
+<DD><A NAME="fn:WScreen.set_managed_offset"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WScreen.set_managed_offset(WScreen scr, table offset)</TT>
<P>
-<H3><A NAME="SECTION007112000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">12</SPAN> WWindow functions</A>
+<H3><A NAME="SECTION007113000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> WTimer functions</A>
+</H3>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WTimer.is_set"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>bool WTimer.is_set(WTimer timer)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Is timer set?
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WTimer.reset"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>void WTimer.reset(WTimer timer)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Reset timer.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:WTimer.set"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>void WTimer.set(WTimer timer, integer msecs, function fn)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Set <TT>timer</TT> to call <TT>fn</TT> in <TT>msecs</TT> milliseconds.
+
+</DD>
+</DL>
+
+<P>
+
+<H3><A NAME="SECTION007114000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> WWindow functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4692"></A>
-<A NAME="4693"></A>
-<A NAME="fn:WWindow.p_move"></A>
+<DD><A NAME="fn:WWindow.p_move"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WWindow.p_move(WWindow wwin)</TT>
<P>
<DL>
-<DD><A NAME="4694"></A>
-<A NAME="4695"></A>
-<A NAME="fn:WWindow.p_resize"></A>
+<DD><A NAME="fn:WWindow.p_resize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WWindow.p_resize(WWindow wwin)</TT>
<P>
<DL>
-<DD><A NAME="4696"></A>
-<A NAME="4697"></A>
-<A NAME="fn:WWindow.xid"></A>
+<DD><A NAME="fn:WWindow.xid"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>double WWindow.xid(WWindow wwin)</TT>
<P>
-<H3><A NAME="SECTION007113000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">13</SPAN> global functions</A>
+<H3><A NAME="SECTION007115000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> global functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4699"></A>
-<A NAME="fn:export"></A>
+<DD><A NAME="fn:export"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>export(lib, ...)</TT>
<P>
-<H3><A NAME="SECTION007114000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">14</SPAN> gr functions</A>
+<H3><A NAME="SECTION007116000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> gr functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4701"></A>
-<A NAME="4702"></A>
-<A NAME="fn:gr.read_config"></A>
+<DD><A NAME="fn:gr.read_config"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void gr.read_config()</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Read drawing engine configuration file <SPAN CLASS="textit">draw.lua</SPAN>.
+<DD>Read drawing engine configuration file <SPAN CLASS="textit">look.lua</SPAN>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="4703"></A>
-<A NAME="4704"></A>
-<A NAME="fn:gr.refresh"></A>
+<DD><A NAME="fn:gr.refresh"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void gr.refresh()</TT>
<P>
<DL>
-<DD><A NAME="4705"></A>
-<A NAME="4706"></A>
-<A NAME="fn:gr.select_engine"></A>
+<DD><A NAME="fn:gr.select_engine"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool gr.select_engine(string engine)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Future requests for ''brushes'' are to be forwarded to the drawing engine
+<DD>Future requests for ``brushes'' are to be forwarded to the drawing engine
<TT>engine</TT>. If no engine of such name is known, a module with that name
is attempted to be loaded. This function is only intended to be called from
colour scheme etc. configuration files and can not be used to change the
<P>
-<H3><A NAME="SECTION007115000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">15</SPAN> string functions</A>
+<H3><A NAME="SECTION007117000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">17</SPAN> string functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4708"></A>
-<A NAME="4709"></A>
-<A NAME="fn:string.shell_safe"></A>
+<DD><A NAME="fn:string.shell_safe"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string.shell_safe(str)</TT>
<P>
-<H3><A NAME="SECTION007116000000000000000">
-<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">16</SPAN> table functions</A>
+<H3><A NAME="SECTION007118000000000000000">
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">18</SPAN> table functions</A>
</H3>
<P>
<DL>
-<DD><A NAME="4711"></A>
-<A NAME="4712"></A>
-<A NAME="fn:table.append"></A>
+<DD><A NAME="fn:table.append"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.append(t1, t2)</TT>
<P>
<DL>
-<DD><A NAME="4713"></A>
-<A NAME="4714"></A>
-<A NAME="fn:table.copy"></A>
+<DD><A NAME="fn:table.copy"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.copy(t, deep)</TT>
<P>
<DL>
-<DD><A NAME="4715"></A>
-<A NAME="4716"></A>
-<A NAME="fn:table.icat"></A>
+<DD><A NAME="fn:table.icat"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.icat(t1, t2)</TT>
<P>
<DL>
-<DD><A NAME="4717"></A>
-<A NAME="4718"></A>
-<A NAME="fn:table.join"></A>
+<DD><A NAME="fn:table.join"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.join(t1, t2)</TT>
<P>
<DL>
-<DD><A NAME="4719"></A>
-<A NAME="4720"></A>
-<A NAME="fn:table.map"></A>
+<DD><A NAME="fn:table.map"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table.map(f, t)</TT>
</H2>
<DL>
-<DD><A NAME="7110"></A>
-<A NAME="7111"></A>
-<A NAME="fn:mod_tiling.get"></A>
+<DD><A NAME="fn:mod_tiling.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_tiling.get()</TT>
<P>
<DL>
-<DD><A NAME="7112"></A>
-<A NAME="7113"></A>
-<A NAME="fn:mod_tiling.mkbottom"></A>
+<DD><A NAME="fn:mod_tiling.mkbottom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_tiling.mkbottom(WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7114"></A>
-<A NAME="7115"></A>
-<A NAME="fn:mod_tiling.set"></A>
+<DD><A NAME="fn:mod_tiling.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_tiling.set(table tab)</TT>
<P>
<DL>
-<DD><A NAME="7116"></A>
-<A NAME="7117"></A>
-<A NAME="fn:mod_tiling.untile"></A>
+<DD><A NAME="fn:mod_tiling.untile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_tiling.untile(WTiling tiling)</TT>
<P>
<DL>
-<DD><A NAME="7119"></A>
-<A NAME="7120"></A>
-<A NAME="fn:WSplit.geom"></A>
+<DD><A NAME="fn:WSplit.geom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WSplit.geom(WSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7121"></A>
-<A NAME="7122"></A>
-<A NAME="fn:WSplit.parent"></A>
+<DD><A NAME="fn:WSplit.parent"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplitInner WSplit.parent(WSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7123"></A>
-<A NAME="7124"></A>
-<A NAME="fn:WSplit.rqgeom"></A>
+<DD><A NAME="fn:WSplit.rqgeom"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WSplit.rqgeom(WSplit node, table g)</TT>
<P>
<DL>
-<DD><A NAME="7125"></A>
-<A NAME="7126"></A>
-<A NAME="fn:WSplit.transpose"></A>
+<DD><A NAME="fn:WSplit.transpose"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WSplit.transpose(WSplit node)</TT>
<P>
<DL>
-<DD><A NAME="7128"></A>
-<A NAME="7129"></A>
-<A NAME="fn:WSplitInner.current"></A>
+<DD><A NAME="fn:WSplitInner.current"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WSplitInner.current(WSplitInner node)</TT>
<P>
<DL>
-<DD><A NAME="7131"></A>
-<A NAME="7132"></A>
-<A NAME="fn:WSplitRegion.reg"></A>
+<DD><A NAME="fn:WSplitRegion.reg"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WSplitRegion.reg(WSplitRegion node)</TT>
<P>
<DL>
-<DD><A NAME="7134"></A>
-<A NAME="7135"></A>
-<A NAME="fn:WSplitSplit.br"></A>
+<DD><A NAME="fn:WSplitSplit.br"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WSplitSplit.br(WSplitSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7136"></A>
-<A NAME="7137"></A>
-<A NAME="fn:WSplitSplit.dir"></A>
+<DD><A NAME="fn:WSplitSplit.dir"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WSplitSplit.dir(WSplitSplit split)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Returns the direction of <TT>split</TT>; either ''vertical'' or
- ''horizontal''.
+<DD>Returns the direction of <TT>split</TT>; either `<TT>vertical</TT>' or
+ `<TT>horizontal</TT>'.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7138"></A>
-<A NAME="7139"></A>
-<A NAME="fn:WSplitSplit.flip"></A>
+<DD><A NAME="fn:WSplitSplit.flip"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WSplitSplit.flip(WSplitSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7140"></A>
-<A NAME="7141"></A>
-<A NAME="fn:WSplitSplit.tl"></A>
+<DD><A NAME="fn:WSplitSplit.tl"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WSplitSplit.tl(WSplitSplit split)</TT>
<P>
<DL>
-<DD><A NAME="7143"></A>
-<A NAME="7144"></A>
-<A NAME="fn:WTiling.flip_at"></A>
+<DD><A NAME="fn:WTiling.flip_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.flip_at(WTiling ws, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7145"></A>
-<A NAME="7146"></A>
-<A NAME="fn:WTiling.transpose_at"></A>
+<DD><A NAME="fn:WTiling.transpose_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.transpose_at(WTiling ws, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7147"></A>
-<A NAME="7148"></A>
-<A NAME="fn:WTiling.farthest"></A>
+<DD><A NAME="fn:WTiling.farthest"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WTiling.farthest(WTiling ws, string dirstr, bool any)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Return the most previously active region on <TT>ws</TT> with no
other regions next to it in direction <TT>dirstr</TT>
- (left/right/up/down). If <TT>any</TT> is not set, the status
- display is not considered.
+ (`<TT>left</TT>', `<TT>right</TT>', `<TT>up</TT>', or `<TT>down</TT>').
+ If <TT>any</TT> is not set, the status display is not considered.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7149"></A>
-<A NAME="7150"></A>
-<A NAME="fn:WTiling.managed_i"></A>
+<DD><A NAME="fn:WTiling.managed_i"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.managed_i(WTiling ws, function iterfn)</TT>
<P>
<DL>
-<DD><A NAME="7151"></A>
-<A NAME="7152"></A>
-<A NAME="fn:WTiling.nextto"></A>
+<DD><A NAME="fn:WTiling.nextto"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WRegion WTiling.nextto(WTiling ws, WRegion reg, string dirstr, bool any)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Return the most previously active region next to <TT>reg</TT> in
- direction <TT>dirstr</TT> (left/right/up/down). The region <TT>reg</TT>
+ direction <TT>dirstr</TT> (`<TT>left</TT>', `<TT>right</TT>', `<TT>up</TT>',
+ or `<TT>down</TT>'). The region <TT>reg</TT>
must be managed by <TT>ws</TT>. If <TT>any</TT> is not set, the status display
is not considered.
<P>
<DL>
-<DD><A NAME="7153"></A>
-<A NAME="7154"></A>
-<A NAME="fn:WTiling.node_of"></A>
+<DD><A NAME="fn:WTiling.node_of"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplitRegion WTiling.node_of(WTiling ws, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="7155"></A>
-<A NAME="7156"></A>
-<A NAME="fn:WTiling.set_floating_at"></A>
+<DD><A NAME="fn:WTiling.set_floating_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WTiling.set_floating_at(WTiling ws, WRegion reg, string how, string dirstr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Toggle floating of the sides of a split containin <TT>reg</TT> as indicated
- by the parameters <TT>how</TT> (set/unset/toggle) and <TT>dirstr</TT>
- (left/right/up/down/any). The new status is returned (and <TT>false</TT>
- also on error).
+ by the parameters <TT>how</TT> (`<TT>set</TT>', `<TT>unset</TT>', or
+ `<TT>toggle</TT>') and <TT>dirstr</TT> (`<TT>left</TT>', `<TT>right</TT>',
+ `<TT>up</TT>', or `<TT>down</TT>'). The new status is returned
+ (and <TT>false</TT> also on error).
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7157"></A>
-<A NAME="7158"></A>
-<A NAME="fn:WTiling.set_floating"></A>
+<DD><A NAME="fn:WTiling.set_floating"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplitSplit WTiling.set_floating(WTiling ws, WSplitSplit split, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Toggle floating of a split's sides at <TT>split</TT> as indicated by the
- parameter <TT>how</TT> (set/unset/toggle). A split of the appropriate is
- returned, if there was a change.
+ parameter <TT>how</TT> (`<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>').
+ A split of the appropriate is returned, if there was a change.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7159"></A>
-<A NAME="7160"></A>
-<A NAME="fn:WTiling.split"></A>
+<DD><A NAME="fn:WTiling.split"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WFrame WTiling.split(WTiling ws, WSplit node, string dirstr)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>Create a new frame on <TT>ws</TT> above/below/left of/right of
- <TT>node</TT> as indicated by <TT>dirstr</TT>. If <TT>dirstr</TT> is
- prefixed with ''floating:'' a floating split is created.
+<DD>Create a new frame on <TT>ws</TT> `<TT>above</TT>', `<TT>below</TT>'
+ `<TT>left</TT>' of, or `<TT>right</TT>' of <TT>node</TT> as indicated
+ by <TT>dirstr</TT>. If <TT>dirstr</TT> is prefixed with
+ `<TT>floating:</TT>' a floating split is created.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7161"></A>
-<A NAME="7162"></A>
-<A NAME="fn:WTiling.split_at"></A>
+<DD><A NAME="fn:WTiling.split_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WFrame WTiling.split_at(WTiling ws, WFrame frame, string dirstr, bool attach_current)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Split <TT>frame</TT> creating a new frame to direction <TT>dirstr</TT>
- (one of ''left'', ''right'', ''top'' or ''bottom'') of <TT>frame</TT>.
+ (one of `<TT>left</TT>', `<TT>right</TT>', `<TT>top</TT>' or
+ `<TT>bottom</TT>') of <TT>frame</TT>.
If <TT>attach_current</TT> is set, the region currently displayed in
<TT>frame</TT>, if any, is moved to thenew frame.
- If <TT>dirstr</TT> is prefixed with ''floating:'' a floating split is
- created.
+ If <TT>dirstr</TT> is prefixed with `<TT>floating:</TT>', a floating
+ split is created.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="7163"></A>
-<A NAME="7164"></A>
-<A NAME="fn:WTiling.split_top"></A>
+<DD><A NAME="fn:WTiling.split_top"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WFrame WTiling.split_top(WTiling ws, string dirstr)</TT>
<P>
<DL>
-<DD><A NAME="7165"></A>
-<A NAME="7166"></A>
-<A NAME="fn:WTiling.split_tree"></A>
+<DD><A NAME="fn:WTiling.split_tree"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>WSplit WTiling.split_tree(WTiling ws)</TT>
<P>
<DL>
-<DD><A NAME="7167"></A>
-<A NAME="7168"></A>
-<A NAME="fn:WTiling.unsplit_at"></A>
+<DD><A NAME="fn:WTiling.unsplit_at"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WTiling.unsplit_at(WTiling ws, WRegion reg)</TT>
</H2>
<DL>
-<DD><A NAME="8171"></A>
-<A NAME="8172"></A>
-<A NAME="fn:mod_query.defcmd"></A>
+<DD><A NAME="fn:mod_query.defcmd"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.defcmd(cmd, fn)</TT>
<P>
<DL>
-<DD><A NAME="8173"></A>
-<A NAME="8174"></A>
-<A NAME="fn:mod_query.message"></A>
+<DD><A NAME="fn:mod_query.message"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.message(mplex, str)</TT>
<P>
<DL>
-<DD><A NAME="8175"></A>
-<A NAME="8176"></A>
-<A NAME="fn:mod_query.get"></A>
+<DD><A NAME="fn:mod_query.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_query.get()</TT>
<P>
<DL>
-<DD><A NAME="8177"></A>
-<A NAME="8178"></A>
-<A NAME="fn:mod_query.history_clear"></A>
+<DD><A NAME="fn:mod_query.history_clear"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_query.history_clear()</TT>
<P>
<DL>
-<DD><A NAME="8179"></A>
-<A NAME="8180"></A>
-<A NAME="fn:mod_query.history_get"></A>
+<DD><A NAME="fn:mod_query.history_get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string mod_query.history_get(integer n)</TT>
<P>
<DL>
-<DD><A NAME="8181"></A>
-<A NAME="8182"></A>
-<A NAME="fn:mod_query.history_push"></A>
+<DD><A NAME="fn:mod_query.history_push"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_query.history_push(string str)</TT>
<P>
<DL>
-<DD><A NAME="8183"></A>
-<A NAME="8184"></A>
-<A NAME="fn:mod_query.history_search"></A>
+<DD><A NAME="fn:mod_query.history_search"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer mod_query.history_search(string s, integer from, bool bwd, bool exact)</TT>
<P>
<DL>
-<DD><A NAME="8185"></A>
-<A NAME="8186"></A>
-<A NAME="fn:mod_query.history_table"></A>
+<DD><A NAME="fn:mod_query.history_table"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_query.history_table()</TT>
<P>
<DL>
-<DD><A NAME="8187"></A>
-<A NAME="8188"></A>
-<A NAME="fn:mod_query.set"></A>
+<DD><A NAME="fn:mod_query.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_query.set(table tab)</TT>
<P>
<DL>
-<DD><A NAME="8189"></A>
-<A NAME="8190"></A>
-<A NAME="fn:mod_query.popen_completions"></A>
+<DD><A NAME="fn:mod_query.popen_completions"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.popen_completions(cp, cmd, fn, reshnd)</TT>
<P>
<DL>
-<DD><A NAME="8191"></A>
-<A NAME="8192"></A>
-<A NAME="fn:mod_query.query"></A>
+<DD><A NAME="fn:mod_query.query"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query(mplex, prompt, initvalue, handler, completor,
<P>
<DL>
-<DD><A NAME="8193"></A>
-<A NAME="8194"></A>
-<A NAME="fn:mod_query.query_attachclient"></A>
+<DD><A NAME="fn:mod_query.query_attachclient"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_attachclient(mplex)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>This query asks for the name of a client window and switches
- focus to the one entered. It uses the completion function
- <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
+<DD>This query asks for the name of a client window and attaches
+ it to the frame the query was opened in. It uses the completion
+ function <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="8195"></A>
-<A NAME="8196"></A>
-<A NAME="fn:mod_query.query_editfile"></A>
+<DD><A NAME="fn:mod_query.query_editfile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_editfile(mplex, script, prompt)</TT>
<P>
<DL>
-<DD><A NAME="8197"></A>
-<A NAME="8198"></A>
-<A NAME="fn:mod_query.query_exec"></A>
+<DD><A NAME="fn:mod_query.query_exec"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_exec(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8199"></A>
-<A NAME="8200"></A>
-<A NAME="fn:mod_query.query_gotoclient"></A>
+<DD><A NAME="fn:mod_query.query_gotoclient"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_gotoclient(mplex)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD>This query asks for the name of a client window and attaches
- it to the frame the query was opened in. It uses the completion
- function <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
+<DD>This query asks for the name of a client window and switches
+ focus to the one entered. It uses the completion function
+ <A HREF="#fn:ioncore.complete_clientwin"><TT>ioncore.complete_clientwin</TT></A>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="8201"></A>
-<A NAME="8202"></A>
-<A NAME="fn:mod_query.query_lua"></A>
+<DD><A NAME="fn:mod_query.query_lua"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_lua(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8203"></A>
-<A NAME="8204"></A>
-<A NAME="fn:mod_query.query_man"></A>
+<DD><A NAME="fn:mod_query.query_man"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_man(mplex, prog)</TT>
<P>
<DL>
-<DD><A NAME="8205"></A>
-<A NAME="8206"></A>
-<A NAME="fn:mod_query.query_menu"></A>
+<DD><A NAME="fn:mod_query.query_menu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_menu(mplex, sub, themenu, prompt)</TT>
<P>
<DL>
-<DD><A NAME="8207"></A>
-<A NAME="8208"></A>
-<A NAME="fn:mod_query.query_renameframe"></A>
+<DD><A NAME="fn:mod_query.query_renameframe"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_renameframe(frame)</TT>
<P>
<DL>
-<DD><A NAME="8209"></A>
-<A NAME="8210"></A>
-<A NAME="fn:mod_query.query_renameworkspace"></A>
+<DD><A NAME="fn:mod_query.query_renameworkspace"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_renameworkspace(mplex, ws)</TT>
<P>
<DL>
-<DD><A NAME="8211"></A>
-<A NAME="8212"></A>
-<A NAME="fn:mod_query.query_restart"></A>
+<DD><A NAME="fn:mod_query.query_restart"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_restart(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8213"></A>
-<A NAME="8214"></A>
-<A NAME="fn:mod_query.query_runfile"></A>
+<DD><A NAME="fn:mod_query.query_runfile"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_runfile(mplex, script, prompt)</TT>
<P>
<DL>
-<DD><A NAME="8215"></A>
-<A NAME="8216"></A>
-<A NAME="fn:mod_query.query_shutdown"></A>
+<DD><A NAME="fn:mod_query.query_shutdown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_shutdown(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8217"></A>
-<A NAME="8218"></A>
-<A NAME="fn:mod_query.query_ssh"></A>
+<DD><A NAME="fn:mod_query.query_ssh"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_ssh(mplex, ssh)</TT>
<P>
<DL>
-<DD><A NAME="8220"></A>
-<A NAME="8221"></A>
-<A NAME="fn:mod_query.query_workspace"></A>
+<DD><A NAME="fn:mod_query.query_workspace"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_workspace(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8222"></A>
-<A NAME="8223"></A>
-<A NAME="fn:mod_query.query_yesno"></A>
+<DD><A NAME="fn:mod_query.query_yesno"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.query_yesno(mplex, prompt, handler)</TT>
<P>
<DL>
-<DD><A NAME="8224"></A>
-<A NAME="8225"></A>
-<A NAME="fn:mod_query.show_about_ion"></A>
+<DD><A NAME="fn:mod_query.show_about_ion"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.show_about_ion(mplex)</TT>
<P>
<DL>
-<DD><A NAME="8226"></A>
-<A NAME="8227"></A>
-<A NAME="fn:mod_query.show_tree"></A>
+<DD><A NAME="fn:mod_query.show_tree"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.show_tree(mplex, reg, max_depth)</TT>
<P>
<DL>
-<DD><A NAME="8228"></A>
-<A NAME="8229"></A>
-<A NAME="fn:mod_query.warn"></A>
+<DD><A NAME="fn:mod_query.warn"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_query.warn(mplex, str)</TT>
<P>
<DL>
-<DD><A NAME="8231"></A>
-<A NAME="8232"></A>
-<A NAME="fn:WComplProxy.set_completions"></A>
+<DD><A NAME="fn:WComplProxy.set_completions"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WComplProxy.set_completions(WComplProxy proxy, table compls)</TT>
<P>
<DL>
-<DD><A NAME="8234"></A>
-<A NAME="8235"></A>
-<A NAME="fn:WEdln.back"></A>
+<DD><A NAME="fn:WEdln.back"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.back(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8236"></A>
-<A NAME="8237"></A>
-<A NAME="fn:WEdln.backspace"></A>
+<DD><A NAME="fn:WEdln.backspace"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.backspace(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8238"></A>
-<A NAME="8239"></A>
-<A NAME="fn:WEdln.bkill_word"></A>
+<DD><A NAME="fn:WEdln.bkill_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.bkill_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8240"></A>
-<A NAME="8241"></A>
-<A NAME="fn:WEdln.bol"></A>
+<DD><A NAME="fn:WEdln.bol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.bol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8242"></A>
-<A NAME="8243"></A>
-<A NAME="fn:WEdln.bskip_word"></A>
+<DD><A NAME="fn:WEdln.bskip_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.bskip_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8244"></A>
-<A NAME="8245"></A>
-<A NAME="fn:WEdln.clear_mark"></A>
+<DD><A NAME="fn:WEdln.clear_mark"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.clear_mark(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8246"></A>
-<A NAME="8247"></A>
-<A NAME="fn:WEdln.complete"></A>
+<DD><A NAME="fn:WEdln.complete"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.complete(WEdln wedln, string cycle, string mode)</TT>
<DT><STRONG>Description:</STRONG></DT>
<DD>Call completion handler with the text between the beginning of line and
current cursor position, or select next/previous completion from list if in
- auto-show-completions mode and <TT>cycle</TT> is set to ``next'' or ``prev'',
- respectively. The <TT>mode</TT> may be ``history'' or ``normal''. If it is
+ auto-show-completions mode and <TT>cycle</TT> is set to `<TT>next</TT>' or
+ `<TT>prev</TT>', respectively.
+ The <TT>mode</TT> may be `<TT>history</TT>' or `<TT>normal</TT>'. If it is
not set, the previous mode is used. Normally next entry is not cycled to
despite the setting of <TT>cycle</TT> if mode switch occurs. To override
- this, use ``next-always'' and ``prev-always'' for <TT>cycle</TT>.
+ this, use `<TT>next-always</TT>' and `<TT>prev-always</TT>' for <TT>cycle</TT>.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="8248"></A>
-<A NAME="8249"></A>
-<A NAME="fn:WEdln.contents"></A>
+<DD><A NAME="fn:WEdln.contents"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WEdln.contents(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8250"></A>
-<A NAME="8251"></A>
-<A NAME="fn:WEdln.context"></A>
+<DD><A NAME="fn:WEdln.context"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>string WEdln.context(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8252"></A>
-<A NAME="8253"></A>
-<A NAME="fn:WEdln.copy"></A>
+<DD><A NAME="fn:WEdln.copy"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.copy(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8254"></A>
-<A NAME="8255"></A>
-<A NAME="fn:WEdln.cut"></A>
+<DD><A NAME="fn:WEdln.cut"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.cut(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8256"></A>
-<A NAME="8257"></A>
-<A NAME="fn:WEdln.delete"></A>
+<DD><A NAME="fn:WEdln.delete"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.delete(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8258"></A>
-<A NAME="8259"></A>
-<A NAME="fn:WEdln.eol"></A>
+<DD><A NAME="fn:WEdln.eol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.eol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8260"></A>
-<A NAME="8261"></A>
-<A NAME="fn:WEdln.finish"></A>
+<DD><A NAME="fn:WEdln.finish"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.finish(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8262"></A>
-<A NAME="8263"></A>
-<A NAME="fn:WEdln.forward"></A>
+<DD><A NAME="fn:WEdln.forward"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.forward(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8264"></A>
-<A NAME="8265"></A>
-<A NAME="fn:WEdln.history_next"></A>
+<DD><A NAME="fn:WEdln.history_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.history_next(WEdln wedln, bool match)</TT>
<P>
<DL>
-<DD><A NAME="8266"></A>
-<A NAME="8267"></A>
-<A NAME="fn:WEdln.history_prev"></A>
+<DD><A NAME="fn:WEdln.history_prev"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.history_prev(WEdln wedln, bool match)</TT>
<P>
<DL>
-<DD><A NAME="8268"></A>
-<A NAME="8269"></A>
-<A NAME="fn:WEdln.insstr"></A>
+<DD><A NAME="fn:WEdln.insstr"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.insstr(WEdln wedln, string str)</TT>
<P>
<DL>
-<DD><A NAME="8270"></A>
-<A NAME="8271"></A>
-<A NAME="fn:WEdln.is_histcompl"></A>
+<DD><A NAME="fn:WEdln.is_histcompl"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WEdln.is_histcompl(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8272"></A>
-<A NAME="8273"></A>
-<A NAME="fn:WEdln.kill_line"></A>
+<DD><A NAME="fn:WEdln.kill_line"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_line(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8274"></A>
-<A NAME="8275"></A>
-<A NAME="fn:WEdln.kill_to_bol"></A>
+<DD><A NAME="fn:WEdln.kill_to_bol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_to_bol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8276"></A>
-<A NAME="8277"></A>
-<A NAME="fn:WEdln.kill_to_eol"></A>
+<DD><A NAME="fn:WEdln.kill_to_eol"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_to_eol(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8278"></A>
-<A NAME="8279"></A>
-<A NAME="fn:WEdln.kill_word"></A>
+<DD><A NAME="fn:WEdln.kill_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.kill_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8280"></A>
-<A NAME="8281"></A>
-<A NAME="fn:WEdln.mark"></A>
+<DD><A NAME="fn:WEdln.mark"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WEdln.mark(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8282"></A>
-<A NAME="8283"></A>
-<A NAME="fn:WEdln.next_completion"></A>
+<DD><A NAME="fn:WEdln.next_completion"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WEdln.next_completion(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8284"></A>
-<A NAME="8285"></A>
-<A NAME="fn:WEdln.paste"></A>
+<DD><A NAME="fn:WEdln.paste"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.paste(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8286"></A>
-<A NAME="8287"></A>
-<A NAME="fn:WEdln.point"></A>
+<DD><A NAME="fn:WEdln.point"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>integer WEdln.point(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8288"></A>
-<A NAME="8289"></A>
-<A NAME="fn:WEdln.prev_completion"></A>
+<DD><A NAME="fn:WEdln.prev_completion"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WEdln.prev_completion(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8290"></A>
-<A NAME="8291"></A>
-<A NAME="fn:WEdln.set_context"></A>
+<DD><A NAME="fn:WEdln.set_context"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.set_context(WEdln wedln, string context)</TT>
<P>
<DL>
-<DD><A NAME="8292"></A>
-<A NAME="8293"></A>
-<A NAME="fn:WEdln.set_mark"></A>
+<DD><A NAME="fn:WEdln.set_mark"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.set_mark(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8294"></A>
-<A NAME="8295"></A>
-<A NAME="fn:WEdln.skip_word"></A>
+<DD><A NAME="fn:WEdln.skip_word"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.skip_word(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8296"></A>
-<A NAME="8297"></A>
-<A NAME="fn:WEdln.transpose_chars"></A>
+<DD><A NAME="fn:WEdln.transpose_chars"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.transpose_chars(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8298"></A>
-<A NAME="8299"></A>
-<A NAME="fn:WEdln.transpose_words"></A>
+<DD><A NAME="fn:WEdln.transpose_words"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WEdln.transpose_words(WEdln wedln)</TT>
<P>
<DL>
-<DD><A NAME="8301"></A>
-<A NAME="8302"></A>
-<A NAME="fn:WInput.cancel"></A>
+<DD><A NAME="fn:WInput.cancel"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInput.cancel(WInput input)</TT>
<P>
<DL>
-<DD><A NAME="8303"></A>
-<A NAME="8304"></A>
-<A NAME="fn:WInput.scrolldown"></A>
+<DD><A NAME="fn:WInput.scrolldown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInput.scrolldown(WInput input)</TT>
<P>
<DL>
-<DD><A NAME="8305"></A>
-<A NAME="8306"></A>
-<A NAME="fn:WInput.scrollup"></A>
+<DD><A NAME="fn:WInput.scrollup"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WInput.scrollup(WInput input)</TT>
</H2>
<DL>
-<DD><A NAME="9122"></A>
-<A NAME="9123"></A>
-<A NAME="fn:mod_menu.grabmenu"></A>
+<DD><A NAME="fn:mod_menu.grabmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_menu.grabmenu(mplex, sub, menu_or_name, param)</TT>
<P>
<DL>
-<DD><A NAME="9124"></A>
-<A NAME="9125"></A>
-<A NAME="fn:mod_menu.menu"></A>
+<DD><A NAME="fn:mod_menu.menu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_menu.menu(mplex, sub, menu_or_name, param)</TT>
<P>
<DL>
-<DD><A NAME="9126"></A>
-<A NAME="9127"></A>
-<A NAME="fn:mod_menu.get"></A>
+<DD><A NAME="fn:mod_menu.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_menu.get()</TT>
<P>
<DL>
-<DD><A NAME="9128"></A>
-<A NAME="9129"></A>
-<A NAME="fn:mod_menu.set"></A>
+<DD><A NAME="fn:mod_menu.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_menu.set(table tab)</TT>
<P>
<DL>
-<DD><A NAME="9130"></A>
-<A NAME="9131"></A>
-<A NAME="fn:mod_menu.pmenu"></A>
+<DD><A NAME="fn:mod_menu.pmenu"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>mod_menu.pmenu(win, sub, menu_or_name)</TT>
<P>
<DL>
-<DD><A NAME="9133"></A>
-<A NAME="9134"></A>
-<A NAME="fn:WMenu.cancel"></A>
+<DD><A NAME="fn:WMenu.cancel"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.cancel(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9135"></A>
-<A NAME="9136"></A>
-<A NAME="fn:WMenu.finish"></A>
+<DD><A NAME="fn:WMenu.finish"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.finish(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9137"></A>
-<A NAME="9138"></A>
-<A NAME="fn:WMenu.select_next"></A>
+<DD><A NAME="fn:WMenu.select_next"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.select_next(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9139"></A>
-<A NAME="9140"></A>
-<A NAME="fn:WMenu.select_nth"></A>
+<DD><A NAME="fn:WMenu.select_nth"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.select_nth(WMenu menu, integer n)</TT>
<P>
<DL>
-<DD><A NAME="9141"></A>
-<A NAME="9142"></A>
-<A NAME="fn:WMenu.select_prev"></A>
+<DD><A NAME="fn:WMenu.select_prev"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.select_prev(WMenu menu)</TT>
<P>
<DL>
-<DD><A NAME="9143"></A>
-<A NAME="9144"></A>
-<A NAME="fn:WMenu.typeahead_clear"></A>
+<DD><A NAME="fn:WMenu.typeahead_clear"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WMenu.typeahead_clear(WMenu menu)</TT>
</H2>
<DL>
-<DD><A NAME="9342"></A>
-<A NAME="9343"></A>
-<A NAME="fn:mod_dock.set_floating_shown_on"></A>
+<DD><A NAME="fn:mod_dock.set_floating_shown_on"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void mod_dock.set_floating_shown_on(WMPlex mplex, string how)</TT>
<P>
<DL>
-<DD><A NAME="9345"></A>
-<A NAME="9346"></A>
-<A NAME="fn:WDock.attach"></A>
+<DD><A NAME="fn:WDock.attach"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WDock.attach(WDock dock, WRegion reg)</TT>
<P>
<DL>
-<DD><A NAME="9347"></A>
-<A NAME="9348"></A>
-<A NAME="fn:WDock.get"></A>
+<DD><A NAME="fn:WDock.get"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WDock.get(WDock dock)</TT>
<P>
<DL>
-<DD><A NAME="9349"></A>
-<A NAME="9350"></A>
-<A NAME="fn:WDock.resize"></A>
+<DD><A NAME="fn:WDock.resize"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WDock.resize(WDock dock)</TT>
<P>
<DL>
-<DD><A NAME="9351"></A>
-<A NAME="9352"></A>
-<A NAME="fn:WDock.set"></A>
+<DD><A NAME="fn:WDock.set"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WDock.set(WDock dock, table conftab)</TT>
<TD ALIGN="LEFT">string in <!-- MATH
$\{t,m,b\}\times\{t,c,b\}$
-->
-<SPAN CLASS="MATH"></SPAN></TD>
+<SPAN CLASS="MATH"><IMG
+ WIDTH="142" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
+ SRC="img6.png"
+ ALT="$\{t,m,b\}\times\{t,c,b\}$"></SPAN></TD>
<TD ALIGN="LEFT">Dock position.
Can only be used in floating mode.</TD>
</TR>
</H2>
<DL>
-<DD><A NAME="9451"></A>
-<A NAME="9452"></A>
-<A NAME="fn:mod_sp.set_shown"></A>
+<DD><A NAME="fn:mod_sp.set_shown"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_sp.set_shown(WFrame sp, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Toggle displayed status of <TT>sp</TT>.
- The parameter <TT>how</TT> is one of (set/unset/toggle).
+ The parameter <TT>how</TT> is one of
+ `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
+ The resulting status is returned.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="9453"></A>
-<A NAME="9454"></A>
-<A NAME="fn:mod_sp.set_shown_on"></A>
+<DD><A NAME="fn:mod_sp.set_shown_on"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool mod_sp.set_shown_on(WMPlex mplex, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Change displayed status of some scratchpad on <TT>mplex</TT> if one is
- found. The parameter <TT>how</TT> is one of (set/unset/toggle).
+ found. The parameter <TT>how</TT> is one of
+ `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
+ The resulting status is returned.
</DD>
</DL>
</H2>
<DL>
-<DD><A NAME="9548"></A>
-<A NAME="9549"></A>
-<A NAME="fn:mod_statusbar.statusbars"></A>
+<DD><A NAME="fn:mod_statusbar.create"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.create(param)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Create a statusbar. The possible parameters in the
+ table <TT>param</TT> are:
+
+<P>
+<TABLE CELLPADDING=3 WIDTH="100%">
+<TR><TD ALIGN="LEFT">Variable</TD>
+<TD ALIGN="LEFT">Type</TD>
+<TD ALIGN="LEFT">Description</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>template</TT></TD>
+<TD ALIGN="LEFT">string</TD>
+<TD ALIGN="LEFT">The template; see
+ Section <A HREF="node4.html#sec:statusbar">3.6</A>.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>pos</TT></TD>
+<TD ALIGN="LEFT">string</TD>
+<TD ALIGN="LEFT">Position: <TT>"tl"</TT>, <TT>"tr"</TT>,
+ <TT>"bl"</TT> or <TT>"br"</TT>
+ (for the obvious combinations of
+ top/left/bottom/right).</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>screen</TT></TD>
+<TD ALIGN="LEFT">integer</TD>
+<TD ALIGN="LEFT">Screen number to create the statusbar on.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>fullsize</TT></TD>
+<TD ALIGN="LEFT">boolean</TD>
+<TD ALIGN="LEFT">If set, the statusbar will waste
+ space instead of adapting to layout.</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>systray</TT></TD>
+<TD ALIGN="LEFT">boolaen</TD>
+<TD ALIGN="LEFT">Swallow (KDE protocol) systray icons.</TD>
+</TR>
+</TABLE>
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.inform"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.inform(name, value)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Inform of a value.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.launch_statusd"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.launch_statusd(cfg)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Load modules and launch <SPAN CLASS="textit">ion-statusd</SPAN> with configuration
+ table <TT>cfg</TT>. The options for each <SPAN CLASS="textit">ion-statusd</SPAN> monitor
+ script should be contained in the corresponding sub-table of <TT>cfg</TT>.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.statusbars"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table mod_statusbar.statusbars()</TT>
</DD>
</DL>
+<P>
+
+ <DL>
+<DD><A NAME="fn:mod_statusbar.update"></A>
+</DD>
+<DT><STRONG>Synopsis:</STRONG></DT>
+<DD><TT>mod_statusbar.update(update_templates)</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>Update statusbar contents. To be called after series
+ of <A HREF="#fn:mod_statusbar.inform"><TT>mod_statusbar.inform</TT></A> calls.
+
+</DD>
+</DL>
+
<P>
<H3><A NAME="SECTION00771000000000000000">
<P>
<DL>
-<DD><A NAME="9551"></A>
-<A NAME="9552"></A>
-<A NAME="fn:WStatusBar.get_template_table"></A>
+<DD><A NAME="fn:WStatusBar.get_template_table"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table WStatusBar.get_template_table(WStatusBar sb)</TT>
<P>
<DL>
-<DD><A NAME="9553"></A>
-<A NAME="9554"></A>
-<A NAME="fn:WStatusBar.is_systray_extl"></A>
+<DD><A NAME="fn:WStatusBar.is_systray"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
-<DD><TT>bool WStatusBar.is_systray_extl(WStatusBar sb)</TT>
+<DD><TT>bool WStatusBar.is_systray(WStatusBar sb)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9555"></A>
-<A NAME="9556"></A>
-<A NAME="fn:WStatusBar.set_systray"></A>
+<DD><A NAME="fn:WStatusBar.set_systray"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool WStatusBar.set_systray(WStatusBar sb, string how)</TT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Enable or disable use of <TT>sb</TT> as systray.
- The parameter <TT>how</TT> can be one of (set/unset/toggle).
+ The parameter <TT>how</TT> can be one of
+ `<TT>set</TT>', `<TT>unset</TT>', or `<TT>toggle</TT>'.
Resulting state is returned.
</DD>
<P>
<DL>
-<DD><A NAME="9557"></A>
-<A NAME="9558"></A>
-<A NAME="fn:WStatusBar.set_template"></A>
+<DD><A NAME="fn:WStatusBar.set_template"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WStatusBar.set_template(WStatusBar sb, string tmpl)</TT>
<P>
<DL>
-<DD><A NAME="9559"></A>
-<A NAME="9560"></A>
-<A NAME="fn:WStatusBar.set_template_table"></A>
+<DD><A NAME="fn:WStatusBar.set_template_table"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WStatusBar.set_template_table(WStatusBar sb, table t)</TT>
<P>
<DL>
-<DD><A NAME="9561"></A>
-<A NAME="9562"></A>
-<A NAME="fn:WStatusBar.update"></A>
+<DD><A NAME="fn:WStatusBar.update"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void WStatusBar.update(WStatusBar sb, table t)</TT>
</H2>
<DL>
-<DD><A NAME="9672"></A>
-<A NAME="9673"></A>
-<A NAME="fn:de.defstyle"></A>
+<DD><A NAME="fn:de.defstyle"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool de.defstyle(string name, table tab)</TT>
<P>
<DL>
-<DD><A NAME="9674"></A>
-<A NAME="9675"></A>
-<A NAME="fn:de.defstyle_rootwin"></A>
+<DD><A NAME="fn:de.defstyle_rootwin"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>bool de.defstyle_rootwin(WRootWin rootwin, string name, table tab)</TT>
<P>
<DL>
-<DD><A NAME="9676"></A>
-<A NAME="9677"></A>
-<A NAME="fn:de.reset"></A>
+<DD><A NAME="fn:de.reset"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>void de.reset()</TT>
<P>
<DL>
-<DD><A NAME="9678"></A>
-<A NAME="9679"></A>
-<A NAME="fn:de.substyle"></A>
+<DD><A NAME="fn:de.substyle"></A>
</DD>
<DT><STRONG>Synopsis:</STRONG></DT>
<DD><TT>table de.substyle(string pattern, table tab)</TT>
<P>
<DL>
-<DD><A NAME="9877"></A>
+<DD><A NAME="8232"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</TR>
<TR><TD ALIGN="LEFT"><TT>dockapp</TT></TD>
<TD ALIGN="LEFT">bool</TD>
-<TD ALIGN="LEFT">Client window is a dockapp.</TD>
+<TD ALIGN="LEFT">Client window is a dock-app.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>maprq</TT></TD>
<TD ALIGN="LEFT">bool</TD>
<P>
<DL>
-<DD><A NAME="9878"></A>
+<DD><A NAME="8233"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9879"></A>
+<DD><A NAME="8234"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9880"></A>
+<DD><A NAME="8235"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9881"></A>
+<DD><A NAME="8236"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</TR>
<TR><TD ALIGN="LEFT"><TT>mode</TT></TD>
<TD ALIGN="LEFT">string</TD>
-<TD ALIGN="LEFT"><TT>"switchonly"</TT>, <TT>"reorder"</TT>,
- <TT>"add"</TT> or <TT>"remove"</TT></TD>
+<TD ALIGN="LEFT">`<TT>switchonly</TT>', `<TT>reorder</TT>',
+ `<TT>add</TT>' or `<TT>remove</TT>'</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>sw</TT></TD>
<TD ALIGN="LEFT">bool</TD>
-<TD ALIGN="LEFT">Switch occured</TD>
+<TD ALIGN="LEFT">Switch occurred</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>sub</TT></TD>
<TD ALIGN="LEFT">WRegion</TD>
<P>
<DL>
-<DD><A NAME="9882"></A>
+<DD><A NAME="8237"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9883"></A>
+<DD><A NAME="8238"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9884"></A>
+<DD><A NAME="8239"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</DD>
<DT><STRONG>Description:</STRONG></DT>
<DD>Called when Ion has done all initialisation and is almost ready to
- enter the mainloop, except no windows are yet being managed.
+ enter the main-loop, except no windows are yet being managed.
</DD>
</DL>
<P>
<DL>
-<DD><A NAME="9885"></A>
+<DD><A NAME="8240"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9886"></A>
+<DD><A NAME="8241"></A>
+
+</DD>
+<DT><STRONG>Hook name:</STRONG></DT>
+<DD><A NAME="ioncore_submap_ungrab_hook"></A><TT>ioncore_submap_ungrab_hook</TT>
+
+</DD>
+<DT><STRONG>Parameters:</STRONG></DT>
+<DD><TT>()</TT>
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD>This hook is used to signal whenever Ion leaves the submap grab mode.
+
+</DD>
+</DL>
+
+<P>
+
+ <DL>
+<DD><A NAME="8242"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
</TR>
<TR><TD ALIGN="LEFT"><TT>res_frame</TT></TD>
<TD ALIGN="LEFT">WFrame</TD>
-<TD ALIGN="LEFT">A succesfull handler should
+<TD ALIGN="LEFT">A successful handler should
return the target frame here.</TD>
</TR>
</TABLE>
<P>
<DL>
-<DD><A NAME="9887"></A>
+<DD><A NAME="8243"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9888"></A>
+<DD><A NAME="8244"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="9889"></A>
+<DD><A NAME="8245"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<TD ALIGN="LEFT">Tagging state has changed.</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>pseudoactivated</TT></TD>
-<TD ALIGN="LEFT">The region has become pseudoactive
+<TD ALIGN="LEFT">The region has become pseudo-active
(see below).</TD>
</TR>
<TR><TD ALIGN="LEFT"><TT>pseudoinactivated</TT></TD>
-<TD ALIGN="LEFT">The region is no longer pseudoactive.</TD>
+<TD ALIGN="LEFT">The region is no longer pseudo-active.</TD>
</TR>
</TABLE>
<P>
-A region is pseudoactive, when a) it is itself not active (does
+A region is pseudo-active, when a) it is itself not active (does
not not have the focus, and may not even have a window that could
have it), but b) some region managed by it is active.
<P>
+<H2><A NAME="SECTION007100000000000000000"></A>
+<A NAME="sec:miscref"></A>
+<BR>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN> Miscellaneous
+</H2>
+
+<P>
+
+<H3><A NAME="SECTION007101000000000000000"></A>
+<A NAME="sec:sizepolicies"></A>
+<BR>
+<SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">10</SPAN>.<SPAN CLASS="arabic">1</SPAN> Size policies
+</H3>
+
+<P>
+Some functions accept a <TT>sizepolicy</TT> parameter. The possible
+values are:
+
+<P>
+<DIV ALIGN="LEFT">
+`<TT>default</TT>',
+`<TT>full</TT>',
+`<TT>full_bounds</TT>',
+`<TT>free</TT>',
+`<TT>free_glue</TT>',
+`<TT>northwest</TT>',
+`<TT>north</TT>',
+`<TT>northeast</TT>',
+`<TT>west</TT>',
+`<TT>center</TT>',
+`<TT>east</TT>',
+`<TT>southwest</TT>',
+`<TT>south</TT>',
+`<TT>southeast</TT>',
+`<TT>stretch_top</TT>',
+`<TT>stretch_bottom</TT>',
+`<TT>stretch_left</TT>',
+`<TT>stretch_right</TT>',
+`<TT>free_glue_northwest</TT>',
+`<TT>free_glue_north</TT>',
+`<TT>free_glue_northeast</TT>',
+`<TT>free_glue_west</TT>',
+`<TT>free_glue_center</TT>',
+`<TT>free_glue_east</TT>',
+`<TT>free_glue_southwest</TT>',
+`<TT>free_glue_south</TT>', and
+`<TT>free_glue_southeast</TT>'.
+
+</DIV>
+
+<P>
+The ``free'' policies allow the managed
+object to be moved around, whereas the other versions do not.
+The ``glue'' policies glue the object to some border, while allowing
+it to be moved away from it by user action, but not automatically.
+The ``stretch'' policies stretch the object along the given border,
+while the coordinate-based policies simply place the object along
+that border.
+
+<P>
+
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html355"
+<A NAME="tex2html383"
HREF="node8.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html349"
+<A NAME="tex2html377"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html343"
+<A NAME="tex2html371"
HREF="node6.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html351"
+<A NAME="tex2html379"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html353"
+<A NAME="tex2html381"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html356"
+<B> Next:</B> <A NAME="tex2html384"
HREF="node8.html">A. The GNU General</A>
-<B> Up:</B> <A NAME="tex2html350"
+<B> Up:</B> <A NAME="tex2html378"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html344"
+<B> Previous:</B> <A NAME="tex2html372"
HREF="node6.html">5. Scripting</A>
- <B> <A NAME="tex2html352"
+ <B> <A NAME="tex2html380"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html354"
+ <B> <A NAME="tex2html382"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html405"
+<A NAME="tex2html437"
HREF="node9.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html399"
+<A NAME="tex2html431"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html393"
+<A NAME="tex2html425"
HREF="node7.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html401"
+<A NAME="tex2html433"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html403"
+<A NAME="tex2html435"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html406"
+<B> Next:</B> <A NAME="tex2html438"
HREF="node9.html">B. Full class hierarchy</A>
-<B> Up:</B> <A NAME="tex2html400"
+<B> Up:</B> <A NAME="tex2html432"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html394"
+<B> Previous:</B> <A NAME="tex2html426"
HREF="node7.html">6. Function reference</A>
- <B> <A NAME="tex2html402"
+ <B> <A NAME="tex2html434"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html404"
+ <B> <A NAME="tex2html436"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html407"
+<LI><A NAME="tex2html439"
HREF="node8.html#SECTION00810000000000000000">Appendix: How to Apply These Terms to Your New Programs</A>
</UL>
<!--End of Table of Child-Links-->
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html405"
+<A NAME="tex2html437"
HREF="node9.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html399"
+<A NAME="tex2html431"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html393"
+<A NAME="tex2html425"
HREF="node7.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html401"
+<A NAME="tex2html433"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html403"
+<A NAME="tex2html435"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html406"
+<B> Next:</B> <A NAME="tex2html438"
HREF="node9.html">B. Full class hierarchy</A>
-<B> Up:</B> <A NAME="tex2html400"
+<B> Up:</B> <A NAME="tex2html432"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html394"
+<B> Previous:</B> <A NAME="tex2html426"
HREF="node7.html">6. Function reference</A>
- <B> <A NAME="tex2html402"
+ <B> <A NAME="tex2html434"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html404"
+ <B> <A NAME="tex2html436"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html420"
+<A NAME="tex2html452"
HREF="node10.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html414"
+<A NAME="tex2html446"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html408"
+<A NAME="tex2html440"
HREF="node8.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html416"
+<A NAME="tex2html448"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html418"
+<A NAME="tex2html450"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html421"
+<B> Next:</B> <A NAME="tex2html453"
HREF="node10.html">List of functions</A>
-<B> Up:</B> <A NAME="tex2html415"
+<B> Up:</B> <A NAME="tex2html447"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html409"
+<B> Previous:</B> <A NAME="tex2html441"
HREF="node8.html">A. The GNU General</A>
- <B> <A NAME="tex2html417"
+ <B> <A NAME="tex2html449"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html419"
+ <B> <A NAME="tex2html451"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
|-->WHook
|-->WTimer
|-->WMoveresMode
- |-->WMgmtMode (mod_mgmtmode)
|-->WRegion
| |-->WClientWin
| |-->WWindow
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-section entitled ''GNU General Public License'' for more details.
+section entitled ``GNU General Public License'' for more details.
\bigskip
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-section entitled ''GNU General Public License'' for more details.
+section entitled ``GNU General Public License'' for more details.
<P>
PRE.preform { }
SPAN.textit { font-style: italic }
SPAN.arabic { }
+SPAN.textbf { font-weight: bold }
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-section entitled ''GNU General Public License'' for more details.
+section entitled ``GNU General Public License'' for more details.
<P>
<P>
While Ion does not not have a truly object-oriented design
<A NAME="tex2html1"
- HREF="#foot212"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A>,
+ HREF="#foot210"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A>,
things that appear on the computer screen are, however, quite
-naturally expressed as such ''objects''. Therefore Ion implements
+naturally expressed as such ``objects''. Therefore Ion implements
a rather primitive OO system for these screen objects and some
other things.
<P>
For simplicity we consider only the essential-for-basic-configuration
Ioncore, <SPAN CLASS="textit">mod_tiling</SPAN> and <SPAN CLASS="textit">mod_query</SPAN> classes.
-See Appendix <A HREF="#app:fullhierarchy"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A> for the full class hierachy visible
+See Appendix <A HREF="#app:fullhierarchy"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A> for the full class hierarchy visible
to Lua side.
<P>
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:classhierarchy"></A><A NAME="318"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:classhierarchy"></A><A NAME="317"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
Partial Ioncore, <SPAN CLASS="textit">mod_tiling</SPAN> and <SPAN CLASS="textit">mod_query</SPAN>
<P>
<DL>
<DT><STRONG>Obj</STRONG></DT>
-<DD><A NAME="324"></A>
+<DD><A NAME="323"></A>
Is the base of Ion's object system.
<P>
</DD>
<DT><STRONG>WRegion</STRONG></DT>
-<DD><A NAME="325"></A>
+<DD><A NAME="324"></A>
is the base class for everything corresponding to something on the
screen. Each object of type WRegion has a size and position
relative to the parent WRegion. While a big part of Ion
operates on these instead of more specialised classes, WRegion
- is a ''virtual'' base class in that there are no objects of ''pure''
+ is a ``virtual'' base class in that there are no objects of ``pure''
type WRegion; all concrete regions are objects of some class
that inherits WRegion.
<P>
</DD>
<DT><STRONG>WClientWin</STRONG></DT>
-<DD><A NAME="326"></A> is a class for
+<DD><A NAME="325"></A> is a class for
client window objects, the objects that window managers are
supposed to manage.
<P>
</DD>
<DT><STRONG>WWindow</STRONG></DT>
-<DD><A NAME="327"></A> is the base class for all
+<DD><A NAME="326"></A> is the base class for all
internal objects having an X window associated to them
(WClientWins also have X windows associated to them).
-<P>
-</DD>
-<DT><STRONG>WRootWin</STRONG></DT>
-<DD><A NAME="328"></A> is the class for
- root windows<A NAME="242"></A> of X screens<A NAME="243"></A>.
- Note that an ''X screen'' or root window is not necessarily a
- single physical screen<A NAME="244"></A> as a root window
- may be split over multiple screens when hacks such as
- Xinerama<A NAME="245"></A> are used. (Actually there can be only
- one root window when Xinerama is used.)
-
<P>
</DD>
<DT><STRONG>WMPlex</STRONG></DT>
-<DD>is a base class for all regions that''multiplex''
+<DD>is a base class for all regions that ``multiplex''
other regions. This means that of the regions managed by the multiplexer,
- only one can be displayed at a time. Classes that inhereit WMPlex
- include screens and frames.
+ only one can be displayed at a time.
<P>
</DD>
<DT><STRONG>WScreen</STRONG></DT>
-<DD><A NAME="329"></A> is the class for objects
- corresponding to physical screens. Screens may share a root
- window when the Xinerama extension is used as explained above.
+<DD><A NAME="327"></A> is an instance of WMPlex
+ for screens.
+
+<P>
+</DD>
+<DT><STRONG>WRootWin</STRONG></DT>
+<DD><A NAME="328"></A> is the class for
+ root windows<A NAME="244"></A> of X screens<A NAME="245"></A>.
+ It is an instance of WScreen.
+ Note that an ``X screen'' or root window is not necessarily a
+ single physical screen<A NAME="247"></A> as a root window
+ may be split over multiple screens when ugly hacks such as
+ Xinerama<A NAME="248"></A> are used. (Actually there can be only
+ one root window when Xinerama is used.)
<P>
</DD>
<DT><STRONG>WFrame</STRONG></DT>
-<DD><A NAME="330"></A> is the class for frames.
- While most Ion's objects have no graphical presentation, frames basically
- add to WMPlexes the decorations around client windows
- (borders, tabs).
+<DD><A NAME="329"></A> is the class for frames.
+ While most Ion's objects have no graphical presentation, frames
+ basically add to WMPlexes the decorations around client
+ windows (borders, tabs).
<P>
</DD>
<DT><STRONG>WGroup</STRONG></DT>
-<DD><A NAME="331"></A> is the base class for groups.
+<DD><A NAME="330"></A> is the base class for groups.
Particular types of groups are workspaces
- (WGroupWS<A NAME="332"></A>)
+ (WGroupWS<A NAME="331"></A>)
and groups of client windows
- (WGroupCW<A NAME="333"></A>).
+ (WGroupCW<A NAME="332"></A>).
</DD>
</DL>
<P>
<DL>
<DT><STRONG>WTiling</STRONG></DT>
-<DD><A NAME="335"></A> is the class for tilings
+<DD><A NAME="334"></A> is the class for tilings
of frames.
</DD>
<DT><STRONG>WSplit</STRONG></DT>
-<DD><A NAME="336"></A> (or, more specifically, classes
+<DD><A NAME="335"></A> (or, more specifically, classes
that inherit it) encode the WTiling tree structure.
</DD>
</DL>
<P>
<DL>
<DT><STRONG>WInput</STRONG></DT>
-<DD><A NAME="338"></A> is a virtual base class for the
+<DD><A NAME="337"></A> is a virtual base class for the
two classes below.
</DD>
<DT><STRONG>WEdln</STRONG></DT>
-<DD><A NAME="339"></A> is the class for the ''queries'',
+<DD><A NAME="338"></A> is the class for the ``queries'',
the text inputs that usually appear at bottoms of frames and sometimes
- screens. Queries are the functional equivalent of ''mini buffers'' in
+ screens. Queries are the functional equivalent of ``mini buffers'' in
many text editors.
</DD>
<DT><STRONG>WMessage</STRONG></DT>
-<DD><A NAME="340"></A> implements the boxes for
+<DD><A NAME="339"></A> implements the boxes for
warning and other messages that Ion may wish to display to the user.
These also usually appear at bottoms of frames.
</DD>
</DL>
<P>
-There are also some other ''proxy'' classes that do not refer
+There are also some other ``proxy'' classes that do not refer
to objects on the screen. The only important one of these for
basic configuration is WMoveresMode that is used for
binding callbacks in the move and resize mode.
<SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN> Parent-child relations</A>
</H3>
Each object of type WRegion has a parent and possibly a manager
-associated to it. The parent<A NAME="281"></A> for an object is always a
+associated to it. The parent<A NAME="280"></A> for an object is always a
WWindow and for WRegion with an X window (WClientWin,
WWindow) the parent WWindow is given by the same relation of
the X windows. For other WRegions the relation is not as clear.
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:parentship"></A><A NAME="292"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:parentship"></A><A NAME="291"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
Most common parent-child relations</CAPTION>
<P>
WRegions have very little control over their children as a parent.
-The manager<A NAME="296"></A> WRegion has much more control over its
+The manager<A NAME="295"></A> WRegion has much more control over its
managed WRegions. Managers, for example, handle resize requests,
focusing and displaying of the managed regions. Indeed the manager--managed
relationship gives a better picture of the logical ordering of objects on
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:managership"></A><A NAME="304"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:managership"></A><A NAME="303"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
Most common manager-managed relations</CAPTION>
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot212">... design</A><A
+<DT><A NAME="foot210">... design</A><A
HREF="node2.html#tex2html1"><SUP><SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
<DD>the author doesn't like such artificial designs
<P>
First, to get things clear, what are considered objects here are C
-structures containing a properly initialized <A NAME="427"></A>
+structures containing a properly initialised <A NAME="426"></A>
structure defined in <SPAN CLASS="textit">ioncore/obj.h</SPAN> as the first element (or the
first element of the structure which is the first element and so on which
gives rise to inheritance). The WObj structure contains a pointer
-to a WObjDescr<A NAME="429"></A> class type info structure and
-a list of so called ''watches''. The WObjDescr structure simply
+to a WObjDescr<A NAME="428"></A> class type info structure and
+a list of so called ``watches''. The WObjDescr structure simply
lists the class name, a table of dynamic functions and a pointer to
-deinitialisation function (or ''destructor'').
+deinitialisation function (or ``destructor'').
<P>
Ion does not do any reference counting, garbage collecting or other
fancy things related to automatic safe freeing of objects with its
simplistic object system. Instead special watches (the WWatch
-<A NAME="430"></A> structure) may be used to create safe references to
+<A NAME="429"></A> structure) may be used to create safe references to
objects that might be destroyed during the time the specific pointer is
needed. When an object is destroyed, its list of watches is processed,
setting the pointers in the watches to NULL and the watch handlers for
<TD ALIGN="LEFT"> </TD>
</TR>
<TR><TD ALIGN="RIGHT">t</TD>
-<TD ALIGN="LEFT">ExtlTab<A NAME="520"></A></TD>
+<TD ALIGN="LEFT">ExtlTab<A NAME="519"></A></TD>
<TD ALIGN="LEFT">Reference to Lua table</TD>
</TR>
<TR><TD ALIGN="RIGHT">f</TD>
-<TD ALIGN="LEFT">ExltFn<A NAME="521"></A></TD>
+<TD ALIGN="LEFT">ExltFn<A NAME="520"></A></TD>
<TD ALIGN="LEFT">Reference to Lua function.</TD>
</TR>
<TR><TD ALIGN="RIGHT">o</TD>
<P>
You've seen the terms level 1 and 2 call handler mentioned above.
-<A NAME="490"></A>
+<A NAME="489"></A>
The Lua support code uses two so called call handlers to convert and check
the types of parameters passed from Lua to C and back to Lua. The first
one of these call handlers is the same for all exported functions and
<P>
The functions
-<TT>extl_call</TT><A NAME="514"></A>,
-<TT>extl_call_named</TT><A NAME="515"></A>,
-<TT>extl_dofile</TT><A NAME="516"></A> and
-<TT>extl_dostring</TT><A NAME="517"></A>
+<TT>extl_call</TT><A NAME="513"></A>,
+<TT>extl_call_named</TT><A NAME="514"></A>,
+<TT>extl_dofile</TT><A NAME="515"></A> and
+<TT>extl_dostring</TT><A NAME="516"></A>
call a referenced function (ExtlFn), named function, execute a
string and a file, respectively. The rest of the parameters for all these
functions are similar. The 'spec' argument is a string of identifier
<P>
Sometimes it is necessary to block calls to all but a limited set of
Ion functions. This can be accomplished with
-<TT>extl_set_safelist</TT><A NAME="518"></A>.
+<TT>extl_set_safelist</TT><A NAME="517"></A>.
The parameter to this function is a NULL-terminated array of strings
and the return value is a similar old safelist.
The call <TT>extl_set_safelist(NULL)</TT> removes any safelist and allows
<P>
Configuration files should be read as before with the function
-<TT>read_config_for</TT><A NAME="519"></A>
+<TT>read_config_for</TT><A NAME="518"></A>
except that the list of known options is no longer present.
<P>
<P>
To keep Ion's code as simple as possible yet safe, there are restrictions
when the WObj
-<TT>destroy_obj</TT><A NAME="618"></A>
+<TT>destroy_obj</TT><A NAME="617"></A>
function that calls watches, the deinit routine and frees memory may
-be called directly. In all other cases the
-<TT>defer_destroy</TT><A NAME="619"></A>
+be called directly. In all other cases the <TT>mainloop_defer_destroy</TT><A NAME="618"></A>
function should be used to defer the call of <TT>destroy_obj</TT> until
Ioncore returns to its main event loop.
when the function created a frame to manage some other object but for
some reason failed to reparent the object to this frame.
</LI>
-<LI>In a deferred action handler set with
- <TT>defer_action</TT><A NAME="620"></A>.
+<LI>In a deferred action handler set with <TT>mainloop_defer_action</TT><A NAME="619"></A>.
Like deferred destroys, other deferred actions are called when
Ioncore has returned to the main loop.
</LI>
<P>
If there are no serious side effects from deferring destroying the
object or you're unsure whether it is safe to destroy the object
-immediately, use <TT>defer_destroy</TT>.
+immediately, use <TT>mainloop_defer_destroy</TT>.
<P>
<TR><TD ALIGN="LEFT"><TT>char*</TT></TD>
<TD ALIGN="LEFT">The string is the caller's responsibility and it
<SPAN CLASS="textit">must</SPAN> free it when no longer needed.</TD>
-<TD ALIGN="LEFT">The called function may modify the string but the ''owner'' of
+<TD ALIGN="LEFT">The called function may modify the string but the ``owner'' of
the string is case-dependant.</TD>
</TR>
</TABLE>
</H1>
<P>
-If you want to submit patches to Ion, you MUST follow my coding
+If you want to submit patches to Ion, you <SPAN CLASS="textbf">must</SPAN> follow my coding
style, even if you think it is the root of all evil. We don't want
the code to be an incomprehensible mess of styles and I have better
things to do than fix other people's style to match mine. The style
<P>
<UL>
-<LI>Indentations of 4 with <SPAN CLASS="textit">tab size=4</SPAN>.
+<LI>Indentations of 4 with spaces.
<P>
</LI>
Index</A>
</H2><HR><DL>
<DD><STRONG>call handler</STRONG>
- : <A HREF="node4.html#490"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
-<DD><STRONG><TT>defer_action</TT></STRONG>
- : <A HREF="node5.html#620"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG><TT>defer_destroy</TT></STRONG>
- : <A HREF="node5.html#619"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#489"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
<DD><STRONG><TT>destroy_obj</TT></STRONG>
- : <A HREF="node5.html#618"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node5.html#617"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>extl_call</TT></STRONG>
- : <A HREF="node4.html#514"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#513"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG><TT>extl_call_named</TT></STRONG>
- : <A HREF="node4.html#515"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#514"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG><TT>extl_dofile</TT></STRONG>
- : <A HREF="node4.html#516"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#515"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG><TT>extl_dostring</TT></STRONG>
- : <A HREF="node4.html#517"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#516"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG><TT>extl_set_safelist</TT></STRONG>
- : <A HREF="node4.html#518"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#517"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG>ExtlFn</STRONG>
- : <A HREF="node4.html#521"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG>ExtlTab</STRONG>
: <A HREF="node4.html#520"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>ExtlTab</STRONG>
+ : <A HREF="node4.html#519"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG><TT>mainloop_defer_action</TT></STRONG>
+ : <A HREF="node5.html#619"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG><TT>mainloop_defer_destroy</TT></STRONG>
+ : <A HREF="node5.html#618"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>manager</STRONG>
- : <A HREF="node2.html#296"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#295"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>Obj</STRONG>
- : <A HREF="node2.html#324"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#323"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>parent</STRONG>
- : <A HREF="node2.html#281"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#280"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>read_config_for</TT></STRONG>
- : <A HREF="node4.html#519"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
+ : <A HREF="node4.html#518"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></A>
<DD><STRONG>root window</STRONG>
- : <A HREF="node2.html#242"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#244"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>screen</STRONG><DL>
-<DD><STRONG>physical</STRONG> : <A HREF="node2.html#244"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG>X</STRONG> : <A HREF="node2.html#243"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>physical</STRONG> : <A HREF="node2.html#247"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>X</STRONG> : <A HREF="node2.html#245"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
</DL>
<DD><STRONG>WClientWin</STRONG>
- : <A HREF="node2.html#326"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#325"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WEdln</STRONG>
- : <A HREF="node2.html#339"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#338"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WFrame</STRONG>
- : <A HREF="node2.html#330"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#329"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WGroup</STRONG>
- : <A HREF="node2.html#331"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#330"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WGroupCW</STRONG>
- : <A HREF="node2.html#333"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG>WGroupWS</STRONG>
: <A HREF="node2.html#332"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WGroupWS</STRONG>
+ : <A HREF="node2.html#331"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WInput</STRONG>
- : <A HREF="node2.html#338"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#337"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WMessage</STRONG>
- : <A HREF="node2.html#340"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#339"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WObj</STRONG>
- : <A HREF="node3.html#427"><SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node3.html#426"><SPAN CLASS="arabic">2</SPAN></A>
<DD><STRONG>WObjDescr</STRONG>
- : <A HREF="node3.html#429"><SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node3.html#428"><SPAN CLASS="arabic">2</SPAN></A>
<DD><STRONG>WRegion</STRONG>
- : <A HREF="node2.html#325"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#324"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WRootWin</STRONG>
: <A HREF="node2.html#328"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WScreen</STRONG>
- : <A HREF="node2.html#329"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#327"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WSplit</STRONG>
- : <A HREF="node2.html#336"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
-<DD><STRONG>WTiling</STRONG>
: <A HREF="node2.html#335"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+<DD><STRONG>WTiling</STRONG>
+ : <A HREF="node2.html#334"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WWatch</STRONG>
- : <A HREF="node3.html#430"><SPAN CLASS="arabic">2</SPAN></A>
+ : <A HREF="node3.html#429"><SPAN CLASS="arabic">2</SPAN></A>
<DD><STRONG>WWindow</STRONG>
- : <A HREF="node2.html#327"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#326"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>Xinerama</STRONG>
- : <A HREF="node2.html#245"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node2.html#248"><SPAN CLASS="arabic">1</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
</DL>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 4 ionnotes</TT>
<P>
-The translation was initiated by tuomov on 2007-03-18
+The translation was initiated by tuomov on 2007-05-06
<BR><HR>
</BODY>
% URL settings
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\urlstyle{rm}
-\newcommand{\centerurl}[1]{\begin{center}\url{#1}\end{center}}
+\urlstyle{tt}
% listings package
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%begin{latexonly}
\newcommand{\key}[1]{\mbox{\textbf{#1}}}
\newcommand{\code}[1]{\lstinline!#1!}
+\newcommand{\codestr}[1]{`\texttt{#1}'}
\newcommand{\var}[1]{\lstinline!#1!}
\newcommand{\command}[1]{\lstinline!#1!}
\newcommand{\key}[1]{\textbf{#1}}
\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\codestr}[1]{`\texttt{#1}'}
\newcommand{\var}[1]{\texttt{#1}}
\newcommand{\command}[1]{\texttt{#1}}
--- /dev/null
+
+\subsection{Size policies}
+\label{sec:sizepolicies}
+
+Some functions accept a \var{sizepolicy} parameter. The possible
+values are:
+
+\begin{flushleft}
+\codestr{default},
+\codestr{full},
+\codestr{full\_bounds},
+\codestr{free},
+\codestr{free\_glue},
+\codestr{northwest},
+\codestr{north},
+\codestr{northeast},
+\codestr{west},
+\codestr{center},
+\codestr{east},
+\codestr{southwest},
+\codestr{south},
+\codestr{southeast},
+\codestr{stretch\_top},
+\codestr{stretch\_bottom},
+\codestr{stretch\_left},
+\codestr{stretch\_right},
+\codestr{free\_glue\_northwest},
+\codestr{free\_glue\_north},
+\codestr{free\_glue\_northeast},
+\codestr{free\_glue\_west},
+\codestr{free\_glue\_center},
+\codestr{free\_glue\_east},
+\codestr{free\_glue\_southwest},
+\codestr{free\_glue\_south}, and
+\codestr{free\_glue\_southeast}.
+\end{flushleft}
+
+The ``free'' policies allow the managed
+object to be moved around, whereas the other versions do not.
+The ``glue'' policies glue the object to some border, while allowing
+it to be moved away from it by user action, but not automatically.
+The ``stretch'' policies stretch the object along the given border,
+while the coordinate-based policies simply place the object along
+that border.
While Ion does not not have a truly object-oriented design
\footnote{the author doesn't like such artificial designs},
things that appear on the computer screen are, however, quite
-naturally expressed as such ''objects''. Therefore Ion implements
+naturally expressed as such ``objects''. Therefore Ion implements
a rather primitive OO system for these screen objects and some
other things.
For simplicity we consider only the essential-for-basic-configuration
Ioncore, \file{mod\_tiling} and \file{mod\_query} classes.
-See Appendix \ref{app:fullhierarchy} for the full class hierachy visible
+See Appendix \ref{app:fullhierarchy} for the full class hierarchy visible
to Lua side.
\subsection{Class hierarchy}
screen. Each object of type \type{WRegion} has a size and position
relative to the parent \type{WRegion}. While a big part of Ion
operates on these instead of more specialised classes, \type{WRegion}
- is a ''virtual'' base class in that there are no objects of ''pure''
+ is a ``virtual'' base class in that there are no objects of ``pure''
type \type{WRegion}; all concrete regions are objects of some class
that inherits \type{WRegion}.
internal objects having an X window associated to them
(\type{WClientWins} also have X windows associated to them).
+ \item[\type{WMPlex}] is a base class for all regions that ``multiplex''
+ other regions. This means that of the regions managed by the multiplexer,
+ only one can be displayed at a time.
+
+ \item[\type{WScreen}]\indextype{WScreen} is an instance of \type{WMPlex}
+ for screens.
+
\item[\type{WRootWin}]\indextype{WRootWin} is the class for
root windows\index{root window} of X screens\index{screen!X}.
- Note that an ''X screen'' or root window is not necessarily a
- single physical screen\index{screen!physical} as a root window
- may be split over multiple screens when hacks such as
+ It is an instance of \type{WScreen}.
+ Note that an ``X screen'' or root window is not necessarily a
+ single physical screen\index{screen!physical} as a root window
+ may be split over multiple screens when ugly hacks such as
Xinerama\index{Xinerama} are used. (Actually there can be only
- one root window when Xinerama is used.)
+ one root window when Xinerama is used.)
- \item[\type{WMPlex}] is a base class for all regions that''multiplex''
- other regions. This means that of the regions managed by the multiplexer,
- only one can be displayed at a time. Classes that inhereit \type{WMPlex}
- include screens and frames.
-
- \item[\type{WScreen}]\indextype{WScreen} is the class for objects
- corresponding to physical screens. Screens may share a root
- window when the Xinerama extension is used as explained above.
-
\item[\type{WFrame}]\indextype{WFrame} is the class for frames.
- While most Ion's objects have no graphical presentation, frames basically
- add to \type{WMPlex}es the decorations around client windows
- (borders, tabs).
+ While most Ion's objects have no graphical presentation, frames
+ basically add to \type{WMPlex}es the decorations around client
+ windows (borders, tabs).
\item[\type{WGroup}]\indextype{WGroup} is the base class for groups.
Particular types of groups are workspaces
\begin{description}
\item[\type{WInput}]\indextype{WInput} is a virtual base class for the
two classes below.
- \item[\type{WEdln}]\indextype{WEdln} is the class for the ''queries'',
+ \item[\type{WEdln}]\indextype{WEdln} is the class for the ``queries'',
the text inputs that usually appear at bottoms of frames and sometimes
- screens. Queries are the functional equivalent of ''mini buffers'' in
+ screens. Queries are the functional equivalent of ``mini buffers'' in
many text editors.
\item[\type{WMessage}]\indextype{WMessage} implements the boxes for
warning and other messages that Ion may wish to display to the user.
These also usually appear at bottoms of frames.
\end{description}
-There are also some other ''proxy'' classes that do not refer
+There are also some other ``proxy'' classes that do not refer
to objects on the screen. The only important one of these for
basic configuration is \type{WMoveresMode} that is used for
binding callbacks in the move and resize mode.
\section{Object system implementation}
First, to get things clear, what are considered objects here are C
-structures containing a properly initialized \type\indextype{WObj}
+structures containing a properly initialised \type\indextype{WObj}
structure defined in \file{ioncore/obj.h} as the first element (or the
first element of the structure which is the first element and so on which
gives rise to inheritance). The \type{WObj} structure contains a pointer
to a \type{WObjDescr}\indextype{WObjDescr} class type info structure and
-a list of so called ''watches''. The \type{WObjDescr} structure simply
+a list of so called ``watches''. The \type{WObjDescr} structure simply
lists the class name, a table of dynamic functions and a pointer to
-deinitialisation function (or ''destructor'').
+deinitialisation function (or ``destructor'').
Ion does not do any reference counting, garbage collecting or other
fancy things related to automatic safe freeing of objects with its
keyboard-operated in-frame menus.
\item[\file{mod\_statusbar}] Module that implements a statusbar that
can be adaptively embedded in each workspace's layout.
- \item[\file{mod\_dock}] Module for docking Window Maker dockapps.
+ \item[\file{mod\_dock}] Module for docking Window Maker dock-apps.
The dock can both float and be embedded as the statusbar.
\item[\file{mod\_sp}] This module implements a scratchpad frame that can
be toggled on/off everywhere. Think of the 'console' in some
first-person shooters.
- \item[\file{mod\_mgmtmode}] Support module for implementing ''management
- modes'' with a XOR-frame similar to move/resize mode around selected
- region.
\item[\file{mod\_sm}] Session management support module.
\emph{Loaded automatically when needed!}
\end{description}
So-called drawing engines are also implemented as a modules,
but they are not discussed here; see chapter \ref{chap:gr}.
-The stock configuration for the 'ion3' executable loads all of the modules
-mentioned above except \file{mod\_dock} and file{mod\_mgmtmode}.
-The stock configuration for the 'pwm3' executable (which differs from the
-'ion3' executable in a few configuration details, such as Xinerama usage)
+The stock configuration for the \file{ion3} executable loads all of the
+modules mentioned above except \file{mod\_dock}.
+The stock configuration for the \file{pwm3} executable (which differs
+from the \file{ion3} executable in a few configuration details)
loads another set of modules.
\section{Writing \command{ion-statusd} monitors}
+\label{sec:statusd}
All statusbar meters that do not monitor the internal state of Ion should
go in the separate \command{ion-statusd} program.
-Whenever the user requests a meter \code{\%foo} or \code{\%foo_bar} to be
-inserted in a statusbar, \file{mod\_statusbar} asks \command{ion-statusd} to
-load \fnref{statusd_foo.lua} on its search path (same as that for Ion-side
+Whenever the user requests a meter \codestr{\%foo} or \codestr{\%foo\_bar} to
+be inserted in a statusbar, \file{mod\_statusbar} asks \command{ion-statusd}
+to load \fnref{statusd_foo.lua} on its search path (same as that for Ion-side
scripts). This script should then supply all meters with the initial part
-'\code{foo}'.
+\codestr{foo}.
To provide this value, the script should simply call \code{statusd.inform}
with the name of the meter and the value as a string.
facilitate expected width calculation by \file{mod\_statusbar}, and
may provide a 'hint' for colour-coding the value. The interpretation
of hints depends on the graphical style in use, and currently the
-stock styles support the \code{normal}, \code{important} and
-\code{critical} hints.
+stock styles support the \codestr{normal}, \codestr{important} and
+\codestr{critical} hints.
-In our example of the 'foo monitor', at script init we might broadcast
+In our example of the 'foo monitor', at script initialisation we might broadcast
the template as follows:
\begin{verbatim}
This chapter documents some additional features of the Ion configuration
and scripting interface that can be used for more advanced scripting than
-the basic configuration exlained in chapter \ref{chap:config}.
+the basic configuration explained in chapter \ref{chap:config}.
\section{Hooks}
\label{sec:hooks}
Hooks are lists of functions to be called when a certain event occurs.
-There are two types of them; normal and ''alternative'' hooks. Normal
+There are two types of them; normal and ``alternative'' hooks. Normal
hooks do not return anything, but alt-hooks should return a boolean
-indicating whether it handled its assigned task succesfully. In the case
+indicating whether it handled its assigned task successfully. In the case
that \var{true} is returned, remaining handlers are not called.
Hook handlers are registered by first finding the hook
with \fnref{ioncore.get_hook} and then calling \fnref{WHook.add}
-on the (succesfull) result with the handler as parameter. Similarly
+on the (successful) result with the handler as parameter. Similarly
handlers are unregistered with \fnref{WHook.remove}. For example:
\begin{verbatim}
the hook reference, section \ref{sec:hookref}.
-Note that many of the hooks are called in ''protected mode'' and can not
+Note that many of the hooks are called in ``protected mode'' and can not
use any functions that modify Ion's internal state. TODO: More detailed
documentation when this is final.
\subsection{Direct object references}
-All Ion objects are passed to Lua scriptss as 'userdatas', and you may
+All Ion objects are passed to Lua scripts as 'userdatas', and you may
safely store such object references for future use. The C-side object
may be destroyed while Lua still refers to the object. All exported
functions gracefully fail in such a case, but if you need to explicitly