📄 chsgnewtextcontainer.cpp
字号:
#include <gulicon.h>
#include <aknutils.h>
#include <avkon.hrh>
#include "CJGProjectappui.h"
#include "CHsgNewTextContainer.h"
//#include "LxdMessageManagement.h"
#include "HsgTextView.h"
#include <eiklabel.h>
#include "CJGProject.rsg"
#include <eikedwin.h>
#include <BARSREAD.H>
#include "NewsRollText.h"
#include "CHsgNewTextView.h"
#define MEMORY_FREE(a) if(a){delete a; a=NULL;}
CHsgNewTextContainer::CHsgNewTextContainer()
{
iHsgLableNewTitle = NULL;
iHsgLableNewContent =NULL;
iHsgEditorNewTitle =NULL;
iHsgEditorNewContent =NULL;
iHsgRollText = NULL;
}
// EPOC default constructor can leave.
void CHsgNewTextContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
SetRect( aRect );
SetExtentToWholeScreen();
//****************************创建lable和editor框**********************************************
//动态创建标题Label
iHsgLableNewTitle = new(ELeave) CEikLabel;
iHsgLableNewTitle->SetContainerWindowL(*this);
const CFont* fontUsed = iEikonEnv->LegendFont();
iHsgLableNewTitle->SetFont(fontUsed);
//导入中文资源
TBuf<32> sPhoneNumLabelTitle;
CEikonEnv::Static()->ReadResource(sPhoneNumLabelTitle,R_QTN_HEWB_LXD_TITLE);
//设置Label显示内容
iHsgLableNewTitle->SetTextL(sPhoneNumLabelTitle);
iHsgLableNewTitle->SetExtent(TPoint(aRect.Width()/30,aRect.Height()/7), iHsgLableNewTitle->MinimumSize());
// 动态创建内容Label
iHsgLableNewContent = new(ELeave) CEikLabel;
iHsgLableNewContent->SetContainerWindowL(*this);
iHsgLableNewContent->SetFont(fontUsed);
//导入中文资源
TBuf<32> sPhoneNumLabelContent;
CEikonEnv::Static()->ReadResource(sPhoneNumLabelContent, R_QTN_HEWB_LXD_CONTENT);
//设置Label显示内容
iHsgLableNewContent->SetTextL(sPhoneNumLabelContent);
iHsgLableNewContent->SetExtent(TPoint(aRect.Width()/30,aRect.Height()/7+fontUsed->HeightInPixels()+10+aRect.Height()/14+10), iHsgLableNewTitle->MinimumSize());
//动态创建标题Editor
iHsgEditorNewTitle = new(ELeave) CEikEdwin;
iHsgEditorNewTitle->SetContainerWindowL(*this);
iHsgEditorNewTitle->ConstructL(EAknEditorFlagDefault, 1, 16, 1);
//设置editor显示位置、大小
iHsgEditorNewTitle->SetExtent(TPoint(aRect.Width()/30,aRect.Height()/7+(fontUsed->HeightInPixels())+10),TSize(aRect.Width()-aRect.Width()/15,aRect.Height()/14));
//设置当前输入模式
iHsgEditorNewTitle->SetAknEditorCurrentInputMode(EAknEditorNumericInputMode);
iHsgEditorNewTitle->SetFocus(ETrue);
//动态创建内容Editor
iHsgEditorNewContent = new(ELeave) CEikEdwin;
iHsgEditorNewContent->SetContainerWindowL(*this);
iHsgEditorNewContent->ConstructL(EAknEditorFlagDefault, 1, 72, 10);
//设置editor显示位置、大小
iHsgEditorNewContent->SetExtent(TPoint(aRect.Width()/30,aRect.Height()/7+2*(fontUsed->HeightInPixels())+aRect.Height()/14+30),TSize(aRect.Width()-aRect.Width()/15,aRect.Height()*5/7-2*(fontUsed->HeightInPixels())-30-aRect.Height()/14));
//设置当前输入模式
iHsgEditorNewContent->SetAknEditorCurrentInputMode(EAknEditorNumericInputMode);
//**************************设置滚动条*************************************************
CCJGProjectAppUi* pAppUi = (CCJGProjectAppUi*)CCoeEnv::Static()->AppUi();
iHsgRollText = new(ELeave)CNewsRollText;
iHsgRollText->SetContainerWindowL(*this);
CLxdAD* ilxdpointer=pAppUi->LxdGetADPointer();
HBufC* buf=ilxdpointer->LxdGetAD(1);
iHsgRollText->NewsSetTextL(buf->Des());//显示中文滚动文字
iHsgRollText->NewsSetBackgroundColor(TRgb(159,203,223));
TSize sz = iHsgRollText->MinimumSize();
iHsgRollText->NewsSetExtent( TPoint(0,0), sz);
iHsgRollText->Start();
//*****************************读取listBox信息**************************************************************
// iLxdNewPointer=pAppUi->LxdGetMessage();
ActivateL();
}
// destructor
CHsgNewTextContainer::~CHsgNewTextContainer()
{
MEMORY_FREE(iHsgLableNewTitle);
MEMORY_FREE(iHsgLableNewContent);
MEMORY_FREE(iHsgEditorNewTitle);
MEMORY_FREE(iHsgEditorNewContent);
MEMORY_FREE(iHsgRollText);
}
void CHsgNewTextContainer::SizeChanged()
{
}
TInt CHsgNewTextContainer::CountComponentControls() const
{
// return number of controls inside this container
return 5;
}
CCoeControl* CHsgNewTextContainer::ComponentControl( TInt aIndex ) const
{
switch (aIndex)
{
case 0:
return iHsgLableNewTitle;
case 1:
return iHsgLableNewContent;
case 2:
return iHsgEditorNewTitle;
case 3:
return iHsgEditorNewContent;
case 4:
return iHsgRollText;
default:
return NULL;
}
return NULL;
}
void CHsgNewTextContainer::Draw( const TRect& aRect) const
{
CWindowGc& gc = SystemGc();
gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
gc.SetBrushColor(KRgbGreen);
gc.DrawRect(Rect());
//r_qtn_cjg_Snow_confirm
gc.SetPenStyle(CGraphicsContext::ESolidPen);
gc.SetPenColor(KRgbBlack);
const CFont* fontUsed = iEikonEnv->LegendFont();//获取中文字体
gc.UseFont(fontUsed);
TBuf<8> aBufOppiton;
CEikonEnv::Static()->ReadResource(aBufOppiton,R_QTN_CJG_SNOW_CONFIRM);
TBuf<8> aBufReturn;
CEikonEnv::Static()->ReadResource(aBufReturn,R_QTN_CJG_SNOW_CANCEL);
TPoint pointLeft(0,aRect.Height());
TPoint pointRight(aRect.Width()-fontUsed->TextWidthInPixels(aBufReturn),aRect.Height());
gc.DrawText(aBufOppiton,pointLeft);
gc.DrawText(aBufReturn,pointRight);
}
TKeyResponse CHsgNewTextContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
{
CCJGProjectAppUi* pAppUi1 = (CCJGProjectAppUi*)CCoeEnv::Static()->AppUi();
if((aType == EEventKey) && ((aKeyEvent.iCode == EKeyDevice0)||(aKeyEvent.iCode == EKeyDevice3)))
{
pAppUi1->NewsGetHsgNewTextView()->HandleCommandL(0);
}
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDevice1))
{
pAppUi1->NewsGetHsgNewTextView()->HandleCommandL(1);
}
if (iHsgEditorNewTitle->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
{
iHsgEditorNewTitle->SetFocus(EFalse);
iHsgEditorNewContent->SetFocus(ETrue);
return EKeyWasNotConsumed;
}
return iHsgEditorNewTitle->OfferKeyEventL(aKeyEvent, aType);
}
if (iHsgEditorNewContent)
{
if (iHsgEditorNewContent->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
{
iHsgEditorNewContent->SetFocus(EFalse);
iHsgEditorNewTitle->SetFocus(ETrue);
return EKeyWasNotConsumed;
}
return iHsgEditorNewContent->OfferKeyEventL(aKeyEvent, aType);
}
}
return EKeyWasNotConsumed;
}
void CHsgNewTextContainer::HsgGetNewTitle(TDes &aTitle)
{
iHsgEditorNewTitle->GetText(aTitle);
}
void CHsgNewTextContainer::HsgGetNewContent(TDes &aContent)
{
iHsgEditorNewContent->GetText(aContent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -