📄 datagramtestappui.cpp
字号:
/*
* ==============================================================================
* Name : DatagramTestappui.cpp
* Part of : DatagramTest
* Interface :
* Description :
* Version :
*
* Copyright (c) 2007 Symbian Ltd. All rights reserved.
* ==============================================================================
*/
// INCLUDE FILES
#include <avkon.hrh>
#include <aknnotewrappers.h>
#include <stringloader.h>
#include <DatagramTest.rsg>
#include <f32file.h>
#include <s32file.h>
#include "DatagramTest.pan"
#include "DatagramTestAppUi.h"
#include "DatagramTestAppView.h"
#include "DatagramTest.hrh"
#include <aknquerydialog.h>
#include <APGCLI.H> //for recogniser
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CDatagramTestAppUi::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CDatagramTestAppUi::ConstructL()
{
// Initialise app UI with standard value.
BaseConstructL(CAknAppUi::EAknEnableSkin);
// Create view object
iAppView = CDatagramTestAppView::NewL( ClientRect() );
//Create receiver
iSmsReceiver = CSmsDatagramReceiver::NewL(*iAppView);
iSmsSender= CSmsDatagramSender::NewL(*iAppView);
}
// -----------------------------------------------------------------------------
// CDatagramTestAppUi::CDatagramTestAppUi()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CDatagramTestAppUi::CDatagramTestAppUi() : iPhoneNumber(KDefaultTestNumber)
, iTestMessage(KDefaultTestMessage)
{
// No implementation required
}
// -----------------------------------------------------------------------------
// CDatagramTestAppUi::~CDatagramTestAppUi()
// Destructor.
// -----------------------------------------------------------------------------
//
CDatagramTestAppUi::~CDatagramTestAppUi()
{
if ( iAppView )
{
delete iAppView;
iAppView = NULL;
}
delete iSmsReceiver;
delete iSmsSender;
}
void CDatagramTestAppUi::DynInitMenuPaneL(TInt aResourceId,
CEikMenuPane *aMenuPane)
{
CAknAppUi::DynInitMenuPaneL(aResourceId,aMenuPane);
if (aResourceId == R_DATAGRAMTEST_MENU)
{
if (iSmsSender->IsActive())
{
aMenuPane->SetItemDimmed(EDatagramTestCommand2, ETrue);
}
else
{
aMenuPane->SetItemDimmed(EDatagramTestCommand2, EFalse);
}
if (iSmsReceiver->IsActive())
{
aMenuPane->SetItemTextL(EDatagramTestCommand1, _L("StopRecv"));
}
else
{
aMenuPane->SetItemTextL(EDatagramTestCommand1, _L("StartRecv"));
}
}
}
// -----------------------------------------------------------------------------
// CDatagramTestAppUi::HandleCommandL()
// Takes care of command handling.
// -----------------------------------------------------------------------------
//
void CDatagramTestAppUi::HandleCommandL( TInt aCommand )
{
switch( aCommand )
{
case EEikCmdExit:
case EAknSoftkeyExit:
Exit();
break;
case EDatagramTestCommand1:
{
if (iSmsReceiver->IsActive())
{
iSmsReceiver->Cancel();
_LIT(KMessageDisableReceiver,"Message receiver DISABLED");
iAppView->AddMessageL(KMessageDisableReceiver);
}
else
{
iSmsReceiver->SetMatchPatternL(KDefaultTestPattern);
iSmsReceiver->StartReceiveL();
_LIT(KMessageEnableReceiver,"Message receiver ENABLED");
iAppView->AddMessageL(KMessageEnableReceiver);
}
}
break;
case EDatagramTestCommand2: //send SMS
{
if (iSmsSender->IsActive())
{
User::Leave(KErrInUse);
}
else
{
iSendIterator++;
TBuf8<KMaxSMSSize> iTestMessageNumbered;
iTestMessageNumbered=iTestMessage;
iTestMessageNumbered.AppendNum(iSendIterator);
iSmsSender->SendAsyncL(iTestMessageNumbered,iPhoneNumber);
}
}
break;
case EDatagramTestCommand3: //Set target SMS number (this phone)
{
TBuf<16> phoneNumber;
phoneNumber.Copy(iPhoneNumber);
// create dialog instance
CAknTextQueryDialog* dlg =CAknTextQueryDialog::NewL(phoneNumber);
// Prepares the dialog, constructing it from the specified resource
dlg->PrepareLC(R_SMSNUMBER_QUERY);
// Sets the maximum length of the text editor
dlg->SetMaxLength(13);
// Launch the dialog
if (dlg->RunLD())
{
// ok pressed
//This is test code only so no checking of validity
//Shrink to store in iPhoneNumber 8 bit descriptor
//note that this works only for ASCII chars
iPhoneNumber.Copy(phoneNumber);
}
}
break;
default:
Panic( EDatagramTestUi );
break;
}
}
// -----------------------------------------------------------------------------
// Called by the framework when the application status pane
// size is changed. Passes the new client rectangle to the
// AppView
// -----------------------------------------------------------------------------
//
void CDatagramTestAppUi::HandleStatusPaneSizeChange()
{
iAppView->SetRect( ClientRect() );
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -