⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chsgnewtextcontainer.cpp

📁 Symbian工程 九宫格界面
💻 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 + -