📄 inboxdraftssentview.cpp
字号:
/*
* ============================================================================
* 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 + -