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

📄 inboxdraftssentview.cpp

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

// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>
#include <eikmenub.h>	// for CEikMenuBar
#include <HelperGenius.rsg>
#include "HelperGenius.hrh"
#include "InBoxDraftsSentView.h"
#include "InBoxDraftsSentContainer.h" 
#include <akncontext.h>	//for CAknContextPane
#include <akntitle.h>	//for CAknTitlePane
#include "HelperGeniusAppUi.h"
#include "EditSmsView.h"
#include "MtmsExampleEngine.h"
#include "HelpView.h"
#include "MyGridView.h"

#include <HelperGenius.mbg>	//for mbm
#include <s32file.h>
#include <eikmobs.h>
#include <aknnotewrappers.h> 
#include <msvids.h>
// ================= MEMBER SmsS =======================

// C++ default constructor can NOT contain any code, that
// might leave.
//


#define  DELPTR(p) if(p!=NULL){ delete p;p=NULL;}

CInBoxDraftsSentView* CInBoxDraftsSentView::NewL(  )
{
    CInBoxDraftsSentView* self = NewLC(  ); 
    CleanupStack::Pop(self);
    return self;
}

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

CInBoxDraftsSentView::CInBoxDraftsSentView(  )
{
	iContainer = NULL;
	m_PIdArray = NULL;
	
}

// EPOC default constructor can leave.
void CInBoxDraftsSentView::ConstructL()
{
//	m_pMtmsExampleEngine = CMtmsExampleEngine::NewL(*this);
    BaseConstructL( R_INBOXDRAFTSSENT_VIEW );
}

// Destructor
CInBoxDraftsSentView::~CInBoxDraftsSentView()
{
	
//	DELPTR(m_pMtmsExampleEngine);
	//DELPTR(iContainer);
}

// ---------------------------------------------------------
// TUid CSmsView::Id()
// Returns Id of the view.
// ---------------------------------------------------------
TUid CInBoxDraftsSentView::Id() const
{
	
    return KInBoxDraftsSentId;
}

// ---------------------------------------------------------
// CSmsView::HandleCommandL(TInt aCommand)
// Handles commands
// ---------------------------------------------------------
void CInBoxDraftsSentView::HandleCommandL(TInt aCommand)
{
	CHelperGeniusAppUi* pAppui = (CHelperGeniusAppUi*)CEikonEnv::Static()->AppUi();
	switch(tFlag)
	{
		
	case EInBox://收件箱
		{
			switch(aCommand)
			{	
			case EHelperGeniusCmdOpen://打开
				{				
					Tpackage info;
					info.m_Flag = 0;//表示打开
					info.m_BoxFlag = EInBox;
					info.m_Uid = iContainer->GetCurrentIndex();
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					info.m_PIdArray = m_PIdArray;
					TPckgBuf< Tpackage > package(info);
					TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
					para.Copy( package );
					
					AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);
					break;
				}
			case EHelperGeniusCmdEdit://编辑
				{				
					Tpackage info;
					info.m_Flag = 1;//表示编辑
					info.m_BoxFlag = EInBox;
					info.m_Uid = iContainer->GetCurrentIndex();
					
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					info.m_PIdArray = m_PIdArray;
					TPckgBuf< Tpackage > package(info);
					TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
					para.Copy( package );
					
					AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);
					break;
				}
			case EHelperGeniusCmdDelete://删除
				{	
					pAppui->m_pMtmsExampleEngine->DeleteMessageL(iContainer->GetCurrentIndex());
					iContainer->DeleteListBox(iContainer->GetCurrentIndex());
					//	AppUi()->ActivateLocalViewL(KInBoxDraftsSentId);
					break;
				}
			case EHelperGeniusCmdForward://转发
				{				
					Tpackage info;
					info.m_Flag = 3;//表示转发
					info.m_BoxFlag = EInBox;
					info.m_Uid = iContainer->GetCurrentIndex();
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					info.m_PIdArray = m_PIdArray;
					TPckgBuf< Tpackage > package(info);
					TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
					para.Copy( package );
					
					AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);				
					
					break;
				}
			case EHelperGeniusCmdWriteSms://写信息
				{			
					
					AppUi()->ActivateLocalViewL(KEditSmsId/*,KInBoxDraftsSentId,para*/);
					break;
				}
			case EHelperGeniusCmdReply://回复
				{				
					Tpackage info;
					info.m_Flag = 2;//表示回复
					info.m_Uid = iContainer->GetCurrentIndex();
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					info.m_PIdArray = m_PIdArray;
					TPckgBuf< Tpackage > package(info);
					TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
					para.Copy( package );
					AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);
					break;
				}
			case EHelperGeniusCmdSaveAs://转存
				{				
					pAppui->m_pMtmsExampleEngine->MoveToFolderL(iContainer->GetCurrentIndex(),KMsvDraftEntryId);
					//	AppUi()->ActivateLocalViewL(KInBoxDraftsSentId);
					iContainer->DeleteListBox(iContainer->GetCurrentIndex());
					break;
				}
			case EHelperGeniusCmdRemove://清空
				{	
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					for(TInt i = 0; i<m_PIdArray->Count();i++)
					{
						pAppui->m_pMtmsExampleEngine->DeleteMessageL(i);
						iContainer->DeleteListBox(i);
					}
					//	AppUi()->ActivateLocalViewL(KInBoxDraftsSentId);
					break;
				}
			case EHelperGeniusCmdBack://返回到smsview
				{				
					AppUi()->ActivateLocalViewL(KSmsId);
					break;
				}
			default:
				//AppUi()->HandleCommandL(aCommand);
				AppUi()->ActivateLocalViewL(KSmsId);
				break;
				}
				break;
			}
		case EDrafts://草稿箱
			{
				switch(aCommand)
				{
				case EHelperGeniusCmdOpen://打开
					{	
					Tpackage info;
					info.m_Flag = 0;//表示打开
					info.m_BoxFlag = EDrafts;
					info.m_Uid = iContainer->GetCurrentIndex();					
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					info.m_PIdArray = m_PIdArray;
					TPckgBuf< Tpackage > package(info);
					TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
					para.Copy( package );
					
					AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);
					break;	   
						
					}
					
				case EHelperGeniusCmdEdit://编辑
					{				
					Tpackage info;
					info.m_Flag = 1;//表示编辑
					info.m_BoxFlag = EDrafts;
					info.m_Uid = iContainer->GetCurrentIndex();	
					m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
					info.m_PIdArray = m_PIdArray;
					TPckgBuf< Tpackage > package(info);
					TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
					para.Copy( package );
					
					AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);
					break;




				}
					
				case EHelperGeniusCmdDelete:
					{				
						pAppui->m_pMtmsExampleEngine->DeleteMessageL(iContainer->GetCurrentIndex());
						iContainer->DeleteListBox(iContainer->GetCurrentIndex());
						break;
					}
// 					
				case EHelperGeniusCmdBack://返回到smsview
					{				
						AppUi()->ActivateLocalViewL(KSmsId);
						break;
					}
// 					
// 				case EHelperGeniusCmdWriteSms://写信息
// 					{
// 						TBuf<1> bufAddress(_L("")), bufContent(_L(""));
// 						TOpenModeFlag  tFlag = EWritesms;				
// 						iTransData->SendData( bufAddress, bufContent,tFlag ,0); //0无作用
// 						AppUi()->ActivateLocalViewL( KEditSmsId );
// 						break;			   
// 						
// 					}
	} 
			}
		case ESent://已发信息
			{
				switch(aCommand)
				{	
				case EHelperGeniusCmdOpen://打开
					{				
						Tpackage info;
						info.m_Flag = 0;//表示打开
						info.m_BoxFlag = ESent;
						info.m_Uid = iContainer->GetCurrentIndex();
						info.m_PIdArray = m_PIdArray;
						m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
						TBuf8<256> para;	
						TPckgBuf< Tpackage > package(info);
						//要根据Tpackage所占的内存空间准备足够的buffer
						para.Copy( package );
						
						AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);
						
						break;
					}
					
				case EHelperGeniusCmdForward://转发
					{				
						Tpackage info;
						info.m_Flag = 3;//表示转发
						info.m_BoxFlag = ESent;
						info.m_Uid = iContainer->GetCurrentIndex();
						m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
						info.m_PIdArray = m_PIdArray;
						TPckgBuf< Tpackage > package(info);
						TBuf8<256> para;       //要根据Tpackage所占的内存空间准备足够的buffer
						para.Copy( package );
						
						AppUi()->ActivateLocalViewL(KEditSmsId,KInBoxDraftsSentId,para);				
						
						break;
					}
					
				case EHelperGeniusCmdSaveAs://转存
					{				
						pAppui->m_pMtmsExampleEngine->MoveToFolderL(iContainer->GetCurrentIndex(),KMsvDraftEntryId);
						//AppUi()->ActivateLocalViewL(KInBoxDraftsSentId);
						iContainer->DeleteListBox(iContainer->GetCurrentIndex());
						break;
					}
				case EHelperGeniusCmdRemove://清空
					{	
						m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
						for(TInt i = 0; i<m_PIdArray->Count();i++)
						{
							pAppui->m_pMtmsExampleEngine->DeleteMessageL(i);
							iContainer->DeleteListBox(i);
						}
						
						//	DELPTR(iContainer->GetListBoxArray());
						//	AppUi()->ActivateLocalViewL(KInBoxDraftsSentId);
						break;
					}
				case EHelperGeniusCmdBack://返回到smsview
					{				
						AppUi()->ActivateLocalViewL(KSmsId);
						break;
					}
// 				default:
// 					{
// 						AppUi()->ActivateLocalViewL(KSmsId);
// 						break;
// 					}
				}
				break;
			}
			
		default:
			{
				break;
			}
	}	
}

// ---------------------------------------------------------
// CSmsView::HandleClientRectChange()
// Handles client rect change.
// ---------------------------------------------------------
void CInBoxDraftsSentView::HandleClientRectChange()
{
    if (iContainer)
	{
        iContainer->SetRect(ClientRect());
	}
}

// ---------------------------------------------------------
// CSmsView::DoActivateL(...)
// Creates the Container class object.
// ---------------------------------------------------------
void CInBoxDraftsSentView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,
									   TUid /*aCustomMessageId*/,
									   const TDesC8& /*aCustomMessage*/)
{
	
	
    iContainer = new (ELeave) CInBoxDraftsSentContainer;
	iContainer->SetMopParent(this);	
	TRect rc;
	rc.SetRect(ClientRect().iTl, TSize(176, 144));
    iContainer->ConstructL(rc);
	AppUi()->AddToStackL(*this, iContainer);

	
	TBuf<KMaxPath> pathMbm;
#ifdef __WINS__

⌨️ 快捷键说明

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