📄 resorghtmldoc.cpp
字号:
/************************************************************************
*
* Resource ID Organiser Core Library
*
* (c) Copyright 2000-2004 by Anna-Jayne Metcalfe (resorg@annasplace.me.uk)
* All rights reserved.
*
************************************************************************
*
* Filename : ResOrgHtmlDoc.cpp
*
* Description : CResOrgHtmlDoc - document class for a hosting
* the "ResOrg on the web" HTML view
*
* Compiler : Microsoft Visual C++ 6.0, Service Pack 3 or later
* Microsoft Visual C++ .NET 2002
*
* Target
* Environment : Windows 98/NT/2000/XP
*
* NOTE:
*
* This software is provided "as is" free for personal use. All
* title and copyrights in and to the software, including but not
* limited to any images, text, etc. incorporated into it, are
* owned by Anna-Jayne Metcalfe, except where acknowledged otherwise.
*
* Your may freely to use this code in your own products, PROVIDED
* this notice is not removed or modified.
*
*
* Visit http://www.annasplace.me.uk/resorg for latest updates
*
************************************************************************
*
* MODIFICATION HISTORY:
*
* This is a controlled document. See project configuration
* control tool for latest version and full version history.
*
* $Archive: /Projects/AddIns/ResOrg/ResOrgCore/ResOrgHtmlDoc.cpp $
* $Revision: 8 $
* $Date: 21/08/04 18:59 $
* $Author: Anna $
*
* $History: ResOrgHtmlDoc.cpp $
*
* ***************** Version 8 *****************
* User: Anna Date: 21/08/04 Time: 18:59
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Modifications to CResOrgHtmlDoc and CResOrgHtmlView for compatibility
* with dynamic splitter windows
*
* ***************** Version 7 *****************
* User: Anna Date: 3/03/03 Time: 23:31
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added the ability to save HTML Reports
*
* ***************** Version 6 *****************
* User: Anna Date: 19/02/03 Time: 19:20
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Started adding XML export and HTML reports
*
* ***************** Version 5 *****************
* User: Anna Date: 25/11/02 Time: 15:13
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed website address in banner
*
* ***************** Version 4 *****************
* User: Anna Date: 22/10/02 Time: 13:24
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed name/mail address (at last!)
*
* ***************** Version 3 *****************
* User: Andy Date: 7/06/02 Time: 17:04
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Renamed the ResOrgUtils module to ResOrgCore. Updated file banners
* accordingly
*
* ***************** Version 2 *****************
* User: Andy Date: 26/05/01 Time: 15:22
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added CResOrgHtmlView to allow the view's ID to be changed (for help
* support)
*
* ***************** Version 1 *****************
* User: Andy Date: 5/12/00 Time: 20:33
* Created in $/Projects/AddIns/ResOrg/ResOrgUtils
*
*
* $Nokeywords: $
*
************************************************************************/
#include "StdAfx.h"
#include "ResOrgCore_Priv.h"
#include "ResOrgHtmlDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CResOrgHtmlDoc
IMPLEMENT_DYNCREATE(CResOrgHtmlDoc, CResOrgHtmlDoc_BASE)
BEGIN_MESSAGE_MAP(CResOrgHtmlDoc, CResOrgHtmlDoc_BASE)
ON_COMMAND( ID_FILE_SAVE, OnCmdFileSave)
ON_UPDATE_COMMAND_UI( ID_FILE_SAVE, OnUpdateFileSave)
ON_COMMAND( ID_FILE_SAVE, OnCmdFileSave)
ON_UPDATE_COMMAND_UI( ID_FILE_SAVE_AS, OnUpdateFileSave)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResOrgHtmlDoc construction/destruction
CResOrgHtmlDoc::CResOrgHtmlDoc(void)
{
}
CResOrgHtmlDoc::~CResOrgHtmlDoc(void)
{
}
/////////////////////////////////////////////////////////////////////////////
// CResOrgHtmlDoc overrides
BOOL CResOrgHtmlDoc::OnSaveDocument(LPCTSTR pszPathName)
{
if (CResOrgHtmlDoc_BASE::OnSaveDocument(pszPathName) )
{
ASSERT(m_bUrlIsLocalFile);
if (m_bUrlIsLocalFile && ::CopyFile(m_sUrl, pszPathName, FALSE) )
{
return TRUE;
}
}
return FALSE;
}
/////////////////////////////////////////////////////////////////////////////
// CResOrgHtmlDoc operations
bool CResOrgHtmlDoc::SetUrl(const CString& sUrl)
{
m_sUrl = sUrl;
CString sPrefix =::Before(m_sUrl, ::After(m_sUrl, _T("\\") ) );;
m_bUrlIsLocalFile = ::PathIsRoot( ::Before(m_sUrl, ::After(m_sUrl, _T("\\") ) ) );
POSITION pos = GetFirstViewPosition();
while (NULL != pos)
{
CView* pView = GetNextView(pos);
if (NULL != pView)
{
pView->OnInitialUpdate();
}
}
return true;
}
/////////////////////////////////////////////////////////////////////////////
// CResOrgHtmlDoc diagnostics
#ifdef _DEBUG
void CResOrgHtmlDoc::AssertValid(void) const
{
CResOrgHtmlDoc_BASE::AssertValid();
}
void CResOrgHtmlDoc::Dump(CDumpContext& dc) const
{
CResOrgHtmlDoc_BASE::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CResOrgHtmlDoc commands
void CResOrgHtmlDoc::OnCmdFileSave(void)
{
CString sInitialFileName;
#if _MSC_VER < 1300 // BXFileDialog doesn't work with VC7 yet
BXFileDialog dlg( FALSE, // Open
FALSE, // No preview
TRUE, // Resizeable
CString( (LPCTSTR)IDS_FILE_FILTER_HTML_EXT), // Default extension
sInitialFileName, // Default filename
OFN_PATHMUSTEXIST | OFN_ENABLESIZING, // Flags
CString( (LPCTSTR)IDS_FILE_FILTER_HTML), // File filter
::AfxGetMainWnd() ); // Parent window
DWORD dwVersion = LOWORD(::GetVersion() );
DWORD dwMajor = LOBYTE(dwVersion);
DWORD dwMinor = HIBYTE(dwVersion);
DWORD dwUseableVer = (dwMajor << 8) + dwMinor;
if (dwUseableVer >= 0x501)
{
// Use the VS.NET visual style on WinXP and later
dlg.SetAppearance(BXFileDialog::APPEARANCE_VSDOTNET);
}
#else
CFileDialog dlg(FALSE, // Save As
CString( (LPCTSTR)IDS_FILE_FILTER_HTML_EXT),
// Default extension
sInitialFileName, // Default filename
OFN_PATHMUSTEXIST | OFN_ENABLESIZING, // Flags
CString( (LPCTSTR)IDS_FILE_FILTER_HTML),
// File filter
::AfxGetMainWnd() ); // Parent window
#endif
if (IDOK == dlg.DoModal() )
{
// Open and parse it (via the document)
CString sPathName = dlg.GetPathName();
if (!DoSave(sPathName, FALSE))
{
TRACE0("Warning: File save-as failed.\n");
}
}
}
void CResOrgHtmlDoc::OnUpdateFileSave(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bUrlIsLocalFile);
}
/////////////////////////////////////////////////////////////////////////////
/// CResOrgHtmlView
IMPLEMENT_DYNCREATE(CResOrgHtmlView, CHtmlView)
BEGIN_MESSAGE_MAP(CResOrgHtmlView, CHtmlView)
ON_MESSAGE( WM_HELPHITTEST, OnHelpHitTest)
END_MESSAGE_MAP()
void CResOrgHtmlView::OnInitialUpdate(void)
{
CResOrgHtmlDoc* pDoc = static_cast<CResOrgHtmlDoc*>( GetDocument() );
if (NULL != pDoc)
{
CString sUrl = pDoc->GetUrl();
Navigate2(sUrl, 0);
}
}
LRESULT CResOrgHtmlView::OnHelpHitTest(WPARAM, LPARAM)
{
return IDR_DISPLAY_WEB + HID_BASE_RESOURCE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -