phonebookui/Phonebook/App/inc/CPbkAppUi.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/App/inc/CPbkAppUi.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*       Phonebook application UI class. 
+*
+*/
+
+
+#ifndef __CPbkAppUi_H__
+#define __CPbkAppUi_H__
+
+
+//  INCLUDES
+#include <CPbkAppUiBase.h>
+#include <coemain.h>
+#include "RPbkViewResourceFile.h"
+#include <MPbkAppUiExtension.h>
+
+
+//  FORWARD DECLARATIONS
+class CAknNavigationControlContainer;
+class CPbkDocument;
+class CPbkApplication;
+class CPbkCompressUiImpl;
+class CEikImage;
+class MPbkCommandHandler;
+class CPbkFFSCheck;
+class CPbkAppGlobals;
+class CBCardEngine;
+class CPbkViewNavigator;
+class MPbkAppUiExtension;
+class MPbkCommand;
+
+
+//  CLASS DECLARATION 
+
+/**
+ * Phonebook application UI class. 
+ * An object of this class is created by the Symbian OS
+ * framework by a call to CPbkDocument::CreateAppUiL(). 
+ * The application UI object creates and owns the application's
+ * views and handles system commands selected from the menu.
+ */
+class CPbkAppUi : 
+        public CPbkAppUiBase,
+        public MCoeForegroundObserver
+    {
+    public:  // Constants and types
+        static const TUid KPbkNamesListViewUid;
+        static const TUid KPbkGroupsListViewUid;
+        static const TUid KPbkGroupMembersListViewUid;
+        static const TUid KPbkContactInfoViewUid;
+        static const TUid KPbkBusinessCardViewUid;
+        static const TUid KPbkPhotoViewUid;
+        static const TUid KPbkPersonalInfoViewUid;
+
+    public:  // Constructors and destructor
+        /**
+         * Constructor.
+         */
+        CPbkAppUi();
+
+        /**
+         * Destructor.
+         */
+        ~CPbkAppUi();
+
+    public:  // New functions
+        /**
+         * Returns the Phonebook document object.
+         */
+        CPbkDocument* PbkDocument() const;
+
+        /**
+         * Returns the Phonebook application object.
+         */
+        CPbkApplication* PbkApplication() const;
+
+        /**
+         * Gets reference to this app's default navi pane control.
+         */
+        CAknNavigationControlContainer* NaviPane();
+
+        /**
+         * Call to exit Phonebook in correct way.
+         */
+        void ExitL();
+        
+        /**
+         * Call to force exit in Phonebook.
+         */
+        void Exit();
+
+        /**
+         * Returns ETrue if this application is running on foreground, EFalse otherwise.
+         * Running on foreground means that the user has not pressed exit.
+         */
+        TBool IsRunningForeground() const;       
+                          
+        /**
+         * Sends application to the background
+         */
+        void SendAppToBackgroundL();
+
+    public:  // from CPbkAppUiBase
+        void ActivatePhonebookViewL
+            (TUid aViewId, const CPbkViewState* aViewState=NULL);
+        void ActivatePreviousViewL(const CPbkViewState* aViewState = NULL);
+        CViewActivationTransaction* HandleViewActivationLC
+            (const TUid& aViewId, const TVwsViewId& aPrevViewId,
+            const TDesC* aTitlePaneText, 
+            const CEikImage* aContextPanePicture,
+            TUint aFlags=EUpdateAll);
+		CPbkAppGlobalsBase* AppGlobalsL();
+        void FFSClCheckL(const MPbkCommandHandler& aCommandHandler,
+			TInt aBytesToWrite = 0);
+
+    private: // from CAknViewAppUi
+	    void HandleCommandL(TInt aCommand);
+	    void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
+        void ConstructL();
+	    TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+	    void HandleForegroundEventL(TBool aForeground);
+		void HandleResourceChangeL(TInt aType);
+        void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination);
+
+    private:  // from MPbkKeyEventHandler
+        TBool PbkProcessKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+
+    private: // from MCoeForegroundObserver
+    	void HandleGainingForeground();
+    	void HandleLosingForeground();
+
+    private: // Command handlers (use "Cmd" prefix)
+        void CmdExitL();
+
+    private: // Implementation
+        void CreateEngineL();
+        void ReadViewGraphL();
+        void CreateViewsL();
+        TBool IsPhonebookView(const TVwsViewId& aViewId) const;
+        class CViewActivationTransactionImpl;
+        friend class CViewActivationTransactionImpl;
+
+    private: // data
+        /// Ref: this app's default navi pane
+        CAknNavigationControlContainer* iNaviPane;
+        /// Own: Phonebook view dll resource file
+        RPbkViewResourceFile iViewResourceFile;
+        /// Own: View navigation graph
+        CDigViewGraph* iViewGraph;
+        /// Own: view navigator
+        CPbkViewNavigator* iViewNavigator;
+        /// Own: Phonebook compress UI
+        CPbkCompressUiImpl* iCompressUi;
+        /// Own: FFS space checker
+        CPbkFFSCheck* iFFSCheck;
+        /// Own: this is the only instance of this class
+        CPbkAppGlobals* iAppGlobals;
+        /// Own: appui extension
+        MPbkAppUiExtension* iAppUiExtension;
+        /// Own: Application running on foreground indicator        
+        TBool iIsRunningForeground;
+        /// Own: End key exit flag
+        TBool iEndKeyExit;
+        
+    };
+
+
+#endif  // __CPbkAppUi_H__
+            
+
+// End of File