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

📄 ansphoneappui.cpp

📁 symbian os s603rd 电话示例
💻 CPP
字号:
/*
============================================================================
 Name        : AnsPhoneAppUi.cpp
 Author      : Lion
 Copyright   : Your copyright notice
 Description : CAnsPhoneAppUi implementation
============================================================================
*/

// INCLUDE FILES
#include <avkon.hrh>
#include <aknnotewrappers.h>
#include <stringloader.h>
#include <AnsPhone.rsg>
#include <f32file.h>
#include <s32file.h>
#include <uikon.hrh>
#include <eikmenup.h>
#include <eikbtgpc.h>

#include "AnsPhone.pan"
#include "AnsPhoneAppUi.h"
#include "AnsPhoneAppView.h"
#include "AnsPhone.hrh"
#include "AnsPhoneApplication.h"

_LIT( KFileName, "C:\\private\\0EDFFB69\\AnsPhone.txt" );
_LIT( KText, "Hello World!");

// ============================ MEMBER FUNCTIONS ===============================


// -----------------------------------------------------------------------------
// CAnsPhoneAppUi::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CAnsPhoneAppUi::ConstructL()
    {
    // Initialise app UI with standard value.
    BaseConstructL();

	// Create view object
	iAppView = CAnsPhoneAppView::NewL( ClientRect() );
	iAppView->SetMopParent(this);
	AddToStackL(iAppView);
	
	Cba()->MakeVisible(ETrue);
	

	}
// -----------------------------------------------------------------------------
// CAnsPhoneAppUi::CAnsPhoneAppUi()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CAnsPhoneAppUi::CAnsPhoneAppUi()
    {
    // No implementation required
    }

// -----------------------------------------------------------------------------
// CAnsPhoneAppUi::~CAnsPhoneAppUi()
// Destructor.
// -----------------------------------------------------------------------------
//
CAnsPhoneAppUi::~CAnsPhoneAppUi()
    {
    if ( iAppView )
        {
        RemoveFromStack(iAppView);
        delete iAppView;
        iAppView = NULL;
        }

    }

// -----------------------------------------------------------------------------
// CAnsPhoneAppUi::HandleCommandL()
// Takes care of command handling.
// -----------------------------------------------------------------------------
//
void CAnsPhoneAppUi::HandleCommandL( TInt aCommand )
    {
    switch(aCommand)
		{
		case EAknSoftkeyExit:
		case EAknSoftkeyBack:
			Exit();
			break;
		case EAnsPhoneMenuAnsweringStart:
			iAppView->AnsweringStartL();
			break;
		case EAnsPhoneMenuAnsweringStop:
			iAppView->AnsweringStopL();
			break;
		case EAnsPhoneMenuMessagesView:
			iAppView->ShowMessagesL();
			break;
		case EAnsPhoneMenuPlayMessage:
			iAppView->PlayMessageL();
			break;
		case EAnsPhoneMenuRecordMessage:
			iAppView->RecordMessageL();
			break;
		case EAnsPhoneMenuStop:
			iAppView->Stop();
			break;
		case EAnsPhoneMenuMessagesPlay:
			iAppView->PlayMessageL();
			break;
		case EAnsPhoneMenuMessagesDial:
			iAppView->DialL();
			break;
		case EAnsPhoneMenuMessagesDelete:
			iAppView->DeleteMessageL();
			break;
		case EAnsPhoneMenuMessagesBack:
			iAppView->BackL();
			break;
		default:
			break;
		}
    }


void CAnsPhoneAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
{
	{
	if(aResourceId != R_ANSPHONE_MENU)
		return;

	switch(iAppView->State())
		{
		case CAnsPhoneAppView::EStopped:
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStart, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStop, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesView, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuPlayMessage, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuRecordMessage, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuStop, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesPlay, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDial, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDelete, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesBack, ETrue);
			break;
		case CAnsPhoneAppView::ERunning:
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStart, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStop, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesView, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuPlayMessage, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuRecordMessage, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuStop, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesPlay, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDial, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDelete, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesBack, ETrue);
			break;
		case CAnsPhoneAppView::EAnswering:
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStart, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStop, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesView, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuPlayMessage, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuRecordMessage, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuStop, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesPlay, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDial, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDelete, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesBack, ETrue);
			break;
		case CAnsPhoneAppView::EMessages:
			{
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStart, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStop, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesView, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuPlayMessage, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuRecordMessage, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuStop, ETrue);
			
			// Determines if there is any messages and displays the correct
			// menu options
			TBool messageOptions = iAppView->MessageItemsCount() > 0 ? EFalse : ETrue;
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesPlay, messageOptions);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDial, messageOptions);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDelete, messageOptions);
			
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesBack, EFalse);
			break;
			}
		case CAnsPhoneAppView::ECanStop:
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStart, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuAnsweringStop, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesView, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuPlayMessage, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuRecordMessage, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuStop, EFalse);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesPlay, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDial, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesDelete, ETrue);
			aMenuPane->SetItemDimmed(EAnsPhoneMenuMessagesBack, ETrue);
			break;
		}
	}
}


void CAnsPhoneAppUi::BringAppToFront()
{
	TApaTaskList taskList(iCoeEnv->WsSession());
	TApaTask currentTask = taskList.FindByPos(0);
	TApaTask ourAppTask = taskList.FindApp(KUidAnsPhoneApp);
	if(currentTask.ThreadId() != ourAppTask.ThreadId())
		ourAppTask.BringToForeground();
}
// -----------------------------------------------------------------------------
//  Called by the framework when the application status pane
//  size is changed.  Passes the new client rectangle to the
//  AppView
// -----------------------------------------------------------------------------
//

//void CAnsPhoneAppUi::HandleStatusPaneSizeChange()
//{
//	iAppView->SetRect( ClientRect() );
//	
//} 

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -