williamr@2: /* williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * Phonebook icon info class definition. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef __PbkIconInfo_H__ williamr@2: #define __PbkIconInfo_H__ williamr@2: williamr@2: // INCLUDES williamr@2: #include // CBase williamr@2: #include // TPbkIconId williamr@2: #include // TAknsItemID williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class TResourceReader; williamr@2: class CCoeEnv; williamr@2: class CGulIcon; williamr@2: class CPbkIconInfoContainer; williamr@2: class MAknsSkinInstance; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Phonebook icon information encapsulating class. williamr@2: * @see CPbkIconInfoContainer williamr@2: * @deprecated williamr@2: */ williamr@2: class TPbkIconInfo williamr@2: { williamr@2: public: // interface williamr@2: /** williamr@2: * Returns the unique Phonebook icon id of this icon. williamr@2: * @return The unique Phonebook icon id of this icon. williamr@2: */ williamr@2: IMPORT_C TPbkIconId PbkIconInfoId() const; williamr@2: williamr@2: /** williamr@2: * Returns the bitmap file name of this icon. williamr@2: * @return The bitmap file name of this icon. williamr@2: */ williamr@2: IMPORT_C const TDesC& MbmFileName() const; williamr@2: williamr@2: /** williamr@2: * Returns this icon's id in the bitmap file. williamr@2: * @return This icon's id in the bitmap file. williamr@2: */ williamr@2: IMPORT_C TInt IconId() const; williamr@2: williamr@2: /** williamr@2: * Returns this icon's mask id in the bitmap file. williamr@2: * @return This icon's mask id in the bitmap file. williamr@2: */ williamr@2: IMPORT_C TInt MaskId() const; williamr@2: williamr@2: /** williamr@2: * Returns this icon's skin id. williamr@2: * @return This icon's skin id. williamr@2: */ williamr@2: IMPORT_C TAknsItemID SkinId() const; williamr@2: williamr@2: /** williamr@2: * Returns this icon's color table id. williamr@2: * @return This icon's color table id. williamr@2: */ williamr@2: TAknsItemID ColorId() const; williamr@2: williamr@2: /** williamr@2: * Returns this icon's index in the color table. williamr@2: * @return This icon's index in the color table. williamr@2: */ williamr@2: TInt ColorIndex() const; williamr@2: williamr@2: /** williamr@2: * Returns this icon's index in the color table. williamr@2: * @return This icon's index in the color table. williamr@2: */ williamr@2: TInt DefaultColorIndex() const; williamr@2: williamr@2: private: // Interface for CPbkIconInfoContainer williamr@2: friend class CPbkIconInfoContainer; williamr@2: TPbkIconInfo(); williamr@2: ~TPbkIconInfo(); williamr@2: void ReadFromResourceLC(TResourceReader& aReader); williamr@2: void Destroy(); williamr@2: williamr@2: private: // Unimplemented functions williamr@2: /// Private, unimplemented copy constructor williamr@2: TPbkIconInfo(const TPbkIconInfo&); williamr@2: /// Private, unimplemented assignment operator williamr@2: TPbkIconInfo& operator=(const TPbkIconInfo&); williamr@2: williamr@2: private: // data members williamr@2: // Own: unique phonebook icon id williamr@2: TPbkIconId iPbkIconInfoId; williamr@2: // Own: Icon bitmap williamr@2: TInt iIconId; williamr@2: // Own: mask bitmap williamr@2: TInt iMaskId; williamr@2: // Ref: Mbm file name williamr@2: HBufC* iMbmFileName; williamr@2: /// Own: SkinId williamr@2: TAknsItemID iSkinId; williamr@2: /// Own: ColorId williamr@2: TAknsItemID iColorId; williamr@2: /// Own: Color index williamr@2: TInt iColorIndex; williamr@2: /// Own: Default color index williamr@2: TInt iDefaultColorIndex; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: * Collection of phonebook icon info objects. williamr@2: * @see TPbkIconInfo williamr@2: * @deprecated williamr@2: */ williamr@2: class CPbkIconInfoContainer : public CBase williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: /** williamr@2: * Creates a new instance of this class intialized with Phonebook williamr@2: * default icon info from PbkView.rsc. Note that PbkView.rsc has to williamr@2: * be loaded, see RPbkViewResourceFile. williamr@2: * williamr@2: * @param aCoeEnv Optional CCoeEnv instance. This function performs williamr@2: * faster if this parameter is provided. williamr@2: * @return A new instance of this class. williamr@2: */ williamr@2: IMPORT_C static CPbkIconInfoContainer* NewL(CCoeEnv* aCoeEnv=NULL); williamr@2: williamr@2: /** williamr@2: * Creates a new instance of this class. williamr@2: * williamr@2: * @param aReader Resource reader initialized to point to an array williamr@2: * of PBK_ICON_INFO resources. williamr@2: * @return A new instance of this class. williamr@2: */ williamr@2: IMPORT_C static CPbkIconInfoContainer* NewL(TResourceReader& aReader); williamr@2: williamr@2: /** williamr@2: * Creates a new instance of this class. williamr@2: * williamr@2: * @param aResourceId Resource id of an array of PBK_ICON_INFO williamr@2: * resources. Phonebook default icon info williamr@2: * array's resource id is R_PBK_ICON_INFO_ARRAY williamr@2: * in PbkView.rsc. williamr@2: * @param aCoeEnv Optional CCoeEnv instance. This function performs williamr@2: * faster if this parameter is provided. williamr@2: * @return A new instance of this class. williamr@2: */ williamr@2: IMPORT_C static CPbkIconInfoContainer* NewL williamr@2: (TInt aResourceId, CCoeEnv* aCoeEnv=NULL); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: ~CPbkIconInfoContainer(); williamr@2: williamr@2: public: // Interface williamr@2: /** williamr@2: * Finds a particular TPbkIconInfo in the container. williamr@2: * williamr@2: * @param aIconId Id of the icon info to search. williamr@2: * @return Matching icon info or NULL if not found. williamr@2: */ williamr@2: IMPORT_C const TPbkIconInfo* Find(TPbkIconId aIconId) const; williamr@2: williamr@2: /** williamr@2: * Creates and returns a CGulIcon object corresponding to the aIconId. williamr@2: * ownership of the returned object is transferred to the client. Returns williamr@2: * NULL if icon id is not in the array. williamr@2: * williamr@2: * @param aIconId Phonebook icon id. williamr@2: * @return Icon object corresponding to the icon id. NULL if not found. williamr@2: */ williamr@2: IMPORT_C CGulIcon* LoadBitmapL(TPbkIconId aIconId) const; williamr@2: williamr@2: /** williamr@2: * Appends new icon info elements from aResourceId. The resource must williamr@2: * be of PBK_ICON_INFO type. williamr@2: * williamr@2: * @param aResourceId Resource id for icon infos to be added. williamr@2: */ williamr@2: IMPORT_C void AppendIconsFromResourceL(TInt aResourceId); williamr@2: williamr@2: private: // Implementation williamr@2: CPbkIconInfoContainer(); williamr@2: void ConstructL(TResourceReader& aReader); williamr@2: void DoAppendIconsFromResourceL(TResourceReader& aReader); williamr@2: williamr@2: private: // data members williamr@2: /// Own: array of icon infos williamr@2: RArray iIconArray; williamr@2: }; williamr@2: williamr@2: /** williamr@2: * Phonebook icon utilility class. This class is a helper class williamr@2: * for loading skinned bitmaps. williamr@2: */ williamr@2: class PbkIconUtils williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Creates a skinned icon from the aIconInfo information. williamr@2: * @param aSkin Pointer to a skin instance. williamr@2: * @param aBitmap Bitmap to set. williamr@2: * @param aMask Mask to set. williamr@2: * @param aIconInfo Bitmap and mask information. williamr@2: */ williamr@2: IMPORT_C static void CreateIconL( williamr@2: MAknsSkinInstance* aSkin, williamr@2: CFbsBitmap*& aBitmap, williamr@2: CFbsBitmap*& aMask, williamr@2: const TPbkIconInfo& aIconInfo); williamr@2: williamr@2: /** williamr@2: * Creates a skinned icon from the aIconInfo information. williamr@2: * @param aSkin Pointer to a skin instance. williamr@2: * @param aBitmap Bitmap to set. williamr@2: * @param aMask Mask to set. williamr@2: * @param aIconInfo Bitmap and mask information. williamr@2: */ williamr@2: IMPORT_C static void CreateIconLC( williamr@2: MAknsSkinInstance* aSkin, williamr@2: CFbsBitmap*& aBitmap, williamr@2: CFbsBitmap*& aMask, williamr@2: const TPbkIconInfo& aIconInfo); williamr@2: private: williamr@2: PbkIconUtils(); williamr@2: ~PbkIconUtils(); williamr@2: }; williamr@2: williamr@2: williamr@2: #endif // __PbkIconInfo_H__ williamr@2: williamr@2: // End of File