[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Improving task manager interaction - KWindowInfo and KPassivePopup
From:       Richard Moore <rich () xmelegance ! org>
Date:       2002-02-27 20:59:11
[Download RAW message or body]

Hi all,

I've continued working on the WM/taskbar interaction issues I reported here 
previously, see http://lists.kde.org/?l=kde-core-devel&m=100647529603734&w=2 
I've addressed the issues that were raised at the time,  so now the classes 
can be used with system tray windows, windows that use the SkipTaskbar flag 
etc. and in addition I've included a preliminary patch that glues them to 
KNotify. Anyone wanting to check things out can download the code from 
http://xmelegance.org/devel/ as it's too late to include this stuff in 3.0, 
how about adding it to kdelibs for 3.1?

Cheers

Rich.

["KWindowInfo.html" (text/html)]

<HTML>
<HEAD>
<TITLE>class KWindowInfo</TITLE>

<META NAME="Generator" CONTENT="KDOC ">
</HEAD>
<BODY bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000099" alink= "#ffffff">
<TABLE WIDTH="100%" BORDER="0">
<TR>
<TD>
	<TABLE BORDER="0">
		<TR><TD valign="top" align="left" cellspacing="10">
		<h1>class KWindowInfo</h1>
		</TD>
		<TD valign="top" align="right" colspan="1">
 Displays messages in the window icon and title. <small><A \
HREF="#longdesc">More...</A></small></TD></TR>  </TABLE>
	<HR>
	<TABLE BORDER="0">
		<TR><TH>Definition</TH><TD><code>#include &lt;<A \
HREF="kwindowinfo_h.html">kwindowinfo.h</A>&gt;</code></TD></TR> \
<TR><TH>Inherits</TH><TD>QObject <small>(unknown)</small> <small>[public ]</small></TD></TR> \
<TR><TH><A HREF="full-list-KWindowInfo.html">List of all Methods</A></TH></TR>  </TABLE>
	</TD>
<TD align="right"><TABLE BORDER="0"><TR><TD><small><A HREF="index-long.html">Annotated \
List</A></small></TD></TR> <TR><TD><small><A \
HREF="header-list.html">Files</A></small></TD></TR> <TR><TD><small><A \
HREF="all-globals.html">Globals</A></small></TD></TR> <TR><TD><small><A \
HREF="hier.html">Hierarchy</A></small></TD></TR> <TR><TD><small><A \
HREF="index.html">Index</A></small></TD></TR> </TABLE></TD></TR></TABLE>
<h4>Public Methods</h4><ul><LI>&nbsp;<b><A HREF="#ref1">KWindowInfo</A></b> ( QWidget *parent, \
const char *name=0 )  </LI>
<LI>virtual  &nbsp;<b><A HREF="#ref2">~KWindowInfo</A></b> () 
</LI>
<LI>bool &nbsp;<b><A HREF="#ref3">autoDelete</A></b> ()  const
</LI>
<LI>void &nbsp;<b><A HREF="#ref4">setAutoDelete</A></b> ( bool enable ) 
</LI>
</ul><h4>Public Slots</h4><ul><LI>void &nbsp;<b><A HREF="#ref7">message</A></b> ( const QString \
&text )  </LI>
<LI>void &nbsp;<b><A HREF="#ref8">message</A></b> ( const QString &text, const QPixmap &pix ) 
</LI>
<LI>void &nbsp;<b><A HREF="#ref9">message</A></b> ( const QString &text, int timeout ) 
</LI>
<LI>void &nbsp;<b><A HREF="#ref10">message</A></b> ( const QString &text, const QPixmap &pix, \
int timeout )  </LI>
<LI>void &nbsp;<b><A HREF="#ref11">save</A></b> () 
</LI>
<LI>void &nbsp;<b><A HREF="#ref12">restore</A></b> () 
</LI>
</ul><h4>Public Static Methods</h4><ul><LI>static  void &nbsp;<b><A \
HREF="#ref5">showMessage</A></b> ( QWidget *window, const QString &text, int timeout = -1 )  \
</LI> <LI>static  void &nbsp;<b><A HREF="#ref6">showMessage</A></b> ( QWidget *window, const \
QString &text,  const QPixmap &pix, int timeout = -1 ) 
</LI>
</ul><HR><H2><A NAME="longdesc">Detailed Description</A></H2><p>
 Displays messages in the window icon and title. The simplest use
 displays a text message in the window title:
</p><table border="0" width="100%">
<tr>
<td bgcolor="#BEEAE0">
<pre>

    KWindowInfo::showMessage( this, &quot;Message Body&quot; );

</pre>
</td></tr>

</table> <p>
 This more complex example changes the window icon, as well as
 displaying the text. In addition, this example overrides the
 default timeout to ensure the message is only displayed for 1
 second.
</p><table border="0" width="100%">
<tr>
<td bgcolor="#BEEAE0">
<pre>

    QPixmap px;
    px.load( &quot;lo16-app-logtracker.png&quot; );
    KWindowInfo::showMessage( this, &quot;Message Body&quot;, px, 1000 );

</pre>
</td></tr>

</table> <p>
</p>
<p></p>
<A NAME="KWindowInfo"></A><A NAME="ref1"></A><table width="100%"><tr \
bgcolor="#eeeeee"><td>&nbsp;<strong>KWindowInfo</strong> ( QWidget *parent, const char *name=0 \
) <br></td><td align="right"><h3><strong>KWindowInfo</strong></h3></td></tr></table><p></p><p>
 Creates a KWindowInfo with the specified parent.
     </p>
<A NAME="~KWindowInfo"></A><A NAME="ref2"></A><table width="100%"><tr bgcolor="#eeeeee"><td> \
&nbsp;<strong>~KWindowInfo</strong> () <br></td><td \
align="right"><h3><strong>~KWindowInfo</strong></h3></td></tr></table><p> \
<small>[virtual]</small></p><p>  Cleans up.
     </p>
<A NAME="autoDelete"></A><A NAME="ref3"></A><table width="100%"><tr bgcolor="#eeeeee"><td>bool \
&nbsp;<strong>autoDelete</strong> () <br></td><td \
align="right"><h3><strong>autoDelete</strong></h3></td></tr></table><p> \
<small>[const]</small></p><p>   Returns true iff the object should delete itself when it \
resets.  </p>
<A NAME="setAutoDelete"></A><A NAME="ref4"></A><table width="100%"><tr \
bgcolor="#eeeeee"><td>void &nbsp;<strong>setAutoDelete</strong> ( bool enable ) <br></td><td \
align="right"><h3><strong>setAutoDelete</strong></h3></td></tr></table><p></p><p>  Set to true \
if you want the object to delete itself when the message  timeout occurs.
     </p>
<A NAME="showMessage"></A><A NAME="ref5"></A><table width="100%"><tr bgcolor="#eeeeee"><td> \
void &nbsp;<strong>showMessage</strong> ( QWidget *window, const QString &text, int timeout = \
-1 ) <br></td><td align="right"><h3><strong>showMessage</strong></h3></td></tr></table><p> \
<small>[static]</small></p><p>   Utility method to display a title bar message for the \
specified  window.
     </p>
<A NAME="showMessage"></A><A NAME="ref6"></A><table width="100%"><tr bgcolor="#eeeeee"><td> \
void &nbsp;<strong>showMessage</strong> ( QWidget *window, const QString &text,  const QPixmap \
&pix, int timeout = -1 ) <br></td><td \
align="right"><h3><strong>showMessage</strong></h3></td></tr></table><p> \
<small>[static]</small></p><p>   Utility method to display a title bar message and icon for the
 specified window.
     </p>
<A NAME="message"></A><A NAME="ref7"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>message</strong> ( const QString &text ) <br></td><td \
align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[slot]</small></p><p>  Shows the specified text in the window title.
     </p>
<A NAME="message"></A><A NAME="ref8"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>message</strong> ( const QString &text, const QPixmap &pix ) <br></td><td \
align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[slot]</small></p><p>  Shows the specified text in the window title, and sets the window \
icon.  </p>
<A NAME="message"></A><A NAME="ref9"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>message</strong> ( const QString &text, int timeout ) <br></td><td \
align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[slot]</small></p><p>  Shows the specified text in the window title for the specified \
time.  The time is specified in milliseconds.
     </p>
<A NAME="message"></A><A NAME="ref10"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>message</strong> ( const QString &text, const QPixmap &pix, int timeout ) \
<br></td><td align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[slot]</small></p><p>  Shows the specified icon and text in the window title and WM \
icon, for  the specified time. The time is specified in milliseconds.
     </p>
<A NAME="save"></A><A NAME="ref11"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>save</strong> () <br></td><td \
align="right"><h3><strong>save</strong></h3></td></tr></table><p> <small>[slot]</small></p><p>  \
Saves the window title and icon  </p>
<A NAME="restore"></A><A NAME="ref12"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>restore</strong> () <br></td><td \
align="right"><h3><strong>restore</strong></h3></td></tr></table><p> \
<small>[slot]</small></p><p>  Resets the window title and icon to the saved values. If
 auto-delete is enabled then the object is deleted.
     </p>
<HR><UL><LI><i>Version</i>: $Id$
</LI><LI><i>Author</i>: Richard Moore, rich@kde.org
</LI><LI><i>Generated</i>: rich on pegasus on Tue Feb 26 01:28:15 2002, using kdoc \
2.0a53.</LI></UL></BODY></HTML>


["KPassivePopup.html" (text/html)]

<HTML>
<HEAD>
<TITLE>class KPassivePopup</TITLE>

<META NAME="Generator" CONTENT="KDOC ">
</HEAD>
<BODY bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000099" alink= "#ffffff">
<TABLE WIDTH="100%" BORDER="0">
<TR>
<TD>
	<TABLE BORDER="0">
		<TR><TD valign="top" align="left" cellspacing="10">
		<h1>class KPassivePopup</h1>
		</TD>
		<TD valign="top" align="right" colspan="1">
 A dialog-like popup that displays messages without interupting the user. <small><A \
HREF="#longdesc">More...</A></small></TD></TR>  </TABLE>
	<HR>
	<TABLE BORDER="0">
		<TR><TH>Definition</TH><TD><code>#include &lt;<A \
HREF="kpassivepopup_h.html">kpassivepopup.h</A>&gt;</code></TD></TR> \
<TR><TH>Inherits</TH><TD>QFrame <small>(unknown)</small> <small>[public ]</small></TD></TR> \
<TR><TH><A HREF="full-list-KPassivePopup.html">List of all Methods</A></TH></TR>  </TABLE>
	</TD>
<TD align="right"><TABLE BORDER="0"><TR><TD><small><A HREF="index-long.html">Annotated \
List</A></small></TD></TR> <TR><TD><small><A \
HREF="header-list.html">Files</A></small></TD></TR> <TR><TD><small><A \
HREF="all-globals.html">Globals</A></small></TD></TR> <TR><TD><small><A \
HREF="hier.html">Hierarchy</A></small></TD></TR> <TR><TD><small><A \
HREF="index.html">Index</A></small></TD></TR> </TABLE></TD></TR></TABLE>
<h4>Public Methods</h4><ul><LI>&nbsp;<b><A HREF="#ref1">KPassivePopup</A></b> ( QWidget \
*parent=0, const char *name=0 )  </LI>
<LI>&nbsp;<b><A HREF="#ref2">KPassivePopup</A></b> ( WId parent, const char *name=0 ) 
</LI>
<LI>virtual  &nbsp;<b><A HREF="#ref3">~KPassivePopup</A></b> () 
</LI>
<LI>void &nbsp;<b><A HREF="#ref4">setView</A></b> ( QWidget *child ) 
</LI>
<LI>void &nbsp;<b><A HREF="#ref5">setView</A></b> ( const QString &text, const QString &caption \
= QString::null )  </LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref6">setView</A></b> ( const QString &text, const QString \
&caption, const QPixmap &icon )  </LI>
<LI>QWidget *&nbsp;<b><A HREF="#ref7">view</A></b> ()  const
</LI>
<LI>int &nbsp;<b><A HREF="#ref8">timeout</A></b> ()  const
</LI>
</ul><h4>Public Slots</h4><ul><LI>void &nbsp;<b><A HREF="#ref12">setTimeout</A></b> ( int delay \
)  </LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref13">show</A></b> () 
</LI>
</ul><h4>Signals</h4><ul><LI>void &nbsp;<b><A HREF="#ref14">clicked</A></b> () 
</LI>
<LI>void &nbsp;<b><A HREF="#ref15">clicked</A></b> ( QPoint pos ) 
</LI>
</ul><h4>Public Static Methods</h4><ul><LI>static  <A \
HREF="KPassivePopup.html">KPassivePopup</A> *&nbsp;<b><A HREF="#ref9">message</A></b> ( const \
QString &text, QWidget *parent, const char *name=0 )  </LI>
<LI>static  <A HREF="KPassivePopup.html">KPassivePopup</A> *&nbsp;<b><A \
HREF="#ref10">message</A></b> ( const QString &text, const QString &caption,  QWidget *parent, \
const char *name=0 )  </LI>
<LI>static  <A HREF="KPassivePopup.html">KPassivePopup</A> *&nbsp;<b><A \
HREF="#ref11">message</A></b> ( const QString &text,  const QString &caption, const QPixmap \
&icon,  QWidget *parent, const char *name=0 ) 
</LI>
</ul><h4>Protected Methods</h4><ul><LI>virtual  void &nbsp;<b><A \
HREF="#ref16">positionSelf</A></b> ()  </LI>
<LI>void &nbsp;<b><A HREF="#ref17">moveNear</A></b> ( QRect target ) 
</LI>
<LI>virtual  void &nbsp;<b><A HREF="#ref18">mouseReleaseEvent</A></b> ( QMouseEvent *e ) 
</LI>
</ul><HR><H2><A NAME="longdesc">Detailed Description</A></H2><p>
 A dialog-like popup that displays messages without interupting the user. 
 The simplest uses of KPassivePopup are by using the various <A \
HREF="KPassivePopup.html#message">message</A>() static  methods. The position the popup appears \
at depends on the type of the parent window: </p>
<p></p>

<ul>
<li>Normal Windows: The popup is placed adjacent to the icon of the window.
</li>
<li>System Tray Windows: The popup is placed adjact to the system tray window itself.
</li>
<li>Skip Taskbar Windows: The popup is placed adjact to the window
     itself if it is visible, and at the edge of the desktop otherwise.
</li>
</ul>

<p>
</p>
<p> The most basic use of KPassivePopup displays a popup containing a piece of text:
</p><table border="0" width="100%">
<tr>
<td bgcolor="#BEEAE0">
<pre>

    KPassivePopup::message( &quot;This is the <A \
HREF="KPassivePopup.html#message">message</A>&quot;, this );

</pre>
</td></tr>

</table> <p>
 We can create popups with titles and icons too, as this example shows:
</p><table border="0" width="100%">
<tr>
<td bgcolor="#BEEAE0">
<pre>

    QPixmap px;
    px.load( &quot;lo32-app-logtracker.png&quot; );
    KPassivePopup::message( &quot;Some title&quot;, &quot;This is the main text&quot;, px, this \
);

</pre>
</td></tr>

</table> <p>
 For more control over the popup, you can use the <A \
HREF="KPassivePopup.html#setView">setView</A>(QWidget *) method  to create a custom popup. 
</p><table border="0" width="100%">
<tr>
<td bgcolor="#BEEAE0">
<pre>

    <A HREF="KPassivePopup.html#KPassivePopup">KPassivePopup</A> *pop = new <A \
HREF="KPassivePopup.html#KPassivePopup">KPassivePopup</A>( parent );

    QVBox *vb = new QVBox( pop );
    (void) new <A HREF="#QLabel">QLabel</A>( &quot;&lt;b>Isn't this great?&lt;/b>&quot;, vb );

    QHBox *box = new QHBox( vb );
    (void) new QPushButton( &quot;Yes&quot;, box );
    (void) new QPushButton( &quot;No&quot;, box );

    pop-><A HREF="KPassivePopup.html#setView">setView</A>( vb );
    pop-><A HREF="KPassivePopup.html#show">show</A>();

</pre>
</td></tr>

</table> <p>
</p>
<p></p>
<A NAME="KPassivePopup"></A><A NAME="ref1"></A><table width="100%"><tr \
bgcolor="#eeeeee"><td>&nbsp;<strong>KPassivePopup</strong> ( QWidget *parent=0, const char \
*name=0 ) <br></td><td \
align="right"><h3><strong>KPassivePopup</strong></h3></td></tr></table><p></p><p>  Creates a \
popup for the specified widget.  </p>
<A NAME="KPassivePopup"></A><A NAME="ref2"></A><table width="100%"><tr \
bgcolor="#eeeeee"><td>&nbsp;<strong>KPassivePopup</strong> ( WId parent, const char *name=0 ) \
<br></td><td align="right"><h3><strong>KPassivePopup</strong></h3></td></tr></table><p></p><p>  \
Creates a popup for the specified window.  </p>
<A NAME="~KPassivePopup"></A><A NAME="ref3"></A><table width="100%"><tr bgcolor="#eeeeee"><td> \
&nbsp;<strong>~KPassivePopup</strong> () <br></td><td \
align="right"><h3><strong>~KPassivePopup</strong></h3></td></tr></table><p> \
<small>[virtual]</small></p><p>  Cleans up.
     </p>
<A NAME="setView"></A><A NAME="ref4"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>setView</strong> ( QWidget *child ) <br></td><td \
align="right"><h3><strong>setView</strong></h3></td></tr></table><p></p><p>  Sets the main view \
to be the specified widget (which must be a child of the popup).  </p>
<A NAME="setView"></A><A NAME="ref5"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>setView</strong> ( const QString &text, const QString &caption = QString::null ) \
<br></td><td align="right"><h3><strong>setView</strong></h3></td></tr></table><p></p><p>  \
Creates a standard view then calls <A HREF="KPassivePopup.html#setView">setView</A>(QWidget*) . \
</p> <A NAME="setView"></A><A NAME="ref6"></A><table width="100%"><tr bgcolor="#eeeeee"><td> \
void &nbsp;<strong>setView</strong> ( const QString &text, const QString &caption, const \
QPixmap &icon ) <br></td><td \
align="right"><h3><strong>setView</strong></h3></td></tr></table><p> \
<small>[virtual]</small></p><p>  Creates a standard view then calls <A \
HREF="KPassivePopup.html#setView">setView</A>(QWidget*) .  </p>
<A NAME="view"></A><A NAME="ref7"></A><table width="100%"><tr bgcolor="#eeeeee"><td>QWidget \
*&nbsp;<strong>view</strong> () <br></td><td \
align="right"><h3><strong>view</strong></h3></td></tr></table><p> <small>[const]</small></p><p> \
Returns the main view   </p>
<A NAME="timeout"></A><A NAME="ref8"></A><table width="100%"><tr bgcolor="#eeeeee"><td>int \
&nbsp;<strong>timeout</strong> () <br></td><td \
align="right"><h3><strong>timeout</strong></h3></td></tr></table><p> \
<small>[const]</small></p><p>  Returns the delay before the popup is removed automatically.
     </p>
<A NAME="message"></A><A NAME="ref9"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <A \
HREF="KPassivePopup.html">KPassivePopup</A> *&nbsp;<strong>message</strong> ( const QString \
&text, QWidget *parent, const char *name=0 ) <br></td><td \
align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[static]</small></p><p>  Convenience method that displays popup with the specified  \
message  beside the  icon of the specified widget.
     </p>
<A NAME="message"></A><A NAME="ref10"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <A \
HREF="KPassivePopup.html">KPassivePopup</A> *&nbsp;<strong>message</strong> ( const QString \
&text, const QString &caption,  QWidget *parent, const char *name=0 )
<br></td><td align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[static]</small></p><p>  Convenience method that displays popup with the specified \
caption and message   beside the icon of the specified widget.
     </p>
<A NAME="message"></A><A NAME="ref11"></A><table width="100%"><tr bgcolor="#eeeeee"><td> <A \
HREF="KPassivePopup.html">KPassivePopup</A> *&nbsp;<strong>message</strong> ( const QString \
&text,  const QString &caption, const QPixmap &icon,
				   QWidget *parent, const char *name=0 )
<br></td><td align="right"><h3><strong>message</strong></h3></td></tr></table><p> \
<small>[static]</small></p><p>  Convenience method that displays popup with the specified icon, \
caption and  message beside the icon of the specified widget.
     </p>
<A NAME="setTimeout"></A><A NAME="ref12"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>setTimeout</strong> ( int delay ) <br></td><td \
align="right"><h3><strong>setTimeout</strong></h3></td></tr></table><p> \
<small>[slot]</small></p><p>  Sets the delay for the popup is removed automatically. Setting \
the delay to -1  disables the timeout, if you're doing this, you may want to connect the
 <A HREF="KPassivePopup.html#clicked">clicked</A>() signal to the hide() slot.
     </p>
<A NAME="show"></A><A NAME="ref13"></A><table width="100%"><tr bgcolor="#eeeeee"><td> void \
&nbsp;<strong>show</strong> () <br></td><td \
align="right"><h3><strong>show</strong></h3></td></tr></table><p> <small>[virtual \
slot]</small></p><p>  Reimplemented to reposition the popup.
     </p>
<A NAME="clicked"></A><A NAME="ref14"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>clicked</strong> () <br></td><td \
align="right"><h3><strong>clicked</strong></h3></td></tr></table><p> \
<small>[signal]</small></p><p>  Emitted when the popup is clicked.
     </p>
<A NAME="clicked"></A><A NAME="ref15"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>clicked</strong> ( QPoint pos ) <br></td><td \
align="right"><h3><strong>clicked</strong></h3></td></tr></table><p> \
<small>[signal]</small></p><p>   Emitted when the popup is clicked.
     </p>
<A NAME="positionSelf"></A><A NAME="ref16"></A><table width="100%"><tr bgcolor="#eeeeee"><td> \
void &nbsp;<strong>positionSelf</strong> () <br></td><td \
align="right"><h3><strong>positionSelf</strong></h3></td></tr></table><p> <small>[protected \
virtual]</small></p><p>   This method positions the popup.
     </p>
<A NAME="moveNear"></A><A NAME="ref17"></A><table width="100%"><tr bgcolor="#eeeeee"><td>void \
&nbsp;<strong>moveNear</strong> ( QRect target ) <br></td><td \
align="right"><h3><strong>moveNear</strong></h3></td></tr></table><p> \
<small>[protected]</small></p><p>   Moves the popup to be adjacent to the icon of the specified \
rectangle.  </p>
<A NAME="mouseReleaseEvent"></A><A NAME="ref18"></A><table width="100%"><tr \
bgcolor="#eeeeee"><td> void &nbsp;<strong>mouseReleaseEvent</strong> ( QMouseEvent *e ) \
<br></td><td align="right"><h3><strong>mouseReleaseEvent</strong></h3></td></tr></table><p> \
<small>[protected virtual]</small></p><p>  Reimplemented to detect mouse clicks.
     </p>
<HR><UL><LI><i>Version</i>: $Id: kpassivepopup.h,v 1.2 2002/02/25 22:18:59 rich Exp $
</LI><LI><i>Author</i>: Richard Moore, rich@kde.org
 </LI><LI><i>Generated</i>: rich on pegasus on Tue Feb 26 01:28:15 2002, using kdoc \
2.0a53.</LI></UL></BODY></HTML>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic