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

📄 pbitemview.cpp

📁 个人手机助理套件:包含1、记事本(备忘录)、名片夹、名片夹的上传下载(异地备份)、短消息模块
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CPBItemView from CAknView
*  Part of  : PBItemView
*  Copyright (c) 2003 Nokia. All rights reserved.
* ============================================================================
*/

// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>

#include <Helpergenius.rsg>

#include "Helpergenius.hrh"
#include "PBItemView.h"
#include "PBItemContainer.h" 
#include "HelpergeniusAppUi.h"
#include "PBListView.h"
#include "MEM_FREE.H"
//#include <eikspane.h> 
#include <eikbtgpc.h>

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

// C++ default constructor can NOT contain any code, that
// might leave.
//
CPBItemView* CPBItemView::NewL()
{
    CPBItemView* self = NewLC();
    CleanupStack::Pop(self);
    return self;
}

CPBItemView* CPBItemView::NewLC()
{
    CPBItemView* self = new (ELeave) CPBItemView;
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
}

CPBItemView::CPBItemView()
{
	i_pPBInfo =NULL;
	iContainer=NULL;
}

// EPOC default constructor can leave.
void CPBItemView::ConstructL()
{


	BaseConstructL(R_ITEM_VIEW);
}

// Destructor
CPBItemView::~CPBItemView()
{
	
}

// ---------------------------------------------------------
// TUid CPBItemView::Id()
// Returns Id of the view.
// ---------------------------------------------------------
TUid CPBItemView::Id() const
{
    return KPBItemViewID;
}


// ---------------------------------------------------------
// CPBItemView::HandleCommandL(TInt aCommand)
// Handles commands
// ---------------------------------------------------------
void CPBItemView::HandleCommandL(TInt aCommand)
{   
	switch(aCommand)
	{
	case EFZoneCMDConfirm:
		{
			if(EPBCreate==i_Flag)
			{
				CreateNewContact();
			}
			if(EPBEdit==i_Flag)
			{
				ModifyContact();
			}
		
			AppUi()->ActivateLocalViewL(KPBListViewID);
			break;
		}
	case EFZoneCMDBack:
		{
			if(i_Flag==EPBCreate)
				MEM_FREE(i_pPBInfo)
			AppUi()->ActivateLocalViewL(KPBListViewID);
			break;
		}
	default:
		{
			AppUi()->HandleCommandL(aCommand);
			break;
		}
	}
}
// ---------------------------------------------------------
// CPBItemView::HandleClientRectChange()
// Handles client rect change.
// ---------------------------------------------------------
void CPBItemView::HandleClientRectChange()
{
    if (iContainer)
	{
        iContainer->SetRect(ClientRect());
	}
}

// ---------------------------------------------------------
// CPBItemView::DoActivateL(...)
// Creates the Container class object.
// ---------------------------------------------------------
void CPBItemView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,const TDesC8& /*aCustomMessage*/)
{
    iContainer = new (ELeave) CPBItemContainer(i_pPBInfo);
    iContainer->SetMopParent(this);

//	StatusPane()->MakeVisible(EFalse);
//	Cba()->MakeVisible(EFalse);
	TRect rc;
	rc.SetRect(ClientRect().iTl, TSize(176, 144));

    iContainer->ConstructL(rc);
	if(EPBOpen==i_Flag)
	{
		iContainer->SetEditReadOnly();
	}
    AppUi()->AddToStackL(*this, iContainer);
}

// ---------------------------------------------------------
// CPBItemView::DoDeactivate()
// Deletes the Container class object.
// ---------------------------------------------------------
void CPBItemView::DoDeactivate()
{
    if (iContainer)
	{
        AppUi()->RemoveFromStack(iContainer);
		delete iContainer;
		iContainer = NULL;
	}
}

void CPBItemView::CreateNewContact()
{
	TBuf<16> sLastName  ;
	TBuf<16> sFirstName ;
	TBuf<16> sTel       ;
	TBuf<16> sHomeTel   ;
	TBuf<16> sEmail     ;
	iContainer->GetLastName  (sLastName) ;
	iContainer->GetFirstName (sFirstName);
	iContainer->GetTel       (sTel)      ;//手机
	iContainer->GetHomeTel   (sHomeTel)  ;
	iContainer->GetEmail     (sEmail)    ;
	//若firstname、lastname、phonenumber有一项为空,则不添加新名片.
	if ((sLastName.Length()==0) || (sTel.Length()==0) || (sFirstName.Length())==0)
	{
		return;
	}
	//创建一个名片对象,即一个条目/项.
	//	i_pPBInfo= CPBInfo::NewL();
	//赋值
	i_pPBInfo->SetLastName(sLastName);
	i_pPBInfo->SetFirstName(sFirstName);
	i_pPBInfo->SetTelephone(sHomeTel);
	i_pPBInfo->SetHomeMobileNumber(sTel);//手机
	i_pPBInfo->SetEmail(sEmail);
	i_pPBInfo->SetItemID(-1);
// 	RPointerArray<CPBInfo>* aPBInfoArray = new(ELeave) RPointerArray<CPBInfo>;
// 	aPBInfoArray->Append(i_pPBInfo);
// 	TInt a=i_pPBInfo->GetItemID();
// 	i_pPBEngine->UpdatePhoneBook(1,aPBInfoArray);

}

void CPBItemView::ModifyContact()
{
	TBuf<16> sLastName  ;
	TBuf<16> sFirstName ;
	TBuf<16> sTel       ;
	TBuf<16> sHomeTel   ;
	TBuf<16> sEmail     ;
	iContainer->GetLastName  (sLastName) ;
	iContainer->GetFirstName (sFirstName);
	iContainer->GetTel       (sTel)      ;//手机
	iContainer->GetHomeTel   (sHomeTel)  ;
	iContainer->GetEmail     (sEmail)    ;
	//若firstname、lastname、phonenumber同时都为空,则不添加新名片.
	if ((sLastName.Length()==0) || (sTel.Length()==0) || (sFirstName.Length())==0)
	{
		return;
	}
	i_pPBInfo->SetLastName(sLastName);
	i_pPBInfo->SetFirstName(sFirstName);
	i_pPBInfo->SetTelephone(sHomeTel);
	i_pPBInfo->SetHomeMobileNumber(sTel);//手机
	i_pPBInfo->SetEmail(sEmail);
}
void CPBItemView::SendMsg(CPBInfo* a_pPBInfo,TPBFlag a_Flag,CPBEngine* apPBEngine)
{
	i_pPBInfo=a_pPBInfo;
	i_Flag  =a_Flag;
	i_pPBEngine = apPBEngine;
}
// End of File

⌨️ 快捷键说明

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