--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imstutils/imconversationview/imcvuiapp/inc/cimcvappui.h Tue Feb 02 10:12:18 2010 +0200
@@ -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
+