uifw/EikStd/coctlsrc/EIKEDWIN.CPP
branchRCL_3
changeset 13 a8834a2e9a96
parent 12 941195f2d488
child 15 c52421ed5f07
equal deleted inserted replaced
12:941195f2d488 13:a8834a2e9a96
   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