diff -r fc42a86c98e3 -r 694fa80c203c textinput/peninputcommonlayout/src/peninputdatamgr.cpp --- a/textinput/peninputcommonlayout/src/peninputdatamgr.cpp Wed Jun 23 04:57:58 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,488 +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 the common layout data manager -* -*/ - - -// System includes -#include -#include -#include // Use resource utils,laf env,rep notifier -#include -#include -#include - -// User includes -#include "peninputdatamgr.h" -#include "peninputdataprovider.h" -#include "peninputlayoutcontext.h" - - -// ======== MEMBER FUNCTIONS ======== - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::NewL -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputDataMgr* CPeninputDataMgr::NewL( - MPeninputLayoutContext* aContext ) - { - CPeninputDataMgr* self = NewLC( aContext ); - CleanupStack::Pop( self ); - - return self; - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::NewLC -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputDataMgr* CPeninputDataMgr::NewLC( - MPeninputLayoutContext* aContext ) - { - CPeninputDataMgr* self = new ( ELeave ) CPeninputDataMgr( aContext ); - CleanupStack::PushL( self ); - self->ConstructL(); - - return self; - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::~CPeninputDataMgr -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputDataMgr::~CPeninputDataMgr() - { - delete iGSRepositoryWatcher; - delete iGSRepository; - delete iAknFepRepository; - delete iUserDefinedResource; - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::CPeninputDataMgr -// (other items were commented in a header). -// -------------------------------------------------------------------------- -// -EXPORT_C CPeninputDataMgr::CPeninputDataMgr( - MPeninputLayoutContext* aContext ) - : iContext(aContext), - iUnitWidthSet(EFalse), - iUnitHeightSet(EFalse) - { - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::ConstructL -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::ConstructL() - { - TInt ret = 0; - - // Construct aknfep CenRep - TRAP( ret, iAknFepRepository = CRepository::NewL( KCRUidAknFep ) ); - - // Construct GS CenRep - TRAP( ret, iGSRepository = - CRepository::NewL( KCRUidPersonalizationSettings ) ); - - if ( iGSRepository ) - { - // Read Language - iGSRepository->Get( KSettingsPenInputLang, iInputLanguage ); - } - - // Add GS Watcher - if ( ret == KErrNone ) - { - iGSRepositoryWatcher = CAknFepRepositoryWatcher::NewL( - KCRUidPersonalizationSettings, - TCallBack( HandleGSRepositoryCallBack, this ), - iGSRepository ); - } - - // Call init function, which is virutal function - InitMore(); - } - -// --------------------------------------------------------------------------- -// CPeninputDataMgr::IsShiftPermitted -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPeninputDataMgr::IsShiftPermitted() - { - if( !iAllowCaseChange && iCurrentRange == ERangeNative ) - { - return EFalse; - } - - return (iPermittedCase & ECaseText) || - (iPermittedCase & ECaseInverseText); - } - -// --------------------------------------------------------------------------- -// CPeninputDataMgr::IsCapsLockPermitted -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPeninputDataMgr::IsCapsLockPermitted() - { - if( !iAllowCaseChange && iCurrentRange == ERangeNative ) - { - return EFalse; - } - - return iPermittedCase & ECaseUpper; - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::SetData -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::SetData( TPeninputDataType aDataType, - TAny* aData ) - { - switch ( aDataType ) - { - case EPeninputDataTypeCase: - { - iCase = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeInputLanguage: - { - iInputLanguage = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypePermittedRange: - { - iPermittedRange = *( ( TInt* ) aData ); - } - break; - case EAkninputDataTypeAllowCaseChange: - { - iAllowCaseChange = *((TBool*)aData); - } - break; - case EPeninputDataTypePermittedCase: - { - iPermittedCase = *( (TInt* ) aData ); - } - break; - case EPeninputDataTypeCurrentRange: - { - iCurrentRange = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeClientLayout: - { - iClientLayout = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeVkbLayout: - { - iVkbLayoutId = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeNumericKeymap: - { - iEditorNumericKeymap = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeShiftDown: - { - iShiftDown = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeCapslockDown: - { - iCapslockDown = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeCurrentAccent: - { - iCurrentAccent = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeScreenMode: - { - SetScreenMode( *( ( TPixelsTwipsAndRotation* ) aData ) ); - } - break; - case EPeninputDataTypeScreenSize: - { - iScreenSize = *( ( TSize* ) aData ); - } - break; - case EPeninputDataTypeWindowPosition: - { - iWindowPosition = *( ( TInt* ) aData ); - } - break; - case EPeninputDataTypeUnitWidth: - { - iUnitWidth = *( ( TInt* ) aData ); - iUnitWidthSet = ETrue; - } - break; - case EPeninputDataTypeUnitHeight: - { - iUnitHeight = *( ( TInt* ) aData ); - iUnitHeightSet = ETrue; - } - break; - case EPeninputDataTypeDataQueryDlgRect: - { - iDataQueryDlgRect = *( ( TRect* ) aData ); - } - break; - case EAknFepDataTypeUseDefinedResource: - { - delete iUserDefinedResource; - TInt* len = (TInt*)((TUint8*)aData - 4); - TPtrC16 keymapRes((const TUint16*)aData, *len/2); - iUserDefinedResource = keymapRes.Alloc(); - } - break; - case EPeninputDataTypeReserve_1: - { - iReserve_1 = aData; - } - break; - case EAkninputDataTypeSizeChanging: - { - iLayoutSizeChanging = *((TBool*)aData); - } - break; - case EAkninputDataTypeLatchedSet: - { - iLatched = *((TBool*)aData); - } - break; - default: - break; - } - - NotifyEngine( aDataType, aData ) ; - } - - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::RequestData -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C TAny* CPeninputDataMgr::RequestData( TPeninputDataType aDataType ) - { - switch ( aDataType ) - { - case EPeninputDataTypeCase: - return &iCase; - case EPeninputDataTypeInputLanguage: - return &iInputLanguage; - case EPeninputDataTypePermittedRange: - return &iPermittedRange; - case EPeninputDataTypePermittedCase: - return &iPermittedCase; - case EPeninputDataTypeCurrentRange: - return &iCurrentRange; - case EPeninputDataTypeClientLayout: - return &iClientLayout; - case EPeninputDataTypeVkbLayout: - return &iVkbLayoutId; - case EPeninputDataTypeNumericKeymap: - return &iEditorNumericKeymap; - case EPeninputDataTypeShiftDown: - return &iShiftDown; - case EPeninputDataTypeCapslockDown: - return &iCapslockDown; - case EPeninputDataTypeCurrentAccent: - return &iCurrentAccent; - case EPeninputDataTypeScreenMode: - return &iScreenMode; - case EPeninputDataTypeScreenSize: - return &iScreenSize; - case EPeninputDataTypeWindowPosition: - return &iWindowPosition; - case EPeninputDataTypePositionSettingId: - return &iPositionSettingId; - case EPeninputDataTypeUnitWidth: - return &iUnitWidth; - case EPeninputDataTypeUnitHeight: - return &iUnitHeight; - case EPeninputDataTypeDataQueryDlgRect: - return &iDataQueryDlgRect; - case EAknFepDataTypeUseDefinedResource: - return iUserDefinedResource; - case EPeninputDataTypeReserve_1: - return iReserve_1; - case EAkninputDataTypeGuideLineTop: - return &iGuideLineTop; - case EAkninputDataTypeGuideLineBottom: - return &iGuideLineBottom; - case EAkninputDataTypeSizeChanging: - return &iLayoutSizeChanging; - case EAkninputDataTypeLatchedSet: - return &iLatched; - case EAkninputDataTypeUnitSizeSet: - { - iUnitSizeSet = (iUnitWidthSet & iUnitHeightSet); - return &iUnitSizeSet; - } - default: - break; - } - - return NULL; - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::Reset -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::Reset() - { - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::HandleGSRepositoryCallBack -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C TInt CPeninputDataMgr::HandleGSRepositoryCallBack( TAny* aPtr ) - { - CPeninputDataMgr* self = static_cast( aPtr ); - - CAknFepRepositoryWatcher* watcher = self->iGSRepositoryWatcher; - if ( watcher ) - { - self->HandleGSRepositoryChange( watcher->ChangedKey() ); - } - - return KErrNone; - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::SaveKey -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::SaveKey( TInt aKey, TInt aValue ) - { - if ( iAknFepRepository ) - { - iAknFepRepository->Set( aKey, aValue ); - } - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::SetScreenMode -// (other items were commented in a header). -// -------------------------------------------------------------------------- -// -void CPeninputDataMgr::SetScreenMode( - const TPixelsTwipsAndRotation& aScreenMode ) - { - switch ( aScreenMode.iRotation ) - { - case CFbsBitGc::EGraphicsOrientationNormal: - { - iPositionSettingId = KAknFepHwrWindowPosition0; - } - break; - case CFbsBitGc::EGraphicsOrientationRotated90: - { - iPositionSettingId = KAknFepHwrWindowPosition1; - } - break; - case CFbsBitGc::EGraphicsOrientationRotated180: - { - iPositionSettingId = KAknFepHwrWindowPosition2; - } - break; - case CFbsBitGc::EGraphicsOrientationRotated270: - { - iPositionSettingId = KAknFepHwrWindowPosition3; - } - break; - default: - break; - } - - iScreenSize = aScreenMode.iPixelSize; - iScreenMode = aScreenMode; - if ( iAknFepRepository ) - { - iAknFepRepository->Get( iPositionSettingId, iWindowPosition ); - } - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::InitMore -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::InitMore() - { - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::HandleGSRepositoryChange -// (other items were commented in a header) -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::HandleGSRepositoryChange( TInt /*aChangedKey*/ ) - { - } - -// -------------------------------------------------------------------------- -// CPeninputDataMgr::NotifyEngine -// (other items were commented in a header). -// -------------------------------------------------------------------------- -// -EXPORT_C void CPeninputDataMgr::NotifyEngine( TPeninputDataType aType, - TAny* aData ) - { - TInt data = *( (TInt*) aData ); - switch ( aType ) - { - case EPeninputDataTypeCurrentRange: - if (iAknFepRepository) - { - if ( ( data == ERangeEnglish ) || ( data == ERangeNative ) ) - { - iAknFepRepository->Set(KAknFepLastUsedRange, data ); - } - } - break; - case EPeninputDataTypeWindowPosition: - if (iAknFepRepository) - { - iAknFepRepository->Set(iPositionSettingId, data ); - } - break; - default: - break; - } - } -