summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/library/qpeapplication.h b/library/qpeapplication.h
index a884046..c0f0bfc 100644
--- a/library/qpeapplication.h
+++ b/library/qpeapplication.h
@@ -1,261 +1,261 @@
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#include <stdlib.h> // for setenv()
24 24
25#include <qglobal.h> 25#include <qglobal.h>
26#include <qapplication.h> 26#include <qapplication.h>
27#include <qdialog.h> 27#include <qdialog.h>
28#include <qwsdisplay_qws.h> 28#include <qwsdisplay_qws.h>
29#if defined(_WS_QWS_) && !defined(Q_WS_QWS) 29#if defined(_WS_QWS_) && !defined(Q_WS_QWS)
30#define Q_WS_QWS 30#define Q_WS_QWS
31#endif 31#endif
32#include "qpedecoration_qws.h" 32#include "qpedecoration_qws.h"
33#include "timestring.h" 33#include "timestring.h"
34 34
35class QCopChannel; 35class QCopChannel;
36class QPEApplicationData; 36class QPEApplicationData;
37class QWSEvent; 37class QWSEvent;
38class QWSKeyEvent; 38class QWSKeyEvent;
39 39
40/** 40/**
41 \brief The QPEApplication class implements various system services 41 \brief The QPEApplication class implements various system services
42 that are available to all Qtopia applications. 42 that are available to all Qtopia applications.
43 43
44 Simply by using QPEApplication instead of QApplication, a standard Qt 44 Simply by using QPEApplication instead of QApplication, a standard Qt
45 application becomes a Qtopia application. It automatically follows 45 application becomes a Qtopia application. It automatically follows
46 style changes, quits and raises, and in the 46 style changes, quits and raises, and in the
47 case of \link docwidget.html document-oriented\endlink applications, 47 case of \link docwidget.html document-oriented\endlink applications,
48 changes the currently displayed document in response to the environment. 48 changes the currently displayed document in response to the environment.
49 49
50 To create a \link docwidget.html document-oriented\endlink 50 To create a \link docwidget.html document-oriented\endlink
51 application use showMainDocumentWidget(); to create a 51 application use showMainDocumentWidget(); to create a
52 non-document-oriented application use showMainWidget(). The 52 non-document-oriented application use showMainWidget(). The
53 keepRunning() function indicates whether the application will 53 keepRunning() function indicates whether the application will
54 continue running after it's processed the last \link qcop.html 54 continue running after it's processed the last \link qcop.html
55 QCop\endlink message. This can be changed using setKeepRunning(). 55 QCop\endlink message. This can be changed using setKeepRunning().
56 56
57 A variety of signals are emitted when certain events occur, for 57 A variety of signals are emitted when certain events occur, for
58 example, timeChanged(), clockChanged(), weekChanged(), 58 example, timeChanged(), clockChanged(), weekChanged(),
59 dateFormatChanged() and volumeChanged(). If the application receives 59 dateFormatChanged() and volumeChanged(). If the application receives
60 a \link qcop.html QCop\endlink message on the application's 60 a \link qcop.html QCop\endlink message on the application's
61 QPE/Application/\e{appname} channel, the appMessage() signal is 61 QPE/Application/\e{appname} channel, the appMessage() signal is
62 emitted. There are also flush() and reload() signals, which 62 emitted. There are also flush() and reload() signals, which
63 are emitted when synching begins and ends respectively - upon these 63 are emitted when synching begins and ends respectively - upon these
64 signals, the application should save and reload any data 64 signals, the application should save and reload any data
65 files that are involved in synching. Most of these signals will initially 65 files that are involved in synching. Most of these signals will initially
66 be received and unfiltered through the appMessage() signal. 66 be received and unfiltered through the appMessage() signal.
67 67
68 This class also provides a set of useful static functions. The 68 This class also provides a set of useful static functions. The
69 qpeDir() and documentDir() functions return the respective paths. 69 qpeDir() and documentDir() functions return the respective paths.
70 The grabKeyboard() and ungrabKeyboard() functions are used to 70 The grabKeyboard() and ungrabKeyboard() functions are used to
71 control whether the application takes control of the device's 71 control whether the application takes control of the device's
72 physical buttons (e.g. application launch keys). The stylus' mode of 72 physical buttons (e.g. application launch keys). The stylus' mode of
73 operation is set with setStylusOperation() and retrieved with 73 operation is set with setStylusOperation() and retrieved with
74 stylusOperation(). There are also setInputMethodHint() and 74 stylusOperation(). There are also setInputMethodHint() and
75 inputMethodHint() functions. 75 inputMethodHint() functions.
76 76
77 \ingroup qtopiaemb 77 \ingroup qtopiaemb
78*/ 78*/
79class QPEApplication : public QApplication 79class QPEApplication : public QApplication
80{ 80{
81 Q_OBJECT 81 Q_OBJECT
82public: 82public:
83 QPEApplication( int& argc, char **argv, Type=GuiClient ); 83 QPEApplication( int& argc, char **argv, Type=GuiClient );
84 ~QPEApplication(); 84 ~QPEApplication();
85 85
86 static QString qpeDir(); 86 static QString qpeDir();
87 static QString documentDir(); 87 static QString documentDir();
88 void applyStyle(); 88 void applyStyle();
89 void reset(); 89 void reset();
90 static int defaultRotation(); 90 static int defaultRotation();
91 static void setDefaultRotation(int r); 91 static void setDefaultRotation(int r);
92 static void setCurrentRotation(int r); 92 static void setCurrentRotation(int r);
93 static void setCurrentMode(int x, int y, int depth ); 93 static void setCurrentMode(int x, int y, int depth );
94 static void grabKeyboard(); 94 static void grabKeyboard();
95 static void ungrabKeyboard(); 95 static void ungrabKeyboard();
96 96
97 enum StylusMode { 97 enum StylusMode {
98 LeftOnly, 98 LeftOnly,
99 RightOnHold 99 RightOnHold
100 // RightOnHoldLeftDelayed, etc. 100 // RightOnHoldLeftDelayed, etc.
101 }; 101 };
102 static void setStylusOperation( QWidget*, StylusMode ); 102 static void setStylusOperation( QWidget*, StylusMode );
103 static StylusMode stylusOperation( QWidget* ); 103 static StylusMode stylusOperation( QWidget* );
104 104
105 enum InputMethodHint { 105 enum InputMethodHint {
106 Normal, 106 Normal,
107 AlwaysOff, 107 AlwaysOff,
108 AlwaysOn 108 AlwaysOn
109 }; 109 };
110 110
111 enum screenSaverHint { 111 enum screenSaverHint {
112 Disable = 0, 112 Disable = 0,
113 DisableLightOff = 1, 113 DisableLightOff = 1,
114 DisableSuspend = 2, 114 DisableSuspend = 2,
115 Enable = 100 115 Enable = 100
116 }; 116 };
117 117
118 static void setInputMethodHint( QWidget *, InputMethodHint ); 118 static void setInputMethodHint( QWidget *, InputMethodHint );
119 static InputMethodHint inputMethodHint( QWidget * ); 119 static InputMethodHint inputMethodHint( QWidget * );
120 120
121 void showMainWidget( QWidget*, bool nomax=FALSE ); 121 void showMainWidget( QWidget*, bool nomax=FALSE );
122 void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); 122 void showMainDocumentWidget( QWidget*, bool nomax=FALSE );
123 static void showDialog( QDialog*, bool nomax=FALSE ); 123 static void showDialog( QDialog*, bool nomax=FALSE );
124 static int execDialog( QDialog*, bool nomax=FALSE ); 124 static int execDialog( QDialog*, bool nomax=FALSE );
125 static int showWidget( QWidget*, bool nomax=FALSE ); 125 static void showWidget( QWidget*, bool nomax=FALSE );
126 /* Merge setTempScreenSaverMode */ 126 /* Merge setTempScreenSaverMode */
127#ifdef QTOPIA_INTERNAL_INITAPP 127#ifdef QTOPIA_INTERNAL_INITAPP
128 void initApp( int argv, char **argv ); 128 void initApp( int argv, char **argv );
129#endif 129#endif
130 130
131 static void setKeepRunning(); 131 static void setKeepRunning();
132 bool keepRunning() const; 132 bool keepRunning() const;
133 133
134 bool keyboardGrabbed() const; 134 bool keyboardGrabbed() const;
135 135
136 int exec(); 136 int exec();
137 137
138signals: 138signals:
139 void clientMoused(); 139 void clientMoused();
140 void timeChanged(); 140 void timeChanged();
141 void clockChanged( bool pm ); 141 void clockChanged( bool pm );
142 void micChanged( bool muted ); 142 void micChanged( bool muted );
143 void volumeChanged( bool muted ); 143 void volumeChanged( bool muted );
144 void appMessage( const QCString& msg, const QByteArray& data); 144 void appMessage( const QCString& msg, const QByteArray& data);
145 void weekChanged( bool startOnMonday ); 145 void weekChanged( bool startOnMonday );
146 void dateFormatChanged( DateFormat ); 146 void dateFormatChanged( DateFormat );
147 void flush(); 147 void flush();
148 void reload(); 148 void reload();
149 /* linkChanged signal */ 149 /* linkChanged signal */
150 150
151private slots: 151private slots:
152 void systemMessage( const QCString &msg, const QByteArray &data ); 152 void systemMessage( const QCString &msg, const QByteArray &data );
153 void pidMessage( const QCString &msg, const QByteArray &data ); 153 void pidMessage( const QCString &msg, const QByteArray &data );
154 void removeSenderFromStylusDict(); 154 void removeSenderFromStylusDict();
155 void hideOrQuit(); 155 void hideOrQuit();
156 156
157protected: 157protected:
158 bool qwsEventFilter( QWSEvent * ); 158 bool qwsEventFilter( QWSEvent * );
159 void internalSetStyle( const QString &style ); 159 void internalSetStyle( const QString &style );
160 void prepareForTermination(bool willrestart); 160 void prepareForTermination(bool willrestart);
161 virtual void restart(); 161 virtual void restart();
162 virtual void shutdown(); 162 virtual void shutdown();
163 bool eventFilter( QObject *, QEvent * ); 163 bool eventFilter( QObject *, QEvent * );
164 void timerEvent( QTimerEvent * ); 164 void timerEvent( QTimerEvent * );
165 bool raiseAppropriateWindow(); 165 bool raiseAppropriateWindow();
166 virtual void tryQuit(); 166 virtual void tryQuit();
167#if QT_VERSION > 233 167#if QT_VERSION > 233
168 virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!) 168 virtual void polish ( QWidget * ); // this is actually implemented in qt_override.cpp (!)
169#endif 169#endif
170private: 170private:
171#ifndef QT_NO_TRANSLATION 171#ifndef QT_NO_TRANSLATION
172 void installTranslation( const QString& baseName ); 172 void installTranslation( const QString& baseName );
173#endif 173#endif
174 void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); 174 void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
175 void processQCopFile(); 175 void processQCopFile();
176 176
177#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 177#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
178 QCopChannel *sysChannel; 178 QCopChannel *sysChannel;
179 QCopChannel *pidChannel; 179 QCopChannel *pidChannel;
180#endif 180#endif
181 QPEApplicationData *d; 181 QPEApplicationData *d;
182 182
183 bool reserved_sh; 183 bool reserved_sh;
184 184
185 185
186 186
187}; 187};
188 188
189inline void QPEApplication::showDialog( QDialog* d, bool nomax ) 189inline void QPEApplication::showDialog( QDialog* d, bool nomax )
190{ 190{
191 QSize sh = d->sizeHint(); 191 QSize sh = d->sizeHint();
192 int w = QMAX(sh.width(),d->width()); 192 int w = QMAX(sh.width(),d->width());
193 int h = QMAX(sh.height(),d->height()); 193 int h = QMAX(sh.height(),d->height());
194 if ( !nomax 194 if ( !nomax
195 && ( w > qApp->desktop()->width()*3/4 195 && ( w > qApp->desktop()->width()*3/4
196 || h > qApp->desktop()->height()*3/4 ) ) 196 || h > qApp->desktop()->height()*3/4 ) )
197 { 197 {
198 d->showMaximized(); 198 d->showMaximized();
199 } else { 199 } else {
200 d->resize(w,h); 200 d->resize(w,h);
201 d->show(); 201 d->show();
202 } 202 }
203} 203}
204 204
205inline int QPEApplication::execDialog( QDialog* d, bool nomax ) 205inline int QPEApplication::execDialog( QDialog* d, bool nomax )
206{ 206{
207 showDialog(d,nomax); 207 showDialog(d,nomax);
208 return d->exec(); 208 return d->exec();
209} 209}
210 210
211inline int QPEApplication::showWidget( QWidget* wg, bool nomax ) 211inline void QPEApplication::showWidget( QWidget* wg, bool nomax )
212{ 212{
213 QSize sh = wg->sizeHint(); 213 QSize sh = wg->sizeHint();
214 int w = QMAX(sh.width(),wg->width()); 214 int w = QMAX(sh.width(),wg->width());
215 int h = QMAX(sh.height(),wg->height()); 215 int h = QMAX(sh.height(),wg->height());
216 if ( !nomax 216 if ( !nomax
217 && ( w > qApp->desktop()->width()*3/4 217 && ( w > qApp->desktop()->width()*3/4
218 || h > qApp->desktop()->height()*3/4 ) ) 218 || h > qApp->desktop()->height()*3/4 ) )
219 { 219 {
220 wg->showMaximized(); 220 wg->showMaximized();
221 } else { 221 } else {
222 wg->resize(w,h); 222 wg->resize(w,h);
223 wg->show(); 223 wg->show();
224 } 224 }
225} 225}
226 226
227enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ 227enum Transformation { Rot0, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */
228 228
229inline int TransToDeg ( Transformation t ) 229inline int TransToDeg ( Transformation t )
230{ 230{
231 int d = static_cast<int>( t ); 231 int d = static_cast<int>( t );
232 return d * 90; 232 return d * 90;
233} 233}
234 234
235inline Transformation DegToTrans ( int d ) 235inline Transformation DegToTrans ( int d )
236{ 236{
237 Transformation t = static_cast<Transformation>( d / 90 ); 237 Transformation t = static_cast<Transformation>( d / 90 );
238 return t; 238 return t;
239} 239}
240 240
241/* 241/*
242 * Set current rotation of Opie, and rotation for newly started apps. 242 * Set current rotation of Opie, and rotation for newly started apps.
243 * Differs from setDefaultRotation in that 1) it rotates currently running apps, 243 * Differs from setDefaultRotation in that 1) it rotates currently running apps,
244 * and 2) does not set deforient or save orientation to qpe.conf. 244 * and 2) does not set deforient or save orientation to qpe.conf.
245 */ 245 */
246 246
247inline void QPEApplication::setCurrentRotation( int r ) 247inline void QPEApplication::setCurrentRotation( int r )
248{ 248{
249 // setTransformation has been introduced in Qt/Embedded 2.3.4 snapshots 249 // setTransformation has been introduced in Qt/Embedded 2.3.4 snapshots
250 // for compatibility with the SharpROM use fallback to setDefaultTransformation() 250 // for compatibility with the SharpROM use fallback to setDefaultTransformation()
251#if QT_VERSION > 233 251#if QT_VERSION > 233
252 Transformation e = DegToTrans( r ); 252 Transformation e = DegToTrans( r );
253 ::setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 ); 253 ::setenv( "QWS_DISPLAY", QString( "Transformed:Rot%1:0" ).arg( r ).latin1(), 1 );
254 qApp->desktop()->qwsDisplay()->setTransformation( e ); 254 qApp->desktop()->qwsDisplay()->setTransformation( e );
255#else 255#else
256 setDefaultRotation( r ); 256 setDefaultRotation( r );
257#endif 257#endif
258} 258}
259 259
260 260
261#endif 261#endif