651 |
651 |
652 void CEikEdwinFepSupport::GetEditorContentForFep(TDes& aEditorContent,TInt aDocumentPosition,TInt aLengthToRetrieve) const |
652 void CEikEdwinFepSupport::GetEditorContentForFep(TDes& aEditorContent,TInt aDocumentPosition,TInt aLengthToRetrieve) const |
653 { |
653 { |
654 TInt length( Min( aLengthToRetrieve, iEdwin.TextLength() - aDocumentPosition ) ); |
654 TInt length( Min( aLengthToRetrieve, iEdwin.TextLength() - aDocumentPosition ) ); |
655 iEdwin.iText->Extract( aEditorContent, aDocumentPosition, length ); |
655 iEdwin.iText->Extract( aEditorContent, aDocumentPosition, length ); |
656 if ( iEdwin.IsSmileyEnabled() ) |
656 CSmileyManager* smiley( iEdwin.iEdwinExtension->iSmiley ); |
657 { |
657 if ( smiley && smiley->HasSmileyIconsInText() ) |
658 CSmileyManager* smiley( iEdwin.iEdwinExtension->iSmiley ); |
658 { |
659 CAknEdwinState* state( iEdwin.EditorState() ); |
659 CAknEdwinState* state( iEdwin.EditorState() ); |
660 if ( state ) |
660 if ( state ) |
661 { |
661 { |
662 TCursorSelection inlineText( state->CurrentInlineEditSpan() ); |
662 TCursorSelection inlineText( state->CurrentInlineEditSpan() ); |
663 if ( aDocumentPosition >= inlineText.LowerPos() && |
663 if ( aDocumentPosition >= inlineText.LowerPos() && |
664 aDocumentPosition + length <= inlineText.HigherPos() ) |
664 aDocumentPosition + length <= inlineText.HigherPos() ) |
665 { |
665 { |
666 smiley->ConvertTextForSmileyL( aDocumentPosition, aEditorContent, |
666 TRAP_IGNORE( smiley->ConvertTextForSmileyL( aDocumentPosition, aEditorContent, |
667 EFalse ); |
667 EFalse ); ) |
668 } |
668 } |
669 } |
669 } |
|
670 TInt smileyEndPos( 0 ); |
670 for ( TInt i( 0 ); i < length; i++ ) |
671 for ( TInt i( 0 ); i < length; i++ ) |
671 { |
672 { |
672 if ( smiley->SmileyCodeByPos( aDocumentPosition + i ) > 0 && |
673 if ( aEditorContent[i] == CSmileyManager::KCompensateChar && |
673 !CSmileyManager::IsSmileyCode( aEditorContent[i] ) ) |
674 i < smileyEndPos ) |
674 { |
675 { |
675 aEditorContent[i] = CSmileyManager::KPlaceHolder; |
676 aEditorContent[i] = CSmileyManager::KPlaceHolder; |
|
677 } |
|
678 else if ( smiley->IsSmileyCode( aEditorContent[i] ) ) |
|
679 { |
|
680 smileyEndPos = i + smiley->SmileyLength( aDocumentPosition + i ); |
676 } |
681 } |
677 } |
682 } |
678 } |
683 } |
679 } |
684 } |
680 |
685 |
8508 if ( aBackSpace ) |
8513 if ( aBackSpace ) |
8509 { |
8514 { |
8510 checkPos--; |
8515 checkPos--; |
8511 checkPos = checkPos >= 0 ? checkPos : 0; |
8516 checkPos = checkPos >= 0 ? checkPos : 0; |
8512 } |
8517 } |
8513 if ( CSmileyManager::IsSmileyCode( iEdwinExtension->iSmiley-> |
8518 if ( iEdwinExtension->iSmiley->SmileyCodeByPos( checkPos ) > 0 ) |
8514 SmileyCodeByPos( checkPos ) ) && |
|
8515 !iEdwinExtension->iSmiley->IsDisabledSmileyIcon( checkPos ) ) |
|
8516 { |
8519 { |
8517 TInt codeLength( iEdwinExtension->iSmiley->SmileyLength( checkPos ) ); |
8520 TInt codeLength( iEdwinExtension->iSmiley->SmileyLength( checkPos ) ); |
8518 iEdwinExtension->iSmiley->DisableSmileyIcon( checkPos ); |
8521 iEdwinExtension->iSmiley->DisableSmileyIcon( checkPos ); |
8519 TCursorSelection select( aDocPos, aDocPos ); |
8522 TCursorSelection select( aDocPos, aDocPos ); |
8520 if ( aBackSpace ) |
8523 if ( aBackSpace ) |
8938 iEdwinExtension->iSmiley->HandleSelection( aSelect.LowerPos(), |
8941 iEdwinExtension->iSmiley->HandleSelection( aSelect.LowerPos(), |
8939 aSelect.Length() ); |
8942 aSelect.Length() ); |
8940 } |
8943 } |
8941 } |
8944 } |
8942 |
8945 |
8943 |
|
8944 // --------------------------------------------------------------------------- |
8946 // --------------------------------------------------------------------------- |
8945 // CEikEdwin::SkipBackgroundDrawer |
8947 // CEikEdwin::SkipBackgroundDrawer |
8946 // --------------------------------------------------------------------------- |
8948 // --------------------------------------------------------------------------- |
8947 // |
8949 // |
8948 TBool CEikEdwin::SkipBackgroundDrawer() const |
8950 TBool CEikEdwin::SkipBackgroundDrawer() const |