summaryrefslogtreecommitdiff
path: root/library/qpeapplication.h
Unidiff
Diffstat (limited to 'library/qpeapplication.h') (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