summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-03-27 05:07:03 (UTC)
committer kergoth <kergoth>2003-03-27 05:07:03 (UTC)
commit06bcd227c2806a35d77e9da4c1338d578680e3ed (patch) (side-by-side diff)
treeb652b5bd536641e07d840e03f13bcdcdf25e50e9
parentcc8374957bcd95868d3dc52c854786239083cffc (diff)
downloadopie-06bcd227c2806a35d77e9da4c1338d578680e3ed.zip
opie-06bcd227c2806a35d77e9da4c1338d578680e3ed.tar.gz
opie-06bcd227c2806a35d77e9da4c1338d578680e3ed.tar.bz2
Behavior change for setCurrentRotation. Now changes rotation for newly
started apps as well as those currently running. Differs from setDefaultRotation in that 1) it rotates currently running apps, and 2) does not set deforient or save orientation to qpe.conf.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.h40
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
@@ -1,70 +1,71 @@
/**********************************************************************
** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
**
** This file is part of the Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef __QPE_APPLICATION_H__
#define __QPE_APPLICATION_H__
+#include <stdlib.h> // for setenv()
#include <qglobal.h>
#include <qapplication.h>
#include <qdialog.h>
#include <qwsdisplay_qws.h>
#if defined(_WS_QWS_) && !defined(Q_WS_QWS)
#define Q_WS_QWS
#endif
#include "qpedecoration_qws.h"
#include "timestring.h"
class QCopChannel;
class QPEApplicationData;
class QWSEvent;
class QWSKeyEvent;
class QPEApplication : public QApplication
{
Q_OBJECT
public:
QPEApplication( int& argc, char **argv, Type=GuiClient );
~QPEApplication();
static QString qpeDir();
static QString documentDir();
void applyStyle();
static int defaultRotation();
static void setDefaultRotation(int r);
static void setCurrentRotation(int r);
static void grabKeyboard();
static void ungrabKeyboard();
enum StylusMode {
LeftOnly,
RightOnHold
// RightOnHoldLeftDelayed, etc.
};
static void setStylusOperation( QWidget*, StylusMode );
static StylusMode stylusOperation( QWidget* );
enum InputMethodHint {
Normal,
AlwaysOff,
AlwaysOn
};
enum screenSaverHint {
@@ -114,75 +115,76 @@ protected:
virtual void restart();
virtual void shutdown();
bool eventFilter( QObject *, QEvent * );
void timerEvent( QTimerEvent * );
bool raiseAppropriateWindow();
virtual void tryQuit();
virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!)
private:
void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel *sysChannel;
QCopChannel *pidChannel;
#endif
QPEApplicationData *d;
bool reserved_sh;
};
inline void QPEApplication::showDialog( QDialog* d, bool nomax )
{
QSize sh = d->sizeHint();
int w = QMAX(sh.width(),d->width());
int h = QMAX(sh.height(),d->height());
if ( !nomax
&& ( w > qApp->desktop()->width()*3/4
|| h > qApp->desktop()->height()*3/4 ) )
{
d->showMaximized();
} else {
d->resize(w,h);
d->show();
}
}
inline int QPEApplication::execDialog( QDialog* d, bool nomax )
{
showDialog(d,nomax);
return d->exec();
}
enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */
+inline int TransToDeg ( Transformation t )
+{
+ int d = static_cast<int>( t );
+ return d * 90;
+}
+
+inline Transformation DegToTrans ( int d )
+{
+ Transformation t = static_cast<Transformation>( d / 90 );
+ return t;
+}
+
+/*
+ * 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;
-
- 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 e = DegToTrans( r );
- qDebug("calling qApp->desktop()->qwsDisplay()->setTransformation( %d )\n", e);
+ setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 );
qApp->desktop()->qwsDisplay()->setTransformation( e );
}
#endif