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

📄 resourceeditor.h

📁 Resource editor base speadrum Chinese mobile
💻 H
字号:
// ResourceEditor.h : main header file for the RESOURCEEDITOR application
//

#if !defined(AFX_RESOURCEEDITOR_H__73FAD926_2D0D_4FDA_8106_DEC28D650F2B__INCLUDED_)
#define AFX_RESOURCEEDITOR_H__73FAD926_2D0D_4FDA_8106_DEC28D650F2B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef __AFXWIN_H__
	#error include 'stdafx.h' before including this file for PCH
#endif

// define selected item change
#define WM_CHANGE_SEL_ITEM (WM_USER+999)
typedef struct _CHANGE_SEL_DATA
{
    HBITMAP hBmp;
    BOOL    bFreshBg;
} CHANGE_SEL_DATA;

#define WM_SHOW_OUTBAR  (WM_USER+1000)
#define SHOW_OUTBAR     1
#define HIDE_OUTBAR     0
#define WM_ADD_LIST     (WM_USER+1001)

#include "resource.h"       // main symbols
#include "mmi_resource_def.h"
#include "MMIRes.h"
#include "ModuleView.h" 
/////////////////////////////////////////////////////////////////////////////
// CResEditorApp:
// See ResourceEditor.cpp for the implementation of this class
//
//alexye save the sub prj and bin file into one file
typedef struct PRJ_BIN_ADDR_DATA
{
	uint32 prj_addr;
	uint32 arm_addr;
	uint32 win_addr;
}PRJ_BIN_ADDR_DATA;
enum {
	ADD_ITEM_AT_HEAD =0,
	ADD_ITEM_BEFORE_CUR,
	ADD_ITEM_AFTER_CUR,
	ADD_ITEM_AT_TAIL
};
class CDirFileInfo;
class CBinFileFactory;
class CPrjFactory;
class CHFileFactory;
class CResEditorApp : public CWinApp
{
public:
	
    CMMIRes m_MMIRes;
    CStringArray m_module_id;
    CDirFileInfo * m_pImgInfo;
    CDirFileInfo * m_pAnimInfo;
	CDirFileInfo * m_pRingInfo;
    CDirFileInfo * m_pTextInfoOne;
    CDirFileInfo * m_pFontInfo;
    CDirFileInfo * m_pTextInfo;

	CMultiDocTemplate * m_pImgDT;
    CMultiDocTemplate * m_pAnimDT;
	CMultiDocTemplate * m_pRingDT;
	CMultiDocTemplate * m_pTextDT;
	CMultiDocTemplate * m_pFontDT;

    CString m_strImgFile;
    CString m_strAnimFile;
    CString m_strRingFile;
    CString m_strTextFile;
    CString m_strFontFile;

    CString m_strPrjFileName;
    CString m_strBinFileName;

    CStringArray m_arrTextFind;
	CString m_list_clickbinfile;
	BOOL m_isclickopen;
	BOOL m_bCanShowView;
	BOOL m_isopenres; //if open ".res" file, TRUE:open "res",FALSE ".prj"
	PRJ_BIN_ADDR_DATA prj_info;
	uint32 prj_arm_addr;
	uint32 prj_win_addr;
	CStringArray m_prjarray;
	CString m_resBasePath; //the base path of the res file
	
	int             m_nOldUsedLangNum;			//实际使用的语言种类数
	int             m_nUsedLangNum;				//实际使用的语言种类数
	CStringArray    m_arrUsedLangNames;			//实际使用的语言种类名
	int             m_nArrLangCBN[MAX_LANG_NUM];//实际使用的语言种类字节编码数

	CStringArray    m_strArrFontType;           //Font 类型
    BOOL            m_bState;

    //@Hongliang Xin 2006-8-16 CR54365
	BOOL            m_bCloseOnePrj;             //TRUE : 关闭一个工程文件
												//FALSE: 关闭所有工程文件 
	
	int             m_nPrecomposed;             //1 : Unicode 紧缩格式
	                                            //2 : Unicode 非紧缩格式
												//0 : 混合,输入是什么格式就是什么格式,默认0
	

public:

