📄 tempcontainer.cpp
字号:
#include <gulicon.h>
#include <aknutils.h>
#include <avkon.hrh>
#include <akntitle.h>
#include <eiklabel.h>
#include <eikclbd.h>
#include <aknlists.h>
//#include <uikon.hrh> // TKeyCode #defines
#include <AknIconArray.h>
#include "TempContainer.h"
#include "LDFUCKAppUi.h"
CTempContainer::CTempContainer()
{
m_pListBoxArray=NULL;
aListBox=NULL;
}
// EPOC default constructor can leave.
void CTempContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
//create SingleListBox
aListBox = new( ELeave ) CAknSingleNumberStyleListBox(); //创建列表对象指针
CleanupStack::PushL(aListBox);
aListBox->ConstructL(this, EAknListBoxMarkableList | EAknListBoxMultiselectionList);
aListBox->SetContainerWindowL( *this );
aListBox->SetRect(aRect);
//启动列表的滚动条
aListBox->CreateScrollBarFrameL( ETrue );
aListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
// TResourceReader reader;
// CEikonEnv::Static()->CreateResourceReaderLC( reader, R_SINGLE_TEMP_LISTBOX );
// aListBox->ConstructFromResourceL( reader );
// CleanupStack::PopAndDestroy(); // resource stuffs.
// 添加新图标列表
// CLDFUCKAppUi* pApp = (CLDFUCKAppUi*)CEikonEnv::Static()->AppUi();
// CArrayPtr<CGulIcon>* icons = new( ELeave ) CAknIconArray(1);
// CleanupStack::PushL( icons );
// icons->AppendL(pApp->LoadGraphicsL(0));
// aListBox->ItemDrawer()->ColumnData()->SetIconArray(icons);
// 添加项目列表
m_pListBoxArray = new (ELeave) CDesCArrayFlat(10);
CleanupStack::PushL(m_pListBoxArray);
CTextListBoxModel* model = aListBox->Model();
model->SetItemTextArray( m_pListBoxArray );
model->SetOwnershipType(ELbmDoesNotOwnItemArray);
CleanupStack::Pop(2);
// // Observe the list
// aListBox->SetListBoxObserver(this);
SetRect( aRect );
ActivateL();
}
// destructor
CTempContainer::~CTempContainer()
{
if (aListBox) {
delete aListBox;
aListBox=NULL;
}
if (m_pListBoxArray) {
delete m_pListBoxArray;
m_pListBoxArray=NULL;
}
}
void CTempContainer::SizeChanged()
{
if(aListBox)
{
aListBox->SetRect(Rect());
}
}
// ---------------------------------------------------------
// CTempContainer::CountComponentControls() const
// return the number of controls
// ---------------------------------------------------------
//
TInt CTempContainer::CountComponentControls() const
{
// return number of controls inside this container
return 1;
}
// ---------------------------------------------------------
// CTempContainer::ComponentControl(TInt aIndex) const
// return the pointer to specified control.
// ---------------------------------------------------------
//
CCoeControl* CTempContainer::ComponentControl( TInt /*aIndex*/ ) const
{
return aListBox;
// return NULL;
}
// ---------------------------------------------------------
// CTempContainer::Draw(const TRect& aRect) const
// handle the message when client region must be redrawn.
// ---------------------------------------------------------
//
void CTempContainer::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 CTempContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
{
if(aKeyEvent.iScanCode ==167)
{
return EKeyWasConsumed;
}
if (aListBox)
return aListBox->OfferKeyEventL (aKeyEvent, aType);
else
return EKeyWasNotConsumed;
}
void CTempContainer::addInfotolist( const TDesC& aFlag, const TDesC& aName)
{
TBuf<64> sTmpBuf;
sTmpBuf.Copy(aFlag);
sTmpBuf.Append(_L("\t"));
sTmpBuf.Append(aName);
m_pListBoxArray->AppendL(sTmpBuf);
aListBox->HandleItemAdditionL();
}
//void CTempContainer::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aListBoxEvent)
//{
// // if the Select Key has been pressed
// if ( aListBoxEvent == MEikListBoxObserver::EEventEnterKeyPressed )
// {
// TInt currentItem( this->aListBox->CurrentItemIndex() );
//
// if(currentItem == 1)
// {
//
// }
// }
// }
TInt CTempContainer::getListBoxIndex()
{
TInt currentItem( this->aListBox->CurrentItemIndex() );
listIndex = currentItem;
return listIndex;
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -