[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