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

📄 datagramtestappui.cpp

📁 symbian下面收发消息的APIs
💻 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 + -