ResourceEditorDoc.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
- // ResourceEditorDoc.cpp : implementation of the CResourceEditorDoc class
- //
- // This file is a part of the XTREME TOOLKIT PRO MFC class library.
- // (c)1998-2008 Codejock Software, All Rights Reserved.
- //
- // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
- // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
- // CONSENT OF CODEJOCK SOFTWARE.
- //
- // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
- // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
- // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
- // SINGLE COMPUTER.
- //
- // CONTACT INFORMATION:
- // support@codejock.com
- // http://www.codejock.com
- //
- /////////////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "ResourceEditor.h"
- #include "ResourceEditorDoc.h"
- #include "ResourceExport.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CResourceEditorDoc
- IMPLEMENT_DYNCREATE(CResourceEditorDoc, CDocument)
- BEGIN_MESSAGE_MAP(CResourceEditorDoc, CDocument)
- //{{AFX_MSG_MAP(CResourceEditorDoc)
- ON_COMMAND(ID_FILE_EXPOR_DLL, OnFileExportDll)
- ON_COMMAND(ID_FILE_EXPOR_RC, OnFileExportRc)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CResourceEditorDoc construction/destruction
- CResourceEditorDoc::CResourceEditorDoc()
- {
- m_pResources = NULL;
- m_pLanguageInfo = NULL;
- }
- CResourceEditorDoc::~CResourceEditorDoc()
- {
- CMDTARGET_RELEASE(m_pResources);
- }
- BOOL CResourceEditorDoc::OnNewDocument()
- {
- if (!CDocument::OnNewDocument())
- return FALSE;
- // TODO: add reinitialization code here
- // (SDI documents will reuse this document)
- return TRUE;
- }
- BOOL CResourceEditorDoc::OnOpenDocument(LPCTSTR lpszPathName)
- {
- SAFE_DELETE(m_pResources);
-
- m_pResources = new CXTPPropExchangeXMLNode(TRUE, 0, _T("resource"));
- SetModifiedFlag(FALSE);
-
- if (!m_pResources->LoadFromFile(lpszPathName))
- return FALSE;
- DWORD nLangId = 0;
- PX_DWord(m_pResources, _T("LANGID"), nLangId);
- m_pLanguageInfo = CXTPResourceManager::GetLanguageInfo(nLangId);
- if (!m_pLanguageInfo)
- return FALSE;
-
- return TRUE;
- }
- BOOL CResourceEditorDoc::AssignResource(CXTPPropExchangeXMLNode* pResources)
- {
- ASSERT(m_pResources == NULL);
-
- pResources->SetLoading(TRUE);
-
- DWORD nLangId = 0;
- PX_DWord(pResources, _T("LANGID"), nLangId);
- m_pLanguageInfo = CXTPResourceManager::GetLanguageInfo(nLangId);
- if (m_pLanguageInfo == NULL)
- return FALSE;
- SetModifiedFlag(TRUE);
- m_pResources = pResources;
- return TRUE;
- }
- BOOL CResourceEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
- {
- m_pResources->SaveToFile(lpszPathName);
- SetModifiedFlag(FALSE); // back to unmodified
- return TRUE; // success
- }
- /////////////////////////////////////////////////////////////////////////////
- // CResourceEditorDoc diagnostics
- #ifdef _DEBUG
- void CResourceEditorDoc::AssertValid() const
- {
- CDocument::AssertValid();
- }
- void CResourceEditorDoc::Dump(CDumpContext& dc) const
- {
- CDocument::Dump(dc);
- }
- #endif //_DEBUG
- /////////////////////////////////////////////////////////////////////////////
- // CResourceEditorDoc commands
- void CResourceEditorDoc::OnFileExportDll()
- {
- if (!m_pResources)
- return;
- CString strFilter = _T("32-bit Dynamic Library (*.dll)|*.dll|All files (*.*)|*.*||");
-
- CString strTitle = GetPathName();
- REPLACE_S(strTitle, _T(".xml"), _T(".dll"));
- CFileDialog fd(FALSE, _T("dll"), strTitle, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strFilter);
- if (fd.DoModal() != IDOK)
- return;
- CResourceExport re;
- re.ExportDll(m_pResources, fd.GetPathName());
- }
- void CResourceEditorDoc::OnFileExportRc()
- {
- if (!m_pResources)
- return;
-
- CString strFilter = _T("Resource Script (*.rc)|*.rc|All files (*.*)|*.*||");
- CString strTitle = GetPathName();
- REPLACE_S(strTitle, _T(".xml"), _T(".rc"));
- CFileDialog fd(FALSE, _T("rc"), strTitle, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strFilter);
- if (fd.DoModal() != IDOK)
- return;
- CResourceExport re;
- re.ExportRc(m_pResources, fd.GetPathName());
- }