textinput/peninputcommonctrls/src/peninputvkbctrl/peninputvkbctrllayout.cpp
changeset 27 694fa80c203c
parent 24 fc42a86c98e3
child 35 0f326f2e628e
--- a/textinput/peninputcommonctrls/src/peninputvkbctrl/peninputvkbctrllayout.cpp	Wed Jun 23 04:57:58 2010 +0800
+++ /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 <barsread.h>
-#include <AknIconUtils.h>
-#include <coemain.h>
-#include <AknsUtils.h>
-
-// 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<CPeninputVkbLayoutInfo> 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<CPeninputVkbKeyInfo> 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<CPeninputVkbKeyInfo> 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<CPeninputVkbKeyInfo> 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