www.pudn.com > LDFUCK.rar > RichTextEditorRichTextEditor.cpp


/** 
* 
* @brief Definition of CRichTextEditorRichTextEditor 
* 
* Copyright (c) EMCC Software Ltd 2003 
* @version 1.0 
*/ 
 
// INCLUDE FILES 
 
// Class include 
#include "RichTextEditorRichTextEditor.h" 
 
// System includes 
#include  // TResourceReader 
//#include  // resources 
#include   
#include  // CEikRichTextEditor 
//#include  // TFontStyle 
#include  // CRichText 
 
// ================= MEMBER FUNCTIONS ======================= 
 
/** 
* Symbian OS 2nd phase constructor.  Creates a Window for the controls, which it contains. 
* Constructs a label and adds it to the window, which it then activates. 
*/ 
void CRichTextEditorRichTextEditor::ConstructL() 
	{ 
	TResourceReader reader; 
	iCoeEnv->CreateResourceReaderLC(reader, R_RICHTEXTEDITOR_RICH_TEXT_EDITOR); 
	ConstructFromResourceL(reader); 
	CleanupStack::PopAndDestroy(); // reader 
	SetFocus(ETrue); 
	} 
 
 
/** 
* Moves the cursor to the top of the editor	scrolling any text as necessary 
* This should be called after the container window is activated 
*/ 
void CRichTextEditorRichTextEditor::DisplayStartOfHelpTextL() 
	{ 
	SetCursorPosL(0, EFalse); 
	} 
 
/** 
* Sets underline on or off.  This will be applied to text added in AddText() 
* @param aOn ETrue to switch underline on, EFalse to switch it off 
*/ 
void CRichTextEditorRichTextEditor::SetUnderlineOn(TBool aOn) 
	{ 
	iCharFormatMask.SetAttrib(EAttFontUnderline); 
	if (aOn) 
		{ 
		iCharFormat.iFontPresentation.iUnderline = EUnderlineOn; 
		} 
	else 
		{ 
		iCharFormat.iFontPresentation.iUnderline = EUnderlineOff; 
		} 
	} 
 
/** 
* Sets bold on or off.  This will be applied to text added in AddText() 
* @param aOn ETrue to switch bold on, EFalse to switch it off 
*/ 
void CRichTextEditorRichTextEditor::SetBoldOn(TBool aOn) 
	{ 
	iCharFormatMask.SetAttrib(EAttFontStrokeWeight); 
 
	if (aOn) 
		{ 
		iCharFormat.iFontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightBold); 
		} 
	else 
		{ 
		iCharFormat.iFontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightNormal); 
		} 
	} 
 
/** 
* Appends a carriage return to the rich text in this editor 
*/ 
void CRichTextEditorRichTextEditor::AddCarriageReturnL() 
	{ 
	CRichText* richText = RichText(); 
	richText->InsertL(richText->DocumentLength(), CEditableText::ELineBreak); 
	} 
 
/** 
* Appends the supplied text to the rich text in this editor 
* Applies any formatting set in other methods, e.g. bold 
*/ 
void CRichTextEditorRichTextEditor::AddTextL(const TDesC& aText) 
	{ 
	CRichText* richText = RichText(); 
	TInt documentLength = richText->DocumentLength(); 
	richText->InsertL (documentLength, aText); 
	richText->ApplyCharFormatL(iCharFormat, iCharFormatMask,documentLength,aText.Length()); 
	} 
 
/** 
* Symbian OS 2 phase constructor. 
* Constructs the CRichTextEditorRichTextEditor using the NewLC method, popping 
* the constructed object from the CleanupStack before returning it. 
* 
* @return The newly constructed CRichTextEditorRichTextEditor 
*/ 
CRichTextEditorRichTextEditor* CRichTextEditorRichTextEditor::NewL() 
	{ 
	CRichTextEditorRichTextEditor* self = CRichTextEditorRichTextEditor::NewLC(); 
	CleanupStack::Pop(self); 
	return self; 
	} 
 
/** 
* Symbian OS 2 phase constructor. 
* Constructs the CRichTextEditorRichTextEditor using the constructor and ConstructL 
* method, leaving the constructed object on the CleanupStack before returning it. 
* 
* @return The newly constructed CRichTextEditorRichTextEditor 
*/ 
CRichTextEditorRichTextEditor* CRichTextEditorRichTextEditor::NewLC() 
	{ 
	CRichTextEditorRichTextEditor* self = new (ELeave) CRichTextEditorRichTextEditor; 
	CleanupStack::PushL(self); 
	self->ConstructL(); 
	return self; 
	} 
 
/** 
* Called by the framework whenever a key event occurs. 
* If the key is the up or down scroller, moves the page up or down respectively and returns EKeyWasConsumed. 
* Otherwise, passes the key event to the superclass to handle. 
* @param aKeyEvent the Key event which occured, e.g. select key pressed 
* @param aType the type of Key event which occurred, e.g. key up, key down 
* @return TKeyResponse EKeyWasNotConsumed if the key was not processed, EKeyWasConsumed if it was 
*/ 
TKeyResponse CRichTextEditorRichTextEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) 
	{ 
    if (aType == EEventKey) 
		{ 
        if (aKeyEvent.iCode == EKeyDownArrow) 
            { 
            MoveCursorL (TCursorPosition::EFPageDown, EFalse); 
            return EKeyWasConsumed; 
            } 
        else if (aKeyEvent.iCode == EKeyUpArrow) 
            { 
            MoveCursorL (TCursorPosition::EFPageUp, EFalse); 
            return EKeyWasConsumed; 
            } 
		else 
			{ 
			return CEikRichTextEditor::OfferKeyEventL(aKeyEvent, aType); 
			} 
        } 
    return EKeyWasNotConsumed; 
	} 
 
// End of File