diff -r 000000000000 -r eb1f2e154e89 textinput/peninputsplitqwerty/src/peninputsplitqwertylafdatamgr.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputsplitqwerty/src/peninputsplitqwertylafdatamgr.cpp Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,790 @@ +/* +* 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: peninput VKB data manager +* +*/ + + +// System includes +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "peninputsplitqwertylafdatamgr.h" + +// --------------------------------------------------------------------------- +// C++ destructor +// --------------------------------------------------------------------------- +// +CPeninputQwtLayoutDataInfo::~CPeninputQwtLayoutDataInfo() + { + iKeypad.iRects.Close(); + iKeypad.iCharRects.Close(); + } + +// --------------------------------------------------------------------------- +// C++ destructor +// --------------------------------------------------------------------------- +// +MPeninputLafDataCommon::~MPeninputLafDataCommon() + { + } + +// --------------------------------------------------------------------------- +// Release laf data +// --------------------------------------------------------------------------- +// +void MPeninputLafDataCommon::DestoryDataCommon() + { + iLayoutDataInfo.ResetAndDestroy(); + iLayoutDataInfo.Close(); + } + +// --------------------------------------------------------------------------- +// Symbian constructor +// --------------------------------------------------------------------------- +// +void MPeninputLafDataCommon::ConstructL() + { + ReadLafInfoL(); + } + +// --------------------------------------------------------------------------- +// Retrieve laf data of button specified by aButtonID +// --------------------------------------------------------------------------- +// +const TPeninputButtonLayoutData& MPeninputLafDataCommon::ButtonLayoutData( + TInt aButtonID ) const + { + ASSERT( IsValid() ); + const TPeninputButtonLayoutData* pData = NULL; + + switch ( aButtonID ) + { + case EPeninutWindowCtrlIdMoveBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iMoveButton); + } + break; + case EPeninutWindowCtrlIdCloseBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iCloseButton); + } + break; + case EPeninutWindowCtrlIdOptionBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iOptionButton); + } + break; + case EPeninutWindowCtrlIdBackspaceBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iClearButton); + } + break; + case EPeninutWindowCtrlIdEnterBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iEnterButton); + } + break; + case EPeninutWindowCtrlIdSpaceBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iSpaceButton); + } + break; + case EPeninutWindowCtrlIdShiftBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iShiftButton); + } + break; + case EPeninupWindowCtrlIdArrowLeftBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iLeftButton); + } + break; + case EPeninupWindowCtrlIdArrowRightBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iRightButton); + } + break; + + case EPeninutWindowCtrlIdRangeBtn: + { + pData = &(iLayoutDataInfo[iLayoutType]->iRangeButton); + } + break; + default: + ASSERT( EFalse ); + break; + } + ASSERT( pData ); + return *pData; + } + +// --------------------------------------------------------------------------- +// Retrieve laf data of keypad +// --------------------------------------------------------------------------- +// +const TPeninputKeyLayoutData& MPeninputLafDataCommon::KeypadLayoutData() const + { + ASSERT( IsValid() ); + return iLayoutDataInfo[iLayoutType]->iKeypad; + } + +// --------------------------------------------------------------------------- +// Retrieve laf data of qwerty layout +// --------------------------------------------------------------------------- +// +const CPeninputQwtLayoutDataInfo& MPeninputLafDataCommon::QwtLayoutData() const + { + ASSERT( IsValid() ); + return *iLayoutDataInfo[iLayoutType]; + } + +// --------------------------------------------------------------------------- +// Set layout type +// --------------------------------------------------------------------------- +// +void MPeninputLafDataCommon::SetLayoutType( TInt aLayoutType ) + { + iLayoutType = aLayoutType; + } + +// --------------------------------------------------------------------------- +// Get current layout type +// --------------------------------------------------------------------------- +// +TInt MPeninputLafDataCommon::LayoutType() const + { + return iLayoutType; + } + +// --------------------------------------------------------------------------- +// Set laf option) +// --------------------------------------------------------------------------- +// +void MPeninputLafDataCommon::SetLafOption( TPeninputVkbLafOption aLafOption ) + { + iLafOption = aLafOption; + } + +// --------------------------------------------------------------------------- +// Get current laf option +// --------------------------------------------------------------------------- +// +TPeninputVkbLafOption MPeninputLafDataCommon::LafOption() const + { + return iLafOption; + } + +// --------------------------------------------------------------------------- +// Check whether laf data is valid or not +// --------------------------------------------------------------------------- +// +TBool MPeninputLafDataCommon::IsValid() const + { + return ( iLayoutDataInfo.Count() && iLayoutType != ELayoutNone ) ? ETrue : EFalse; + } + +// --------------------------------------------------------------------------- +// Symbian constructor +// --------------------------------------------------------------------------- +// +CPeninputLafDataFSQ* CPeninputLafDataFSQ::NewL( TInt aLayoutType ) + { + CPeninputLafDataFSQ* self = NewLC( aLayoutType ); + CleanupStack::Pop(); + return self; + } +// --------------------------------------------------------------------------- +// Symbian constructor +// --------------------------------------------------------------------------- +// +CPeninputLafDataFSQ* CPeninputLafDataFSQ::NewLC( TInt aLayoutType ) + { + CPeninputLafDataFSQ* self = new( ELeave ) CPeninputLafDataFSQ( aLayoutType ); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// --------------------------------------------------------------------------- +// C++ destructor +// --------------------------------------------------------------------------- +// +CPeninputLafDataFSQ::~CPeninputLafDataFSQ() + { + DestoryDataCommon(); + } + +// --------------------------------------------------------------------------- +// Read all laf data +// --------------------------------------------------------------------------- +// +void CPeninputLafDataFSQ::ReadLafInfoL() + { + // clean up all the data + iLayoutDataInfo.ResetAndDestroy(); + + CPeninputQwtLayoutDataInfo* info = NULL; + + //ELayout10x3 + info = ReadLC( ELayout10x3, 3, 10 ); + iLayoutDataInfo.AppendL( info ); + CleanupStack::Pop( info ); + + //ELayout11x3 + info = ReadLC( ELayout11x3, 3, 11 ); + iLayoutDataInfo.AppendL( info ); + CleanupStack::Pop( info ); + + //ELayout11x4 + info = ReadLC( ELayout11x4, 4, 11 ); + iLayoutDataInfo.AppendL( info ); + CleanupStack::Pop( info ); + } + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CPeninputLafDataFSQ::CPeninputLafDataFSQ( TInt aLayoutType ) + { + SetLayoutType( aLayoutType ); + } + +// --------------------------------------------------------------------------- +// Read laf data +// --------------------------------------------------------------------------- +// +CPeninputQwtLayoutDataInfo* CPeninputLafDataFSQ::ReadLC( const TInt aLayoutType, + const TInt aRows, + const TInt aCols ) + { + //variety v1, value 0/1 = 10cols/11cols, applay to: + // grid_vkbss_keypad_pane + // aid_vkbss_key_offset + TInt v1 = ( aCols == 10 ) ? 0 : 1; + + //variety v2, value 0/1/2/3 = 10x3/10x4/11x3/11x4, applay to: + // cell_vkbss_key_pane + // bg_cell_vkbss_key_g1 + // cell_vkbss_key_t1 + // cell_vkbss_key_g1 + // cell_vkbss_key_3p_pane + TInt v2 = 0; + switch ( aLayoutType ) + { + case ELayout10x3: v2 = 0; break; + case ELayout11x3: v2 = 2; break; + case ELayout11x4: v2 = 3; break; + default: v2 = 0; + } + + CPeninputQwtLayoutDataInfo* data = new( ELeave ) CPeninputQwtLayoutDataInfo; + CleanupStack::PushL( data ); + + TAknWindowLineLayout linelayout; + TAknLayoutRect layoutrect; + + TAknLayoutRect keypadRect, keypaneRect, keycellRect, keylabelRect; + TAknLayoutRect pic3paneRect; + + TAknTextLineLayout keyText; + + TRect rectAppWin, rectMainWin; + TPoint base; + TInt pic3pLeftWidth, pic3pRightWidth; + + linelayout = AknLayoutScalable_Avkon::application_window(0).LayoutLine(); + rectAppWin = linelayout.Rect(); + + linelayout = AknLayoutScalable_Avkon::popup_fep_vkbss_window(0).LayoutLine(); + layoutrect.LayoutRect( rectAppWin, linelayout ); + rectMainWin = layoutrect.Rect(); + + linelayout = AknLayoutScalable_Avkon::grid_vkbss_keypad_pane(v1).LayoutLine(); + keypadRect.LayoutRect( rectMainWin, linelayout ); + + linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_pane(v2).LayoutLine(); + keypaneRect.LayoutRect( keypadRect.Rect(), linelayout ); + + linelayout = AknLayoutScalable_Avkon::bg_cell_vkbss_key_g1(v2).LayoutLine(); + keycellRect.LayoutRect( keypaneRect.Rect(), linelayout ); + + keyText = AknLayoutScalable_Avkon::cell_vkbss_key_t1(v2).LayoutLine(); + keyText.iB += 3; //todo split-view, temp solution + + linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_g1(v2).LayoutLine(); + keylabelRect.LayoutRect( keypaneRect.Rect(), linelayout ); + + linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane(v2).LayoutLine(); + pic3paneRect.LayoutRect( keypaneRect.Rect(), linelayout ); + + linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g1(0).LayoutLine(); + layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); + pic3pLeftWidth = layoutrect.Rect().Width(); + + linelayout = AknLayoutScalable_Avkon::cell_vkbss_key_3p_pane_g3(0).LayoutLine(); + layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout ); + pic3pRightWidth = layoutrect.Rect().Width(); + + linelayout = AknLayoutScalable_Avkon::aid_vkbss_key_offset(v1).LayoutLine(); + layoutrect.LayoutRect( keypadRect.Rect(), linelayout ); + TInt rowIndentWidth = layoutrect.Rect().Width(); + + base = rectMainWin.iTl; + + data->iClientRect = RelativeRect( rectMainWin, base ); + data->iQwtRect = rectMainWin; //screen coord-sys ? + + TRect rectOfKeypad = RelativeRect( keypadRect.Rect(), base ); + TRect rectOfButtons = rectOfKeypad; + rectOfKeypad.iBr.iY -= keypaneRect.Rect().Height(); + rectOfButtons.iTl.iY += rectOfKeypad.Height(); + + //keypad + data->iKeypad.iKaypadRect = rectOfKeypad; + data->iKeypad.iTextLayout = keyText; + data->iKeypad.iFont = AknLayoutUtils::FontFromId( keyText.iFont, NULL ); + + //all template rects are relative to TL of keypad + TRect rectXPane = RelativeRect( keypaneRect.Rect(), base ); + TRect rectXBorder = RelativeRect( keycellRect.Rect(), base ); + TRect rectXInner = RelativeRect( keylabelRect.Rect(), base ); + + rectXPane.Move( - rectOfKeypad.iTl ); //translate to keypad coord-sys + rectXBorder.Move( - rectOfKeypad.iTl ); + rectXInner.Move( - rectOfKeypad.iTl ); + + for ( TInt i = 0; i < aRows; i++ ) + { + TInt indent = ( i % 2 == 1 ) ? rowIndentWidth : 0; + for ( TInt j = 0; j < aCols; j++ ) + { + TRect bound = rectXBorder; + bound.Move( j * rectXPane.Width(), i * rectXPane.Height() ); + bound.Move( indent, 0 ); + + data->iKeypad.iRects.AppendL( bound ); + + TRect inner = rectXPane; + inner.Move( j * rectXPane.Width(), i * rectXPane.Height() ); + inner.Move( indent, 0 ); + + TAknLayoutText keyTextLayout; + keyTextLayout.LayoutText( inner, keyText ); + data->iKeypad.iCharRects.AppendL( keyTextLayout.TextRect() ); + } + } + + //buttons + + //all template rects are relative to TL of buttons row + rectXPane = keypaneRect.Rect(); + rectXBorder = RelativeRect( keycellRect.Rect(), rectXPane.iTl ); + rectXInner = RelativeRect( keylabelRect.Rect(), rectXPane.iTl ); + TRect rect3PicPane = RelativeRect( pic3paneRect.Rect(), rectXPane.iTl ); + rectXPane.Move( - rectXPane.iTl ); + + TInt spaceBtnWidth = rectOfButtons.Width() - rectXPane.Width() * 8; + TInt dx = rectOfButtons.iTl.iX; + TInt dy = rectOfButtons.iTl.iY; + + data->iCloseButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iCloseButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + data->iShiftButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iShiftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + data->iRangeButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iRangeButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + data->iLeftButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iLeftButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + TInt expand = spaceBtnWidth - rectXPane.Width(); + data->iSpaceButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iSpaceButton.iRect.Resize( expand, 0 ); + data->iSpaceButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + data->iSpaceButton.iInnerRect.Resize( expand, 0 ); + data->iSpaceButtonEx.iIconsFrameRect = OffsetRect( rect3PicPane, dx, dy ); + data->iSpaceButtonEx.iIconsFrameRect.Resize( expand, 0 ); + data->iSpaceButtonEx.iMiddleIconRect = data->iSpaceButtonEx.iIconsFrameRect; + data->iSpaceButtonEx.iMiddleIconRect.iTl.iX += pic3pLeftWidth; + data->iSpaceButtonEx.iMiddleIconRect.iBr.iX -= pic3pRightWidth; + dx += spaceBtnWidth; + + data->iRightButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iRightButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + data->iOptionButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iOptionButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + data->iEnterButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iEnterButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + data->iClearButton.iRect = OffsetRect( rectXBorder, dx, dy ); + data->iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy ); + dx += rectXPane.Width(); + + return data; + } + +// --------------------------------------------------------------------------- +// calculate relative rect base on given point +// --------------------------------------------------------------------------- +// +TRect CPeninputLafDataFSQ::RelativeRect( const TRect& aRect, const TPoint& aPoint ) + { + TRect rect = aRect; + rect.Move( - aPoint.iX, - aPoint.iY ); + return rect; + } + +// --------------------------------------------------------------------------- +// Offset rect +// --------------------------------------------------------------------------- +// +TRect CPeninputLafDataFSQ::OffsetRect( const TRect& aRect, TInt aDx, TInt aDy ) + { + TRect rect = aRect; + rect.Move( aDx, aDy ); + return rect; + } + + +// --------------------------------------------------------------------------- +// Symbian constructor +// --------------------------------------------------------------------------- +// +CPeninputSplitQwertyLafMgr* CPeninputSplitQwertyLafMgr::NewL() + { + CPeninputSplitQwertyLafMgr* self = NewLC(); + CleanupStack::Pop(self); + + return self; + } + +// --------------------------------------------------------------------------- +// Symbian constructor +// --------------------------------------------------------------------------- +// +CPeninputSplitQwertyLafMgr* CPeninputSplitQwertyLafMgr::NewLC() + { + CPeninputSplitQwertyLafMgr* self = new ( ELeave ) CPeninputSplitQwertyLafMgr(); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// --------------------------------------------------------------------------- +// C++ destructor +// --------------------------------------------------------------------------- +// +CPeninputSplitQwertyLafMgr::~CPeninputSplitQwertyLafMgr() + { + delete iLafData; + iLafData = NULL; + } + +// --------------------------------------------------------------------------- +// Set input mode and reload laf +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::SetInputModeL( TPluginInputMode aInputMode ) + { + if ( iInputMode == aInputMode ) + { + return; + } + + if ( iLafData ) + { + delete iLafData; + iLafData = NULL; + } + + if ( aInputMode == EPluginInputModeFSQ ) + { + iLafData = CPeninputLafDataFSQ::NewL( ELayoutNone ); + } + else + { + User::Leave( KErrNotSupported ); + } + } + +// --------------------------------------------------------------------------- +// Get current input mode +// --------------------------------------------------------------------------- +// +TPluginInputMode CPeninputSplitQwertyLafMgr::InputMode() const + { + return iInputMode; + } + +// --------------------------------------------------------------------------- +// Set layout type +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::SetLayoutType( TPeninputQwtLayoutType aLayoutType ) + { + ASSERT( iLafData ); + if ( iLafData ) + { + iLafData->SetLayoutType( aLayoutType ); + } + } + +// --------------------------------------------------------------------------- +// Get layout type by row and column count +// --------------------------------------------------------------------------- +// +TPeninputQwtLayoutType CPeninputSplitQwertyLafMgr::LayoutTypeFromRowsColumns( + const TInt aRows, + const TInt aColumns ) + { + TPeninputQwtLayoutType ret = ELayoutNone; + + if ( aRows == 3 && aColumns == 10 ) + { + ret = ELayout10x3; + } + else if ( aRows == 3 && aColumns == 11 ) + { + ret = ELayout11x3; + } + else if ( aRows == 4 && aColumns == 11 ) + { + ret = ELayout11x4; + } + else + { + ret = ELayoutNone; + } + + return ret; + } + +// --------------------------------------------------------------------------- +// Set option ( and reload laf ) +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::SetLafOption( TPeninputVkbLafOption aOption ) + { + if ( iLafData->LafOption() == aOption ) + { + return; + } + + iLafData->SetLafOption( aOption ); + TRAP_IGNORE( iLafData->ConstructL() ); + } + +// --------------------------------------------------------------------------- +// Get current option +// --------------------------------------------------------------------------- +// +TPeninputVkbLafOption CPeninputSplitQwertyLafMgr::OptionType() const + { + return iLafData->LafOption(); + } + +// --------------------------------------------------------------------------- +// Check whether laf data is valid or not +// --------------------------------------------------------------------------- +// +TBool CPeninputSplitQwertyLafMgr::IsValid() + { + if ( !iLafData ) + { + return EFalse; + } + + return iLafData->IsValid(); + } + +// --------------------------------------------------------------------------- +// Reload laf data +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::UpdateLafDataL() + { + iLafData->ConstructL(); + } + +// --------------------------------------------------------------------------- +// Get rect of entire ui, screen coord-sys +// --------------------------------------------------------------------------- +// +const TRect& CPeninputSplitQwertyLafMgr::EntirePaneRect() const + { + ASSERT( iLafData ); + return iLafData->QwtLayoutData().iQwtRect; + } + +// --------------------------------------------------------------------------- +// Get rect of entire ui, client coord-sys +// --------------------------------------------------------------------------- +// +const TRect& CPeninputSplitQwertyLafMgr::ClientRect() const + { + ASSERT( iLafData ); + return iLafData->QwtLayoutData().iClientRect; + } + +// --------------------------------------------------------------------------- +// Get rect of button ctrl +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::GetButtonRect( TPeninputCommonCtrlID aButtonID, + TRect& aOutterRect, + TRect& aInnerRect ) + { + ASSERT( iLafData ); + const TPeninputButtonLayoutData& data = iLafData->ButtonLayoutData( aButtonID ); + aOutterRect = data.iRect; + aInnerRect = data.iInnerRect; + } + + +// --------------------------------------------------------------------------- +// Get rect of virtual keypad ctrl +// --------------------------------------------------------------------------- +// +const TRect& CPeninputSplitQwertyLafMgr::KeypadRect() const + { + ASSERT( iLafData ); + const TPeninputKeyLayoutData& data = iLafData->KeypadLayoutData(); + return data.iKaypadRect; + } + +// --------------------------------------------------------------------------- +// Get rect of virtual key ctrl +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::GetKeyRect( TInt aCol, TInt aRow, + TRect& aKeyRect, + TRect& aCharRect ) const + { + ASSERT(iLafData); + TInt colNum = 0; + TInt index = 0; + switch( iLafData->LayoutType() ) + { + case ELayout10x3: + { + colNum = 10; + } + break; + case ELayout11x3: + { + colNum = 11; + } + break; + case ELayout11x4: + { + colNum = 11; + } + break; + } + index = aRow * colNum + aCol; + aKeyRect = iLafData->KeypadLayoutData().iRects[index]; + aCharRect = iLafData->KeypadLayoutData().iCharRects[index]; + } + +// --------------------------------------------------------------------------- +// Get text font of virtual keypad ctrl +// --------------------------------------------------------------------------- +// +const CFont* CPeninputSplitQwertyLafMgr::KeyTextFont() const + { + ASSERT( iLafData ); + return iLafData->KeypadLayoutData().iFont; + } + +// --------------------------------------------------------------------------- +// Get text layout of virtual keypad ctrl +// --------------------------------------------------------------------------- +// +TAknTextLineLayout CPeninputSplitQwertyLafMgr::KeyTextLayout() const + { + ASSERT( iLafData ); + return iLafData->KeypadLayoutData().iTextLayout; + } + +// --------------------------------------------------------------------------- +// Get rect of preview bubble ctrl +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::GetPreviewWndRect( TRect& aOutRect, + TRect& aInnerRect ) const + { + aOutRect = iLafData->QwtLayoutData().iPreviewWndRect; + aInnerRect = iLafData->QwtLayoutData().iPreviewWndInnerRect; + } + +// --------------------------------------------------------------------------- +// Get text layout of preview bubble +// --------------------------------------------------------------------------- +// +TAknTextLineLayout CPeninputSplitQwertyLafMgr::PreviewWndText() const + { + return iLafData->QwtLayoutData().iPreviewWndText; + } + +// --------------------------------------------------------------------------- +// Get 3-pieces info of space button +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::GetSpaceButtonExLayoutInfo( TRect& aIconsFrameRect, + TRect& aMiddleIconRect ) const + { + ASSERT( iLafData ); + aIconsFrameRect = iLafData->QwtLayoutData().iSpaceButtonEx.iIconsFrameRect; + aMiddleIconRect = iLafData->QwtLayoutData().iSpaceButtonEx.iMiddleIconRect; + } + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CPeninputSplitQwertyLafMgr::CPeninputSplitQwertyLafMgr() + : iInputMode(EPluginInputModeNone) + { + } + +// --------------------------------------------------------------------------- +// CPeninputSplitQwertyLafMgr::ConstructL +// (other items were commented in a header) +// --------------------------------------------------------------------------- +// +void CPeninputSplitQwertyLafMgr::ConstructL() + { + } +// End Of File