summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-03-27 05:07:03 (UTC)
committer kergoth <kergoth>2003-03-27 05:07:03 (UTC)
commit06bcd227c2806a35d77e9da4c1338d578680e3ed (patch) (unidiff)
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,86 +1,87 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#ifndef __QPE_APPLICATION_H__ 20#ifndef __QPE_APPLICATION_H__
21#define __QPE_APPLICATION_H__ 21#define __QPE_APPLICATION_H__
22 22
23#include <stdlib.h> // for setenv()
23 24
24#include <qglobal.h> 25#include <qglobal.h>
25#include <qapplication.h> 26#include <qapplication.h>
26#include <qdialog.h> 27#include <qdialog.h>
27#include <qwsdisplay_qws.h> 28#include <qwsdisplay_qws.h>
28#if defined(_WS_QWS_) && !defined(Q_WS_QWS) 29#if defined(_WS_QWS_) && !defined(Q_WS_QWS)
29#define Q_WS_QWS 30#define Q_WS_QWS
30#endif 31#endif
31#include "qpedecoration_qws.h" 32#include "qpedecoration_qws.h"
32#include "timestring.h" 33#include "timestring.h"
33 34
34class QCopChannel; 35class QCopChannel;
35class QPEApplicationData; 36class QPEApplicationData;
36class QWSEvent; 37class QWSEvent;
37class QWSKeyEvent; 38class QWSKeyEvent;
38 39
39 40
40class QPEApplication : public QApplication 41class QPEApplication : public QApplication
41{ 42{
42 Q_OBJECT 43 Q_OBJECT
43public: 44public:
44 QPEApplication( int& argc, char **argv, Type=GuiClient ); 45 QPEApplication( int& argc, char **argv, Type=GuiClient );
45 ~QPEApplication(); 46 ~QPEApplication();
46 47
47 static QString qpeDir(); 48 static QString qpeDir();
48 static QString documentDir(); 49 static QString documentDir();
49 void applyStyle(); 50 void applyStyle();
50 static int defaultRotation(); 51 static int defaultRotation();
51 static void setDefaultRotation(int r); 52 static void setDefaultRotation(int r);
52 static void setCurrentRotation(int r); 53 static void setCurrentRotation(int r);
53 static void grabKeyboard(); 54 static void grabKeyboard();
54 static void ungrabKeyboard(); 55 static void ungrabKeyboard();
55 56
56 enum StylusMode { 57 enum StylusMode {
57 LeftOnly, 58 LeftOnly,
58 RightOnHold 59 RightOnHold
59 // RightOnHoldLeftDelayed, etc. 60 // RightOnHoldLeftDelayed, etc.
60 }; 61 };
61 static void setStylusOperation( QWidget*, StylusMode ); 62 static void setStylusOperation( QWidget*, StylusMode );
62 static StylusMode stylusOperation( QWidget* ); 63 static StylusMode stylusOperation( QWidget* );
63 64
64 enum InputMethodHint { 65 enum InputMethodHint {
65 Normal, 66 Normal,
66 AlwaysOff, 67 AlwaysOff,
67 AlwaysOn 68 AlwaysOn
68 }; 69 };
69 70
70 enum screenSaverHint { 71 enum screenSaverHint {
71 Disable = 0, 72 Disable = 0,
72 DisableLightOff = 1, 73 DisableLightOff = 1,
73 DisableSuspend = 2, 74 DisableSuspend = 2,
74 Enable = 100 75 Enable = 100
75 }; 76 };
76 77
77 static void setInputMethodHint( QWidget *, InputMethodHint ); 78 static void setInputMethodHint( QWidget *, InputMethodHint );
78 static InputMethodHint inputMethodHint( QWidget * ); 79 static InputMethodHint inputMethodHint( QWidget * );
79 80
80 void showMainWidget( QWidget*, bool nomax=FALSE ); 81 void showMainWidget( QWidget*, bool nomax=FALSE );
81 void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); 82 void showMainDocumentWidget( QWidget*, bool nomax=FALSE );
82 static void showDialog( QDialog*, bool nomax=FALSE ); 83 static void showDialog( QDialog*, bool nomax=FALSE );
83 static int execDialog( QDialog*, bool nomax=FALSE ); 84 static int execDialog( QDialog*, bool nomax=FALSE );
84 85
85 static void setKeepRunning(); 86 static void setKeepRunning();
86 bool keepRunning() const; 87 bool keepRunning() const;
@@ -98,91 +99,92 @@ signals:
98 void appMessage( const QCString& msg, const QByteArray& data); 99 void appMessage( const QCString& msg, const QByteArray& data);
99 void weekChanged( bool startOnMonday ); 100 void weekChanged( bool startOnMonday );
100 void dateFormatChanged( DateFormat ); 101 void dateFormatChanged( DateFormat );
101 void flush(); 102 void flush();
102 void reload(); 103 void reload();
103 104
104private slots: 105private slots:
105 void systemMessage( const QCString &msg, const QByteArray &data ); 106 void systemMessage( const QCString &msg, const QByteArray &data );
106 void pidMessage( const QCString &msg, const QByteArray &data ); 107 void pidMessage( const QCString &msg, const QByteArray &data );
107 void removeSenderFromStylusDict(); 108 void removeSenderFromStylusDict();
108 void hideOrQuit(); 109 void hideOrQuit();
109 110
110protected: 111protected:
111 bool qwsEventFilter( QWSEvent * ); 112 bool qwsEventFilter( QWSEvent * );
112 void internalSetStyle( const QString &style ); 113 void internalSetStyle( const QString &style );
113 void prepareForTermination(bool willrestart); 114 void prepareForTermination(bool willrestart);
114 virtual void restart(); 115 virtual void restart();
115 virtual void shutdown(); 116 virtual void shutdown();
116 bool eventFilter( QObject *, QEvent * ); 117 bool eventFilter( QObject *, QEvent * );
117 void timerEvent( QTimerEvent * ); 118 void timerEvent( QTimerEvent * );
118 bool raiseAppropriateWindow(); 119 bool raiseAppropriateWindow();
119 virtual void tryQuit(); 120 virtual void tryQuit();
120 121
121 virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!) 122 virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!)
122 123
123private: 124private:
124 void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); 125 void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
125 126
126#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 127#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
127 QCopChannel *sysChannel; 128 QCopChannel *sysChannel;
128 QCopChannel *pidChannel; 129 QCopChannel *pidChannel;
129#endif 130#endif
130 QPEApplicationData *d; 131 QPEApplicationData *d;
131 132
132 bool reserved_sh; 133 bool reserved_sh;
133 134
134 135
135 136
136}; 137};
137 138
138inline void QPEApplication::showDialog( QDialog* d, bool nomax ) 139inline void QPEApplication::showDialog( QDialog* d, bool nomax )
139{ 140{
140 QSize sh = d->sizeHint(); 141 QSize sh = d->sizeHint();
141 int w = QMAX(sh.width(),d->width()); 142 int w = QMAX(sh.width(),d->width());
142 int h = QMAX(sh.height(),d->height()); 143 int h = QMAX(sh.height(),d->height());
143 if ( !nomax 144 if ( !nomax
144 && ( w > qApp->desktop()->width()*3/4 145 && ( w > qApp->desktop()->width()*3/4
145 || h > qApp->desktop()->height()*3/4 ) ) 146 || h > qApp->desktop()->height()*3/4 ) )
146 { 147 {
147 d->showMaximized(); 148 d->showMaximized();
148 } else { 149 } else {
149 d->resize(w,h); 150 d->resize(w,h);
150 d->show(); 151 d->show();
151 } 152 }
152} 153}
153 154
154inline int QPEApplication::execDialog( QDialog* d, bool nomax ) 155inline int QPEApplication::execDialog( QDialog* d, bool nomax )
155{ 156{
156 showDialog(d,nomax); 157 showDialog(d,nomax);
157 return d->exec(); 158 return d->exec();
158} 159}
159 160
160enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ 161enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */
161 162
163inline int TransToDeg ( Transformation t )
164{
165 int d = static_cast<int>( t );
166 return d * 90;
167}
168
169inline Transformation DegToTrans ( int d )
170{
171 Transformation t = static_cast<Transformation>( d / 90 );
172 return t;
173}
174
175/*
176 * Set current rotation of Opie, and rotation for newly started apps.
177 * Differs from setDefaultRotation in that 1) it rotates currently running apps,
178 * and 2) does not set deforient or save orientation to qpe.conf.
179 */
180
162inline void QPEApplication::setCurrentRotation( int r ) 181inline void QPEApplication::setCurrentRotation( int r )
163{ 182{
164 Transformation e; 183 Transformation e = DegToTrans( r );
165
166 switch (r) {
167 case 0:
168 e = Rot0;
169 break;
170 case 90:
171 e = Rot90;
172 break;
173 case 180:
174 e = Rot180;
175 break;
176 case 270:
177 e = Rot270;
178 break;
179 default:
180 return;
181 }
182 184
183 qDebug("calling qApp->desktop()->qwsDisplay()->setTransformation( %d )\n", e); 185 setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 );
184 qApp->desktop()->qwsDisplay()->setTransformation( e ); 186 qApp->desktop()->qwsDisplay()->setTransformation( e );
185} 187}
186 188
187 189
188#endif 190#endif