📄 resourceeditor.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 + -