diff -r 000000000000 -r eb1f2e154e89 textinput/peninputfingerhwr/src/peninputfingerhwrlafmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputfingerhwr/src/peninputfingerhwrlafmanager.cpp Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,801 @@ +/* +* Copyright (c) 2009 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 LAF manager. +* +*/ + +// INCLUDES +#include +#include + +#include "peninputfingerhwrlafmanager.h" +#include "peninputfingerhwrcontrolid.h" + +#define LAF_MODIFY 1 + + +// --------------------------------------------------------------------------- +// Symbian Constructor +// --------------------------------------------------------------------------- +// +CPeninputFingerHwrLAFManager* CPeninputFingerHwrLAFManager::NewL() + { + CPeninputFingerHwrLAFManager* self = CPeninputFingerHwrLAFManager::NewLC(); + CleanupStack::Pop(); // self; + return self; + } + +// --------------------------------------------------------------------------- +// Symbian Constructor +// --------------------------------------------------------------------------- +// +CPeninputFingerHwrLAFManager* CPeninputFingerHwrLAFManager::NewLC() + { + CPeninputFingerHwrLAFManager* self = new( ELeave ) CPeninputFingerHwrLAFManager(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// c++ destructor +// --------------------------------------------------------------------------- +// +CPeninputFingerHwrLAFManager::~CPeninputFingerHwrLAFManager() + { + //nothing + iSCTrectArray.Reset(); + iSCTrectArray.Close(); + } + + +// --------------------------------------------------------------------------- +// read laf data. +// --------------------------------------------------------------------------- +// +void CPeninputFingerHwrLAFManager::ReadLafInfo() + { + // Screen + TRect rect; + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, rect); + iScreenSize = rect.Size(); + + iIsLandscape = iScreenSize.iWidth < iScreenSize.iHeight ? EFalse : ETrue; + + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EApplicationWindow, rect); + + // finger Layout + TAknWindowLineLayout fshwrlayout; + TAknLayoutRect fshwrRect; + + fshwrlayout = AknLayoutScalable_Avkon::main_fep_fshwr2_pane(0).LayoutLine(); + fshwrRect.LayoutRect(rect, fshwrlayout); + + iLayoutRect = fshwrRect.Rect(); + iLayoutOffset = iLayoutRect.iTl; + + // ICF & Keypad + TAknWindowLineLayout icflayoutcn,icflayoutbgcn; + TAknTextLineLayout icflefttext; + TAknTextLineLayout icflefttext1, icflefttext2, icflefttext3; + TAknLayoutRect icfrectlatin, icfrectcn; + + if (iIsLandscape) + { + icflayoutcn = AknLayoutScalable_Avkon::fshwr2_icf_pane(1).LayoutLine(); + } + else + { + icflayoutcn = AknLayoutScalable_Avkon::fshwr2_icf_pane(0).LayoutLine(); + } + + icfrectcn.LayoutRect(fshwrRect.Rect(), icflayoutcn); + + TAknLayoutScalableParameterLimits entryPaneVariety = + AknLayoutScalable_Avkon::fshwr2_icf_pane_t1_ParamLimits(0); + TInt maxRow = entryPaneVariety.LastRow(); + + icflefttext = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 0).LayoutLine(); + + icflefttext1 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 1).LayoutLine(); + icflefttext2 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, 2).LayoutLine(); + icflefttext3 = AknLayoutScalable_Avkon::fshwr2_icf_pane_t1(0, 0, maxRow).LayoutLine(); + iIcfTextLeftMarginCn = icflefttext.il; + iIcfTextRightMarginCn = iIcfTextLeftMarginCn; + + TAknLayoutText ctxt, ctxt1, ctxt2, ctxt3; + ctxt.LayoutText( icfrectcn.Rect(), icflefttext ); + ctxt1.LayoutText( icfrectcn.Rect(), icflefttext1 ); + ctxt2.LayoutText( icfrectcn.Rect(), icflefttext2 ); + ctxt3.LayoutText( icfrectcn.Rect(), icflefttext3 ); + + iIcfTextTopMarginCn = ctxt.TextRect().iTl.iY - icfrectcn.Rect().iTl.iY; + iIcfTextLineSpaceMarginCn = ctxt1.TextRect().iTl.iY - ctxt.TextRect().iBr.iY; + iIcfTextBottomMarginCn = icfrectcn.Rect().iBr.iY - ctxt3.TextRect().iBr.iY + - iIcfTextLineSpaceMarginCn; + iIcfTextHeightCn = ctxt.TextRect().Height(); + + iIcfFont = const_cast(AknLayoutUtils::FontFromId(icflefttext.iFont, NULL)); + + iRectIcf = icfrectcn.Rect(); + + // candidate list + TAknWindowLineLayout candrowpane, candrowpane2, candlistpane, cellpane, candbgpane; + TAknLayoutRect candpaneRect, candrowpaneRect, candrowpaneRect2, cellpaneRect1, cellpaneRect2; + TAknLayoutRect cellpaneRect3, cellpaneRect; + + if (iIsLandscape) + { + candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(1). + LayoutLine(); + } + else + { + candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(0). + LayoutLine(); + } + candpaneRect.LayoutRect( fshwrRect.Rect(), candlistpane ); + rect = candpaneRect.Rect(); + candrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1). + LayoutLine(); + candrowpaneRect.LayoutRect( rect, candrowpane ); + + candrowpane2 = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 2). + LayoutLine(); + candrowpaneRect2.LayoutRect( rect, candrowpane2 ); + + + cellpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3 , 0 , 0 ). + LayoutLine(); + cellpaneRect.LayoutRect( candrowpaneRect.Rect(), cellpane ); + + candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); + cellpaneRect1.LayoutRect( cellpaneRect.Rect(), candbgpane ); + + cellpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3 , 1 , 0 ). + LayoutLine(); + cellpaneRect.LayoutRect( candrowpaneRect.Rect(), cellpane ); + + candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); + cellpaneRect2.LayoutRect( cellpaneRect.Rect(), candbgpane ); + + + + cellpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 3 , 0 , 1 ). + LayoutLine(); + cellpaneRect.LayoutRect( candrowpaneRect2.Rect(), cellpane ); + + candbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(3).LayoutLine(); + cellpaneRect3.LayoutRect( cellpaneRect.Rect(), candbgpane ); + + + iCandsHorizontalMargin = cellpaneRect2.Rect().iTl.iX - cellpaneRect1.Rect().iBr.iX; + iCandsVerticalMargin = cellpaneRect3.Rect().iTl.iY - cellpaneRect1.Rect().iBr.iY; + + iCandsUnitWidth = cellpaneRect1.Rect().Width(); + iCandsUnitHeight = cellpaneRect1.Rect().Height() ; + + iCandsNaviHeight = cellpaneRect1.Rect().Height(); + iCandidateLTPos = candrowpaneRect.Rect().iTl; + iPredictiveLTPos = candrowpaneRect2.Rect().iTl; + + TAknTextLineLayout candstxtlayout = + AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane_t1(3).LayoutLine(); + TAknLayoutText candstxt; + candstxt.LayoutText( cellpaneRect1.Rect(), candstxtlayout ); + iCandsFont = const_cast( AknLayoutUtils::FontFromId( candstxtlayout.iFont, NULL ) ); + iCandsTextMargin = candstxt.TextRect().iTl.iX - cellpaneRect1.Rect().iTl.iX; + + + TAknWindowLineLayout btnrowpane, btnpane, btnbgpane; + TAknLayoutRect btnrowRect, btnRect, btnbgRect; + + // Get the first row rect ************************************************* + btnrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 0). + LayoutLine(); + btnrowRect.LayoutRect(candpaneRect.Rect(), btnrowpane); + // Close Button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 0 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnClose = btnbgRect.Rect(); + + // Range Button with mark + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 1 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnRangeChn = btnbgRect.Rect(); + iRectBtnRangeEng = iRectBtnRangeChn; + iRectBtnRangeNum = iRectBtnRangeEng; + + // SCT button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 2 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnRangeSmb = btnbgRect.Rect(); + + // Backspace button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 2 , 3 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(2). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnBackspace = btnbgRect.Rect(); + + // Get the second row rect ************************************************** + btnrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1). + LayoutLine(); + btnrowRect.LayoutRect(candpaneRect.Rect(), btnrowpane); + + // Option button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 0 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnOption = btnbgRect.Rect(); + + // Switch mode button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 1 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnImeSwitch = btnbgRect.Rect(); + + // Arrow up button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 2 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnArrowUp = btnbgRect.Rect(); + iRectBtnSctPage = iRectBtnArrowUp; + + + // Get the third row rect ************************************************** + btnrowpane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 2). + LayoutLine(); + btnrowRect.LayoutRect(candpaneRect.Rect(), btnrowpane); + + // Arrow left button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 0 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnArrowLeft = btnbgRect.Rect(); + + // Arrow right button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 1 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnArrowRight = btnbgRect.Rect(); + + // Arrow down button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 1 , 2 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(1). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + iRectBtnArrowDown = btnbgRect.Rect(); + + // Space button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 0 , 0 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(0). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + + iRectFixSctpad = btnrowRect.Rect(); + + iRectSpase = btnbgRect.Rect(); + iRectSpase.Move(-iRectFixSctpad.iTl ); + + // Enter button + btnpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_pane( 0 , 1 , 0 ). + LayoutLine(); + btnRect.LayoutRect(btnrowRect.Rect(), btnpane); + btnbgpane = AknLayoutScalable_Avkon::fshwr2_func_candi_cell_bg_pane(0). + LayoutLine(); + btnbgRect.LayoutRect(btnRect.Rect(), btnbgpane); + + iRectEnter = btnbgRect.Rect(); + iRectEnter.Move(-iRectFixSctpad.iTl); + + iSizeFixSctpadCell = iRectSpase.Size(); + + // Writing box + TAknWindowLineLayout writingboxpane; + TAknLayoutRect boxRect; + writingboxpane = AknLayoutScalable_Avkon::fshwr2_hwr_syb_pane(0).LayoutLine(); + boxRect.LayoutRect(fshwrRect.Rect(), writingboxpane); + iRectWritingBox = boxRect.Rect(); + iRectNumpad = iRectWritingBox; + iRectSctpad = iRectWritingBox; + + // virtual key size + TAknWindowLineLayout keypane, keybgpane; + TAknLayoutRect keyRect, keybgRect; + + TAknLayoutScalableParameterLimits sctPaneVariety = + AknLayoutScalable_Avkon::cell_fshwr2_syb_pane_ParamLimits(0); + + iSctpadRowCount = sctPaneVariety.LastRow() + 1; + iSctpadColCount = sctPaneVariety.LastColumn() + 1; + + iSizeBtnPadding = TSize(6, 6); + + iSCTrectArray.Reset(); + for(TInt i = 0; i < iSctpadRowCount; i++) + { + for ( TInt j = 0; j < iSctpadColCount; j++ ) + { + keypane = AknLayoutScalable_Avkon::cell_fshwr2_syb_pane(0, j, i).LayoutLine(); + keyRect.LayoutRect(boxRect.Rect(), keypane); + keybgpane = AknLayoutScalable_Avkon::cell_fshwr2_syb_bg_pane(0).LayoutLine(); + keybgRect.LayoutRect(keyRect.Rect(), keybgpane); + iSCTrectArray.Append( keybgRect.Rect()); + } + } + iSizeNumpadCell = keybgRect.Rect().Size(); + iSizeSctpadCell = iSizeNumpadCell; + + // preview popup window + TAknWindowLineLayout previewWnd, previewBackground, previewWndInner; + TAknLayoutRect previewWndRect, previewBackgroundRect, previewWndInnerRect; + TAknLayoutText previewWndText; + previewWnd = AknLayoutScalable_Avkon::popup_fshwr2_char_preview_window(0).LayoutLine(); + + previewWndRect.LayoutRect( iLayoutRect, previewWnd ); + previewBackground = AknLayoutScalable_Avkon::bg_popup_fep_char_preview_window_cp01().LayoutLine(); + previewBackgroundRect.LayoutRect( previewWndRect.Rect(), previewBackground ); + iPreviewWndRect = previewBackgroundRect.Rect(); + + previewWndInner = AknLayoutScalable_Avkon::bg_popup_fep_char_preview_window_g9().LayoutLine(); + previewWndInnerRect.LayoutRect( previewBackgroundRect.Rect(), previewWndInner ); + + iPreviewWndInnerRect = previewWndInnerRect.Rect(); + iPreviewWndText = + AknLayoutScalable_Avkon::popup_fshwr2_char_preview_window_t1(0).LayoutLine(); + previewWndText.LayoutText(previewWndRect.Rect(), iPreviewWndText); + iBubbleFont = previewWndText.Font(); + } + + +// --------------------------------------------------------------------------- +// get screen orientation. +// --------------------------------------------------------------------------- +// +TBool CPeninputFingerHwrLAFManager::IsLandscape() + { + return iIsLandscape; + } + + +// --------------------------------------------------------------------------- +// get rect of layout. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::LayoutRect() + { + return iLayoutRect; + } + + +// --------------------------------------------------------------------------- +// get rect of specified control. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::CtrlRect( TInt aCtrlId ) + { + switch ( aCtrlId ) + { + case EHwrCtrlIdInputContextField: + { + return iRectIcf; + } + case EHwrCtrlIdWritingBox: + { + return iRectWritingBox; + } + case EHwrCtrlIdNumpad: + { + return iRectNumpad; + } + case EHwrCtrlIdSctpad: + { + return iRectSctpad; + } + case EHwrCtrlIdSctpadFix: + { + return iRectFixSctpad; + } + case EHwrCtrlIdClose: + { + return iRectBtnClose; + } + case EHwrCtrlIdRangeSelector: + { + return iRectBtnRangeChn; + } + case EHwrCtrlIdSymbolButton: + { + return iRectBtnRangeSmb; + } + case EHwrCtrlIdBackspace: + { + return iRectBtnBackspace; + } + case EHwrCtrlIdArrowUp: + { + return iRectBtnArrowUp; + } + case EHwrCtrlIdArrowDown: + { + return iRectBtnArrowDown; + } + case EHwrCtrlIdArrowLeft: + { + return iRectBtnArrowLeft; + } + case EHwrCtrlIdArrowRight: + { + return iRectBtnArrowRight; + } + case EHwrCtrlIdLanguageOption: + { + return iRectBtnOption; + } + case EHwrCtrlIdVkbSwitcher: + { + return iRectBtnImeSwitch; + } + case EHwrCtrlIdSctPage0Btn: + case EHwrCtrlIdSctPage1Btn: + case EHwrCtrlIdSctPage2Btn: + { + return iRectBtnSctPage; + } + } + return TRect(); + } + +// --------------------------------------------------------------------------- +// get rect of ICF control. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::IcfRect() + { + return iRectIcf; + } + +// --------------------------------------------------------------------------- +// get left margin of icf. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::IcfLeftMargin() + { + return iIcfTextLeftMarginCn; + } + +// --------------------------------------------------------------------------- +// get right margin of icf. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::IcfRightMargin() + { + return iIcfTextRightMarginCn; + } + +// --------------------------------------------------------------------------- +// get top margin of icf. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::IcfTopMargin() + { + return iIcfTextTopMarginCn; + } + +// --------------------------------------------------------------------------- +// get bottom margin of icf. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::IcfBottomMargin() + { + return iIcfTextBottomMarginCn; + } + +// --------------------------------------------------------------------------- +// get line spacing of icf. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::IcfLineSpaceMargin() + { + return iIcfTextLineSpaceMarginCn; + } + +// --------------------------------------------------------------------------- +// get font of icf. +// --------------------------------------------------------------------------- +// +CFont* CPeninputFingerHwrLAFManager::IcfFont() + { + return iIcfFont; + } + +// --------------------------------------------------------------------------- +// get text height of icf. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::IcfTextHeight() + { + return iIcfTextHeightCn; + } + + +// --------------------------------------------------------------------------- +// get inner padding of buttons. +// --------------------------------------------------------------------------- +// +TSize CPeninputFingerHwrLAFManager::ButtonInnerPadding() + { + return iSizeBtnPadding; + } + + +// --------------------------------------------------------------------------- +// get cell size of virtual numpad. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::VirtualNumpadCellSize() + { + return iSizeNumpadCell; + } + + +// --------------------------------------------------------------------------- +// get text layout of virtual numpad. +// --------------------------------------------------------------------------- +// +TAknTextLineLayout CPeninputFingerHwrLAFManager::NumpadKeyTxtLayout() + { + TAknTextLineLayout layout = AknLayoutScalable_Avkon:: + cell_fshwr2_syb_bg_pane_t1(0).LayoutLine(); + return layout; + } + +// --------------------------------------------------------------------------- +// get row count of virtual sctpad. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::VirtualSctpadRowCount() + { + return iSctpadRowCount; + } + +// --------------------------------------------------------------------------- +// get column count of virtual sctpad. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::VirtualSctpadColCount() + { + return iSctpadColCount; + } + +// --------------------------------------------------------------------------- +// get cell size of virtual sctpad. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::VirtualSctpadCellSize() + { + return iSizeSctpadCell; + } + +// --------------------------------------------------------------------------- +// get cell size of virtual sctpad. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::FixVirtualSctpadCellSize() + { + return iSizeFixSctpadCell; + } + + +// --------------------------------------------------------------------------- +// get preview bubble rect. +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::PreviewBubbleRect() + { + return iPreviewWndRect; + } + +// --------------------------------------------------------------------------- +// get preview bubble inner rect +// --------------------------------------------------------------------------- +// +TRect CPeninputFingerHwrLAFManager::PreviewBubbleInnerRect() + { + return iPreviewWndInnerRect; + } + +// --------------------------------------------------------------------------- +// get preview bubble font +// --------------------------------------------------------------------------- +// +const CFont* CPeninputFingerHwrLAFManager::PreviewBubbleFont() + { + return iBubbleFont; + } + +// --------------------------------------------------------------------------- +// get preview bubble text layout +// --------------------------------------------------------------------------- +// +TAknTextLineLayout CPeninputFingerHwrLAFManager::PreviewBubbleTextLayout() + { + return iPreviewWndText; + } + +// --------------------------------------------------------------------------- +// get cell rect of virtual sctpad. +// --------------------------------------------------------------------------- +// +void CPeninputFingerHwrLAFManager::GetVirtualKeyRects( RArray& aArrayRects ) + { + aArrayRects.Reset(); + + for(TInt i = 0; i < iSCTrectArray.Count(); i++) + { + TRect absoluteRect = iSCTrectArray[i]; + absoluteRect.Move(-iRectSctpad.iTl.iX, -iRectSctpad.iTl.iY); + aArrayRects.Append(absoluteRect); + } + } + +// --------------------------------------------------------------------------- +// get space and enter key rect. +// --------------------------------------------------------------------------- +// +void CPeninputFingerHwrLAFManager::GetFixVirtualKeyRects( RArray& aArrayRects ) + { + aArrayRects.Reset(); + aArrayRects.Append( iRectSpase ); + aArrayRects.Append( iRectEnter ); + + } + +// --------------------------------------------------------------------------- +// get text layout of virtual sctpad. +// --------------------------------------------------------------------------- +// +TAknTextLineLayout CPeninputFingerHwrLAFManager::SctpadKeyTxtLayout() + { + TAknTextLineLayout layout = AknLayoutScalable_Avkon:: + cell_fshwr2_syb_bg_pane_t1(0).LayoutLine(); + return layout; + } + +// --------------------------------------------------------------------------- +// get text layout of space and enter. +// --------------------------------------------------------------------------- +// +TAknTextLineLayout CPeninputFingerHwrLAFManager::FixSctpadKeyTxtLayout() + { + TAknTextLineLayout layout = AknLayoutScalable_Avkon:: + cell_fshwr2_syb_bg_pane_t1(0).LayoutLine(); + return layout; + } + +// --------------------------------------------------------------------------- +// get width unit of candidate list. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::CandidateUnitWidth() + { + return iCandsUnitWidth; + } + +// --------------------------------------------------------------------------- +// get height unit of candidate list. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::CandidateUnitHeight() + { + return iCandsUnitHeight; + } + +// --------------------------------------------------------------------------- +// get horizontal margin of candidate list. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::CandidateHorizontalMargin() + { + return iCandsHorizontalMargin; + } + +// --------------------------------------------------------------------------- +// get vertical margin of candidate list. +// --------------------------------------------------------------------------- +// +TInt CPeninputFingerHwrLAFManager::CandidateVerticalMargin() + { + return iCandsVerticalMargin; + } + +// --------------------------------------------------------------------------- +// get top-left position of candidate list. +// --------------------------------------------------------------------------- +// +TPoint CPeninputFingerHwrLAFManager::CandidateLTPos() + { + return iCandidateLTPos; + } + +// --------------------------------------------------------------------------- +// get top-left position of predictive list. +// --------------------------------------------------------------------------- +// +TPoint CPeninputFingerHwrLAFManager::PredictiveLTPos() + { + return iPredictiveLTPos; + } + +// --------------------------------------------------------------------------- +// get font of candidate list. +// --------------------------------------------------------------------------- +// +const CFont* CPeninputFingerHwrLAFManager::CandidateFont() + { + return iCandsFont; + } + +// --------------------------------------------------------------------------- +// c++ constructor +// --------------------------------------------------------------------------- +// +CPeninputFingerHwrLAFManager::CPeninputFingerHwrLAFManager() + { + + } + +// --------------------------------------------------------------------------- +// Symbian second-phase constructor +// --------------------------------------------------------------------------- +// +void CPeninputFingerHwrLAFManager::ConstructL() + { + } + +// End Of File