diff -r 000000000000 -r ba25891c3a9e appinstall_plat/appmngr2runtimeapi/inc/appmngr2infoiterator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appinstall_plat/appmngr2runtimeapi/inc/appmngr2infoiterator.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,127 @@ +/* +* 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: Implements MCUIInfoIterator API for CCUIDetailsDialog +* +*/ + + +#ifndef C_APPMNGR2INFOITERATOR_H +#define C_APPMNGR2INFOITERATOR_H + +#include // SwiUI::CommonUI::MCUIInfoIterator + +class CAppMngr2InfoBase; +class CDesC8Array; + +enum TAppMngr2InfoType + { + EAppMngr2StatusInstalled, + EAppMngr2StatusNotInstalled + }; + + +/** + * CAppMngr2InfoIterator is the base class for plug-in specific data collecting + * iterators. CAppMngr2InfoIterator derived iterators can be used to get the data + * shown in details dialog (CCUIDetailsDialog). Details dialog shows application + * details and certificate info. + * + * @lib appmngr2pluginapi.lib + * @since S60 v5.1 + */ +class CAppMngr2InfoIterator : public CBase, public SwiUI::CommonUI::MCUIInfoIterator + { +public: // constructors and destructor + /** + * Constructs new info iterator to show details dialog. + * + * @param aInfo Reference to application or package info object + * @param aInfoType Type info (installed application or not installed package) + */ + IMPORT_C CAppMngr2InfoIterator( CAppMngr2InfoBase& aInfo, TAppMngr2InfoType aInfoType ); + + /** + * Allocates memory for CDesCArrays. + * + * BaseConstructL() must be called from derived ConstructL() before any other + * leaving functions. BaseConstructL() calls SetAllFieldsL() to get all the + * displayable details. + */ + IMPORT_C void BaseConstructL(); + + /** + * Destructor, deletes allocated memory. + */ + IMPORT_C ~CAppMngr2InfoIterator(); + +public: // from MCUIInfoIterator + IMPORT_C TBool HasNext() const; + IMPORT_C void Next( TPtrC& aKey, TPtrC& aValue ); + IMPORT_C void Reset(); + +protected: // new functions + /** + * Sets field to given value. + * + * Uses StringLoader to load aResourceId and adds it to MCUIInfoIterator + * as a new key having value aValue. + * + * @param aResourceId Resource id for MCUIInfoIterator key + * @param aValue Value for the key + */ + IMPORT_C void SetFieldL( TInt aResourceId, const TDesC& aValue ); + + /** + * Sets all default fields, can be overridden in derived classes. + * + * Default implementation sets name (from CAppMngr2InfoBase::Name()), + * status (either installed or not installed), location drive (from + * CAppMngr2InfoBase::Location()), and application/file size (from + * CAppMngr2InfoBase::Details()). Status and location fields are set + * using SetStatusL() and SetLocationL() functions, so that they can + * be overridden separately. Finally calls SetOtherFieldsL() to set + * other fields, if derived class has some additional fields that + * are not covered here. + */ + IMPORT_C virtual void SetAllFieldsL(); + + /** + * Sets status (installed or not installed) based on aInfoType + * defined in constructor. This function can be overridden in + * derived classes. + */ + IMPORT_C virtual void SetStatusL(); + + /** + * Sets location drive based on CAppMngr2InfoBase::Location(). + * This function can be overridden in derived classes. + */ + IMPORT_C virtual void SetLocationL(); + + /** + * Sets other possble fields, default implemenation is empty. + * This function can be overridden in derived classes. + */ + IMPORT_C virtual void SetOtherFieldsL(); + +protected: // data + CAppMngr2InfoBase& iInfo; + TAppMngr2InfoType iInfoType; + TInt iCurrentIndex; + CDesCArray* iKeys; + CDesCArray* iValues; + }; + +#endif // C_APPMNGR2INFOITERATOR_H +