<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>kwin Library: KWinInternal::TabBox Class Reference (kwin Library)</title> <link href="../../common/doxygen.css" rel="stylesheet" type="text/css"> </head> <div class="header"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td rowspan="2" width="92"> <a href="../../index.html" title="The API documentation main page"><img src="../../common/docheadergears.png" style="border:0px;" alt=""></a> </td> <td width="95%"> <h1>kwin Library API Documentation</h1> </td> </tr> <tr> <td valign="bottom"> <table class="links" border=0 cellspacing=0> <tr> <td><a href="index.html">Overview</a></td> <td><a href="hierarchy.html" title="Inheritance list, sorted roughly alphabetically">Class Hierarchy</a></td> <td><a href="classes.html" title="Alphabetical list of classes">Classes</a></td> <td><a href="annotated.html" title="Classes, structs, unions and interfaces with brief descriptions">Classes (annotated)</a></td> <td><a href="functions.html" title="Documented class members with links to the classes they belong to">Members</a></td> <td><a href="namespaces.html" title="All documented namespaces with brief descriptions">Namespaces</a></td> <td><a href="files.html" title="A list of all documented files with brief descriptions">Source Files</a></td> </tr> </table> </td></tr></table> </div> <div id="hgrad"></div> <div class="text"> <!-- Generated by Doxygen 1.4.4 --> <div class="nav"> <a class="el" href="namespaceKWinInternal.html">KWinInternal</a>::<a class="el" href="classKWinInternal_1_1TabBox.html">TabBox</a></div> <h1>KWinInternal::TabBox Class Reference</h1><!-- doxytag: class="KWinInternal::TabBox" --><!-- doxytag: inherits="QFrame" -->Collaboration diagram for KWinInternal::TabBox:<p><center><img src="classKWinInternal_1_1TabBox__coll__graph.png" border="0" usemap="#KWinInternal_1_1TabBox__coll__map" alt="Collaboration graph"></center> <map name="KWinInternal_1_1TabBox__coll__map"> <area href="classKWinInternal_1_1Workspace.html" shape="rect" coords="7,98,178,125" alt=""> <area href="classKWinInternal_1_1Client.html" shape="rect" coords="62,301,201,328" alt=""> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classKWinInternal_1_1TabBox-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#w3">Mode</a> { <b>DesktopMode</b>, <b>DesktopListMode</b>, <b>WindowsMode</b> }</td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0"></a><!-- doxytag: member="KWinInternal::TabBox::TabBox" ref="a0" args="(Workspace *ws, const char *name=0)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a0">TabBox</a> (<a class="el" href="classKWinInternal_1_1Workspace.html">Workspace</a> *ws, const char *name=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1"></a><!-- doxytag: member="KWinInternal::TabBox::~TabBox" ref="a1" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a1">~TabBox</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classKWinInternal_1_1Client.html">Client</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a2">currentClient</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a3">currentDesktop</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a4">setMode</a> (<a class="el" href="classKWinInternal_1_1TabBox.html#w3">Mode</a> mode)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classKWinInternal_1_1TabBox.html#w3">Mode</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a5">mode</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a6">reset</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a7">nextPrev</a> (bool next=TRUE)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a8">delayedShow</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9"></a><!-- doxytag: member="KWinInternal::TabBox::hide" ref="a9" args="()" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a9">hide</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10"></a><!-- doxytag: member="KWinInternal::TabBox::handleMouseEvent" ref="a10" args="(XEvent *)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a10">handleMouseEvent</a> (XEvent *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classKWinInternal_1_1Workspace.html">Workspace</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a11">workspace</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a12"></a><!-- doxytag: member="KWinInternal::TabBox::reconfigure" ref="a12" args="()" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#a12">reconfigure</a> ()</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#b0">showEvent</a> (QShowEvent *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#b1">hideEvent</a> (QHideEvent *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKWinInternal_1_1TabBox.html#b2">drawContents</a> (QPainter *)</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <p> <p> Definition at line <a class="el" href="tabbox_8h-source.html#l00028">28</a> of file <a class="el" href="tabbox_8h-source.html">tabbox.h</a>.<hr><h2>Member Function Documentation</h2> <a class="anchor" name="a2"></a><!-- doxytag: member="KWinInternal::TabBox::currentClient" ref="a2" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="classKWinInternal_1_1Client.html">Client</a> * KWinInternal::TabBox::currentClient </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the currently displayed client ( only works in WindowsMode ). Returns 0 if no client is displayed. <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00283">283</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. <p> References <a class="el" href="tabbox_8h-source.html#l00092">mode()</a>, and <a class="el" href="tabbox_8h-source.html#l00082">workspace()</a>. <p> Referenced by <a class="el" href="tabbox_8cpp-source.html#l00325">drawContents()</a>. </td> </tr> </table> <a class="anchor" name="a3"></a><!-- doxytag: member="KWinInternal::TabBox::currentDesktop" ref="a3" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">int KWinInternal::TabBox::currentDesktop </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the currently displayed virtual desktop ( only works in DesktopListMode ) Returns -1 if no desktop is displayed. <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00297">297</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. <p> References <a class="el" href="tabbox_8h-source.html#l00092">mode()</a>. <p> Referenced by <a class="el" href="tabbox_8cpp-source.html#l00325">drawContents()</a>, and <a class="el" href="tabbox_8cpp-source.html#l00138">reset()</a>. </td> </tr> </table> <a class="anchor" name="a4"></a><!-- doxytag: member="KWinInternal::TabBox::setMode" ref="a4" args="(Mode mode)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::setMode </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classKWinInternal_1_1TabBox.html#w3">Mode</a> </td> <td class="mdname1" valign="top" nowrap> <em>mode</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Sets the current mode to <em>mode</em>, either DesktopListMode or WindowsMode<p> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKWinInternal_1_1TabBox.html#a5">mode()</a></dd></dl> <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00072">72</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. </td> </tr> </table> <a class="anchor" name="a5"></a><!-- doxytag: member="KWinInternal::TabBox::mode" ref="a5" args="() const " --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="classKWinInternal_1_1TabBox.html#w3">TabBox::Mode</a> KWinInternal::TabBox::mode </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the current mode, either DesktopListMode or WindowsMode<p> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKWinInternal_1_1TabBox.html#a4">setMode()</a></dd></dl> <p> Definition at line <a class="el" href="tabbox_8h-source.html#l00092">92</a> of file <a class="el" href="tabbox_8h-source.html">tabbox.h</a>. <p> Referenced by <a class="el" href="tabbox_8cpp-source.html#l00283">currentClient()</a>, <a class="el" href="tabbox_8cpp-source.html#l00297">currentDesktop()</a>, <a class="el" href="tabbox_8cpp-source.html#l00325">drawContents()</a>, <a class="el" href="tabbox_8cpp-source.html#l00564">handleMouseEvent()</a>, <a class="el" href="tabbox_8cpp-source.html#l00226">nextPrev()</a>, and <a class="el" href="tabbox_8cpp-source.html#l00138">reset()</a>. </td> </tr> </table> <a class="anchor" name="a6"></a><!-- doxytag: member="KWinInternal::TabBox::reset" ref="a6" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::reset </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Resets the tab box to display the active client in WindowsMode, or the current desktop in DesktopListMode <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00138">138</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. <p> References <a class="el" href="workspace_8h-source.html#l00657">KWinInternal::Workspace::activeClient()</a>, <a class="el" href="workspace_8h-source.html#l00667">KWinInternal::Workspace::currentDesktop()</a>, <a class="el" href="tabbox_8cpp-source.html#l00297">currentDesktop()</a>, <a class="el" href="tabbox_8h-source.html#l00092">mode()</a>, <a class="el" href="workspace_8h-source.html#l00672">KWinInternal::Workspace::numberOfDesktops()</a>, and <a class="el" href="tabbox_8h-source.html#l00082">workspace()</a>. <p> Referenced by <a class="el" href="tabbox_8cpp-source.html#l00046">TabBox()</a>. </td> </tr> </table> <a class="anchor" name="a7"></a><!-- doxytag: member="KWinInternal::TabBox::nextPrev" ref="a7" args="(bool next=TRUE)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::nextPrev </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">bool </td> <td class="mdname1" valign="top" nowrap> <em>next</em> = <code>TRUE</code> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Shows the next or previous item, depending on <em>next</em> <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00226">226</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. <p> References <a class="el" href="tabbox_8h-source.html#l00092">mode()</a>, <a class="el" href="tabbox_8cpp-source.html#l01082">KWinInternal::Workspace::nextDesktopFocusChain()</a>, <a class="el" href="tabbox_8cpp-source.html#l01108">KWinInternal::Workspace::nextFocusChainClient()</a>, <a class="el" href="workspace_8h-source.html#l00672">KWinInternal::Workspace::numberOfDesktops()</a>, <a class="el" href="tabbox_8cpp-source.html#l01093">KWinInternal::Workspace::previousDesktopFocusChain()</a>, <a class="el" href="tabbox_8cpp-source.html#l01125">KWinInternal::Workspace::previousFocusChainClient()</a>, and <a class="el" href="tabbox_8h-source.html#l00082">workspace()</a>. </td> </tr> </table> <a class="anchor" name="a8"></a><!-- doxytag: member="KWinInternal::TabBox::delayedShow" ref="a8" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::delayedShow </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Rikkus: please document! (Matthias)<p> Ok, here's the docs :)<p> You call <a class="el" href="classKWinInternal_1_1TabBox.html#a8">delayedShow()</a> instead of show() directly.<p> If the 'ShowDelay' setting is false, show() is simply called.<p> Otherwise, we start a timer for the delay given in the settings and only do a show() when it times out.<p> This means that you can alt-tab between windows and you don't see the tab box immediately. Not only does this make alt-tabbing faster, it gives less 'flicker' to the eyes. You don't need to see the tab box if you're just quickly switching between 2 or 3 windows. It seems to work quite nicely. <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00547">547</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. </td> </tr> </table> <a class="anchor" name="a11"></a><!-- doxytag: member="KWinInternal::TabBox::workspace" ref="a11" args="() const " --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="classKWinInternal_1_1Workspace.html">Workspace</a> * KWinInternal::TabBox::workspace </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> const<code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the tab box' workspace <p> Definition at line <a class="el" href="tabbox_8h-source.html#l00082">82</a> of file <a class="el" href="tabbox_8h-source.html">tabbox.h</a>. <p> Referenced by <a class="el" href="tabbox_8cpp-source.html#l00283">currentClient()</a>, <a class="el" href="tabbox_8cpp-source.html#l00325">drawContents()</a>, <a class="el" href="tabbox_8cpp-source.html#l00564">handleMouseEvent()</a>, <a class="el" href="tabbox_8cpp-source.html#l00226">nextPrev()</a>, and <a class="el" href="tabbox_8cpp-source.html#l00138">reset()</a>. </td> </tr> </table> <a class="anchor" name="b0"></a><!-- doxytag: member="KWinInternal::TabBox::showEvent" ref="b0" args="(QShowEvent *)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::showEvent </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">QShowEvent * </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Reimplemented to raise the tab box as well <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00309">309</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. </td> </tr> </table> <a class="anchor" name="b1"></a><!-- doxytag: member="KWinInternal::TabBox::hideEvent" ref="b1" args="(QHideEvent *)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::hideEvent </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">QHideEvent * </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> hide the icon box if necessary <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00318">318</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. </td> </tr> </table> <a class="anchor" name="b2"></a><!-- doxytag: member="KWinInternal::TabBox::drawContents" ref="b2" args="(QPainter *)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void KWinInternal::TabBox::drawContents </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">QPainter * </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Paints the tab box <p> Definition at line <a class="el" href="tabbox_8cpp-source.html#l00325">325</a> of file <a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a>. <p> References <a class="el" href="tabbox_8cpp-source.html#l00283">currentClient()</a>, <a class="el" href="workspace_8h-source.html#l00667">KWinInternal::Workspace::currentDesktop()</a>, <a class="el" href="tabbox_8cpp-source.html#l00297">currentDesktop()</a>, <a class="el" href="workspace_8cpp-source.html#l02265">KWinInternal::Workspace::desktopName()</a>, <a class="el" href="client_8cpp-source.html#l02051">KWinInternal::kwin_get_menu_pix_hack()</a>, <a class="el" href="tabbox_8h-source.html#l00092">mode()</a>, <a class="el" href="tabbox_8cpp-source.html#l01082">KWinInternal::Workspace::nextDesktopFocusChain()</a>, and <a class="el" href="tabbox_8h-source.html#l00082">workspace()</a>. </td> </tr> </table> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="tabbox_8h-source.html">tabbox.h</a><li><a class="el" href="tabbox_8cpp-source.html">tabbox.cpp</a></ul> </div> <div id="bottom-nav"> <img src="../../common/bottom2.png" align="right" height="59" width="227" alt="KDE Logo"> </div> <div class="bottom"> This file is part of the documentation for kwin Library Version 3.4.2. </div> <div class="bottom" style="color:#cccccc"> Documentation copyright © 1996-2004 the KDE developers.<br> Generated on Wed Jun 14 19:06:50 2006 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.4.4 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2003 </div> </body> </html>