qs60mainappui.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
00004 ** All rights reserved.
00005 ** Contact: Nokia Corporation (qt-info@nokia.com)
00006 **
00007 ** This file is part of the Symbian application wrapper of the Qt Toolkit.
00008 **
00009 ** $QT_BEGIN_LICENSE:LGPL$
00010 ** Commercial Usage
00011 ** Licensees holding valid Qt Commercial licenses may use this file in
00012 ** accordance with the Qt Commercial License Agreement provided with the
00013 ** Software or, alternatively, in accordance with the terms contained in
00014 ** a written agreement between you and Nokia.
00015 **
00016 ** GNU Lesser General Public License Usage
00017 ** Alternatively, this file may be used under the terms of the GNU Lesser
00018 ** General Public License version 2.1 as published by the Free Software
00019 ** Foundation and appearing in the file LICENSE.LGPL included in the
00020 ** packaging of this file.  Please review the following information to
00021 ** ensure the GNU Lesser General Public License version 2.1 requirements
00022 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
00023 **
00024 ** In addition, as a special exception, Nokia gives you certain additional
00025 ** rights.  These rights are described in the Nokia Qt LGPL Exception
00026 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this module.
00027 **
00028 ** GNU General Public License Usage
00029 ** Alternatively, this file may be used under the terms of the GNU
00030 ** General Public License version 3.0 as published by the Free Software
00031 ** Foundation and appearing in the file LICENSE.GPL included in the
00032 ** packaging of this file.  Please review the following information to
00033 ** ensure the GNU General Public License version 3.0 requirements will be
00034 ** met: http://www.gnu.org/copyleft/gpl.html.
00035 **
00036 ** If you have questions regarding the use of this file, please contact
00037 ** Nokia at qt-info@nokia.com.
00038 ** $QT_END_LICENSE$
00039 **
00040 ****************************************************************************/
00041 
00042 #ifndef QS60MAINAPPUI_H
00043 #define QS60MAINAPPUI_H
00044 
00045 #include <QtCore/qglobal.h>
00046 
00047 #ifdef Q_OS_SYMBIAN
00048 
00049 #ifdef Q_WS_S60
00050 #include <aknappui.h>
00051 typedef CAknAppUi QS60MainAppUiBase;
00052 #else
00053 #include <eikappui.h>
00054 // these stub classes simulate the structure of CAknAppUi, to help binary compatibility between Qt configured with and without S60/Avkon
00055 class QS60StubAknAppUiBase : public CEikAppUi
00056 {
00057 private:
00058     int qS60StubAknAppUiBaseSpace[4];
00059 };
00060 
00061 class QS60StubMEikStatusPaneObserver
00062 {
00063 public:
00064     virtual void HandleStatusPaneSizeChange() = 0;
00065 };
00066 
00067 class QS60StubMAknTouchPaneObserver
00068 {
00069 public:
00070     virtual void HandleTouchPaneSizeChange() = 0;
00071 };
00072 
00073 class QS60StubAknAppUi : public QS60StubAknAppUiBase, QS60StubMEikStatusPaneObserver,
00074             public MCoeViewDeactivationObserver,
00075             public QS60StubMAknTouchPaneObserver
00076 {
00077 public: // MCoeViewDeactivationObserver
00078     virtual void HandleViewDeactivation(const TVwsViewId&, const TVwsViewId &);
00079 
00080 public: // from MAknTouchPaneObserver
00081     virtual void HandleTouchPaneSizeChange();
00082 
00083 protected: // from MEikStatusPaneObserver
00084     virtual void HandleStatusPaneSizeChange();
00085 
00086 protected: // from CAknAppUi
00087     virtual void Reserved_MtsmPosition();
00088     virtual void Reserved_MtsmObject();
00089 
00090 private:
00091     int qS60StubAknAppUiSpace[4];
00092 };
00093 
00094 typedef QS60StubAknAppUi QS60MainAppUiBase;
00095 #endif
00096 
00097 QT_BEGIN_HEADER
00098 
00099 QT_BEGIN_NAMESPACE
00100 
00101 QT_MODULE(Gui)
00102 
00103 class Q_GUI_EXPORT QS60MainAppUi : public QS60MainAppUiBase
00104 {
00105 public:
00106     QS60MainAppUi();
00107     // The virtuals are for qdoc.
00108     virtual ~QS60MainAppUi();
00109 
00110     virtual void ConstructL();
00111 
00112     virtual void RestoreMenuL(CCoeControl *menuWindow,TInt resourceId,TMenuType menuType);
00113     virtual void DynInitMenuBarL(TInt resourceId, CEikMenuBar *menuBar);
00114     virtual void DynInitMenuPaneL(TInt resourceId, CEikMenuPane *menuPane);
00115 
00116     virtual void HandleCommandL( TInt command );
00117 
00118     virtual void HandleResourceChangeL(TInt type);
00119 
00120     virtual void HandleStatusPaneSizeChange();
00121 
00122 protected:
00123     virtual void HandleWsEventL(const TWsEvent &event, CCoeControl *destination);
00124 
00125 public:
00126     virtual void Exit();
00127     virtual void SetFadedL(TBool aFaded);
00128     virtual TRect ApplicationRect() const;
00129     virtual void ProcessCommandL(TInt aCommand);
00130     virtual TErrorHandlerResponse HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText);
00131     virtual void HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId);
00132     virtual void PrepareToExit();
00133     virtual void HandleTouchPaneSizeChange();
00134 
00135 protected:
00136     virtual void HandleScreenDeviceChangedL();
00137     virtual void HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent);
00138     virtual TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
00139     virtual void HandleSystemEventL(const TWsEvent &aEvent);
00140     virtual void Reserved_MtsmPosition();
00141     virtual void Reserved_MtsmObject();
00142     virtual void HandleForegroundEventL(TBool aForeground);
00143 };
00144 
00145 QT_END_NAMESPACE
00146 
00147 QT_END_HEADER
00148 
00149 #endif // Q_OS_SYMBIAN
00150 
00151 #endif // QS60MAINAPPUI_H