📄 mmsdemo1maincontainer.cpp
字号:
/*
* ============================================================================
* Name : CMMSDemo1MainContainer from MMSDemo1MainContainer.h
* Part of : MMSDemo1
* Created : 28.10.2002 by Forum Nokia
* Implementation notes:
* Initial content was generated by Series 60 AppWizard.
* Version :
* Copyright: Nokia Corp. 2003
* ============================================================================
*/
// INCLUDE FILES
#include "MMSDemo1MainContainer.h"
#include "mmsdemo1.hrh"
#include <mmsdemo1.rsg>
#include <eiklabel.h> // for example label control
#include <eikenv.h> // ieikonenv
#include <aknappui.h>
// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------
// CMMSDemo1MainContainer::ConstructL(const TRect& aRect)
// EPOC two phased constructor
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
iCba = CEikButtonGroupContainer::Current();
SetRect(aRect);
ActivateL();
}
// Destructor
CMMSDemo1MainContainer::~CMMSDemo1MainContainer()
{
if (iListBox)
{
iAvkonAppUi->RemoveFromStack(iListBox);
delete iListBox;
}
if(iBuf)
delete iBuf;
}
// ---------------------------------------------------------
// CMMSDemo1MainContainer::SizeChanged()
// Called by framework when the view size is changed
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::SizeChanged()
{
}
// ---------------------------------------------------------
// CMMSDemo1MainContainer::SetTextL()
// Set background text.
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::SetTextL(TDesC& aText, TInt aLength)
{
if (iBuf)
delete iBuf;
iBuf = HBufC::NewL(aLength);
iBuf->Des().Copy(aText);
DrawDeferred();
}
// ---------------------------------------------------------
// CMMSDemo1MainContainer::Draw(const TRect& aRect) const
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();
// TODO: Add your drawing code here
// example code...
gc.SetPenStyle(CGraphicsContext::ENullPen);
gc.SetBrushColor(KRgbGray);
gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
gc.DrawRect(aRect);
const CFont* fontUsed = iEikonEnv->TitleFont();
gc.UseFont(fontUsed);
TInt baseline = (Rect().Height() / 2) - fontUsed->AscentInPixels()*2;
TInt margin=0;
if(iBuf)gc.DrawText(iBuf->Des(), Rect(), baseline, CGraphicsContext::ECenter, margin);
if (iListBox)iListBox->Draw(aRect);
}
// ---------------------------------------------------------
// CMMSDemo1MainContainer::HandleControlEventL(
// CCoeControl* aControl,TCoeEvent aEventType)
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::HandleControlEventL(
CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
{
// TODO: Add your control event handler code here
}
// ---------------------------------------------------------
// CMMSDemo1MainContainer::DisplayTheListboxL(
// Open a listbox with message entries.
// User can select a message to be opened.
// ---------------------------------------------------------
//
TBool CMMSDemo1MainContainer::DisplayTheListboxL(CDesCArray& aList)
{
// check parameter length and return if zero
TInt count = aList.Count();
if(count == 0)
{
// if list is empty we return
return EFalse;
}
if (iListBox)
{
iAvkonAppUi->RemoveFromStack(iListBox);
delete iListBox;
}
iListBox=new( ELeave ) CAknDoubleStyleListBox();
iListBox->ConstructL( this, EAknListBoxSelectionList);
iListBox->CreateScrollBarFrameL(ETrue);
iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
//link against bafl.DLL
MDesCArray* itemList = iListBox->Model()->ItemTextArray();
CDesCArray* itemArray = (CDesCArray*) itemList;
// read message items from aList to itemArray
// we read 2 items from aList to form a single item in itemArray
TInt i = 0;
TBuf<100> tempBuf;
if(count%2 == 0) // check validity of our aList item count
{
while(i < count)
{
// clear buffer
tempBuf.Delete(0, tempBuf.Length());
// catenate the two lines(details & description) into one
tempBuf.Append(_L("\t"));
tempBuf.Append(aList[i]);
i++;
tempBuf.Append(_L("\t"));
tempBuf.Append(aList[i]);
// increment for the next round evaluation
i++;
// add created buffer to our list
itemArray->AppendL(tempBuf);
}
}
// change softkeys to "Select / Cancel"
if( iCba) iCba->SetCommandSetL(R_MMSDEMO1_SOFT_LISTBOX);
iListBox->HandleItemAdditionL();
iListBox->SetRect(Rect());
iAvkonAppUi->AddToStackL(iListBox);
iListBox->ActivateL();
iListBox->DrawNow();
return ETrue;
}
// ---------------------------------------------------------
// CMMSDemo1MainContainer::KillTheListboxL(
// Close listbox
// ---------------------------------------------------------
//
TInt CMMSDemo1MainContainer::KillTheListboxL()
{
TInt returnValue = 0;
if(iListBox)
{
returnValue = iListBox->CurrentItemIndex();
iAvkonAppUi->RemoveFromStack(iListBox);
delete iListBox;
iListBox=NULL;
}
iCba->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_BACK);
iCba->DrawNow();
DrawNow();
return returnValue;
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -