Question

Is there anyway to change parts of the text I add into CEikRichTextEditor control without selecting the text first - which shows the green selection rectangle over the text - and then apply text style?

Here is the code I use which gives an ugly and sloppy style when user see the running green selection rectangle over the text especially when I insert the text inside a loop

CDesCArray* temp = new(ELeave) CDesCArrayFlat(4);
temp->AppendL(_L("First"));
temp->AppendL(_L("Second"));
temp->AppendL(_L("Third"));
temp->AppendL(_L("Fourth"));
TBuf<100>iNumbers;
iNumbers.Copy(_L("Here is the numbers"));
iRichText1->SetTextL(&iNumbers); // iRichText1 is a pointer to CEikRichTextEditor object

for(TInt i = 0; i < temp->Count(); i++)
    {   
        TInt x = iRichText1->Text()->DocumentLength();
        iRichText1->RichText()->InsertL(x, (*temp)[i]);
        iRichText1->SetSelectionL(x,iRichText1->Text()->DocumentLength());
        iRichText1->BoldItalicUnderlineEventL(CEikGlobalTextEditor::EItalic);

        TInt line = iRichText1->Text()->DocumentLength();
        iRichText1->RichText()->InsertL(line, _L("\f\f"));

    }

Many thanks in advance.

Was it helpful?

Solution

You need to operate on the CRichText object owned by the editor and apply a paragraph or character format over it (using ApplyCharFormatL() / ApplyParaFormatL()). This avoids any need to select text.

Example applying a paragraph format

Example applying a character format

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top