diff -r 000000000000 -r 5e5d6b214f4f uiservicetab/vimpststorage/inc/mvimpststorageitemmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpststorage/inc/mvimpststorageitemmodel.h Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,137 @@ +/* +* 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: MVIMPSTStorageItemModel +* +*/ + + + +#ifndef MVIMPSTSTORAGECONTACTLISTMODEL_H +#define MVIMPSTSTORAGECONTACTLISTMODEL_H + +// INCLUDES +#include "tvimpstenums.h" + +#include +#include + +// FORWARD DECLARATIONS +class MVIMPSTStorageContactList; +class MVIMPSTStorageContact; + +// CLASS DECLARATION + +/** + * Contact list model for UI. + * Wrapper between UI and storage, hides multiple contact list handling logic. + * + * @lib vimpststorage.lib + * @since 5.0 + */ +class MVIMPSTStorageItemModel : public MDesCArray + { + + public: // Enumerations and typedefs + + /** + * An Enum + * To define Type of the item. + * not used. + */ + enum TItemType + { + EInvalid, /* Not a valid item*/ + EOwnStatus, /* own data item*/ + EContactList, /* Contact list item*/ + EContactItem, /* contact item*/ + EAll /* all item includes owndata, contactlist, contact */ + }; + + /** + * structure + * To package the data of type of item(contact list/contact) + * if its a contactl list the third variable iContact will be null. + * not used. + */ + struct SItem + { + TItemType iType;/*Type of the item*/ + MVIMPSTStorageContactList* iContactList; /*ocntact list*/ + MVIMPSTStorageContact* iContact;/*contact*/ + }; + + public: // New functions + + /** + * @return TInt Count of items + */ + virtual TInt Count() const = 0; + + /** + * Returns List item at given index. + * @param aIndex + * @return SItem List item + */ + virtual SItem Item( TInt aIndex ) const = 0; + + + /** + * Get index for contact. + * @param aContact. Contact item to be found. + * @return TInt Index of contact. If contact not found returns KErrNotFound + */ + virtual TInt IndexOfContact( MVIMPSTStorageContact* aContact ) const = 0; + + /** + * Get index for list + * @param aList. Contact item to be found. + * @param aIgnoreOwnItem. If ETrue own item is not taken into account + * when resolving index. + * @param aIgnoreEmptyLists If ETrue, empty lists are ignored. + * @return TInt Index of list. If list not found returns KErrNotFound + */ + virtual TInt IndexOfList( MVIMPSTStorageContactList* aList, + TBool aIgnoreOwnItem = EFalse, + TBool aIgnoreEmptyLists = ETrue ) const = 0; + + + + + + public: // From MDesCArray + + /** + * @see MDesCArray + */ + TPtrC MdcaPoint( TInt aIndex ) const = 0; + + /** + * @see MDesCArray + */ + TInt MdcaCount() const = 0; + + + + protected: // prevent deletion through this interface + + /** + * Destructor. + */ + virtual ~MVIMPSTStorageItemModel() {}; + + }; + +#endif // MVIMPSTStorageContactListModel_H + +// End of File