    BOOL DoCheckAndRename( LPCTSTR pszFileName, CString &strID,
                           CString &strNewName, MMI_RES_TYPE_E ResType = MMI_RT_IMAGE );
    BOOL FileNameIsValid( LPCTSTR pszFileName );
    BOOL RenameFileName( LPCTSTR pOldName, CString &strNewName,MMI_RES_TYPE_E ResType = MMI_RT_IMAGE );

	BOOL IsSuperUser(void) const   { return m_bSuperUser; }
	BOOL IsCanShowView(void) const { return m_bCanShowView; }
    void DisableShowView(void)     { m_bCanShowView = FALSE; }
   
	BOOL IsCanCheck( MMI_RES_TYPE_E ResType ) const { return m_arrCanCheck[ResType]; }
 
	void SetActiveFrame( MMI_RES_TYPE_E ResType );
	void SetChildFrame( MMI_RES_TYPE_E ResType, CFrameWnd * pFrame = NULL );

    void SetModifiedFlag( MMI_RES_TYPE_E ResType, BOOL bFlag = TRUE )
    {
        _ASSERTE( ResType >= MMI_RT_IMAGE && ResType <= MMI_RT_FONT );
        m_arrModifiedFlag[ResType] = bFlag;
    }

    BOOL IsModified(void);
    int  PromptSaveFile(void);
	BOOL SaveSubPrjFile(LPCTSTR PrjFileName);
	BOOL ReadResFile(LPCTSTR ResFileName);
	//change the relative path to absolute path 
	CString ConvertRel2Abs(CString rel_path, CString base_path);
    //change the absolute path to relative path
	CString ConvertAbs2Rel(CString abs_path, CString base_path);
public:
	CResEditorApp();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CResEditorApp)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	//}}AFX_VIRTUAL

// Implementation
	//{{AFX_MSG(CResEditorApp)
	afx_msg void OnAppAbout();
	afx_msg void OnFileNew();
	afx_msg void OnFileOpen();
	afx_msg void OnViewImg();
    afx_msg void OnViewAnim();
	afx_msg void OnViewRing();
	afx_msg void OnViewText();
	afx_msg void OnViewFont();
	afx_msg void OnOptionResinfo();
	afx_msg void OnFileSave();
	afx_msg void OnFileSaveAs();
	afx_msg void OnFileSaveImage();
	afx_msg void OnFileLoadImage();
	afx_msg void OnProjectClose();
	afx_msg void OnOptionFileSetting();
	//}}AFX_MSG
	afx_msg void OnOptionReport();
	afx_msg void OnAnimTColrSet();
	DECLARE_MESSAGE_MAP()
protected:
	CString MakeResID(LPCTSTR pszName, MMI_RES_TYPE_E ResType);
	void ReleaseAllRes(void);
	BOOL CreateObject(void);
	void ReleaseObject(void);
	
    void ReadIniFile(void);
    void WriteInitFile(void);
	uint32 CalcFileSize(LPCTSTR pzfilename);
	__inline DWORD Addr4ByteAlign( DWORD dwAddr )
    {
        return ( (dwAddr + 3) & ~3 );
    }
private:
    CMDIChildWnd  * m_pImgFrame;
    CMDIChildWnd  * m_pAnimFrame;
	CMDIChildWnd  * m_pRingFrame;
	CMDIChildWnd  * m_pTextFrame;
	CMDIChildWnd  * m_pFontFrame;

	BOOL m_bSuperUser;
	BOOL m_bNeedResInfo;

	BOOL m_arrCanCheck[MMI_RT_MAX_NUM];
    BOOL m_arrModifiedFlag[MMI_RT_MAX_NUM];

    CPrjFactory     * m_pPrjFactory;
    CBinFileFactory * m_pBinFactory;
    CHFileFactory   * m_pHFileFactory;
	CModuleView *m_module_list;
	CString         m_TempPrjFile;
	CString         m_TempArmFile;
	CString         m_TempWinFile;
	CString         m_comprjname;
};

// declare the global App instance
extern CResEditorApp g_theApp;

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_RESOURCEEDITOR_H__73FAD926_2D0D_4FDA_8106_DEC28D650F2B__INCLUDED_)

⌨️ 快捷键说明

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