| Classes | Functions | DevRef | Qt API | Qtopia Documentation |

# qpeapplication.h

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 <qapplication.h>
    #if defined(_WS_QWS_) && !defined(Q_WS_QWS)
    #define Q_WS_QWS
    #endif
    #include "qpedecoration_qws.h"
    #include "timestring.h"

    class QCopChannel;
    class QPEApplicationData;
    class QWSEvent;
    class QWSKeyEvent;

    class 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 setKeepRunning();
        bool keepRunning() const;

        int exec();

    signals:
        void clientMoused();
        void timeChanged();
        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();

    private slots:
        void systemMessage( const QCString &msg, const QByteArray &data );
        void pidMessage( const QCString &msg, const QByteArray &data );
        void removeSenderFromStylusDict();
        void hideOrQuit();

    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 keyboardGrabbed() const;
        bool raiseAppropriateWindow();
        virtual void tryQuit();

    private:
        void mapToDefaultAction( QWSKeyEvent *ke, int defKey );

    #if defined(Q_WS_QWS) && !defined(QT_NO_COP)
        QCopChannel *sysChannel;
        QCopChannel *pidChannel;
    #endif
        QPEApplicationData *d;

        bool reserved_sh;

    };

    #endif