S60 3rd Edition SDK for Symbian OS
Example Applications Guide

LandmarksAppUi.h

00001 /*
00002 * ==============================================================================
00003 *  Name        : LandmarksAppUi.h
00004 *  Part of     : Landmark Reference Application
00005 *  Interface   : -
00006 *  Description : See class description below
00007 *  Version     : 1.0
00008 *
00009 *  Copyright (c) 2004-2006 Nokia Corporation.
00010 *  This material, including documentation and any related 
00011 *  computer programs, is protected by copyright controlled by 
00012 *  Nokia Corporation.
00013 * ==============================================================================
00014 */
00015 
00016 #ifndef __LANDMARKS_APPUI_H__
00017 #define __LANDMARKS_APPUI_H__
00018 
00019 // INCLUDES
00020 #include "LandmarksOperationObserver.h"
00021 #include <aknviewappui.h>
00022 #include <aknprogressdialog.h>
00023 #include <AknTabObserver.h> 
00024 
00025 // FORWARD DECLARATIONS
00026 class CLandmarksApplicationEngine;
00027 class CLandmarksCategoriesView;
00028 class CAknNavigationDecorator;
00029 class CLandmarksListView;
00030 class CAknProgressDialog;
00031 
00032 // CLASS DECLARATION
00033 
00034 /**
00035 *  An instance of class CLandmarksAppUi is the UserInterface part of the Eikon
00036 *  application framework for the Landmarks reference application
00037 */
00038 class CLandmarksAppUi : 
00039     public CAknViewAppUi, 
00040     public MLandmarksOperationObserver, 
00041     public MAknTabObserver,
00042     public MProgressDialogCallback
00043     {
00044     public: // Constructors and destructor
00045 
00046         /**
00047         * C++ default constructor. This needs to be public due to the way 
00048         * the framework constructs the AppUi.
00049         */
00050         CLandmarksAppUi();
00051 
00052         /**
00053         * Symbian 2nd phase constructor. This needs to be public due to the way 
00054         * the framework constructs the AppUi.
00055         */
00056         void ConstructL();
00057 
00058         /**
00059         * Destructor.
00060         */
00061         ~CLandmarksAppUi();
00062 
00063     public: // from CEikAppUi
00064 
00065         /** 
00066         * HandleCommandL handles user menu selections.
00067         *
00068         * @param aCommand the enumerated code for the option selected
00069         */
00070         void HandleCommandL(TInt aCommand);
00071         
00072     public: // from CCoeAppUi
00073 
00074         /**
00075         * HandleKeyEventL handles key events.
00076         *
00077         * @param aKeyEvent Event to handle.
00078         * @param aType Type of the key event.
00079         * @return Reponse code (EKeyWasConsumed, EKeyWasNotConsumed).
00080         */
00081         TKeyResponse HandleKeyEventL(
00082             const TKeyEvent& aKeyEvent,
00083             TEventCode aType);
00084 
00085     public: // from MLandmarksOperationObserver
00086 
00087         /**
00088         * NotifyOperationProgressL notifies the progress and status of an
00089         * asynchronous operation.
00090         *  
00091         * @param aOperation the type of operation that is reported.
00092         * @param aProgress the progress of the operation.
00093         * @param aErrorCode the status of the operation.
00094         */
00095         void NotifyOperationProgressL(
00096             TOperation aOperation, 
00097             TInt aProgress, 
00098             TInt aErrorCode);
00099 
00100     public: // from MAknTabObserver
00101         
00102         /** Called by NaviDecorator when tab is changed
00103         * @param aIndex new tab seleected
00104         */
00105         void TabChangedL(TInt aIndex);
00106 
00107     public: // from MProgressDialogCallback
00108 
00109         /**
00110         * Called when the dialog has been dismissed.
00111         * 
00112         * @param aButtonId the button that was pressed to dismiss the dialog.
00113         */
00114         void DialogDismissedL(TInt aButtonId);
00115 
00116     private:
00117 
00118         /**
00119         * Performs the construction phase of this object that is dependent 
00120         * that the application engine is initialized.
00121         */
00122         void PostConstructL();
00123 
00124         /**
00125         * Launches a progress dialog displayed when the default landmark 
00126         * database is initialized.
00127         */
00128         void LaunchProgressDialogL();
00129 
00130     private: // Data
00131 
00132         //! decorates the navi pane (with navigation arrows etc)
00133         CAknNavigationDecorator* iNaviDecorator;
00134 
00135         //! the application engine
00136         CLandmarksApplicationEngine* iEngine;
00137 
00138         /** displays a progress bar when initializing the 
00139             default landmark database. */
00140         CAknProgressDialog* iProgressDialog;
00141 
00142         /** indicates if exit has been pressed before the 
00143             progressDialog is fully deleted */
00144         TBool iDelayedExit;
00145 
00146     };
00147 
00148 #endif // __LANDMARKS_APPUI_H__
00149 
00150 // End of File
00151 

© Nokia 2006

Back to top