-rw-r--r-- | library/qpeapplication.h | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 7f74510..0bad8b7 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h @@ -19,8 +19,9 @@ **********************************************************************/ #ifndef __QPE_APPLICATION_H__ #define __QPE_APPLICATION_H__ +#include <stdlib.h> // for setenv() #include <qglobal.h> #include <qapplication.h> #include <qdialog.h> @@ -158,30 +159,31 @@ inline int QPEApplication::execDialog( QDialog* d, bool nomax ) } enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ -inline void QPEApplication::setCurrentRotation( int r ) +inline int TransToDeg ( Transformation t ) +{ + int d = static_cast<int>( t ); + return d * 90; +} + +inline Transformation DegToTrans ( int d ) { - Transformation e; - - switch (r) { - case 0: - e = Rot0; - break; - case 90: - e = Rot90; - break; - case 180: - e = Rot180; - break; - case 270: - e = Rot270; - break; - default: - return; + Transformation t = static_cast<Transformation>( d / 90 ); + return t; } - qDebug("calling qApp->desktop()->qwsDisplay()->setTransformation( %d )\n", e); +/* + * Set current rotation of Opie, and rotation for newly started apps. + * Differs from setDefaultRotation in that 1) it rotates currently running apps, + * and 2) does not set deforient or save orientation to qpe.conf. + */ + +inline void QPEApplication::setCurrentRotation( int r ) +{ + Transformation e = DegToTrans( r ); + + setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); qApp->desktop()->qwsDisplay()->setTransformation( e ); } |