diff -r f5a1e66df979 -r a47de9135b21 textinput/peninputsplititut/src/peninputsplititutdatamgr.cpp --- a/textinput/peninputsplititut/src/peninputsplititutdatamgr.cpp Fri Feb 19 23:09:27 2010 +0200 +++ b/textinput/peninputsplititut/src/peninputsplititutdatamgr.cpp Fri Mar 12 15:44:07 2010 +0200 @@ -167,6 +167,8 @@ splitpanerect.LayoutRect(spliwndtrect.Rect(), splitpane); iLayoutRect = spliwndtrect.Rect(); + // spell layout rect + iLayoutRectSpell = rect; iLayoutOffset = spliwndtrect.Rect().iTl; iBackgroundRect = iLayoutRect; iBackgroundRect.Move(-iLayoutOffset); @@ -290,6 +292,120 @@ AknLayoutScalable_Avkon::popup_fshwr2_char_preview_window_t1(0).LayoutLine(); previewWndText.LayoutText(previewWndRect.Rect(), iPreviewWndText); iBubbleFont = const_cast(previewWndText.Font()); + + // for spell window + // OK and Cancel button + TAknWindowLineLayout spellwnd, softkeypane, okkeypane, cancelkeypane ; + TAknLayoutRect spellwndtrect, softkeypanerect, okkeyRect, cancelkeyRect ; + + spellwnd = AknLayoutScalable_Avkon::popup_fep_ituss_window(1).LayoutLine(); + spellwndtrect.LayoutRect(rect, spellwnd); + + softkeypane = AknLayoutScalable_Avkon::ituss_sks_pane().LayoutLine(); + softkeypanerect.LayoutRect(spellwndtrect.Rect(), softkeypane); + + okkeypane = AknLayoutScalable_Avkon::ituss_sks_pane_g1().LayoutLine(); + okkeyRect.LayoutRect(softkeypanerect.Rect(), okkeypane); + iOkRect = okkeyRect.Rect(); + + iSpellBtnTextFormat = AknLayoutScalable_Avkon::ituss_sks_pane_t1().LayoutLine(); + iSpellBtnTextFormat.ir = 7; + + cancelkeypane = AknLayoutScalable_Avkon::ituss_sks_pane_g2().LayoutLine(); + cancelkeyRect.LayoutRect(softkeypanerect.Rect(), cancelkeypane); + iCancelRect = cancelkeyRect.Rect(); + + // icf in spell mode + TAknWindowLineLayout icfpane, querypane, focuspane, backkeyInnerpane, backkeypane, + middleInnerBtn; + TAknLayoutRect icfpaneRect, querypaneRect, focuspaneRect, backInnerRect, backkeyRect, + middleButton, middleInnerRect; + + icfpane = AknLayoutScalable_Avkon::popup_fep_vtchi_icf_pane(1).LayoutLine(); + icfpaneRect.LayoutRect(rect, icfpane); + + querypane = AknLayoutScalable_Avkon::vtchi_query_pane().LayoutLine(); + querypaneRect.LayoutRect(icfpaneRect.Rect(), querypane); + + focuspane = AknLayoutScalable_Avkon::vtchi_query_pane(0).LayoutLine(); + focuspaneRect.LayoutRect(querypaneRect.Rect(), focuspane); + iSpellICFRect = focuspaneRect.Rect(); + + TRect middleButtonPaneRect = spellwndtrect.Rect(); + middleButtonPaneRect.Move( 5, 3 ); + + TRect cellSpellRect; + cellSpellRect.iTl = middleButtonPaneRect.iTl; + cellSpellRect.SetHeight( itucellrect.Rect().Height()); + cellSpellRect.SetWidth( itucellrect.Rect().Width()); + + // Left + middleButton.LayoutRect( cellSpellRect, ituinnercell ); + iSpellArrowLeftRect = middleButton.Rect(); + + middleInnerBtn = AknLayoutScalable_Avkon::cell_ituss_key_pane_g1(2).LayoutLine(); + middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn ); + iSpellArrowLeftRectInner = middleInnerRect.Rect(); + + // Right + cellSpellRect.Move( itucellrect.Rect().Width(), 0 ); + middleButton.LayoutRect( cellSpellRect, ituinnercell ); + iSpellArrowRightRect = middleButton.Rect(); + + middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn ); + iSpellArrowRightRectInner = middleInnerRect.Rect(); + + + // backspace in spell mode + + cellSpellRect.Move( itucellrect.Rect().Width(), 0 ); + middleButton.LayoutRect( cellSpellRect, ituinnercell ); + iSpellBackSpcace = middleButton.Rect(); + + middleInnerRect.LayoutRect( middleButton.Rect(), middleInnerBtn ); + iSpellBackSpcaceInner = middleInnerRect.Rect(); + + + + // icf indicator + TAknWindowLineLayout icfIndiPaneWithoutText, indiIcon, indiText; + TAknLayoutRect icfIndiPaneRectWithoutText, indiIconRect, indiTextRect; + TAknTextLineLayout indiTextLayout; + + + + icfIndiPaneWithoutText = AknLayoutScalable_Avkon::icf_edit_indi_pane(0).LayoutLine(); + icfIndiPaneRectWithoutText.LayoutRect(icfpaneRect.Rect(), icfIndiPaneWithoutText); + iIndiPaneRectWithoutTextForPrtWest = icfIndiPaneRectWithoutText.Rect(); + + + iIndiIconRectWithoutTextForPrtWest = TRect( 0, 0, 60, 20 ); + + indiTextLayout = AknLayoutScalable_Avkon::icf_edit_indi_pane_t1(0).LayoutLine(); + iIndiTextForPrtWest = indiTextLayout; + + // ICF text line info + TAknTextLineLayout icftextT1, icftextT2, icftextT3; + icftextT1 = AknLayoutScalable_Avkon::vtchi_query_pane_t1(0).LayoutLine(); + icftextT2 = AknLayoutScalable_Avkon::vtchi_query_pane_t2(0).LayoutLine(); + icftextT3 = AknLayoutScalable_Avkon::vtchi_query_pane_t3(0).LayoutLine(); + + iIcfTextAlignment = icftextT1.iJ; + iIcfTextLeftMargin = icftextT1.il; + iIcfTextRightMargin = icftextT1.ir; + + TAknLayoutText ctxt1, ctxt2, ctxt3; + ctxt1.LayoutText( focuspaneRect.Rect(), icftextT1 ); + ctxt2.LayoutText( focuspaneRect.Rect(), icftextT2 ); + ctxt3.LayoutText( focuspaneRect.Rect(), icftextT3 ); + + iIcfTextTopMargin = ctxt1.TextRect().iTl.iY - focuspaneRect.Rect().iTl.iY; + iIcfTextLineSpaceMargin = ctxt2.TextRect().iTl.iY - ctxt1.TextRect().iBr.iY; + iIcfTextBottomMargin = focuspaneRect.Rect().iBr.iY - ctxt3.TextRect().iBr.iY + - iIcfTextLineSpaceMargin; + iIcfTextHeight = ctxt1.TextRect().Height(); + + iIcfFont = const_cast(AknLayoutUtils::FontFromId(icftextT1.iFont, NULL)); } // --------------------------------------------------------------------------- @@ -453,9 +569,9 @@ case ELayoutOffset: return &iLayoutOffset; case ELayoutRect: - return &iLayoutRect; + return iSpellMode ? &iLayoutRectSpell : &iLayoutRect; case EBackgroundRect: - return &iBackgroundRect; + return iSpellMode ? &iLayoutRectSpell : &iBackgroundRect; case EBackspaceRect: return IsChinese() ? &iBackspaceCnRect : &iBackspaceRect; case EKeypadRect: @@ -512,11 +628,23 @@ return &iPuncCandidates; */ case EArrowLeftRect: - // case EItutPosArrowLeft: - return IsChinese() ? &iArrowLeftCnRect : &iArrowLeftRect; + if( iSpellMode ) + { + return &iSpellArrowLeftRect; + } + else + { + return IsChinese() ? &iArrowLeftCnRect : &iArrowLeftRect; + } case EArrowRightRect: -// case EItutPosArrowRight: - return IsChinese() ? &iArrowRightCnRect : &iArrowRightRect; + if( iSpellMode ) + { + return &iSpellArrowRightRect; + } + else + { + return IsChinese() ? &iArrowRightCnRect : &iArrowRightRect; + } case EArrowUpRect: // case EItutPosArrowUp: return &iArrowUpRect; @@ -536,9 +664,23 @@ return &iCloseRect; #endif case ELeftInnerRect: - return IsChinese() ? &iArrowLeftInnerCnRect : &iArrowLeftInnerRect; + if( iSpellMode ) + { + return &iSpellArrowLeftRectInner; + } + else + { + return IsChinese() ? &iArrowLeftInnerCnRect : &iArrowLeftInnerRect; + } case ERightInnerRect: - return IsChinese() ? &iArrowRightInnerCnRect : &iArrowRightInnerRect; + if( iSpellMode ) + { + return &iSpellArrowRightRectInner; + } + else + { + return IsChinese() ? &iArrowRightInnerCnRect : &iArrowRightInnerRect; + } case EBackspaceInnerRect: return IsChinese() ? &iBackspaceInnerCnRect : &iBackspaceInnerRect; case EUpInnerRect: @@ -567,6 +709,30 @@ return &iPreviewWndText; case EPreviewBubbleFont: return reinterpret_cast(iBubbleFont); + case EItutPosOk: + return &iOkRect; + case EItutPosCancel: + return &iCancelRect; + case EBtnTextLine: + return &iSpellBtnTextFormat; + case ESpellICFRect: + return &iSpellICFRect; + case ESpellEditIndicatorRect: + return &iSpellEditIndicator; + case EIcfFont: + return reinterpret_cast(iIcfFont); + case EImIndicatorRect: + return &iSpellEditIndicator; + case ESpellBackSpcae: + return &iSpellBackSpcace; + case ESpellBackSpcaeInner: + return &iSpellBackSpcaceInner; + case EIndiPaneWithoutTextRect: + return &iIndiPaneRectWithoutTextForPrtWest; + case EIndiIconWithoutTextRect: + return &iIndiIconRectWithoutTextForPrtWest; + case EIndiTextLine: + return &iIndiTextForPrtWest; default: break; } @@ -588,7 +754,8 @@ iCase(EAknEditorUpperCase), iConfigResId(0), iLayoutContext(aLayoutContext), - iCurrentScriptIdx(KInvalidIndex) + iCurrentScriptIdx(KInvalidIndex), + iSpellMode(EFalse) { }