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


 
#include  
#include  
#include  
#include  
#include  
 
#include  
#include  
#include  
 
#include "NoteContainer.h" 
#include "LDFUCKAppUi.h" 
//#include "OperateInfo.h" 
 
CNoteContainer::CNoteContainer() 
{ 
	m_pNoteLtboxArray = NULL; 
	m_pNoteLtbox = NULL; 
//	m_pOperateInfo = new COperateInfo(); 
} 
 
 
// EPOC default constructor can leave. 
void CNoteContainer::ConstructL(const TRect& aRect) 
{ 
    CreateWindowL(); 
 
//createlistbox 
	m_pNoteLtbox = new( ELeave ) CAknDoubleGraphicStyleListBox();								//创建列表对象指针 
	CleanupStack::PushL(m_pNoteLtbox); 
	m_pNoteLtbox->ConstructL(this, EAknListBoxMarkableList | EAknListBoxMultiselectionList);		 
	m_pNoteLtbox->SetContainerWindowL( *this );													//设置容器窗口 
	m_pNoteLtbox->SetRect(aRect); 
    m_pNoteLtbox->CreateScrollBarFrameL( ETrue );												//启动列表的滚动条 
    m_pNoteLtbox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );															//关闭了水平的滚动条,垂直的滚动条设置为自动 
 
//	添加新图标列表 
 
	CLDFUCKAppUi* pApp = (CLDFUCKAppUi*)CEikonEnv::Static()->AppUi(); 
	CArrayPtr* icons = new( ELeave ) CAknIconArray(2); 
	CleanupStack::PushL( icons ); 
	icons->AppendL(pApp->LoadGraphicsL(1)); 
	icons->AppendL(pApp->LoadGraphicsL(0)); 
	m_pNoteLtbox->ItemDrawer()->ColumnData()->SetIconArray(icons);	 
 
//	添加项目列表 
	m_pNoteLtboxArray = new (ELeave) CDesCArrayFlat(10); 
	CleanupStack::PushL(m_pNoteLtboxArray); 
	CTextListBoxModel* model = m_pNoteLtbox->Model(); 
	model->SetItemTextArray( m_pNoteLtboxArray ); 
	model->SetOwnershipType(ELbmDoesNotOwnItemArray); 
	CleanupStack::Pop(3); 
    SetRect( aRect ); 
    ActivateL(); 
} 
 
// destructor 
CNoteContainer::~CNoteContainer() 
{ 
	if(m_pNoteLtbox) 
	{ 
		delete m_pNoteLtbox; 
		m_pNoteLtbox = NULL; 
	} 
 
	if(m_pNoteLtboxArray) 
	{ 
		delete m_pNoteLtboxArray; 
		m_pNoteLtboxArray = NULL; 
	} 
} 
 
void CNoteContainer::SizeChanged() 
{ 
	m_pNoteLtbox->SetRect(Rect());  
} 
 
// --------------------------------------------------------- 
// CNoteContainer::CountComponentControls() const 
// return the number of controls 
// --------------------------------------------------------- 
// 
TInt CNoteContainer::CountComponentControls() const 
{ 
	// return number of controls inside this container 
	return 1;  
} 
 
// --------------------------------------------------------- 
// CNoteContainer::ComponentControl(TInt aIndex) const 
// return the pointer to specified control. 
// --------------------------------------------------------- 
// 
CCoeControl* CNoteContainer::ComponentControl( TInt /*aIndex*/ ) const 
{ 
	return m_pNoteLtbox; 
} 
 
// --------------------------------------------------------- 
// CNoteContainer::Draw(const TRect& aRect) const 
// handle the message when client region must be redrawn. 
// --------------------------------------------------------- 
// 
void CNoteContainer::Draw( const TRect& /*aRect*/ ) const 
{ 
	CWindowGc& gc = SystemGc(); 
	gc.Clear(Rect()); 
 
//	gc.DrawRect(TRect(TPoint(10, 10), TSize(20, 20))); 
} 
 
// --------------------------------------------------------- 
// CAknExGridContainer::OfferKeyEventL( 
//           const TKeyEvent& aKeyEvent, TEventCode aType ) 
// Handles the key events. 
// --------------------------------------------------------- 
// 
TKeyResponse CNoteContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType ) 
{ 
	if (m_pNoteLtbox)  
	{ 
		return m_pNoteLtbox->OfferKeyEventL(aKeyEvent, aType ); 
	} 
	 
	else 
	{ 
		return EKeyWasNotConsumed; 
 	} 
 
	return EKeyWasNotConsumed; 
} 
 
void CNoteContainer::addInfotolist(const TDesC& aIcon, const TDesC& aName, const TDesC& aContent) 
{ 
	TBuf<64> sTmpBuf; 
	sTmpBuf.Copy(aIcon); 
	sTmpBuf.Append(_L("\t")); 
	sTmpBuf.Append(aName); 
	sTmpBuf.Append(_L("\t")); 
	sTmpBuf.Append(aContent); 
	m_pNoteLtboxArray->AppendL(sTmpBuf); 
	m_pNoteLtbox->HandleItemAdditionL();	 
} 
 
 
void CNoteContainer::delInfofromlist() 
{ 
	nIndex=m_pNoteLtbox->CurrentItemIndex(); 
	if (nIndex==-1)  
		return; 
	m_pNoteLtboxArray->Delete(nIndex); 
	AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(m_pNoteLtbox,nIndex,ETrue); 
} 
 
 
TInt CNoteContainer::OptionGetId() 
{ 
	return m_pNoteLtbox->CurrentItemIndex();	 
} 
 
 
void CNoteContainer::setCurrentIndex(TInt aIndex) 
{ 
	m_pNoteLtbox->SetCurrentItemIndexAndDraw(aIndex); 
} 
 
 
void CNoteContainer::GetEditinfro() 
{ 
 
} 
 
TInt CNoteContainer::ReturnIndex() 
{ 
	sendIndex = m_pNoteLtbox->CurrentItemIndex(); 
	return sendIndex; 
} 
// End of File