diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstui/inc/cvimpstuiextensionfactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstui/inc/cvimpstuiextensionfactory.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,187 @@ +/* +* 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: Header for Extension factory for VIMPSTUI +* +*/ + + +#ifndef __CVIMPSTUIEXTENSIONFACTORY_H__ +#define __CVIMPSTUIEXTENSIONFACTORY_H__ + +// INCLUDES +#include +#include + +class MxSPViewMapper; +class MxSPContactManager; +class CxSPBaseView; +class CPbk2UIExtensionView; +class CCoeEnv; +class CxSPViewInfo; +class MVIMPSTEngineServiceTableFetcher; +class CVIMPSTUIViewManager; +class MVIMPSTEngineFactory; +class CVIMPSTUIMenuExtension; + +// CLASS DECLARATION +/** + * Implementation of the MxSPFactory. + * Creates instances of the extension classes. + */ +// codescanner warnings can be ignored as CxSPFactory derived from CBase + +class CVIMPSTUiExtensionFactory : public CxSPFactory // CSI: 51 # + { + public: // Construction and destruction + /** + * Static factory function that performs the 2-phased construction. + * @return Newly created CVIMPSTUiExtensionFactory. + */ + static CVIMPSTUiExtensionFactory* NewL(); + + /** + * Standard C++ destructor. + */ + ~CVIMPSTUiExtensionFactory(); + + private: // from MxSPFactory + + /** + * @see MxSPFactory + */ + CxSPBaseView* CreateViewL( TUid aViewId, CPbk2UIExtensionView& aView ); + + /** + * @see MxSPFactory + */ + void RegisterViewMapper( MxSPViewMapper& aMapper ); + + /** + * @see MxSPFactory + */ + TInt ViewInfoResource() const; + + /** + * @see MxSPFactory + */ + TUint32 Id() const; + + /** + * @see MxSPFactory + */ + const TDesC& Name() const; + + /** + * @see MxSPFactory + */ + void RegisterContactManager( MxSPContactManager& aManager ); + + /** + * @see MxSPFactory + */ + void SetVPbkContactManager( CVPbkContactManager& aVPbkContactManager ); + + /** + * @see MxSPFactory + */ + void UpdateStorePropertiesL( CPbk2StorePropertyArray& aPropertyArray ); + private: + /** + * Gets view count of this extension. + * This is alternative B for providing view information. + * Alternative A is to use ViewInfoResource method. If + * this alternative B is used, ViewInfoResource method + * must return KErrNotFound + * + * @return view count + */ + TInt ViewInfoCount() const ; + + /** + * Gets view info at specified index. + * This is alternative B for providing view information. + * Alternative A is to use ViewInfoResource method. If + * this alternative B is used, ViewInfoResource method + * must return KErrNotFound + * + * @param aIndex index + * @return view info at specified index + */ + const MxSPViewInfo* ViewInfo( TInt aIndex ) const ; + + private: + /** + * Finds the total number of services and creates different views for + * different services + * @param None + * @return None + */ + void CreateServicesL(); + /** + * Tells if it is search view's id + * @param aId + */ + + TBool IsSearchId( TUint aId ); + + /** + * Tells if it is block view's id + * @param aId + */ + TBool IsBlockeId( TUint aId ); + + /** + * Tells if it is tabbed view's id + * @param aId, if its a tabbed view + */ + TBool IsTabbedId( TUint aId ); + + private: // Implementation + /** + * Standard C++ constructor. + */ + CVIMPSTUiExtensionFactory(); + + /** + * Performs the 2nd phase of the construction. + */ + void ConstructL(); + + private: // Data + // environment + CCoeEnv& iCoeEnv; + + // offset index for resource file + TInt iResourceOffset; + + // Owns, view id mapper + MxSPViewMapper* iMapper; + + //Owns, contact manager + MxSPContactManager* iContactManager; + + // Owns, engine for all services + CVIMPSTUIViewManager* iEngine; + + //Doesnt Own. Need to call CVIMPSTEngineFactory::Release for Releasing this memory + MVIMPSTEngineFactory* iEngineFactoryInstance; + + //own's. menuextension. + CVIMPSTUIMenuExtension* iMenuExtension; + + }; + +#endif // _CVIMPSTUiExtensionFactory_H + +// End of File