summaryrefslogtreecommitdiff
path: root/library/qpeapplication.h
Side-by-side diff
Diffstat (limited to 'library/qpeapplication.h') (more/less context) (show 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,54 +1,55 @@
/**********************************************************************
** 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();
@@ -130,59 +131,60 @@ private:
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 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 );
}
#endif