phonebookui/Phonebook2/CommonUI/src/CPbk2IconInfo.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 14 Apr 2010 15:45:35 +0300
branchRCL_3
changeset 23 5586b4d2ec3e
parent 0 e686773b3f54
permissions -rw-r--r--
Revision: 201013 Kit: 201015

/*
* Copyright (c) 2005-2007 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:  Phonebook 2 icon information.
*
*/


#include "CPbk2IconInfo.h"

// System includes
#include <barsread.h>
#include <fbs.h>

// --------------------------------------------------------------------------
// CPbk2IconInfo::CPbk2IconInfo
// --------------------------------------------------------------------------
//
CPbk2IconInfo::CPbk2IconInfo()
    {
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::CPbk2IconInfo
// --------------------------------------------------------------------------
//
CPbk2IconInfo::CPbk2IconInfo(
        TPbk2IconId aPbk2IconId,
        TInt aIconId,
        TInt aMaskId,
        TPtrC aMbmFileName,
        TAknsItemID aSkinId,
        TAknsItemID aColorId,
        TInt aColorIndex,
        TInt aDefaultColorIndex ) :
    iPbk2IconId ( aPbk2IconId ),
    iIconId ( aIconId ),
    iMaskId ( aMaskId ),
    iMbmFileName ( aMbmFileName ),
    iSkinId ( aSkinId ),
    iColorId ( aColorId ),
    iColorIndex ( aColorIndex ),
    iDefaultColorIndex( aDefaultColorIndex )
    {
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::CPbk2IconInfo
// --------------------------------------------------------------------------
//
CPbk2IconInfo::CPbk2IconInfo(
    TPbk2IconId aPbk2IconId,
    const CFbsBitmap* aBitmap, 
    const CFbsBitmap* aMask,
    const TSize aSize ) :
        iPbk2IconId ( aPbk2IconId ), 
        iExternalBitmap ( aBitmap ), 
        iExternalMask ( aMask ), 
        iExternalBitmaps( ETrue ), 
        iExternalIconSize( aSize)
    {
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::~CPbk2IconInfo
// --------------------------------------------------------------------------
//
CPbk2IconInfo::~CPbk2IconInfo()
    {
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::NewLC
// --------------------------------------------------------------------------
//
CPbk2IconInfo* CPbk2IconInfo::NewLC( 
        TResourceReader& aReader,
        CDesCArray& aMbmFileNames )
    {
    CPbk2IconInfo* self = new( ELeave ) CPbk2IconInfo;
    CleanupStack::PushL( self );
    self->ConstructL( aReader, aMbmFileNames );
    return self;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::NewLC
// --------------------------------------------------------------------------
//
EXPORT_C CPbk2IconInfo* CPbk2IconInfo::NewLC(
        TPbk2IconId aPbk2IconId,
        TInt aIconId,
        TInt aMaskId,
        TPtrC aMbmFileName,
        TAknsItemID aSkinId,
        TAknsItemID aColorId,
        TInt aColorIndex,
        TInt aDefaultColorIndex )
    {
    CPbk2IconInfo* self = new( ELeave ) CPbk2IconInfo(
            aPbk2IconId, aIconId, aMaskId, aMbmFileName,
            aSkinId, aColorId, aColorIndex, aDefaultColorIndex );
    CleanupStack::PushL( self );
    return self;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::NewLC
// --------------------------------------------------------------------------
//
EXPORT_C CPbk2IconInfo* CPbk2IconInfo::NewLC( 
        TPbk2IconId aPbk2IconId,
        const CFbsBitmap* aBitmap, 
        const CFbsBitmap* aMask,
        const TSize aSize )
    {
    CPbk2IconInfo* self = new( ELeave ) CPbk2IconInfo(
            aPbk2IconId, aBitmap, aMask, aSize );
    CleanupStack::PushL( self );
    return self;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::ConstructL
// --------------------------------------------------------------------------
//
void CPbk2IconInfo::ConstructL( 
        TResourceReader& aReader,
        CDesCArray& aMbmFileNames )
    {
    aReader.ReadInt8();  // read version number

    iPbk2IconId = TPbk2IconId(aReader);

    HBufC* mbmFileName = aReader.ReadHBufCL();
    TPtr ptr( mbmFileName->Des() );
    TInt pos = KErrNotFound;
    // Find returns less than zero if not found
    if ( aMbmFileNames.Find( ptr, pos ) != 0 )
        {
        CleanupStack::PushL( mbmFileName );
        aMbmFileNames.AppendL( ptr );
        CleanupStack::Pop( mbmFileName );
        const TInt lastIndex = aMbmFileNames.Count() - 1;
        iMbmFileName.Set( aMbmFileNames.MdcaPoint( lastIndex ) );
        }
    else
        {
        iMbmFileName.Set( aMbmFileNames.MdcaPoint( pos ) );
        }
    delete mbmFileName;
    mbmFileName = NULL;

    iIconId = aReader.ReadInt32();
    iMaskId = aReader.ReadInt32();
    const TInt skinIdMajor = aReader.ReadInt32();
    const TInt skinIdMinor = aReader.ReadInt32();
    iSkinId.Set(skinIdMajor, skinIdMinor);
    const TInt colorIdMajor = aReader.ReadInt32();
    const TInt colorIdMinor = aReader.ReadInt32();
    iColorId.Set(colorIdMajor, colorIdMinor);
    iColorIndex = aReader.ReadInt32();
    iDefaultColorIndex = aReader.ReadInt32();
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::Pbk2IconId
// --------------------------------------------------------------------------
//
const TPbk2IconId& CPbk2IconInfo::Pbk2IconId() const
    {
    return iPbk2IconId;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::MbmFileName
// --------------------------------------------------------------------------
//
const TDesC& CPbk2IconInfo::MbmFileName() const
    {
    return iMbmFileName;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::IconId
// --------------------------------------------------------------------------
//
TInt CPbk2IconInfo::IconId() const
    {
    return iIconId;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::MaskId
// --------------------------------------------------------------------------
//
TInt CPbk2IconInfo::MaskId() const
    {
    return iMaskId;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::SkinId
// --------------------------------------------------------------------------
//
TAknsItemID CPbk2IconInfo::SkinId() const
    {
    return iSkinId;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::SkinId
// --------------------------------------------------------------------------
//
TAknsItemID CPbk2IconInfo::ColorId() const
    {
    return iColorId;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::ColorIndex
// --------------------------------------------------------------------------
//
TInt CPbk2IconInfo::ColorIndex() const
    {
    return iColorIndex;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::DefaultColorIndex
// --------------------------------------------------------------------------
//
TInt CPbk2IconInfo::DefaultColorIndex() const
    {
    return iColorIndex;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::ExternalBitmap
// --------------------------------------------------------------------------
//
const CFbsBitmap* CPbk2IconInfo::ExternalBitmap() const
    {
    return iExternalBitmap;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::Bitmap
// --------------------------------------------------------------------------
//
const CFbsBitmap* CPbk2IconInfo::ExternalMask() const
    {
    return iExternalMask;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::IsIconExternal
// --------------------------------------------------------------------------
//
TBool CPbk2IconInfo::IsIconExternal() const
    {
    return iExternalBitmaps;
    }

// --------------------------------------------------------------------------
// CPbk2IconInfo::ExternalIconSize
// --------------------------------------------------------------------------
//
TSize CPbk2IconInfo::ExternalIconSize() const
    {
    return iExternalIconSize;
    }

// End of File