| Qt API | Qtopia API | Qtopia Documentation |
This is the verbatim text of the qpeapplication.h include file. It is provided only for illustration; the copyright remains with Trolltech.
/**********************************************************************
** 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 <qtopia/qpeglobal.h>
#include <qapplication.h>
#include <qdialog.h>
#include <qtopia/timestring.h>
class QCopChannel;
class QPEApplicationData;
struct QWSEvent;
struct QWSKeyEvent;
class PluginLibraryManager;
class QTOPIA_EXPORT 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 grabKeyboard();
static void ungrabKeyboard();
enum StylusMode {
LeftOnly,
RightOnHold
// RightOnHoldLeftDelayed, etc.
};
static void setStylusOperation( QWidget*, StylusMode );
static StylusMode stylusOperation( QWidget* );
enum InputMethodHint {
Normal,
AlwaysOff,
AlwaysOn
};
enum screenSaverHint {
Disable = 0,
DisableLightOff = 1,
DisableSuspend = 2,
Enable = 100
};
static void setInputMethodHint( QWidget *, InputMethodHint );
static InputMethodHint inputMethodHint( QWidget * );
void showMainWidget( QWidget*, bool nomax=FALSE );
void showMainDocumentWidget( QWidget*, bool nomax=FALSE );
static void showDialog( QDialog*, bool nomax=FALSE ); // libqtopia
static int execDialog( QDialog*, bool nomax=FALSE ); // libqtopia
static void setTempScreenSaverMode(screenSaverHint); // libqtopia
static void setKeepRunning();
bool keepRunning() const;
bool keyboardGrabbed() const;
int exec();
#ifdef QTOPIA_INTERNAL_INITAPP
void initApp( int argc, char **argv );
#endif
signals:
void clientMoused();
void timeChanged();
void categoriesChanged();
void clockChanged( bool pm );
void volumeChanged( bool muted );
void appMessage( const QCString& msg, const QByteArray& data);
void weekChanged( bool startOnMonday );
void dateFormatChanged( DateFormat );
void flush();
void reload();
void linkChanged( const QString &linkFile );
private slots:
void systemMessage( const QCString &msg, const QByteArray &data );
void pidMessage( const QCString &msg, const QByteArray &data );
void removeSenderFromStylusDict();
void hideOrQuit();
void pluginLibraryManager(PluginLibraryManager**);
protected:
bool qwsEventFilter( QWSEvent * );
void internalSetStyle( const QString &style );
void prepareForTermination(bool willrestart);
virtual void restart();
virtual void shutdown();
bool eventFilter( QObject *, QEvent * );
void timerEvent( QTimerEvent * );
bool raiseAppropriateWindow();
virtual void tryQuit();
private:
void mapToDefaultAction( QWSKeyEvent *ke, int defKey );
void processQCopFile();
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel *sysChannel;
QCopChannel *pidChannel;
#endif
QPEApplicationData *d;
bool reserved_sh;
};
#ifdef Q_OS_WIN32
#include <stdlib.h>
QTOPIA_EXPORT int setenv(const char* name, const char* value, int overwrite);
QTOPIA_EXPORT void unsetenv(const char *name);
#endif
#endif
// Application main/plugin macro magic
#include <qmap.h>
#include <qtopia/applicationinterface.h>
#include <qmetaobject.h>
typedef QWidget* (*qpeAppCreateFunc)(QWidget*,const char *,Qt::WFlags);
typedef QMap<QString,qpeAppCreateFunc> QPEAppMap;
#define QTOPIA_ADD_APPLICATION(NAME,IMPLEMENTATION) \
static QWidget *create_ ## IMPLEMENTATION( QWidget *p, const char *n, Qt::WFlags f ) { \
return new IMPLEMENTATION(p,n,f); } \
QPEAppMap *qpeAppMap(); \
static QPEAppMap::Iterator dummy_ ## IMPLEMENTATION = qpeAppMap()->insert(NAME,create_ ## IMPLEMENTATION);
#ifdef QTOPIA_APP_INTERFACE
# define QTOPIA_MAIN \
struct ApplicationImpl : public ApplicationInterface { \
ApplicationImpl() : ref(0) {} \
QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { \
*iface = 0; \
if ( uuid == IID_QUnknown ) *iface = this; \
else if ( uuid == IID_QtopiaApplication ) *iface = this; \
else return QS_FALSE; \
(*iface)->addRef(); \
return QS_OK; \
} \
virtual QWidget *createMainWindow( const QString &appName, QWidget *parent, const char *name, Qt::WFlags f ) { \
if ( qpeAppMap()->contains(appName) ) \
return (*qpeAppMap())[appName](parent, name, f); \
return 0; \
} \
virtual QStringList applications() const { \
QStringList list; \
for ( QPEAppMap::Iterator it=qpeAppMap()->begin(); it!=qpeAppMap()->end(); ++it ) \
list += it.key(); \
return list; \
} \
Q_REFCOUNT \
private: \
ulong ref; \
}; \
QPEAppMap *qpeAppMap() { \
static QPEAppMap *am = 0; \
if ( !am ) am = new QPEAppMap(); \
return am; \
} \
Q_EXPORT_INTERFACE() { Q_CREATE_INSTANCE( ApplicationImpl ) }
#else
# define QTOPIA_MAIN \
QPEAppMap *qpeAppMap(); \
int main( int argc, char ** argv ) { \
QPEApplication a( argc, argv ); \
QWidget *mw = 0; \
\
QString executableName(argv[0]); \
executableName = executableName.right(executableName.length() \
- executableName.findRev('/') - 1); \
\
if ( qpeAppMap()->contains(executableName) ) \
mw = (*qpeAppMap())[executableName](0,0,0); \
else if ( qpeAppMap()->count() ) \
mw = qpeAppMap()->begin().data()(0,0,0); \
if ( mw ) { \
if ( mw->metaObject()->slotNames().contains("setDocument(const QString&)") ) \
a.showMainDocumentWidget( mw ); \
else \
a.showMainWidget( mw ); \
int rv = a.exec(); \
delete mw; \
return rv; \
} else { \
return -1; \
} \
} \
QPEAppMap *qpeAppMap() { \
static QPEAppMap *am = 0; \
if ( !am ) am = new QPEAppMap(); \
return am; \
} \
#endif
| Copyright © 2001-2002 Trolltech | Trademarks | Qtopia version 1.7.0
|