You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.9 KiB
81 lines
1.9 KiB
15 years ago
|
/***************************************************************************
|
||
|
* $Id$
|
||
|
**
|
||
|
* Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
|
||
|
**
|
||
|
* This file is part of an example program for Qt. This example
|
||
|
* program may be used, distributed and modified without limitation.
|
||
|
**
|
||
|
****************************************************************************/
|
||
|
import org.kde.qt.*;
|
||
|
import java.util.Calendar;
|
||
|
|
||
|
class Biff extends QWidget
|
||
|
{
|
||
|
private Calendar lastModified;
|
||
|
private QPixmap hasNewMail = new QPixmap();
|
||
|
private QPixmap noNewMail = new QPixmap();
|
||
|
private String mailbox;
|
||
|
private boolean gotMail;
|
||
|
|
||
|
public Biff( )
|
||
|
{
|
||
|
this(null, null);
|
||
|
}
|
||
|
public Biff( QWidget parent, String name )
|
||
|
{
|
||
|
super( parent, name, WType_Modal );
|
||
|
// QFileInfo fi = new QFileInfo(System.getProperty("MAIL"));
|
||
|
QFileInfo fi = new QFileInfo("");
|
||
|
if ( !fi.exists() ) {
|
||
|
String s = "/var/spool/mail/";
|
||
|
s += System.getProperty("user.name");
|
||
|
fi.setFile( s );
|
||
|
}
|
||
|
if ( fi.exists() ) {
|
||
|
mailbox = fi.absFilePath();
|
||
|
startTimer( 1000 );
|
||
|
}
|
||
|
|
||
|
setMinimumSize( 48, 48 );
|
||
|
setMaximumSize( 48, 48 );
|
||
|
resize( 48, 48 );
|
||
|
|
||
|
hasNewMail.loadFromData( bmp.hasmail_bmp_data );
|
||
|
noNewMail.loadFromData( bmp.nomail_bmp_data );
|
||
|
|
||
|
gotMail = false;
|
||
|
lastModified = fi.lastModified();
|
||
|
}
|
||
|
|
||
|
|
||
|
protected void timerEvent( QTimerEvent event )
|
||
|
{
|
||
|
QFileInfo fi = new QFileInfo( mailbox );
|
||
|
boolean newState = ( fi.lastModified() != lastModified &&
|
||
|
fi.lastModified().after( fi.lastRead() ) );
|
||
|
if ( newState != gotMail ) {
|
||
|
if ( gotMail )
|
||
|
lastModified = fi.lastModified();
|
||
|
gotMail = newState;
|
||
|
repaint( false );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
protected void paintEvent( QPaintEvent event )
|
||
|
{
|
||
|
if ( gotMail )
|
||
|
bitBlt( this, 0, 0, hasNewMail );
|
||
|
else
|
||
|
bitBlt( this, 0, 0, noNewMail );
|
||
|
}
|
||
|
|
||
|
|
||
|
protected void mousePressEvent( QMouseEvent event )
|
||
|
{
|
||
|
QFileInfo fi = new QFileInfo( mailbox );
|
||
|
lastModified = fi.lastModified();
|
||
|
}
|
||
|
}
|