00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "RichTextEditorRTE.h"
00013 #include <barsread.h>
00014 #include <thread.rsg>
00015 #include <eikrted.h>
00016 #include <txtrich.h>
00017
00018
00019 void CRichTextEditorRTE::ConstructL(const CCoeControl& aView)
00020 {
00021 TResourceReader reader;
00022
00023 iCoeEnv->CreateResourceReaderLC(reader, R_RICHTEXTEDITOR_RICH_TEXT_EDITOR);
00024 SetContainerWindowL(aView);
00025 ConstructFromResourceL(reader);
00026 CleanupStack::PopAndDestroy();
00027
00028 SetFocus(ETrue);
00029 }
00030
00031
00032
00033
00034
00035
00036 CRichTextEditorRTE::CRichTextEditorRTE(void)
00037 {
00038 }
00039
00040
00041
00042
00043
00044
00045 void CRichTextEditorRTE::AddCarriageReturnL()
00046 {
00047 CRichText* richText = RichText();
00048 richText->InsertL(richText->DocumentLength(), CEditableText::ELineBreak);
00049 }
00050
00051
00052
00053
00054
00055
00056 void CRichTextEditorRTE::AddTextL(const TDesC& aText)
00057 {
00058 CRichText* text = RichText();
00059 TInt textSize = text->DocumentLength();
00060
00061
00062 iCharacterFormatMask.SetAttrib(EAttColor);
00063
00064 iCharacterFormat.iFontPresentation.iTextColor = KRgbBlack;
00065 text->InsertL (textSize, aText);
00066
00067 text->ApplyCharFormatL(iCharacterFormat, iCharacterFormatMask,textSize,aText.Length());
00068 AddCarriageReturnL();
00069 HandleTextChangedL();
00070
00071
00072 MoveCursorL (TCursorPosition::EFPageDown, EFalse);
00073 }
00074
00075 CRichTextEditorRTE* CRichTextEditorRTE::NewL(const CCoeControl& aView)
00076 {
00077 CRichTextEditorRTE* self = CRichTextEditorRTE::NewLC(aView);
00078 CleanupStack::Pop(self);
00079 return self;
00080 }
00081
00082 CRichTextEditorRTE* CRichTextEditorRTE::NewLC(const CCoeControl& aView)
00083 {
00084 CRichTextEditorRTE* self = new (ELeave) CRichTextEditorRTE;
00085 CleanupStack::PushL(self);
00086 self->ConstructL(aView);
00087 return self;
00088 }
00089
00090
00091
00092
00093
00094
00095
00096
00097 TKeyResponse CRichTextEditorRTE::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
00098 {
00099 if (aType == EEventKey)
00100 {
00101 if (aKeyEvent.iCode == EKeyDownArrow)
00102 {
00103 MoveCursorL (TCursorPosition::EFPageDown, EFalse);
00104
00105 return EKeyWasConsumed;
00106 }
00107 else if (aKeyEvent.iCode == EKeyUpArrow)
00108 {
00109 MoveCursorL (TCursorPosition::EFPageUp, EFalse);
00110
00111 return EKeyWasConsumed;
00112 }
00113 else
00114 {
00115 return CEikRichTextEditor::OfferKeyEventL(aKeyEvent, aType);
00116 }
00117 }
00118
00119 return EKeyWasNotConsumed;
00120 }