author | kergoth <kergoth> | 2003-03-27 05:07:03 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-03-27 05:07:03 (UTC) |
commit | 06bcd227c2806a35d77e9da4c1338d578680e3ed (patch) (unidiff) | |
tree | b652b5bd536641e07d840e03f13bcdcdf25e50e9 /library/qpeapplication.h | |
parent | cc8374957bcd95868d3dc52c854786239083cffc (diff) | |
download | opie-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.
-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 | |||
@@ -1,188 +1,190 @@ | |||
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 | ||
34 | class QCopChannel; | 35 | class QCopChannel; |
35 | class QPEApplicationData; | 36 | class QPEApplicationData; |
36 | class QWSEvent; | 37 | class QWSEvent; |
37 | class QWSKeyEvent; | 38 | class QWSKeyEvent; |
38 | 39 | ||
39 | 40 | ||
40 | class QPEApplication : public QApplication | 41 | class QPEApplication : public QApplication |
41 | { | 42 | { |
42 | Q_OBJECT | 43 | Q_OBJECT |
43 | public: | 44 | public: |
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; |
87 | 88 | ||
88 | bool keyboardGrabbed() const; | 89 | bool keyboardGrabbed() const; |
89 | 90 | ||
90 | int exec(); | 91 | int exec(); |
91 | 92 | ||
92 | signals: | 93 | signals: |
93 | void clientMoused(); | 94 | void clientMoused(); |
94 | void timeChanged(); | 95 | void timeChanged(); |
95 | void clockChanged( bool pm ); | 96 | void clockChanged( bool pm ); |
96 | void micChanged( bool muted ); | 97 | void micChanged( bool muted ); |
97 | void volumeChanged( bool muted ); | 98 | void volumeChanged( bool muted ); |
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 | ||
104 | private slots: | 105 | private 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 | ||
110 | protected: | 111 | protected: |
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 | ||
123 | private: | 124 | private: |
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 | ||
138 | inline void QPEApplication::showDialog( QDialog* d, bool nomax ) | 139 | inline 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 | ||
154 | inline int QPEApplication::execDialog( QDialog* d, bool nomax ) | 155 | inline 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 | ||
160 | enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ | 161 | enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ |
161 | 162 | ||
163 | inline int TransToDeg ( Transformation t ) | ||
164 | { | ||
165 | int d = static_cast<int>( t ); | ||
166 | return d * 90; | ||
167 | } | ||
168 | |||
169 | inline 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 | |||
162 | inline void QPEApplication::setCurrentRotation( int r ) | 181 | inline 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 |