📄 richtexteditorcontainer.cpp
字号:
/* Copyright (c) 2006, Nokia Mobile Phones. All rights reserved */
#include "RichTextEditorContainer.h"
#include <barsread.h>
#include <eikrted.h>
#include <txtrich.h>
#include <txtfrmat.h>
#include <gdi.h >
#include <normaltexteditor.rsg>
CRichTextEditorContainer* CRichTextEditorContainer::NewL(const TRect& aRect)
{
CRichTextEditorContainer* self = CRichTextEditorContainer::NewLC(aRect);
CleanupStack::Pop(self);
return self;
}
CRichTextEditorContainer* CRichTextEditorContainer::NewLC(const TRect& aRect)
{
CRichTextEditorContainer* self = new (ELeave) CRichTextEditorContainer;
CleanupStack::PushL(self);
self->ConstructL(aRect);
return self;
}
CRichTextEditorContainer::~CRichTextEditorContainer()
{
// no implementation required
}
void CRichTextEditorContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
iRichTextEditor=new (ELeave)CEikRichTextEditor();
iRichTextEditor->SetContainerWindowL(*this);
TResourceReader reader;
iCoeEnv->CreateResourceReaderLC(reader, R_RICH_TEXT_EDITOR);
iRichTextEditor->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy();
iRichTextEditor->SetFocus(ETrue);
SetRect(aRect);
ActivateL();
iRichTextEditor->SetCursorPosL(0,EFalse);
}
CRichTextEditorContainer::CRichTextEditorContainer()
{
// no implementation required
}
TInt CRichTextEditorContainer::CountComponentControls() const
{
return 1;
}
void CRichTextEditorContainer::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();
gc.Clear(aRect);
}
CCoeControl* CRichTextEditorContainer::ComponentControl(TInt aIndex) const
{
switch(aIndex)
{
case 0:
return iRichTextEditor;
default:
return NULL;
}
}
TKeyResponse CRichTextEditorContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode& aType)
{
if(aType==EEventKey)
{
if(aKeyEvent.iCode==EKeyDownArrow)
{
iRichTextEditor->MoveCursorL(TCursorPosition::EFLineDown,EFalse);
return EKeyWasConsumed;
}
else if(aKeyEvent.iCode==EKeyUpArrow)
{
iRichTextEditor->MoveCursorL(TCursorPosition::EFLineUp,EFalse);
return EKeyWasConsumed;
}
else
{
return iRichTextEditor->OfferKeyEventL(aKeyEvent,aType);
}
}
else
return EKeyWasNotConsumed;
}
void CRichTextEditorContainer::SetTextFormat()
{
iCharFormatMask.SetAttrib(EAttFontStrokeWeight);
iCharFormat.iFontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightBold);
CRichText* richText=iRichTextEditor->RichText();
richText->ApplyCharFormatL(iCharFormat,iCharFormatMask,0,richText->DocumentLength());
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -