📄 helpcontainer.cpp
字号:
#include <gulicon.h>
#include <aknutils.h>
#include <avkon.hrh>
#include <akntitle.h>
#include <eiklabel.h>
#include <barsread.h> // TResourceReader
#include <ASSISTANT.rsg> // resources
#include <StringLoader.h>
#include "HelpContainer.h"
#include "RichTextEditorRichTextEditor.h"
#define KEditorPosition TPoint(0,0)
CHelpContainer::CHelpContainer()
{
}
// EPOC default constructor can leave.
void CHelpContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
m_pEditor = CRichTextEditorRichTextEditor::NewL();
m_pEditor->SetContainerWindowL(*this);
AddTextToEditorL();
SetRect(aRect);
ActivateL();
m_pEditor->DisplayStartOfHelpTextL();
}
void CHelpContainer::AddTextToEditorL()
{
if (m_pEditor)
{
//软件介绍
HBufC* header1 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_HEADER1);
m_pEditor->SetUnderlineOn(ETrue);
m_pEditor->SetBoldOn(ETrue);
m_pEditor->AddTextL (*header1);
CleanupStack::PopAndDestroy(header1);
m_pEditor->AddCarriageReturnL();
m_pEditor->SetUnderlineOn(EFalse);
m_pEditor->SetBoldOn(EFalse);
HBufC* text1 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_TEXT1);
m_pEditor->AddTextL (*text1);
m_pEditor->AddCarriageReturnL();
m_pEditor->AddCarriageReturnL();
CleanupStack::PopAndDestroy(text1);
HBufC* text12 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_TEXT12);
m_pEditor->AddTextL (*text12);
m_pEditor->AddCarriageReturnL();
m_pEditor->AddCarriageReturnL();
CleanupStack::PopAndDestroy(text12);
//功能介绍
HBufC* header2 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_HEADER2);
m_pEditor->SetUnderlineOn(ETrue);
m_pEditor->SetBoldOn(ETrue);
m_pEditor->AddTextL (*header2);
CleanupStack::PopAndDestroy(header2);
m_pEditor->AddCarriageReturnL();
m_pEditor->SetUnderlineOn(EFalse);
m_pEditor->SetBoldOn(EFalse);
HBufC* text2 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_TEXT2);
m_pEditor->AddTextL (*text2);
m_pEditor->AddCarriageReturnL();
m_pEditor->AddCarriageReturnL();
CleanupStack::PopAndDestroy(text2);
//下载
HBufC* header3 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_HEADER3);
m_pEditor->SetUnderlineOn(ETrue);
m_pEditor->SetBoldOn(ETrue);
m_pEditor->AddTextL (*header3);
CleanupStack::PopAndDestroy(header3);
m_pEditor->AddCarriageReturnL();
m_pEditor->SetUnderlineOn(EFalse);
m_pEditor->SetBoldOn(EFalse);
HBufC* text3 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_TEXT3);
m_pEditor->AddTextL (*text3);
m_pEditor->AddCarriageReturnL();
m_pEditor->AddCarriageReturnL();
CleanupStack::PopAndDestroy(text3);
//上传
HBufC* header4 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_HEADER4);
m_pEditor->SetUnderlineOn(ETrue);
m_pEditor->SetBoldOn(ETrue);
m_pEditor->AddTextL (*header4);
CleanupStack::PopAndDestroy(header4);
m_pEditor->AddCarriageReturnL();
m_pEditor->SetUnderlineOn(EFalse);
m_pEditor->SetBoldOn(EFalse);
HBufC* text4 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_TEXT4);
m_pEditor->AddTextL (*text4);
m_pEditor->AddCarriageReturnL();
m_pEditor->AddCarriageReturnL();
CleanupStack::PopAndDestroy(text4);
//选择上传
HBufC* header5 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_HEADER5);
m_pEditor->SetUnderlineOn(ETrue);
m_pEditor->SetBoldOn(ETrue);
m_pEditor->AddTextL (*header5);
CleanupStack::PopAndDestroy(header5);
m_pEditor->AddCarriageReturnL();
m_pEditor->SetUnderlineOn(EFalse);
m_pEditor->SetBoldOn(EFalse);
HBufC* text5 = StringLoader::LoadLC (R_RICHTEXTEDITOR_HELP_TEXT5);
m_pEditor->AddTextL (*text5);
m_pEditor->AddCarriageReturnL();
m_pEditor->AddCarriageReturnL();
CleanupStack::PopAndDestroy(text5);
}
}
/**
* Symbian OS 2 phase constructor.
* Constructs the CRichTextEditorContainer using the NewLC method, popping
* the constructed object from the CleanupStack before returning it.
*
* @param aRect The rectangle for this window
* @return The newly constructed CRichTextEditorContainer
*/
CHelpContainer* CHelpContainer::NewL(const TRect& aRect)
{
CHelpContainer* self = CHelpContainer::NewLC(aRect);
CleanupStack::Pop(self);
return self;
}
/**
* Symbian OS 2 phase constructor.
* Constructs the CRichTextEditorContainer using the constructor and ConstructL
* method, leaving the constructed object on the CleanupStack before returning it.
*
* @param aRect The rectangle for this window
* @return The newly constructed CRichTextEditorContainer
*/
CHelpContainer* CHelpContainer::NewLC(const TRect& aRect)
{
CHelpContainer* self = new (ELeave) CHelpContainer;
CleanupStack::PushL(self);
self->ConstructL(aRect);
return self;
}
// destructor
CHelpContainer::~CHelpContainer()
{
if (m_pEditor)
{
delete m_pEditor;
m_pEditor = NULL;
}
}
void CHelpContainer::SizeChanged()
{
m_pEditor->SetExtent(KEditorPosition, m_pEditor->MinimumSize());
}
// ---------------------------------------------------------
// CHelpContainer::CountComponentControls() const
// return the number of controls
// ---------------------------------------------------------
//
TInt CHelpContainer::CountComponentControls() const
{
// return number of controls inside this container
return 1;
}
// ---------------------------------------------------------
// CHelpContainer::ComponentControl(TInt aIndex) const
// return the pointer to specified control.
// ---------------------------------------------------------
//
CCoeControl* CHelpContainer::ComponentControl( TInt aIndex ) const
{
switch (aIndex)
{
case 0:
return m_pEditor;
default:
return NULL;
}
}
// ---------------------------------------------------------
// CHelpContainer::Draw(const TRect& aRect) const
// handle the message when client region must be redrawn.
// ---------------------------------------------------------
//
void CHelpContainer::Draw( const TRect& aRect ) const
{
CWindowGc& gc = SystemGc();
gc.Clear(aRect);
}
// ---------------------------------------------------------
// CAknExGridContainer::OfferKeyEventL(
// const TKeyEvent& aKeyEvent, TEventCode aType )
// Handles the key events.
// ---------------------------------------------------------
//
TKeyResponse CHelpContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
{
if (m_pEditor)
return m_pEditor->OfferKeyEventL(aKeyEvent, aType);
else
return CCoeControl::OfferKeyEventL(aKeyEvent, aType);
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -