📄 ansphoneappui.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 + -