diff -r f1bdd6b078d1 -r 2cb9bae34d17 textinput/peninputcommonctrls/src/peninputvkbctrl/peninputvkbctrllayout.cpp --- a/textinput/peninputcommonctrls/src/peninputvkbctrl/peninputvkbctrllayout.cpp Tue Jul 06 14:38:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,902 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Implementation of button -* -*/ - - -// system includes -#include -#include -#include -#include - -// user includes -#include "peninputvkbctrllayout.h" -#include "peninputvkbctrlext.h" - -// constants -const TInt KInvalidBmp = -1 ; - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::CAknFepCtrlVkbLayout -// C++ default constructor can NOT contain any code, that -// might leave. -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// - - -CAknFepCtrlVkbLayout::CAknFepCtrlVkbLayout() - : iFirstTimeConstruct(ETrue), iResourceId( -1 ), iVkbLayoutId( -1 ) - { - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::NewL -// Two-phased constructor. -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C CAknFepCtrlVkbLayout* CAknFepCtrlVkbLayout::NewL() - { - CAknFepCtrlVkbLayout* self = NewLC(); - CleanupStack::Pop(self); - - return self; - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::NewLC -// Two-phased constructor. -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C CAknFepCtrlVkbLayout* CAknFepCtrlVkbLayout::NewLC() - { - CAknFepCtrlVkbLayout* self = new (ELeave) CAknFepCtrlVkbLayout(); - CleanupStack::PushL(self); - self->ConstructL(); - - return self; - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::Reset -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C void CAknFepCtrlVkbLayout::Reset() - { - iVkbLayoutId = -1; - iFirstTimeConstruct = ETrue; - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::ConstructL -// Two-phased constructor. -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -void CAknFepCtrlVkbLayout::ConstructL() - { - - } - -// ----------------------------------------------------------------------------- -// Destructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CAknFepCtrlVkbLayout::~CAknFepCtrlVkbLayout() - { - iVkbLayoutInfoList.ResetAndDestroy(); - iVkbLayoutInfoList.Close(); - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::SetVkbKeyboard -// Two-phased constructor. -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C void CAknFepCtrlVkbLayout::SetVkbKeyboard( - CPeninputVkbCtrlExt* aVkbCtrl ) - { - iVkbCtrl = aVkbCtrl; - } - -EXPORT_C void CAknFepCtrlVkbLayout::SetIrregularResourceId(TInt32 aResId) - { - iIrregularResId = aResId; - } - -EXPORT_C void CAknFepCtrlVkbLayout::SetNonIrregularResourceId(TInt32 aResId) - { - iNonIrregularResId = aResId; - } - - -EXPORT_C void CAknFepCtrlVkbLayout::ConstructFromIrregularResourceL() - { - if ( iIrregularResId < 0 ) - { - return; - } - - TResourceReader reader; - - CCoeEnv::Static()->CreateResourceReaderLC( reader, iIrregularResId ); - - TPtrC bmpFileName = reader.ReadTPtrC(); - - for (TInt index = 0; index <= EKeyRightUp; index ++) - { - CreateIrregularKeyBitmapsL(reader, bmpFileName, (TVirtualKeyIrregularKeyType) index); - } - - // Pop and destroy reader - CleanupStack::PopAndDestroy( 1 ); - for( TInt i = 0; i < iVkbLayoutInfoList.Count(); i++ ) - { - iVkbLayoutInfoList[i]->iIrregular = ETrue; - } - - } - -EXPORT_C void CAknFepCtrlVkbLayout::ConstructFromNonIrregularResourceL() - { - if ( iNonIrregularResId < 0 ) - { - return; - } - - TResourceReader reader; - - CCoeEnv::Static()->CreateResourceReaderLC( reader, iNonIrregularResId ); - - TPtrC bmpFileName = reader.ReadTPtrC(); - TInt32 imgMajorSkinId = reader.ReadInt32(); - TAknsItemID id; - - for (TInt index = 0; index <= EKeyBmpLastType ; index += 2) - { - // Get the image ids and mask ids from resource - TInt bmpId = reader.ReadInt16(); - TInt bmpMskId = reader.ReadInt16(); - - // read skin item id - const TInt skinitemid = reader.ReadInt16(); - id.Set(TInt(imgMajorSkinId), skinitemid); - - if (bmpId != KInvalidBmp) - { - CFbsBitmap* bmp = NULL; - CFbsBitmap* maskbmp = NULL; - - if (bmpMskId != KInvalidBmp) - { - AknsUtils::CreateIconL(AknsUtils::SkinInstance(), - id, - bmp, - maskbmp, - bmpFileName, - bmpId, - bmpMskId); - - // set maskbmp and size - iVkbCtrl->SetNonIrregularKeyBitmapL(TVirtualKeyBmpType(EKeyBmpNormal + index + 1), - maskbmp ); - } - else - { - AknsUtils::CreateIconL(AknsUtils::SkinInstance(), - id, - bmp, - bmpFileName, - bmpId); - } - - // set bmp and size - iVkbCtrl->SetNonIrregularKeyBitmapL( TVirtualKeyBmpType(EKeyBmpNormal + index), bmp ); - } - } - - // Pop and destroy reader - CleanupStack::PopAndDestroy( 1 ); - for( TInt i = 0; i < iVkbLayoutInfoList.Count(); i++ ) - { - iVkbLayoutInfoList[i]->iIrregular = EFalse; - } - - } -void CAknFepCtrlVkbLayout::CreateIrregularKeyBitmapsL(TResourceReader& reader, TPtrC& bmpFileName, - TVirtualKeyIrregularKeyType aKeyType) - { - int maskid = 0; - for(TInt index = 0; index <= EKeyStateDimmedMask; index += 2) - { - maskid = index + 1; - CreateIrregularKeyBitmapL(reader, bmpFileName, aKeyType , - (TVirtualKeyIrregularKeyState)index, - (TVirtualKeyIrregularKeyState)maskid); - } - } - -void CAknFepCtrlVkbLayout::CreateIrregularKeyBitmapL(TResourceReader& reader, TPtrC& bmpFileName, - TVirtualKeyIrregularKeyType aKeyType , - TVirtualKeyIrregularKeyState aKeyState, - TVirtualKeyIrregularKeyState aKeyStateMask) - { - CFbsBitmap* bitmap = NULL; - CFbsBitmap* bitmapmaks = NULL; - TAknsItemID id; - MAknsSkinInstance* skininstance = AknsUtils::SkinInstance(); - - TInt bmpID = reader.ReadInt16(); - TInt bmpmaskID = reader.ReadInt16(); - TInt minorskinID = reader.ReadInt16(); - id.Set(TInt(EAknsMajorGeneric), minorskinID); - - if (bmpID > 0) - { - - AknsUtils::CreateIconL( skininstance, - id, - bitmap, - bitmapmaks, - bmpFileName, - bmpID, - bmpmaskID ); - - if (bitmapmaks) - { - AknIconUtils::DisableCompression(bitmapmaks); - } - - if (bitmap && iVkbCtrl) - { - iVkbCtrl->AddIrregularKeyBitmapL(aKeyType, aKeyState, bitmap); - } - - if (bitmapmaks && iVkbCtrl) - { - iVkbCtrl->AddIrregularKeyBitmapL(aKeyType, aKeyStateMask, bitmapmaks); - } - } - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::SetResourceId -// Set resurce Id -// --------------------------------------------------------------------------- -// -EXPORT_C void CAknFepCtrlVkbLayout::SetResourceId(TInt32 aResId) - { - iResourceId = aResId; - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::ConstructFromResourceL -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C void CAknFepCtrlVkbLayout::ConstructFromResourceL() - { - if ( iResourceId < 0 ) - { - return; - } - - TResourceReader reader; - - CCoeEnv::Static()->CreateResourceReaderLC( reader, iResourceId ); - - TInt count = reader.ReadInt16(); - - if( iFirstTimeConstruct ) - { - iVkbLayoutInfoList.ResetAndDestroy(); - for ( TInt i = 0; i < count; i++ ) - { - CPeninputVkbLayoutInfo* vkbLayoutInfo = - CPeninputVkbLayoutInfo::NewL( reader ); - - if (iVkbCtrl) - { - vkbLayoutInfo->iIrregular = iVkbCtrl->IsIrregularKeyBoard(); - } - iVkbLayoutInfoList.Append( vkbLayoutInfo ); - } - } - else - { - // vkb keyboard must reset first, because iKeyInfoList will reset and destroy later - - if( iVkbCtrl != NULL ) - { - iVkbCtrl->Reset(); - } - - for ( TInt i = 0; i < count; i++ ) - { - iVkbLayoutInfoList[i]->ConstructFromResourceL( reader, iVkbCtrl, iVkbLayoutId ); - iVkbLayoutInfoList[i]->ResetSize( - iVkbLayoutInfoList[i]->UnitWidth(), - iVkbLayoutInfoList[i]->UnitHeight(), - iVkbLayoutInfoList[i]->UnitCharWidth(), - iVkbLayoutInfoList[i]->UnitCharHeight(), - iVkbLayoutInfoList[i]->CharLeftTopPoint(), - iVkbLayoutInfoList[i]->CharFont() ); - - if (iVkbCtrl) - { - iVkbLayoutInfoList[i]->iIrregular = iVkbCtrl->IsIrregularKeyBoard(); - } - } - } - - // Pop and destroy reader - CleanupStack::PopAndDestroy( 1 ); - - iFirstTimeConstruct = EFalse; - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::VkbLayoutInfoList -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C RPointerArray CAknFepCtrlVkbLayout::VkbLayoutInfoList() - { - return iVkbLayoutInfoList; - } - -// --------------------------------------------------------------------------- -// CAknFepCtrlVkbLayout::ChangeVkbLayout -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C void CAknFepCtrlVkbLayout::ChangeVkbLayout( TInt aVkbLayoutId ) - { - if( iVkbLayoutId == aVkbLayoutId ) - { - return; - } - iVkbLayoutId = aVkbLayoutId; - for( TInt i = 0; i < iVkbLayoutInfoList.Count(); i++ ) - { - if( aVkbLayoutId == iVkbLayoutInfoList[i]->LayoutID() ) - { - iVkbCtrl->ReorganizeVkbKeys( iVkbLayoutInfoList[i] ); - - return; - } - } - } - -// ------------------------------------------------------------------------ -// CPeninputVkbKeyInfo::NewL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C CPeninputVkbKeyInfo* CPeninputVkbKeyInfo::NewL( - TResourceReader& aReader ) - { - CPeninputVkbKeyInfo* self = new ( ELeave ) CPeninputVkbKeyInfo(); - - CleanupStack::PushL( self ); - self->ConstructL( aReader ); - CleanupStack::Pop( self ); - - return self; - } - -// ------------------------------------------------------------------------ -// CPeninputVkbKeyInfo::~CPeninputVkbKeyInfo -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C CPeninputVkbKeyInfo::~CPeninputVkbKeyInfo() - { - delete iKey; - iKey = NULL; - delete iUnicode; - iUnicode = NULL; - } - -// ------------------------------------------------------------------------ -// CPeninputVkbKeyInfo::ConstructL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -void CPeninputVkbKeyInfo::ConstructL( TResourceReader& aReader ) - { - ConstructFromResourceL( aReader ); - } - -// ------------------------------------------------------------------------ -// CPeninputVkbKeyInfo::ConstructFromResourceL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -void CPeninputVkbKeyInfo::ConstructFromResourceL( TResourceReader& aReader ) - { - iUnicode = aReader.ReadHBufCL(); - iScanCode = aReader.ReadInt16(); - iBeginRow = aReader.ReadInt16(); - iBeginColumn = aReader.ReadInt16(); - iEndRow = aReader.ReadInt16(); - iEndColumn = aReader.ReadInt16(); - iHighlightBmpIndex = aReader.ReadInt16(); - iHighlightMaskBmpIndex = aReader.ReadInt16(); - TPtrC displayUnicode = aReader.ReadTPtrC(); - - TInt baseLine = 0; - iKey = CVirtualKey::NewL( *iUnicode, iScanCode, TRect(), - TRect(), baseLine, iHighlightBmpIndex, iHighlightMaskBmpIndex ); - if( displayUnicode.Length() != 0 ) - { - iKey->SetDisplayUnicodeL( displayUnicode ); - } - } - -TVirtualKeyIrregularKeyType CPeninputVkbKeyInfo::KeyTypeFromColumn(TInt aColumns) - { - if (iBeginColumn == 0) - { - return EKeyLeftDown; - } - - if ((iBeginColumn == aColumns - 1) && (aColumns % 2 == 0)) - { - return EKeyRightUp; - } - - if ((iBeginColumn == aColumns - 1) && (aColumns % 2 == 1)) - { - return EKeyRightDown; - } - - if (iBeginColumn % 2 == 0) - { - return EKeyMiddleDown; - } - - return EKeyMiddleUp; - } - -void CPeninputVkbKeyInfo::SetIrregularKeyType(TInt aColumns) - { - if (iKey) - { - iKey->SetIrregualrKeyType(KeyTypeFromColumn(aColumns)); - } - } -// ------------------------------------------------------------------------ -// CPeninputVkbKeyInfo::CreateKeyL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -void CPeninputVkbKeyInfo::CreateKeyL() - { - TInt baseLine = 0; - iKey = CVirtualKey::NewL( *iUnicode, iScanCode, TRect(), - TRect(), baseLine, iHighlightBmpIndex, iHighlightMaskBmpIndex ); - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::NewL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C CPeninputVkbLayoutInfo* CPeninputVkbLayoutInfo::NewL( - TResourceReader& aReader ) - { - CPeninputVkbLayoutInfo* self = NewLC( aReader ); - CleanupStack::Pop( self ); - - return self; - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::NewLC -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C CPeninputVkbLayoutInfo* CPeninputVkbLayoutInfo::NewLC( - TResourceReader& aReader ) - { - CPeninputVkbLayoutInfo* self = new ( ELeave ) CPeninputVkbLayoutInfo(); - CleanupStack::PushL( self ); - self->ConstructL( aReader ); - - return self; - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::GetRealSize -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C const TSize CPeninputVkbLayoutInfo::GetRealSize( - const TInt aUnitWidth, const TInt aUnitHeight ) const - { - return TSize( aUnitWidth * iColumns, aUnitHeight * iRows ); - } - -EXPORT_C void CPeninputVkbLayoutInfo::ResetLayoutInfo(const TSize& aSize) - { - AknIconUtils::SetSize( iBgBmp, aSize, EAspectRatioNotPreserved ); - AknIconUtils::SetSize( iBgMaskBmp, aSize, EAspectRatioNotPreserved ); - - } - -EXPORT_C void CPeninputVkbLayoutInfo::SetKeyInfo(const TInt aRow, - const TInt aColumn, - const TRect& aKeyRect, - const TRect& aCharRect, - const CFont* aFont) - { - RPointerArray keyInfoList = KeyInfoList(); - TInt count = keyInfoList.Count(); - - for (TInt i = 0; i < count; i++ ) - { - if (keyInfoList[i] && - keyInfoList[i]->BeginColumn() == aColumn && - keyInfoList[i]->BeginRow() == aRow) - { - keyInfoList[i]->Key()->SetRect( aKeyRect ); - - return; - } - } - } - - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::ResetSize -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C void CPeninputVkbLayoutInfo::ResetSize( - const TInt aUnitWidth, - const TInt aUnitHeight, - const TInt aUnitCharWidth, - const TInt aUnitCharHeight, - const TPoint& aCharLeftTopPoint, - const CFont* aFont ) - { - iUnitWidth = aUnitWidth; - iUnitHeight = aUnitHeight; - iUnitCharWidth = aUnitCharWidth; - iUnitCharHeight = aUnitCharHeight; - iCharLeftTopPoint = aCharLeftTopPoint; - iFont = aFont; - - iLastTopLeft = TPoint( 0, 0 ); - - // 1.Resize bk bmp and mask bmp - AknIconUtils::SetSize( iBgBmp, - TSize( aUnitWidth * iColumns, aUnitHeight * iRows ), - EAspectRatioNotPreserved ); - AknIconUtils::SetSize( iBgMaskBmp, - TSize( aUnitWidth * iColumns, aUnitHeight * iRows ), - EAspectRatioNotPreserved ); - - // 2.Resize dim bmp and mask bmp - AknIconUtils::SetSize( iDimBmp, TSize( aUnitWidth, aUnitHeight ), - EAspectRatioNotPreserved ); - AknIconUtils::SetSize( iDimMaskBmp, TSize( aUnitWidth, aUnitHeight ), - EAspectRatioNotPreserved ); - - // 3.Resize all highlight bmp and mask bmp - TInt count = iHighlightBmps.Count(); - TInt i = 0; - - for ( i = 0; i < count; i++ ) - { - AknIconUtils::SetSize( iHighlightBmps[i], - TSize( aUnitWidth, aUnitHeight ), EAspectRatioNotPreserved ); - } - - count = iHighlightMaskBmps.Count(); - for ( i = 0; i < count; i++ ) - { - AknIconUtils::SetSize( iHighlightMaskBmps[i], - TSize( aUnitWidth, aUnitHeight ), EAspectRatioNotPreserved ); - } - - // 4.For every key, reset the key rect and char rect - RPointerArray keyInfoList = KeyInfoList(); - count = keyInfoList.Count(); - TPoint keyLeftTop; - TInt rows; - TInt columns; - TRect rect; - - for ( i = 0; i < count; i++ ) - { - if ( keyInfoList[i]->Key() ) - { - if (keyInfoList[i]->BeginColumn() == 0) - { - keyLeftTop = TPoint( keyInfoList[i]->BeginColumn() * aUnitWidth, - keyInfoList[i]->BeginRow() * aUnitHeight ); - } - else - { - keyLeftTop = TPoint( keyInfoList[i]->BeginColumn() * aUnitWidth - - 6 * keyInfoList[i]->BeginColumn(), - keyInfoList[i]->BeginRow() * aUnitHeight ); - } - - if (!iIrregular) - { - keyLeftTop = TPoint( keyInfoList[i]->BeginColumn() * aUnitWidth, - keyInfoList[i]->BeginRow() * aUnitHeight ); - } - - - rows = keyInfoList[i]->EndRow() - keyInfoList[i]->BeginRow(); - columns = keyInfoList[i]->EndColumn() - - keyInfoList[i]->BeginColumn(); - - //Set key rect - rect = TRect( keyLeftTop, TSize( columns * aUnitWidth, - rows * aUnitHeight ) ); - keyInfoList[i]->Key()->SetRect( rect ); - } - } - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::~CPeninputVkbLayoutInfo -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C CPeninputVkbLayoutInfo::~CPeninputVkbLayoutInfo() - { - delete iBgBmp; - iBgBmp = NULL; - delete iBgMaskBmp; - iBgMaskBmp = NULL; - delete iDimBmp; - iDimBmp = NULL; - delete iDimMaskBmp; - iDimMaskBmp = NULL; - - iHighlightBmps.ResetAndDestroy(); - iHighlightBmps.Close(); - - iHighlightMaskBmps.ResetAndDestroy(); - iHighlightMaskBmps.Close(); - - iKeyInfoList.ResetAndDestroy(); - iKeyInfoList.Close(); - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::FindKey -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C CPeninputVkbKeyInfo* CPeninputVkbLayoutInfo::FindKey( - const TInt aUnicode ) const - { - const TInt count = iKeyInfoList.Count(); - - for ( TInt i = 0; i < count; i++ ) - { - if ( (*iKeyInfoList[i]->Unicode())[0] == aUnicode ) - { - return iKeyInfoList[i]; - } - } - - return NULL; - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::MoveKeys -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -EXPORT_C void CPeninputVkbLayoutInfo::MoveKeys( const TPoint& aTopLeft ) - { - RPointerArray keyInfoList = KeyInfoList(); - const TInt count = keyInfoList.Count(); - const TPoint difference = aTopLeft - iLastTopLeft; - TRect rect; - - for ( TInt i = 0; i < count; i++ ) - { - if ( keyInfoList[i]->Key() ) - { - //Set key rect - rect = keyInfoList[i]->Key()->Rect(); - rect.SetRect( rect.iTl + difference, rect.Size() ); - keyInfoList[i]->Key()->SetRect( rect ); - } - } - - iLastTopLeft = aTopLeft; - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::CPeninputVkbLayoutInfo -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -CPeninputVkbLayoutInfo::CPeninputVkbLayoutInfo() - : iCharLeftTopPoint( TPoint(0,0) ) - { - iLastTopLeft = TPoint( 0, 0 ); - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::ConstructL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -void CPeninputVkbLayoutInfo::ConstructL( TResourceReader& aReader ) - { - - ConstructFromResourceL( aReader ); - } - -// ------------------------------------------------------------------------ -// CPeninputVkbLayoutInfo::ConstructFromResourceL -// (other items were commented in a header) -// ------------------------------------------------------------------------ -// -void CPeninputVkbLayoutInfo::ConstructFromResourceL( TResourceReader& aReader, - CPeninputVkbCtrlExt* aVkbCtrl, - TInt aVkbLayoutId ) - { - delete iBgBmp; - iBgBmp = NULL; - delete iBgMaskBmp; - iBgMaskBmp = NULL; - delete iDimBmp; - iDimBmp = NULL; - delete iDimMaskBmp; - iDimMaskBmp = NULL; - - iHighlightBmps.ResetAndDestroy(); - iHighlightBmps.Close(); - - iHighlightMaskBmps.ResetAndDestroy(); - iHighlightMaskBmps.Close(); - - iKeyInfoList.ResetAndDestroy(); - iKeyInfoList.Close(); - - iLayoutID = aReader.ReadInt16(); - - // Read the file name of the bmps - TPtrC bmpFileName = aReader.ReadTPtrC(); - TInt32 imgMajorSkinId = aReader.ReadInt32(); - - TInt layoutBmpId = aReader.ReadInt16(); - TInt layoutBmpMaskId = aReader.ReadInt16(); - TInt layoutBmpSkinId = aReader.ReadInt16(); - - TAknsItemID id; - MAknsSkinInstance* skininstance = AknsUtils::SkinInstance(); - - id.Set(TInt( imgMajorSkinId ), layoutBmpSkinId); - - if ( layoutBmpId != KInvalidBmp) - { - if ( layoutBmpMaskId != KInvalidBmp) - { - AknsUtils::CreateIconL( skininstance, - id, - iBgBmp, - iBgMaskBmp, - bmpFileName, - layoutBmpId, - layoutBmpMaskId ); - } - else - { - AknsUtils::CreateIconL( skininstance, - id, - iBgBmp, - bmpFileName, - layoutBmpId ); - } - } - - TInt dimBmpId = aReader.ReadInt16(); - TInt dimMaskBmpId = aReader.ReadInt16(); - TInt dimBmpSkinId = aReader.ReadInt16(); - - id.Set( TInt( imgMajorSkinId ), dimBmpSkinId ); - - if ( dimBmpId != KInvalidBmp ) - { - if ( dimMaskBmpId != KInvalidBmp ) - { - AknsUtils::CreateIconL( skininstance, - id, - iDimBmp, - iDimMaskBmp, - bmpFileName, - dimBmpId, - dimMaskBmpId ); - } - else - { - AknsUtils::CreateIconL( skininstance, - id, - iDimBmp, - bmpFileName, - dimBmpId ); - } - } - - iColumns = aReader.ReadInt16(); - iRows = aReader.ReadInt16(); - - TInt i; - TInt count = aReader.ReadInt16(); - TInt bmpId; - - for ( i = 0; i < count; i++ ) - { - bmpId = aReader.ReadInt16(); - if ( bmpId != KInvalidBmp ) - { - CFbsBitmap* bmp = AknIconUtils::CreateIconL( bmpFileName, - bmpId ); - CleanupStack::PushL( bmp ); - iHighlightBmps.Append( bmp ); - CleanupStack::Pop( bmp ); - } - } - - count = aReader.ReadInt16(); - for ( i = 0; i < count; i++ ) - { - bmpId = aReader.ReadInt16(); - if ( bmpId != KInvalidBmp ) - { - CFbsBitmap* bmp = AknIconUtils::CreateIconL( bmpFileName, bmpId ); - CleanupStack::PushL( bmp ); - iHighlightMaskBmps.Append( bmp ); - CleanupStack::Pop( bmp ); - } - } - - count = aReader.ReadInt16(); - - for ( i = 0; i < count; i++ ) - { - CPeninputVkbKeyInfo* keyInfo = CPeninputVkbKeyInfo::NewL( aReader ); - keyInfo->SetIrregularKeyType(iColumns); - iKeyInfoList.Append( keyInfo ); - } - - if ( ( iLayoutID == aVkbLayoutId ) && ( aVkbCtrl ) ) - { - aVkbCtrl->ReorganizeVkbKeys( this ); - } - } -// End Of File