diff -r fc42a86c98e3 -r 694fa80c203c textinput/peninputcommonctrls/src/peninputvkbctrl/peninputvkbctrlext.cpp --- a/textinput/peninputcommonctrls/src/peninputvkbctrl/peninputvkbctrlext.cpp Wed Jun 23 04:57:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,393 +0,0 @@ -/* -* 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: vkb control extension -* -*/ - - -// System includes -#include -#include -#include -#include -#include - -// User includes -#include "peninputvkbctrlext.h" -#include "peninputvkbctrllayout.h" - -// Constants -const TUint32 KDefaultTextColor = 0x000000; -const TInt32 KInvalidResId = -1; -const TInt KInvalidImg = -1 ; -// ======== MEMBER FUNCTIONS ======== - - - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::CPeninputVkbCtrlExt -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputVkbCtrlExt::CPeninputVkbCtrlExt( const TRect& aRect, - CFepUiLayout* aUiLayout, TInt aControlId, const TFontSpec& aFontSpec,TBool aIrregular ) - : CVirtualKeyboard( aRect, aUiLayout, aControlId, aFontSpec, aIrregular ) - { - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::NewL -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputVkbCtrlExt* CPeninputVkbCtrlExt::NewL( const TRect& aRect, - CFepUiLayout* aUiLayout, TInt aControlId, const CFont* aFont,TBool aIrregular) - { - TFontSpec fontSpec; - - CPeninputVkbCtrlExt* vkb = new (ELeave) - CPeninputVkbCtrlExt( aRect, aUiLayout, aControlId, fontSpec,aIrregular ); - CleanupStack::PushL( vkb ); - vkb->ConstructL(); - vkb->SetFont( aFont ); - CleanupStack::Pop( vkb ); - - return vkb; - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::~CPeninputVkbCtrlExt -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputVkbCtrlExt::~CPeninputVkbCtrlExt() - { - Reset(); - if( iResourceId == KInvalidImg ) - { - SetBackgroundBmp( NULL ); - SetBackgroundMaskBmp( NULL ); - } - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::SizeChanged -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::SizeChanged( const TInt aUnitWidth, - const TInt aUnitHeight, - const TPoint& aLeftTopPoint ) - { - iUnitWidth = aUnitWidth; - iUnitHeight = aUnitHeight; - iLeftTopPoint = aLeftTopPoint; - - if ( iVkbLayoutInfo ) - { - // 1.Reset the size and position of Vkb ctrl and keys - TRect rect = TRect( iLeftTopPoint, TSize( iUnitWidth * iVkbLayoutInfo->Columns(), - iUnitHeight * iVkbLayoutInfo->Rows() ) ); - SetRect( rect ); - - // 2.Move all keys(Needn't change size, because it has been - } - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::SizeChanged -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::SizeChanged( const TRect& aRect ) - { - SetRect( aRect ); - } - - -// CPeninputVkbCtrlExt::ReorganizeVkbKeys -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::ReorganizeVkbKeys( - CPeninputVkbLayoutInfo* aVkbLayoutInfo ) - { - Reset(); - - iVkbLayoutInfo = aVkbLayoutInfo; - - TRect rect = TRect( iLeftTopPoint, TSize( iUnitWidth * iVkbLayoutInfo->Columns(), - iUnitHeight * iVkbLayoutInfo->Rows() ) ); - if( iResourceId != KInvalidImg ) - { - if( BackgroundBmp() && BackgroundBmp()->SizeInPixels() != Rect().Size() ) - AknIconUtils::SetSize(BackgroundBmp(), Rect().Size(), EAspectRatioNotPreserved); - if( BkMaskBmp() && BkMaskBmp()->SizeInPixels() != Rect().Size() ) - AknIconUtils::SetSize(BkMaskBmp(), Rect().Size(), EAspectRatioNotPreserved); - } - else - { - if ( iVkbLayoutInfo->BgBmp() ) - { - SetBackgroundBmp( iVkbLayoutInfo->BgBmp() ) ; - } - - if ( iVkbLayoutInfo->BgMaskBmp() ) - { - SetBackgroundMaskBmp( iVkbLayoutInfo->BgMaskBmp() ); - } - } -// SetRect( rect ); - - // According the information in vkbLayout to construct all keys and - // then add into the keys. -/* - if ( iVkbLayoutInfo->BgBmp() ) - { - TRAP_IGNORE( SetBackgroundBitmapL( iVkbLayoutInfo->BgBmp() ) ); - } - - if ( iVkbLayoutInfo->BgMaskBmp() ) - { - TRAP_IGNORE( SetBackgroundMaskBitmapL( iVkbLayoutInfo->BgMaskBmp() ) ); - } -*/ - if ( iVkbLayoutInfo->DimBmp() ) - { - SetDimKeyBmp( iVkbLayoutInfo->DimBmp() ); - } - - if ( iVkbLayoutInfo->DimMaskBmp() ) - { - SetDimKeyMaskBmp( iVkbLayoutInfo->DimMaskBmp() ); - } - - TInt count = iVkbLayoutInfo->HighlightBmps().Count(); - - TRAP_IGNORE( - for ( TInt i = 0; i < count; i++ ) - { - AddKeyHighLightBitmapL(iVkbLayoutInfo->HighlightBmps()[i]); - } - ); - - count = iVkbLayoutInfo->HighlightMaskBmps().Count(); - - TRAP_IGNORE( - for ( TInt i = 0; i < count; i++ ) - { - AddKeyHighLightMaskBitmapL(iVkbLayoutInfo->HighlightMaskBmps()[i]); - } - ); - - count = iVkbLayoutInfo->KeyInfoList().Count(); - TRAP_IGNORE( - for ( TInt i = 0; i < count; i++ ) - { - iVkbLayoutInfo->KeyInfoList()[i]->Key()->SetDimmed( EFalse ); - AddKeyL( iVkbLayoutInfo->KeyInfoList()[i]->Key() ); - } - ); - - TRgb textColor; - TInt error = AknsUtils::GetCachedColor(AknsUtils::SkinInstance(), - textColor, - KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG59); - if (error != KErrNone) - { - textColor = TRgb( KDefaultTextColor ); - } - SetFontColor( textColor ); - - Draw(); - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::Reset -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::Reset() - { - const RPointerArray& keys = KeyArray(); - for(TInt i = keys.Count() - 1 ; i >= 0 ; --i) - { - RemoveKey(keys[i]); - } - - const RPointerArray& bmps = KeyHighlightBmpList(); - for(TInt i = bmps.Count() - 1 ; i >= 0 ; --i) - { - RemoveKeyHighLightBitmap(i); - } - - const RPointerArray& maskbmps = KeyHighlightMaskBmpList(); - for(TInt i = maskbmps.Count() - 1 ; i >= 0 ; --i) - { - RemoveKeyHighLightMaskBitmap(i); - } - - SetDimKeyBmp( NULL ); - SetDimKeyMaskBmp( NULL ); - - iVkbLayoutInfo = NULL; - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::Move -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::Move( const TPoint& aOffset ) - { - TRect rect = Rect(); - rect.Move( aOffset ); - SetRect( rect ); - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::DimKeys -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::DimKeys( const HBufC* aPermitted ) - { - TInt count = iVkbLayoutInfo->KeyInfoList().Count(); - - for ( TInt i = 0; i < count ; i++ ) - { - TChar ch = TChar( (TUint)( KeyArray()[i]->KeyCode() ) ); - TInt index = aPermitted->Locate( ch ) ; - - if ( index == KErrNotFound ) - { - DimKey( KeyArray()[i], ETrue ); - } - } - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::DimKeySet -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::DimKeySet( const HBufC* aSet, TBool aDim ) - { - TInt keyCount = iVkbLayoutInfo->KeyInfoList().Count(); - TInt setCount = const_cast(aSet)->Des().Length(); - TInt findNum = 0; - - for ( TInt i = 0; i < keyCount ; i++ ) - { - TChar ch = TChar( (TUint)( KeyArray()[i]->KeyCode() ) ); - TInt index = aSet->Locate( ch ) ; - - if ( index != KErrNotFound ) - { - findNum++; - DimKey( KeyArray()[i], aDim ); - } - - if ( findNum == setCount ) - { - break; - } - } - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::CancelDims -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::CancelDims() - { - TInt count = iVkbLayoutInfo->KeyInfoList().Count(); - - for ( TInt i = 0; i < count ; i++ ) - { - DimKey( KeyArray()[i], EFalse ); - } - } - -// -------------------------------------------------------------------------- -// CPeninputVkbCtrlExt::ConstructFromResourceL -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputVkbCtrlExt::ConstructFromResourceL() - { - if (iResourceId == KInvalidResId) - { - return; - } - - // Release original resource - if( BackgroundBmp() ) - { - CFbsBitmap* bkBmp = BackgroundBmp(); - delete bkBmp; - SetBackgroundBmp( NULL ); - } - if( BkMaskBmp() ) - { - CFbsBitmap* bkMaskBmp = BkMaskBmp(); - delete bkMaskBmp; - SetBackgroundMaskBmp( NULL ); - } - - TResourceReader resReader; - CCoeEnv::Static()->CreateResourceReaderLC( resReader, iResourceId ); - - TPtrC bmpFileName = resReader.ReadTPtrC(); - TInt32 imgMajorSkinId = resReader.ReadInt32(); - - TAknsItemID id; - TInt skinitemid; - - MAknsSkinInstance* skininstance = AknsUtils::SkinInstance(); - const TInt16 bmpId = resReader.ReadInt16(); - const TInt16 bmpMskId = resReader.ReadInt16(); - skinitemid = resReader.ReadInt16(); - id.Set(TInt(imgMajorSkinId), skinitemid); - - if (bmpId != KInvalidImg) - { - CFbsBitmap* backgroundImg = NULL; - CFbsBitmap* backgroundMaskImg = NULL; - if (bmpMskId != KInvalidImg) - { - AknsUtils::CreateIconL(skininstance, - id, - backgroundImg, - backgroundMaskImg, - bmpFileName, - bmpId, - bmpMskId); - } - else - { - AknsUtils::CreateIconL(skininstance, - id, - backgroundImg, - bmpFileName, - bmpId); - } - - SetBackgroundBmp( backgroundImg ); - SetBackgroundMaskBmp( backgroundMaskImg ); - } - CleanupStack::PopAndDestroy( 1 ); - }