uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsviewplugin.h
changeset 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstdetailsviewplugin.h	Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,275 @@
+/*
+* Copyright (c) 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:  View plugin base class of ECE's CCA-application
+ *
+*/
+
+ 
+#ifndef CVIMPSTDETAILSVIEWPLUGIN_H
+#define CVIMPSTDETAILSVIEWPLUGIN_H
+
+#include <e32base.h>
+
+#include <ccappviewpluginbase.h>
+#include "mvimpstdetailsviewcontactobserver.h"
+#include "mvimpstdetailspresencehandler.h"
+
+// Forward declaration
+class CVIMPSTDetailsViewMenuHandler;
+class CVIMPSTDetailsViewBrandHandler;
+class MVIMPSTDetailsPresenceObserver;
+class MVIMPSTDetailsViewContactObserver;
+class MVIMPSTDetailsPresenceHandler;
+class CVIMPSTDetailsContactHandler;
+
+class MVPbkStoreContact;
+class MCCAParameter;
+class CAknIcon;
+
+
+/**
+ *  Class implementing CCCAppViewPluginBase interface. This is
+ *  the main class and controlling the other classes of the plugin.
+ *
+ *  @lib vimpstdetailsviewplugin.dll
+ *  @since S60 v5.0
+ */
+
+class CVIMPSTDetailsViewPlugin : public CCCAppViewPluginBase,
+								 public MVIMPSTDetailsPresenceObserver,
+								 public MVIMPSTDetailsViewContactObserver
+	{
+	public:
+
+	    /**
+	     * Two-phased constructor.
+	     */
+	    static CVIMPSTDetailsViewPlugin* NewL(TInt aServiceId);
+
+	    /**
+	     * Destructor.
+	     */
+	    ~CVIMPSTDetailsViewPlugin();
+
+	private:
+
+	    // from base class CCCAppViewPluginBase
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     * @param aPluginParameter, reference to plugin parameter
+	     * @since S60 v5.0
+	     */
+	    void PreparePluginViewL(MCCAppPluginParameter& aPluginParameter);
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     *
+	     * Note: This will be removed.
+	     * @since S60 v5.0
+	     */
+	    TUid ImplementationUid();
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     * @param aIconType, reference to icon type
+	     * @param aBitmap, reference to bitmap pointer
+	     * @param aBitmapMask, reference to mask pointer
+	     * @since S60 v5.0
+	     */
+	    void ProvideBitmapLC(TCCAppIconType aIconType, CFbsBitmap*& aBitmap,
+	        				CFbsBitmap*& aBitmapMask);
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * NEW API
+	     * @param aIconType, reference to icon type
+	     * @param aIcon, reference to icon
+	     */
+	    void ProvideBitmapL(TCCAppIconType aIconType, CAknIcon& aIcon);
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     * create the container class
+	     * @since S60 v5.0
+	     */
+	    void NewContainerL();
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     * @param aResourceId, a resource id 
+	     * @param aMenuPane, reference to menu pane
+	     * @since S60 v5.0
+	     */
+	    void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     * @param aCommand, a command id to handle 
+	     * @since S60 v5.0
+	     */
+	    void HandleCommandL(TInt aCommand);
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     * (see details from header)
+	     * @return the plugin uid
+	     * @since S60 v5.0
+	     */
+	    TUid Id() const;
+
+		/**
+		* From CCCAppViewPluginBase
+		* @param aPrevViewId, previous view id
+		* @param aCustomMessageId, a custom message id  
+		* @param aCustomMessage, a custom message 
+		*/
+	    void DoActivateL( const TVwsViewId& aPrevViewId,
+				          TUid aCustomMessageId,
+				           const TDesC8& aCustomMessage );
+
+	    /**
+	     * From CCCAppViewPluginBase
+	     */
+	    void DoDeactivate();
+
+	public:   // new
+
+	    /**
+	     * Helper function for get the reference
+	     * to container data.
+	     *
+	     * @since S60 v5.0
+	     * return container
+	     */
+	    inline const CCCAppViewPluginAknContainer& GetContainer()
+		    {
+		    return *iContainer;
+		    }
+	    /**
+	     * Helper function for get contact handler         
+	     *
+	     * @since S60 v5.0
+	     * return iContactHandler
+	     */
+	    CVIMPSTDetailsContactHandler* GetContactHandler();
+
+	public :  // from MVIMPSTDetailsPresenceObserver
+		
+		/** from MVIMPSTDetailsPresenceObserver
+	     * notification call back from presence handler about presence change
+	     * @since s60 v5.0
+	     */
+	    void HandlePresenceChangedL() ;
+
+	public : // MVIMPSTDetailsViewContactObserver
+
+		/**
+		* From MVIMPSTDetailsViewContactObserver
+		* call back from contact manager
+		* @param aContact, a contact fetched from store
+		*/	    
+		void HandleContactReadyL( MVPbkStoreContact& aContact )  ;
+		
+		/**
+		* From MVIMPSTDetailsViewContactObserver
+		* call back from contact manager
+		* @param aContact, a contact fetched from store
+		*/	    
+		void HandleContactUnavailableL()  ;
+	
+	private:   // new
+
+	    /**
+	     * Helper function for reading and
+	     * loading resources needed by plugin.
+	     *
+	     * @since S60 v5.0
+	     */
+	    void PrepareViewResourcesL();
+		
+		/**
+	     * default constructor
+	     * @since S60 v5.0
+	     */
+	    CVIMPSTDetailsViewPlugin(TInt aServiceId);
+
+		/**
+	     * providing the two phase  construction
+	     * @since S60 v5.0
+	     */
+	    void ConstructL();
+
+		/**
+	     * Helper function for reading 
+	     * contact data from passed link .
+	     * @since S60 v5.0
+	     */
+	    void GetContactDataL();
+	    
+	   
+	    /**
+	     * set title text
+	     * @since S60 v5.0
+	     */
+	    void SetTitleL();
+
+
+	private: // data
+
+	    /**
+	     * owns : pointer to commlauncher's menuhandler
+	     */
+	    CVIMPSTDetailsViewMenuHandler* iMenuHandler;
+	 
+	     /**
+	     * not Owns : Pointer to launch parameter
+	     */
+	    MCCAParameter* iLaunchParameter;
+
+	    /**
+	     * Owns : focus field index in the display list
+	     */
+	    TInt iFocusedListIndex;
+	  
+	    /**
+	     * Owns : service id to use
+	     */
+	    TInt iServiceId;
+	    /**
+	     * Owns : pointer to brand data handler
+	     */
+	    CVIMPSTDetailsViewBrandHandler* iBrandHandler;
+	    
+		/**
+		*  owned : pointer to presence handler
+		*/  
+		MVIMPSTDetailsPresenceHandler* iPresenceHandler; 
+
+		/**
+		* Owns : pointer to contact handling from virtual phonebook
+		*/
+		CVIMPSTDetailsContactHandler* iContactHandler;
+	
+		};
+
+#endif // CVIMPSTDETAILSVIEWPLUGIN_H
+
+// End of File