-rw-r--r-- | library/backend/rohfeedback.cpp | 28 | ||||
-rw-r--r-- | library/backend/rohfeedback.h | 3 | ||||
-rw-r--r-- | library/config.in | 4 | ||||
-rw-r--r-- | library/library.pro | 6 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 58 | ||||
-rw-r--r-- | library/qpeapplication.h | 2 |
6 files changed, 57 insertions, 44 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,7 +1,7 @@ -#include <rohfeedback.h> - +#ifdef OPIE_WITHROHFEEDBACK +#include <rohfeedback.h> #include <stdio.h> #include <qpeapplication.h> #include <qevent.h> #include <resource.h> @@ -34,14 +34,13 @@ RoHFeedback::RoHFeedback() : 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(); @@ -65,18 +64,16 @@ 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 ) { @@ -99,15 +96,16 @@ bool RoHFeedback::event( QEvent * 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 @@ -121,5 +119,7 @@ void RoHFeedback::iconShow( void ) { } } } -}
\ 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,7 +1,9 @@ #ifndef ROHFEEDBACK_H #define ROHFEEDBACK_H +#ifdef OPIE_WITHROHFEEDBACK + /* RightOnHold feedback show @@ -59,4 +61,5 @@ protected : } } #endif +#endif diff --git a/library/config.in b/library/config.in index ea69ccb..5273976 100644 --- a/library/config.in +++ b/library/config.in @@ -1,2 +1,6 @@ config LIBQPE boolean "Qpe Library (Qt/Embedded version)" + +config LIBQPE_WITHROHFEEDBACK + boolean "Give visual feedback for RightOnHold" + depends LIBQPE diff --git a/library/library.pro b/library/library.pro index eb4bde3..af07fa3 100644 --- a/library/library.pro +++ b/library/library.pro @@ -46,8 +46,9 @@ HEADERS = calendar.h \ backend/palmtoprecord.h \ backend/task.h \ backend/event.h \ backend/contact.h\ + backend/rohfeedback.h \ categorymenu.h \ categoryedit_p.h \ categoryselect.h \ categorywidget.h \ @@ -105,8 +106,9 @@ SOURCES = calendar.cpp \ backend/palmtoprecord.cpp \ backend/task.cpp \ backend/event.cpp \ backend/contact.cpp \ + backend/rohfeedback.cpp \ categorymenu.cpp \ categoryedit_p.cpp \ categoryselect.cpp \ categorywidget.cpp \ @@ -134,4 +136,8 @@ include ( $(OPIEDIR)/include.pro ) contains( CONFIG, no-override ){ DEFINES += OPIE_NO_OVERRIDE_QT } + +contains( CONFIG, LIBQPE_WITHROHFEEDBACK ){ + DEFINES += WITHROHFEEDBACK +} diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 35f433c..c6d9cfd 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -96,14 +96,13 @@ #include <sys/soundcard.h> #endif #include "qt_override_p.h" -#include <qpe/rohfeedback.h> +#include <backend/rohfeedback.h> static bool useBigPixmaps = 0; - class HackWidget : public QWidget { public: bool needsOk() @@ -115,10 +114,10 @@ public: class QPEApplicationData { public: - QPEApplicationData ( ) - : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), + QPEApplicationData ( ) : + presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), keep_running( true ), qcopQok( false ), fontFamily( "Vera" ), fontSize( 10 ), smallIconSize( 14 ), bigIconSize( 32 ), qpe_main_widget( 0 ) @@ -129,17 +128,17 @@ public: fontFamily = cfg.readEntry( "FontFamily", "Vera" ); fontSize = cfg.readNumEntry( "FontSize", 10 ); smallIconSize = cfg.readNumEntry( "SmallIconSize", 14 ); bigIconSize = cfg.readNumEntry( "BigIconSize", 32 ); -#ifdef OPIE_ROHFEEDBACK +#ifdef OPIE_WITHROHFEEDBACK RoH = 0; #endif } int presstimer; QWidget* presswidget; QPoint presspos; -#ifdef OPIE_ROHFEEDBACK +#ifdef OPIE_WITHROHFEEDBACK Opie::Internal::RoHFeedback *RoH; #endif bool rightpressed : 1; @@ -501,8 +500,9 @@ static void qpe_show_dialog( QDialog* d, bool nomax ) delete lib; } } } + }; class ResourceMimeFactory : public QMimeSourceFactory { @@ -1214,10 +1214,12 @@ QPEApplication::~QPEApplication() // be gone by the time we get to ~QObject(). delete sysChannel; delete pidChannel; #endif -#ifdef OPIE_ROHFEEDBACK - delete d->RoH; + +#ifdef OPIE_WITHROHFEEDBACK + if( d->RoH ) + delete d->RoH; #endif delete d; } @@ -2034,46 +2036,45 @@ bool QPEApplication::eventFilter( QObject *o, QEvent *e ) case RightOnHold: switch ( me->type() ) { case QEvent::MouseButtonPress: if ( me->button() == LeftButton ) { + static long Pref = 500; // #### pref. d->presswidget = (QWidget*)o; d->presspos = me->pos(); d->rightpressed = FALSE; - // just for the time being - static int pref = 500; -#ifdef OPIE_ROHFEEDBACK +#ifdef OPIE_WITHROHFEEDBACK if( ! d->RoH ) d->RoH = new Opie::Internal::RoHFeedback; d->RoH->init( me->globalPos(), d->presswidget ); - pref = d->RoH->delay(); + Pref = d->RoH->delay(); + #endif if (!d->presstimer ) - d->presstimer = startTimer( pref ); // #### pref. + d->presstimer = startTimer( Pref ); // #### pref. } break; case QEvent::MouseMove: if (d->presstimer && (me->pos() - d->presspos).manhattanLength() > 8) { killTimer(d->presstimer); -#ifdef OPIE_ROHFEEDBACK - if( d->RoH ) - d->RoH->stop( ); +#ifdef OPIE_WITHROHFEEDBACK + d->RoH->stop(); #endif d->presstimer = 0; } break; case QEvent::MouseButtonRelease: if ( me->button() == LeftButton ) { if ( d->presstimer ) { killTimer(d->presstimer); -#ifdef OPIE_ROHFEEDBACK - if( d->RoH ) - d->RoH->stop( ); +#ifdef OPIE_WITHROHFEEDBACK + d->RoH->stop( ); #endif d->presstimer = 0; } if ( d->rightpressed && d->presswidget ) { + printf( "Send ButtonRelease\n" ); // Right released postEvent( d->presswidget, new QMouseEvent( QEvent::MouseButtonRelease, me->pos(), RightButton, LeftButton + RightButton ) ); @@ -2115,17 +2116,18 @@ bool QPEApplication::eventFilter( QObject *o, QEvent *e ) */ void QPEApplication::timerEvent( QTimerEvent *e ) { if ( e->timerId() == d->presstimer && d->presswidget ) { - // Right pressed - postEvent( d->presswidget, - new QMouseEvent( QEvent::MouseButtonPress, d->presspos, - RightButton, LeftButton ) ); - killTimer( d->presstimer ); - d->presstimer = 0; - d->rightpressed = TRUE; -#ifdef OPIE_ROHFEEDBACK - d->RoH->stop(); + + // Right pressed + postEvent( d->presswidget, + new QMouseEvent( QEvent::MouseButtonPress, d->presspos, + RightButton, LeftButton ) ); + killTimer( d->presstimer ); + d->presstimer = 0; + d->rightpressed = TRUE; +#ifdef OPIE_WITHROHFEEDBACK + d->RoH->stop(); #endif } } diff --git a/library/qpeapplication.h b/library/qpeapplication.h index d2782e4..b07802f 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h @@ -183,10 +183,8 @@ private: QPEApplicationData *d; bool reserved_sh; - - }; inline void QPEApplication::showDialog( QDialog* d, bool nomax ) { |