<P>
While Ion does not not have a truly object-oriented design
<A NAME="tex2html3"
- HREF="#foot295"><SUP><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A>,
+ HREF="#foot314"><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
a rather primitive OO system for these screen objects and some
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:classhierarchy"></A><A NAME="402"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:classhierarchy"></A><A NAME="421"></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="408"></A>
+<DD><A NAME="431"></A>
Is the base of Ion's object system.
<P>
</DD>
<DT><STRONG>WRegion</STRONG></DT>
-<DD><A NAME="409"></A>
+<DD><A NAME="432"></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
<P>
</DD>
<DT><STRONG>WClientWin</STRONG></DT>
-<DD><A NAME="410"></A> is a class for
+<DD><A NAME="433"></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="411"></A> is the base class for all
+<DD><A NAME="434"></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>WScreen</STRONG></DT>
-<DD><A NAME="412"></A> is an instance of WMPlex
+<DD><A NAME="435"></A> is an instance of WMPlex
for screens.
<P>
</DD>
<DT><STRONG>WRootWin</STRONG></DT>
-<DD><A NAME="413"></A> is the class for
- root windows<A NAME="329"></A> of X screens<A NAME="330"></A>.
+<DD><A NAME="436"></A> is the class for
+ root windows<A NAME="348"></A> of X screens<A NAME="349"></A>.
It is an instance of WScreen.
Note that an ``X screen'' or root window is not necessarily a
- single physical screen<A NAME="332"></A> as a root window
+ single physical screen<A NAME="351"></A> as a root window
may be split over multiple screens when ugly hacks such as
- Xinerama<A NAME="333"></A> are used. (Actually there can be only
+ Xinerama<A NAME="352"></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="414"></A> is the class for frames.
+<DD><A NAME="437"></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="415"></A> is the base class for groups.
+<DD><A NAME="438"></A> is the base class for groups.
Particular types of groups are workspaces
- (WGroupWS<A NAME="416"></A>)
+ (WGroupWS<A NAME="439"></A>)
and groups of client windows
- (WGroupCW<A NAME="417"></A>).
+ (WGroupCW<A NAME="440"></A>).
</DD>
</DL>
<P>
<DL>
<DT><STRONG>WTiling</STRONG></DT>
-<DD><A NAME="419"></A> is the class for tilings
+<DD><A NAME="443"></A> is the class for tilings
of frames.
</DD>
<DT><STRONG>WSplit</STRONG></DT>
-<DD><A NAME="420"></A> (or, more specifically, classes
+<DD><A NAME="444"></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="422"></A> is a virtual base class for the
+<DD><A NAME="447"></A> is a virtual base class for the
two classes below.
</DD>
<DT><STRONG>WEdln</STRONG></DT>
-<DD><A NAME="423"></A> is the class for the ``queries'',
+<DD><A NAME="448"></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
many text editors.
</DD>
<DT><STRONG>WMessage</STRONG></DT>
-<DD><A NAME="424"></A> implements the boxes for
+<DD><A NAME="449"></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>
<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="365"></A> for an object is always a
+associated to it. The parent<A NAME="384"></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="376"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:parentship"></A><A NAME="395"></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="380"></A> WRegion has much more control over its
+The manager<A NAME="399"></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="388"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:managership"></A><A NAME="407"></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="foot295">... design</A><A
+<DT><A NAME="foot314">... 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