📄 moduleview.cpp
字号:
_ftprintf( pFile,_T("*******************************%s*******************************\r\n"),_T("SUMMARY"));
_ftprintf( pFile,_T("%s\t\t%s\t\t%s\t\t%s\t\t%s\r\n"),
_T("PRJNAME"),_T("IAMG"),_T("ANIM"),_T("RING"),_T("SUM"));
int arrSum[4] = {0};
for (i=0;i<module_count;++i)
{
filename=g_theApp.m_prjarray[i];
int nleft=filename.ReverseFind(_T('\\'));
filename=filename.Right((filename.GetLength()-nleft-1));
_ftprintf( pFile,_T("%s\t\t%d\t\t%d\t\t%d\t\t%d\r\n"),
filename,pSize[i][0],pSize[i][1],pSize[i][2],pSize[i][3]);
arrSum[0]+=pSize[i][0];
arrSum[1]+=pSize[i][1];
arrSum[2]+=pSize[i][2];
arrSum[3]+=pSize[i][3];
delete [] pSize[i];
}
_ftprintf( pFile,_T("----------------------------------------------------------------------\r\n"));
_ftprintf( pFile,_T("\t\t%d\t\t%d\t\t%d\t\t%d\r\n"),
arrSum[0],arrSum[1],arrSum[2],arrSum[3]);
fclose(pFile);
delete [] pSize;
return TRUE;
}
BOOL CModuleView::WriteModuleHFile(LPCTSTR pszFileName)
{
CFile file;
//buffer for unicode to mbcs
char *pszBuf = new char[1024*100];
int nUnicodeSize = 0; // by 16-bit
try{
if( !file.Open(pszFileName, CFile::modeCreate | CFile::modeWrite) )
{
return FALSE;
}
_TCHAR szTitle[] =
_T("/*****************************************************************************\r\n")
_T("** File Name: xxx_mmi_image.h *\r\n")
_T("** Author: *\r\n")
_T("** Date: 12/2003 *\r\n")
_T("** Copyright: 2003 Spreadtrum, Incoporated. All Rights Reserved. *\r\n")
_T("** Description: This file is used to describe call log *\r\n")
_T("******************************************************************************\r\n")
_T("** Important Edit History *\r\n")
_T("** --------------------------------------------------------------------------*\r\n")
_T("** Create by Spreadtrum Resource Editor tool *\r\n")
_T("******************************************************************************/\r\n\r\n");
_TCHAR szBegin[] =
_T("#ifndef _MMI_MODULE_H_\r\n")
_T("#define _MMI_MODULE_H_\r\n\r\n")
_T("#include \"sci_types.h\"\r\n\r\n")
_T("#ifdef __cplusplus\r\n")
_T("extern \"C\" {\r\n")
_T("#endif\r\n\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n")
_T("// 模块资源信息\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n\r\n")
//"typedef struct\r\n"
//"{\r\n"
//"\tuint32 total_usedsize; //所有资源所用空间\r\n"
//"\tuint32 mmi_module_adrr[32]; //各模块在数据里的头指针\r\n"
//"}MMI_MODULE_TOTAL_INFO_T,*PMMI_MODULE_TOTAL_INFO_T;\r\n"
_T("typedef enum MMI_MODULE_TYPE_E\r\n")
_T("{\r\n");
_TCHAR szEnd[] =
_T("} MMI_MODULE_TYPE_E;\r\n\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n")
_T("// 动画资源的信息\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n\r\n")
_T("typedef enum _ANIM_TYPE_E\r\n")
_T("{\r\n")
_T("\tAT_COMPRESS_STREAM = 0\r\n")
_T("} ANIM_TYPE_E;\r\n\r\n")
_T("typedef struct _ANIM_FLAG_T\r\n")
_T("{\r\n")
_T("\tuint16 nWidth;\r\n")
_T("\tuint16 nHeight;\r\n")
_T("\tuint16 AnimType;\r\n")
_T("\tuint16 nFrameNum;\r\n")
_T("\tuint32 nDataSize;\r\n")
_T("} ANIM_FLAG_T, * PANIM_FLAG_T;\r\n\r\n")
_T("typedef struct _MMI_ANIM_DATA_T\r\n")
_T("{\r\n")
_T(" PANIM_FLAG_T pFlag;\r\n")
_T(" uint32 * pAnimData;\r\n")
_T("} MMI_ANIM_DATA_T, * PMMI_ANIM_DATA_T;\r\n\r\n\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n")
_T("// 图片资源的信息\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n\r\n")
_T("// 图片的类型\r\n")
_T("typedef enum _IMG_TYPE_E\r\n")
_T("{\r\n")
_T("\tIT_BMP_16_565_RAW = 0, // 16位565格式的原始位图\r\n")
_T("\tIT_BMP_16_565_RLE // 16位565格式,采用行压缩的位图\r\n")
_T("} IMG_TYPE_E;\r\n\r\n")
_T("typedef struct _IMG_FLAG_T\r\n")
_T("{\r\n")
_T("\tuint16 nWidth;\r\n")
_T("\tuint16 nHeight;\r\n")
_T("\tuint16 nType;\r\n")
_T("\tuint16 nOtherInfo;\r\n")
_T("\tuint32 nSize;\r\n")
_T("} IMG_FLAG_T, * PIMG_FLAG_T;\r\n\r\n")
_T("typedef struct _MMI_IMG_DATA_T\r\n")
_T("{\r\n")
_T("\tPIMG_FLAG_T pFlag; // 图片的附件标识,如长、宽、类型等信息\r\n")
_T("\tuint32 * pImgData;\r\n")
_T("} MMI_IMG_DATA_T, * PMMI_IMG_DATA_T;\r\n\r\n\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n")
_T("// 文字资源的信息\r\n")
_T("///////////////////////////////////////////////////////////////////////////////\r\n\r\n")
_T("typedef enum _TEXT_TYPE_E\r\n")
_T("{\r\n");
_TCHAR szEnd2[] =
_T("\tTT_MAX_NUM\r\n")
_T("} TEXT_TYPE_E;\r\n\r\n")
_T("typedef struct _KSP_TEXT_T\r\n")
_T("{\r\n")
_T("\tchar * pTxtTable;\r\n")
_T("\tuint16 nbText;\r\n")
_T("} KSP_TEXT_T, * PKSP_TEXT_T;\r\n\r\n\r\n")
_T("#ifdef __cplusplus\r\n")
_T("}\r\n")
_T("#endif\r\n\r\n")
_T("#endif // _MMI_MODULE_H_");
nUnicodeSize = _tcslen(szTitle);
WideCharToMultiByte( CP_ACP, 0, szTitle, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
nUnicodeSize = _tcslen(szBegin);
WideCharToMultiByte( CP_ACP, 0, szBegin, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
//file.Write(szBegin, _tcslen(szBegin));
CString strLine;
int nSize = g_theApp.m_module_id.GetSize();
for( int i = 0; i < nSize; ++i )
{
strLine.Format(_T("\t%s,\r\n"), g_theApp.m_module_id[i]);
nUnicodeSize = strLine.GetLength();
WideCharToMultiByte( CP_ACP, 0, strLine, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
}
strLine = _T("\tMMI_MODULE_MAX_NUM\r\n");
nUnicodeSize = strLine.GetLength();
WideCharToMultiByte( CP_ACP, 0, strLine, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
nUnicodeSize = _tcslen(szEnd);
WideCharToMultiByte( CP_ACP, 0, szEnd, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
//file.Write(szEnd, _tcslen(szEnd));
for(int j= 0;j<g_theApp.m_nUsedLangNum;j++)
{
CString strLang = g_theApp.m_arrUsedLangNames.GetAt(j);
strLang.Remove(_T(' '));
strLang.MakeUpper();
strLine.Format(_T("\tTT_%s \t\t= %d,\r\n"), strLang,j);
nUnicodeSize = strLine.GetLength();
WideCharToMultiByte( CP_ACP, 0, strLine, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
}
nUnicodeSize = _tcslen(szEnd2);
WideCharToMultiByte( CP_ACP, 0, szEnd2, -1, pszBuf, nUnicodeSize*2, NULL, NULL );
file.Write(pszBuf, strlen(pszBuf));
//file.Write(szEnd2, _tcslen(szEnd2));
file.Close();
}
catch(CFileException * pfe)
{
pfe->ReportError();
pfe->Delete();
return FALSE;
}
return TRUE;
}
void CModuleView::OnAddToList(WPARAM wParam, LPARAM lParam)
{
//CStringArray prjarray=(CStringArray)wParam;
int nsize=0,i=0;
if (g_theApp.m_isclickopen)
{
return;
}
if (1==wParam)
{
CListCtrl &ls=GetListCtrl();
ls.DeleteAllItems();
ls.InsertItem(0,_T("Module List:"));
nsize=g_theApp.m_prjarray.GetSize();
for(i=0;i<nsize;++i)
{
AddModuleToList(g_theApp.m_prjarray[i]);
}
}
else
{
CListCtrl &ls=GetListCtrl();
g_theApp.m_prjarray.RemoveAll();
ls.DeleteAllItems();
ls.InsertItem(0,_T("Module List:"));
}
return;
}
CString CModuleView::GetResFileName( BOOL bOpen /* = TRUE */ )
{
CFileDlg fileDlg(bOpen);
fileDlg.SetFileExt(SZ_FILE_EXT);
fileDlg.SetFileFilter(SZ_FILTER);
return fileDlg.GetPathName();
}
BOOL CModuleView::IsModuleListEmpty(void)
{
BOOL ret_value=FALSE;
CListCtrl &ls=GetListCtrl();
int module_count=0;
module_count=ls.GetItemCount();
if (module_count > 1)
{
ret_value=TRUE;
}
return ret_value;
}
void CModuleView::OnModuleDel()
{
// TODO: Add your command handler code here
CListCtrl &ls = GetListCtrl();
POSITION pos = ls.GetFirstSelectedItemPosition();
if(pos == NULL)
return;
int nSel = ls.GetNextSelectedItem(pos);
if(nSel<=0)
return;
CString str;
str.Format(_T("Are you sure that you will\ndelete \"%s\" ?"),
ls.GetItemText(nSel,0));
if(AfxMessageBox(str,MB_YESNO)==IDYES)
{
g_theApp.m_bCloseOnePrj = TRUE;
if(g_theApp.m_prjarray.GetAt(nSel-1) == g_theApp.m_strPrjFileName)
{
g_theApp.OnProjectClose();
if(g_theApp.m_bCanShowView) //提示用户是否保存时,选择了“取消”
{
g_theApp.m_bCloseOnePrj = FALSE;
return;
}
}
g_theApp.m_prjarray.RemoveAt(nSel-1);
ls.DeleteItem(nSel);
g_theApp.m_bCloseOnePrj = FALSE;
}
}
void CModuleView::OnModuleDown()
{
// TODO: Add your command handler code here
CListCtrl &ls = GetListCtrl();
POSITION pos = ls.GetFirstSelectedItemPosition();
_ASSERTE( pos != NULL );
int nSel = ls.GetNextSelectedItem(pos);
CString strCur = g_theApp.m_prjarray.GetAt(nSel-1);
CString strNext = g_theApp.m_prjarray.GetAt(nSel);
g_theApp.m_prjarray.SetAt(nSel-1,strNext);
g_theApp.m_prjarray.SetAt(nSel,strCur);
strCur = ls.GetItemText(nSel,0);
strNext = ls.GetItemText(nSel+1,0);
ls.SetItemText(nSel,0,strNext);
ls.SetItemText(nSel+1,0,strCur);
ls.SetFocus();
ls.SetItemState(nSel+1,LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
}
void CModuleView::OnModuleUp()
{
// TODO: Add your command handler code here
CListCtrl &ls = GetListCtrl();
POSITION pos = ls.GetFirstSelectedItemPosition();
_ASSERTE( pos != NULL );
int nSel = ls.GetNextSelectedItem(pos);
CString strCur = g_theApp.m_prjarray.GetAt(nSel-1);
CString strUp = g_theApp.m_prjarray.GetAt(nSel-2);
g_theApp.m_prjarray.SetAt(nSel-1,strUp);
g_theApp.m_prjarray.SetAt(nSel-2,strCur);
strCur = ls.GetItemText(nSel,0);
strUp = ls.GetItemText(nSel-1,0);
ls.SetItemText(nSel,0,strUp);
ls.SetItemText(nSel-1,0,strCur);
ls.SetFocus();
ls.SetItemState(nSel-1,LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
}
void CModuleView::OnModuleAdd()
{
// TODO: Add your command handler code here
CString str;
if( m_pPrjFactory == NULL )
{
m_pPrjFactory = new CPrjFactory;
if( NULL == m_pPrjFactory )
return ;
}
str=m_pPrjFactory->GetPrjFileName();
if (!str.IsEmpty())
{
int nCount = g_theApp.m_prjarray.GetSize();
for(int i = 0; i < nCount; i++)
{
if(str == g_theApp.m_prjarray.GetAt(i))
{
AfxMessageBox(_T("The project has been included!"));
return;
}
}
g_theApp.m_prjarray.Add(str);
AddModuleToList(str);
}
}
void CModuleView::OnUpdateModuleAdd(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
}
BOOL CModuleView::MapPrjInfo(LPCTSTR lpszPrjName, FILE *pMapFile,int *pSize)
{
ASSERT(lpszPrjName != NULL);
CString filename=lpszPrjName;
int nleft=filename.ReverseFind(_T('\\'));
filename=filename.Right((filename.GetLength()-nleft-1));
int nProperLen = 60;
int nTotalSize = 0;
CString strResID = _T("ResourceID");
int nResLen = strResID.GetLength();
LPTSTR lpszResID = strResID.GetBufferSetLength(nProperLen);
for(int j = nResLen; j<nProperLen; j++)
lpszResID[j] = _T(' ');
_ftprintf( pMapFile,_T("========================%s========================\r\n"),filename);
_ftprintf( pMapFile,_T("%s%s\r\n"),strResID,_T("Size(Bytes)"));
//Imag
_ftprintf( pMapFile,_T("------------------------%s------------------------\r\n"),_T("IAMG"));
CStringArray arrID;
CDirFileInfo * pInfo = NULL;
int nSize = 0;
int i= 0;
pInfo = g_theApp.m_pImgInfo;
_ASSERTE( pInfo != NULL );
pInfo->CalcAllLeafID(arrID);
nSize = arrID.GetSize();
PIMGINFO pII= NULL;
IMG_MAP &imgMap = g_theApp.m_MMIRes.m_mapImg;
for(i=0;i<nSize;i++)
{
CString strID = arrID.GetAt(i);
imgMap.Lookup(strID,pII);
int nLen = strID.GetLength();
LPTSTR lpszID = strID.GetBufferSetLength(nProperLen);
for(int j = nLen; j<nProperLen; j++)
lpszID[j] = _T(' ');
_ftprintf( pMapFile,_T("%s%d\r\n"),strID,pII->nProcSize);
nTotalSize +=pII->nProcSize;
}
pSize[0] = nTotalSize;
nTotalSize = 0;
//Anim
_ftprintf( pMapFile,_T("------------------------%s------------------------\r\n"),_T("ANIM"));
arrID.RemoveAll();
pInfo = g_theApp.m_pAnimInfo;
_ASSERTE( pInfo != NULL );
pInfo->CalcAllLeafID(arrID);
nSize = arrID.GetSize();
PANIMINFO pAI= NULL;
ANIM_MAP &animMap = g_theApp.m_MMIRes.m_mapAnim;
for(i=0;i<nSize;i++)
{
CString strID = arrID.GetAt(i);
animMap.Lookup(strID,pAI);
int nLen = strID.GetLength();
LPTSTR lpszID = strID.GetBufferSetLength(nProperLen);
for(int j = nLen; j<nProperLen; j++)
lpszID[j] = _T(' ');
_ftprintf( pMapFile,_T("%s%d\r\n"),strID,pAI->nSize);
nTotalSize += pAI->nSize;
}
pSize[1] = nTotalSize;
nTotalSize = 0;
//Ring
_ftprintf( pMapFile,_T("------------------------%s------------------------\r\n"),_T("RING"));
arrID.RemoveAll();
pInfo = g_theApp.m_pRingInfo;
_ASSERTE( pInfo != NULL );
pInfo->CalcAllLeafID(arrID);
nSize = arrID.GetSize();
PAUD_RING_DATA_INFO_T pRDI= NULL;
RING_MAP &ringMap = g_theApp.m_MMIRes.m_mapRing;
for(i=0;i<nSize;i++)
{
CString strID = arrID.GetAt(i);
ringMap.Lookup(strID,pRDI);
int nLen = strID.GetLength();
LPTSTR lpszID = strID.GetBufferSetLength(nProperLen);
for(int j = nLen; j<nProperLen; j++)
lpszID[j] = _T(' ');
_ftprintf( pMapFile,_T("%s%d\r\n"),strID,pRDI->data_len);
nTotalSize += pRDI->data_len;
}
pSize[2] = nTotalSize;
pSize[3] = pSize[0]+pSize[1]+pSize[2];
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -