/**************************************************************************** ** $Id: main.cpp,v 2.3 1998/06/16 11:39:32 warwick Exp $ ** ** Copyright (C) 1992-1998 Troll Tech 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. ** *****************************************************************************/ #include <qapplication.h> #include "biff.h" int main( int argc, char ** argv ) { QApplication a( argc, argv ); Biff b; a.setMainWidget( &b ); b.show(); return a.exec(); }biff.h is the declaratin for the custom widget which does all the work:
/**************************************************************************** ** $Id: biff.h,v 2.3 1998/06/16 11:39:32 warwick Exp $ ** ** Copyright (C) 1992-1998 Troll Tech 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. ** *****************************************************************************/ #ifndef BIFF_H #define BIFF_H #include <qwidget.h> #include <qdatetime.h> #include <qpixmap.h> class Biff : public QWidget { Q_OBJECT public: Biff( QWidget *parent=0, const char *name=0 ); protected: void timerEvent( QTimerEvent * ); void paintEvent( QPaintEvent * ); void mousePressEvent( QMouseEvent * ); private: QDateTime lastModified; QPixmap hasNewMail; QPixmap noNewMail; QString mailbox; bool gotMail; }; #endif // BIFF_HFinally, biff.cpp implements this custom widget. Note in particular how two images (hasmail_bmp_data and nomail_bmp_data, both from bmp.cpp) are included into the executable.
/**************************************************************************** ** $Id: biff.cpp,v 2.3 1998/06/16 11:39:32 warwick Exp $ ** ** Copyright (C) 1992-1998 Troll Tech 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. ** *****************************************************************************/ #include "biff.h" #include <qstring.h> #include <qfileinfo.h> #include <qpainter.h> #include <unistd.h> #include <stdlib.h> #include "bmp.cpp" Biff::Biff( QWidget *parent, const char *name ) : QWidget( parent, name, WType_Modal ) { QFileInfo fi( getenv( "MAIL" ) ); if ( !fi.exists() ) { QString s( "/var/spool/mail/" ); s += getlogin(); fi.setFile( s ); } if ( fi.exists() ) { mailbox = fi.absFilePath(); startTimer( 1000 ); } setMinimumSize( 48, 48 ); setMaximumSize( 48, 48 ); resize( 48, 48 ); hasNewMail.loadFromData( hasmail_bmp_data, hasmail_bmp_len ); noNewMail.loadFromData( nomail_bmp_data, nomail_bmp_len ); gotMail = FALSE; lastModified = fi.lastModified(); } void Biff::timerEvent( QTimerEvent * ) { QFileInfo fi( mailbox ); bool newState = ( fi.lastModified() != lastModified && fi.lastModified() > fi.lastRead() ); if ( newState != gotMail ) { if ( gotMail ) lastModified = fi.lastModified(); gotMail = newState; repaint( FALSE ); } } void Biff::paintEvent( QPaintEvent * ) { if ( gotMail ) bitBlt( this, 0, 0, &hasNewMail ); else bitBlt( this, 0, 0, &noNewMail ); } void Biff::mousePressEvent( QMouseEvent * ) { QFileInfo fi( mailbox ); lastModified = fi.lastModified(); }
Copyright © 1998 Troll Tech | Trademarks | Qt version 1.42
|