-rw-r--r-- | library/backend/rohfeedback.cpp | 28 | ||||
-rw-r--r-- | library/backend/rohfeedback.h | 3 |
2 files changed, 17 insertions, 14 deletions
diff --git a/library/backend/rohfeedback.cpp b/library/backend/rohfeedback.cpp index ff76a36..21aad34 100644 --- a/library/backend/rohfeedback.cpp +++ b/library/backend/rohfeedback.cpp @@ -1,125 +1,125 @@ -#include <rohfeedback.h> - +#ifdef OPIE_WITHROHFEEDBACK +#include <rohfeedback.h> #include <stdio.h> #include <qpeapplication.h> #include <qevent.h> #include <resource.h> #include <qpixmap.h> #include <qbitmap.h> #define SPEED 600 #define DELAY 500 namespace Opie { namespace Internal { /* RightOnHold feedback */ QPixmap * RoHFeedback::Imgs[NOOFICONS] = { 0, 0, 0, 0, 0 }; QBitmap * RoHFeedback::Masks[NOOFICONS]; int RoHFeedback::IconWidth; int RoHFeedback::IconHeight; RoHFeedback::RoHFeedback() : QLabel( 0, 0, Qt::WType_Popup ), Timer() { Receiver = 0l; connect( &Timer, SIGNAL( timeout() ), this, SLOT( iconShow() ) ); if( Imgs[0] == 0 ) { QString S; for( int i = 0; i < NOOFICONS ; i ++ ) { - Imgs[i] = new QPixmap( Resource::loadPixmap("RoH/star/"+ - QString::number(i+1) + - ".png" )); + Imgs[i] = new QPixmap( Resource::loadPixmap( + "RoH/star/"+ QString::number(i+1) + ".png" )); Masks[i] = new QBitmap(); - (*Masks[i]) = Resource::loadPixmap("RoH/star/"+QString::number(i+1) + - ".png" ); + (*Masks[i]) = Resource::loadPixmap( + "RoH/star/"+QString::number(i+1) + "-mask.png" ); } } IconWidth = Imgs[0]->size().width(); IconHeight = Imgs[0]->size().height(); resize( IconWidth, IconHeight ); } int RoHFeedback::delay( void ) { return DELAY+SPEED+50; } RoHFeedback::~RoHFeedback() { for ( int i = 0; i < NOOFICONS; ++i ) { delete Imgs [i]; delete Masks[i]; } } void RoHFeedback::init( const QPoint & P, QWidget* wid ) { if( ! IconWidth ) return; Receiver = wid; - IconNr = -1; + IconNr = FeedbackTimerStart; move( P.x()-IconWidth/2, P.y() - IconHeight/2 ); // to initialize - Timer.start( DELAY - SPEED/NOOFICONS ); + Timer.start( DELAY ); } void RoHFeedback::stop( void ) { - IconNr = -2; // stop - hide(); - Timer.stop(); + IconNr = FeedbackStopped; // stop } bool RoHFeedback::event( QEvent * E ) { if( E->type() >= QEvent::MouseButtonPress && E->type() <= QEvent::MouseMove ) { // pass the event to the receiver with translated coord QMouseEvent QME( ((QMouseEvent *)E)->type(), Receiver->mapFromGlobal( ((QMouseEvent *)E)->globalPos() ), ((QMouseEvent *)E)->globalPos(), ((QMouseEvent *)E)->button(), ((QMouseEvent *)E)->state() ); return QPEApplication::sendEvent( Receiver, &QME ); } // first let the label treat the event return QLabel::event( E ); } void RoHFeedback::iconShow( void ) { switch( IconNr ) { case FeedbackTimerStart: - IconNr = 0; + IconNr = FeedbackShow; Timer.start( SPEED/NOOFICONS ); break; case FeedbackStopped: // stopped IconNr = FeedbackTimerStart; hide(); + Timer.stop(); break; case FeedbackShow: // first show(); // FT default : // show setPixmap( *(Imgs[IconNr]) ); setMask( *(Masks[IconNr]) ); IconNr = (IconNr+1)%NOOFICONS; // rotate break; } } } -}
\ No newline at end of file +} + +#endif diff --git a/library/backend/rohfeedback.h b/library/backend/rohfeedback.h index f38a095..9ffd35a 100644 --- a/library/backend/rohfeedback.h +++ b/library/backend/rohfeedback.h @@ -1,62 +1,65 @@ #ifndef ROHFEEDBACK_H #define ROHFEEDBACK_H +#ifdef OPIE_WITHROHFEEDBACK + /* RightOnHold feedback show */ #define NOOFICONS 5 #include <qlabel.h> #include <qtimer.h> class QEvent; class QPixmap; class QBitmap; class QMouseEvent; namespace Opie { namespace Internal { class RoHFeedback : public QLabel { Q_OBJECT enum Actions { FeedbackStopped = -2, FeedbackTimerStart = -1, FeedbackShow = 0 }; public : RoHFeedback(); ~RoHFeedback(); void init( const QPoint & P, QWidget* wid ); void stop( void ); int delay( void ); public slots : void iconShow( void ); protected : bool event( QEvent * E ); QTimer Timer; int IconNr; QWidget * Receiver; static int IconWidth; static int IconHeight; static QPixmap * Imgs[NOOFICONS]; static QBitmap * Masks[NOOFICONS]; }; } } #endif +#endif |