📄 inboxdraftssentview.cpp
字号:
pathMbm.Copy(_L("z:\\system\\apps\\HelperGenius\\HelperGenius.mbm"));
#else
CHelperGeniusAppUi* pApp = (CHelperGeniusAppUi*)CEikonEnv::Static()->AppUi();
pApp->GetAppPath(pathMbm);
pathMbm.Append(_L("HelperGenius.mbm"));
#endif
CEikStatusPane* statusPane = StatusPane();
//set icon
CAknContextPane* contextPane=(CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusSms);
CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusSms_mask);
//contextPane->SetPicture(bitmap);
contextPane->SetPicture(bitmap, bitmapMask);
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_DRAFTS_TITLE);
CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
titlePane->SetTextL(sTmpTitle);
CHelperGeniusAppUi* pApp = (CHelperGeniusAppUi*)CEikonEnv::Static()->AppUi();
tFlag = pApp->GetPointerSmsView()->m_tFlag;
SetStatusPaneIconAndTitle();
ShowDraftBoxL();
}
// ---------------------------------------------------------
// CSmsView::DoDeactivate()
// Deletes the Container class object.
// ---------------------------------------------------------
void CInBoxDraftsSentView::DoDeactivate()
{
if (iContainer)
{
AppUi()->RemoveFromStack(iContainer);
delete iContainer;
iContainer = NULL;
}
// DELPTR(m_PIdArray);
}
void CInBoxDraftsSentView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
{
if(aResourceId != R_INBOXDRAFTSSENT_MENUPANE )
return;
//标志位:相当于显示或不显示菜单栏的开关
CHelperGeniusAppUi* pAppui = (CHelperGeniusAppUi*)CEikonEnv::Static()->AppUi();
switch(tFlag)
{
case EDrafts://草稿箱
{
m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
if ( m_PIdArray->Count() )
{
aMenuPane->SetItemDimmed(EHelperGeniusCmdReply, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdForward, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdSaveAs, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdRemove, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdWriteSms, ETrue);
break;
}
else
{
aMenuPane->SetItemDimmed(EHelperGeniusCmdOpen, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdReply, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdForward, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdSaveAs, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdRemove, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdEdit, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdDelete, ETrue);
break;
break;
}
case ESent://已发信息
{
m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
if(!m_PIdArray->Count())
{
aMenuPane->SetItemDimmed(EHelperGeniusCmdOpen, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdEdit, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdDelete, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdReply, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdSaveAs, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdRemove, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdForward, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdWriteSms, ETrue);
// aMenuPane->SetItemDimmed(EHelperGeniusCmdBack, EFalse);
}
else
{
// aMenuPane->SetItemDimmed(EHelperGeniusCmdOpen, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdEdit, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdDelete, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdReply, ETrue);
// aMenuPane->SetItemDimmed(EHelperGeniusCmdSaveAs, EFalse);
// aMenuPane->SetItemDimmed(EHelperGeniusCmdRemove, EFalse);
// aMenuPane->SetItemDimmed(EHelperGeniusCmdForward, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdWriteSms, ETrue);
// aMenuPane->SetItemDimmed(EHelperGeniusCmdBack, EFalse);
}
break;
}
case EInBox://收件箱
{
// DELPTR(m_PIdArray);
m_PIdArray = pAppui->m_pMtmsExampleEngine->GetMessageIds();
if(!m_PIdArray->Count())
{
aMenuPane->SetItemDimmed(EHelperGeniusCmdOpen, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdEdit, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdDelete, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdReply, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdSaveAs, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdRemove, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdForward, ETrue);
aMenuPane->SetItemDimmed(EHelperGeniusCmdWriteSms, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdBack, EFalse);
}
else
{
aMenuPane->SetItemDimmed(EHelperGeniusCmdOpen, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdEdit, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdDelete, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdReply, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdSaveAs, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdRemove, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdWriteSms, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdBack, EFalse);
aMenuPane->SetItemDimmed(EHelperGeniusCmdForward, EFalse);
}
break;
}
default:
{
break;
}
}
}
}
void CInBoxDraftsSentView::ShowDraftBoxL()
{
CDesCArrayFlat* arrayRead = new (ELeave) CDesCArrayFlat(10);
CDesCArrayFlat* arrayAddr = new (ELeave) CDesCArrayFlat(10);
CDesCArrayFlat* arrayMsgBody = new (ELeave) CDesCArrayFlat(10);
TInt nLen = 0;
TInt nNumber = 0;
TBuf<2> szNumber;
CHelperGeniusAppUi* pAppui = (CHelperGeniusAppUi*)CEikonEnv::Static()->AppUi();
switch (tFlag)
{
case EInBox://收件箱
{
pAppui->m_pMtmsExampleEngine->GetFolderSMSMessageInformation(KMsvGlobalInBoxIndexEntryId,arrayRead,arrayAddr,arrayMsgBody);
nLen = arrayRead->Count();
if (nLen > 0)
{
TInt i = 0;
for (i = 0; i < nLen; i++)
{
szNumber.Copy(arrayRead->MdcaPoint(i));
//根据已读和未读信息加载不同的图标
if(arrayRead->At(i))
{
nNumber = 4;
}
else
nNumber = 3;
szNumber.Num(nNumber);
iContainer->AddInfoToList(nNumber,arrayAddr->MdcaPoint(i),arrayMsgBody->MdcaPoint(i));
// iContainer->SizeChanged();
}
}
break;
}
case EDrafts://草稿箱
{
pAppui->m_pMtmsExampleEngine->GetFolderSMSMessageInformation(KMsvDraftEntryId,arrayRead,arrayAddr,arrayMsgBody);
nLen = arrayRead->Count();
if (nLen > 0)
{
TInt i = 0;
for (i = 0; i < nLen; i++)
{
szNumber.Copy(arrayRead->MdcaPoint(i));
//根据不同的信息加载不同的图标
if(arrayRead->At(i))
{
nNumber = 0;
}
else
nNumber = 1;
szNumber.Num(nNumber);
iContainer->AddInfoToList(nNumber,arrayAddr->MdcaPoint(i),arrayMsgBody->MdcaPoint(i));
}
}
break;
}
case ESent://已发信息
{
pAppui->m_pMtmsExampleEngine->GetFolderSMSMessageInformation(KMsvSentEntryId,arrayRead,arrayAddr,arrayMsgBody);
nLen = arrayRead->Count();
if (nLen > 0)
{
for (TInt i = 0; i < nLen; i++)
{
szNumber.Copy(arrayRead->MdcaPoint(i));
szNumber.Num(2);
iContainer->AddInfoToList(2,arrayAddr->MdcaPoint(i),arrayMsgBody->MdcaPoint(i));
}
}
break;
}
default:
{
break;
}
}
//
// TInt nLen = 0;
// TInt nNumber = 1;
// TBuf<2> szNumber;
//
//
// if (nLen > 0)
// {
// TInt i = 0;
// for (i = 0; i < nLen; i++)
// {
// szNumber.Copy(arrayRead->MdcaPoint(i));
// szNumber.Num(nNumber);
// iContainer->AddInfoToList(nNumber,arrayAddr->MdcaPoint(i),arrayMsgBody->MdcaPoint(i));
// }
// }
arrayMsgBody->Reset();
delete arrayMsgBody;
arrayAddr->Reset();
delete arrayAddr;
arrayRead->Reset();
delete arrayRead;
}
void CInBoxDraftsSentView::HandleMessageSentL(TInt aError)
{
_LIT(KMessageSent,"send succeed!");
_LIT(KMessageUnsent,"send fail!");
if (aError == KErrNone)
{
CAknInformationNote* note = new (ELeave) CAknInformationNote;
note->ExecuteLD(KMessageSent);
}
else
{
TBuf<64> buf;
buf.Format(KMessageUnsent, aError);
CAknErrorNote* note = new (ELeave) CAknErrorNote;
note->ExecuteLD(buf);
}
}
//设置状态栏图标和标题
void CInBoxDraftsSentView::SetStatusPaneIconAndTitle( )
{
TBuf<KMaxPath> pathMbm;
#ifdef __WINS__
pathMbm.Copy(_L("z:\\system\\apps\\HelperGenius\\HelperGenius.mbm"));
#else
CHelperGeniusAppUi* pApp = (CHelperGeniusAppUi*)CEikonEnv::Static()->AppUi();
pApp->GetAppPath(pathMbm);
pathMbm.Append(_L("HelperGenius.mbm"));
#endif
CEikStatusPane* statusPane = StatusPane();
switch( tFlag )
{
// case EWriteSms:
// {
//
// //set icon
// CAknContextPane* contextPane=(CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
// CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusWritesmsview);
// CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusWritesmsview_mask);
//
// //contextPane->SetPicture(bitmap);
// contextPane->SetPicture(bitmap, bitmapMask);
// TBuf<32> sTmpTitle;
// CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_WRITESMS_TITLE);
//
// CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
// titlePane->SetTextL(sTmpTitle);
// break;
// }
case EInBox:
{
//set icon
CAknContextPane* contextPane=(CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusWritesmsview);
CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusWritesmsview_mask);
//contextPane->SetPicture(bitmap);
contextPane->SetPicture(bitmap, bitmapMask);
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_SMS_INBOX);
CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
titlePane->SetTextL(sTmpTitle);
break;
}
case EDrafts:
{
//set icon
CAknContextPane* contextPane=(CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusDrafts);
CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusDrafts_mask);
//contextPane->SetPicture(bitmap);
contextPane->SetPicture(bitmap, bitmapMask);
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_DRAFTS_TITLE);
CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
titlePane->SetTextL(sTmpTitle);
break;
}
case ESent:
{
//set icon
CAknContextPane* contextPane=(CAknContextPane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext));
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusSendedsms);
CFbsBitmap* bitmapMask = iEikonEnv->CreateBitmapL(pathMbm, EMbmHelpergeniusSendedsms_mask);
//contextPane->SetPicture(bitmap);
contextPane->SetPicture(bitmap, bitmapMask);
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_MH_SMS_SENT);
CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
titlePane->SetTextL(sTmpTitle);
break;
}
default:
{
break;
}
}
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -