imstutils/imconversationview/imcvuiapp/inc/cimcvappui.h
branchRCL_3
changeset 23 9a48e301e94b
parent 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imstutils/imconversationview/imcvuiapp/inc/cimcvappui.h	Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,314 @@
+/*
+* Copyright (c) 2007-2008 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:  application enviroment
+*
+*/
+
+#ifndef CIMCVAPPUI_H
+#define CIMCVAPPUI_H
+
+#include <aknappui.h>
+#include <aknViewAppUi.h>
+#include "mimcvappui.h"
+// Forward reference
+class CIMCVAppMessageExtensionsHandler;
+class CIMCVAppLayoutInfo;
+class MIMCVAppLayoutInfo;
+class MIMCVEngineFactory;
+class CIMCVAppView;
+class CIMCVAppStatusPaneHandler;
+class MIMCVAppLayoutChangeObserver;
+class MIMCVAppResourceChangeObserver;
+class TAknLayoutScalableParameterLimits;
+class TAknWindowComponentLayout;
+class MIMCVUiAppSkinVariant;
+class CIMCVAppInputAbsorber;
+class CIMCVEngine;
+
+
+/*! 
+  @class CIMCVAppUi
+  
+  @discussion An instance of class CIMCVAppUi is the UserInterface part of the AVKON
+  application framework for the conversationview example application
+  */
+class CIMCVAppUi :public CAknViewAppUi,
+				  public MIMCVAppUi
+		    {
+		public:
+		/*!
+		  @function ConstructL
+		  
+		  @discussion Perform the second phase construction of a CIMCVAppUi object
+		  this needs to be public due to the way the framework constructs the AppUi 
+		  */
+		    void ConstructL();
+
+		/*!
+		  @function CIMCVAppUi
+		  
+		  @discussion Perform the first phase of two phase construction.
+		  This needs to be public due to the way the framework constructs the AppUi 
+		  */
+		    CIMCVAppUi();
+
+
+		/*!
+		  @function ~CIMCVAppUi
+		  
+		  @discussion Destroy the object and release all memory objects
+		  */
+		    ~CIMCVAppUi();
+		 
+		 /**
+		* return ETrue if deletion is happening
+		*/ 
+		 TBool IsUnderDestruction() ;
+		   
+		/**
+		* return the mbn full resource path
+		*/ 
+		TDes& MbmFullPath();
+		/**
+		* StorePreviousViewDetails store the previce application and view details 
+		* @param aPreviousApplicationUid application uid
+		* @param aPreviousViewUid ,previous active view uid
+		*/
+		void StorePreviousViewDetails(TInt aPreviousApplicationUid,TInt aPreviousViewUid);
+		
+		/**
+		* switch application to background 	
+		*/
+		void SendMeToBackground();
+		
+		
+		/**
+		* switch application to foreground 
+		* @param aAppUid application uid
+		*/
+		void BringToForeground( TUid aAppUid );
+		
+	    /**
+         * constructs mif and rsc file paths based on branding, else
+         * initializes with default s60 path.
+         * @since S60 5.0
+         */  
+		void ConstructBrandL( );
+		
+		/**
+         * reconstructs the mif and rsc's after the uninstallation of the brand.
+         * initializes with default s60 path.
+         * @since S60 5.0
+         */
+		void ReInitializeBrandL();
+		
+		/**
+		 * Releases branding access.
+		 */
+		void ReleaseBrandAccess();        
+       
+		/**
+		 * SkinVariantL
+		 */
+		
+		MIMCVUiAppSkinVariant*	SkinVariantL();
+		
+		/**
+		 * is the application in Foreground
+		 * @param Return True - if Application in Foreground else returns False
+		 */
+		TBool IsAppInForeground();
+		
+		/*
+		 * return active engine isntance
+		 */
+		CIMCVEngine& ActiveEngine() const ;
+		
+	public: 		    
+	
+			 /**
+		 * Adds layout change observer
+		 * @param aObserver Pointer to observer
+		 */
+         void AddLayoutChangeObserver( MIMCVAppLayoutChangeObserver* aObserver ) ;
+
+		/**
+		 * Removes layout observer
+		 * @param aObserver Pointer to removed observer
+		 */
+         void RemoveLayoutChangeObserver( MIMCVAppLayoutChangeObserver* aObserver ) ;
+        
+		/**
+		 * Adds resource observer
+		 * @param aObserver Pointer to observer
+		 */
+        void AddResourceChangeObserver( MIMCVAppResourceChangeObserver* aObserver ) ;
+
+		/**
+		 * Removes resource observer
+		 * @param aObserver Pointer to removed observer
+		 */
+         void RemoveResourceChangeObserver( MIMCVAppResourceChangeObserver* aObserver ) ;
+        
+	public: // from CAknAppUi
+			/*
+			@function HandleCommandL
+			@discussion Handle user menu selections
+			@param aCommand the enumerated code for the option selected
+			*/
+			void HandleCommandL(TInt aCommand);
+			
+			/*
+			@function HandleWsEventL
+			@param aEvent, event occured Handle user menu selections
+			@param aDestination , to delivered
+			*/
+			void HandleWsEventL( const TWsEvent& aEvent,CCoeControl* aDestination );
+
+			/*
+			@function LayoutInfo
+			@return  pointer to layout info
+			*/
+			MIMCVAppLayoutInfo* LayoutInfo();
+			/**
+			* From CEikAppui, Handles a change to the application's resources
+			* which are shared across the environment
+			* @param aType The type of resources that have changed
+			*/
+			void HandleResourceChangeL( TInt aType );
+			
+			/**
+			* Proceses message from external application
+			* Used from Phonebooks external tab (Buddylist) to start instant
+			* messaging or from xmpp server to show new messages
+			*
+			* @since S60 v3.0
+			* @param aUid       Uid somethig. Needed to get this function called
+			* @param aParamData Data for processing
+			*/
+			void ProcessMessageL( TUid aUid, const TDesC8& aParamData );
+  			/**
+			* @since S60 v3.0
+			* from CAknViewAppUi
+			* @param aForeground   , ETrue if in Forground else Background
+			*/
+			 void HandleForegroundEventL( TBool aForeground );
+    
+	
+    public : // new functions
+    			
+			
+			/**
+			* shut down and exit the application 
+			*/
+			void ShutDownAndCloseApplicationL();			
+		
+			/**
+	         * Capture events if needed
+	         */
+	        void CaptureEventsL();
+
+	        /**
+	         * Releases events capturing
+	         */
+	        void ReleaseCapturingL();
+
+	        /**
+	         * Returns if events are captured
+	         * @return ETrue if captured
+	         */
+	        TBool AreEventsCaptured() const;
+	        
+	     
+        
+	private :
+		   	        
+	        /**
+	         * CCalculatePreviewPaneWidth  
+	         */
+	        void CalculatePreviewPaneWidth();
+	        
+	        /**
+	         * SelectWindowVariety variety from window
+	         * @param aNumberOfLines lines to be used
+	         * @param aLimits ,limits
+	         */	        
+	        TInt SelectWindowVariety( const TInt aNumberOfLines, const TAknLayoutScalableParameterLimits& aLimits ) const;
+        	/**
+	         * RectFromLayout rect from layout
+	         * @param aParent parant
+	         * @param aComponentLayout layout
+	         * @return rect
+	         */
+        	TRect RectFromLayout( const TRect& aParent,	const TAknWindowComponentLayout& aComponentLayout ) const;
+        	
+        	/**
+             * Prepares branding access
+             *
+             * @since S60 5.0
+             */  
+			TInt PrepareBrandingAccess();
+
+                	        
+        	 /**
+        	  * handle connection close and exit the servicetab also
+        	  * @param aEventValue, the event value to publish
+        	  */
+        	 void HandleServiceCloseExitL(TInt aEventValue );
+	
+	private:
+			
+			// owned , refrence to message hadler    
+		    CIMCVAppMessageExtensionsHandler* iMessageHandler;
+		    
+		    // onwed, layout info
+			CIMCVAppLayoutInfo* iLayoutInfo;
+			
+			// owned, reference to imcvuiengine component
+			MIMCVEngineFactory* iEngineFactory ;
+			      
+        	 // owned , used to set the tile, label icon in title pane
+       		 CIMCVAppStatusPaneHandler* iStatusPaneHandler;
+       		       		 
+       		RPointerArray<MIMCVAppLayoutChangeObserver> iLayoutObservers;
+        
+        	// Doesn't own objects. Array of resource observers
+        	RPointerArray<MIMCVAppResourceChangeObserver> iResourceObservers;
+       		
+       		TFileName		iChatMbmFullPath;
+       		
+       		// phonebook application uid
+        	TInt iPbkApplicationUid;
+        	// phonebook active view id
+       		TInt iPbkActiveViewUid;
+       		// owned
+       		MIMCVUiAppSkinVariant* iSkinVariant;
+       		
+       		TBool iDestructingFlag;
+       		
+       		TBool iServerDisconnected;
+       		
+       		//owns the instance of the inputobserver
+       		CIMCVAppInputAbsorber* iInputAbsorber;
+       		//not Owns : pointer to view
+       		CIMCVAppView* iCIMCVAppView;
+       		
+       		//is app in forground or background
+       		TBool iIsAppForeground;
+       		
+		    };
+
+
+#endif // CIMCVAPPUI_H
+