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

📄 moduleview.cpp

📁 Resource editor base speadrum Chinese mobile
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    _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 + -