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

📄 cedtdoc.cpp

📁 Crimson编辑器的英文版,完成从韩文版变成英文版的移植,并且附带可执行文件和注册表文件,无需原先的安装包,是改写编辑器的最理想选择.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// cedtDoc.cpp : implementation of the CCedtDoc class
//

#include "stdafx.h"
#include "cedtHeader.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCedtDoc
IMPLEMENT_DYNCREATE(CCedtDoc, CDocument)

BEGIN_MESSAGE_MAP(CCedtDoc, CDocument)
	//{{AFX_MSG_MAP(CCedtDoc)
	ON_COMMAND(ID_FILE_SAVE, OnFileSave)
	ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs)
	ON_COMMAND(ID_FILE_SAVE_ALL, OnFileSaveAll)
	ON_COMMAND(ID_FILE_SAVE_AS_REMOTE, OnFileSaveAsRemote)
	ON_COMMAND(ID_FILE_RELOAD, OnFileReload)
	ON_COMMAND(ID_FILE_RELOAD_AS, OnFileReloadAs)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_AUTO, OnUpdateDocuSyntaxAuto)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TEXT, OnUpdateDocuSyntaxText)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE0, OnUpdateDocuSyntaxType0)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE1, OnUpdateDocuSyntaxType1)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE2, OnUpdateDocuSyntaxType2)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE3, OnUpdateDocuSyntaxType3)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE4, OnUpdateDocuSyntaxType4)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE5, OnUpdateDocuSyntaxType5)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE6, OnUpdateDocuSyntaxType6)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE7, OnUpdateDocuSyntaxType7)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE8, OnUpdateDocuSyntaxType8)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE9, OnUpdateDocuSyntaxType9)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE10, OnUpdateDocuSyntaxType10)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE11, OnUpdateDocuSyntaxType11)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE12, OnUpdateDocuSyntaxType12)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE13, OnUpdateDocuSyntaxType13)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE14, OnUpdateDocuSyntaxType14)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE15, OnUpdateDocuSyntaxType15)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE16, OnUpdateDocuSyntaxType16)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE17, OnUpdateDocuSyntaxType17)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE18, OnUpdateDocuSyntaxType18)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE19, OnUpdateDocuSyntaxType19)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE20, OnUpdateDocuSyntaxType20)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE21, OnUpdateDocuSyntaxType21)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE22, OnUpdateDocuSyntaxType22)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE23, OnUpdateDocuSyntaxType23)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE24, OnUpdateDocuSyntaxType24)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE25, OnUpdateDocuSyntaxType25)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE26, OnUpdateDocuSyntaxType26)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE27, OnUpdateDocuSyntaxType27)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE28, OnUpdateDocuSyntaxType28)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE29, OnUpdateDocuSyntaxType29)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE30, OnUpdateDocuSyntaxType30)
	ON_UPDATE_COMMAND_UI(ID_DOCU_SYNTAX_TYPE31, OnUpdateDocuSyntaxType31)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE0, OnDocuSyntaxType0)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE1, OnDocuSyntaxType1)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE2, OnDocuSyntaxType2)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE3, OnDocuSyntaxType3)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE4, OnDocuSyntaxType4)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE5, OnDocuSyntaxType5)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE6, OnDocuSyntaxType6)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE7, OnDocuSyntaxType7)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE8, OnDocuSyntaxType8)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE9, OnDocuSyntaxType9)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE10, OnDocuSyntaxType10)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE11, OnDocuSyntaxType11)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE12, OnDocuSyntaxType12)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE13, OnDocuSyntaxType13)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE14, OnDocuSyntaxType14)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE15, OnDocuSyntaxType15)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE16, OnDocuSyntaxType16)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE17, OnDocuSyntaxType17)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE18, OnDocuSyntaxType18)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE19, OnDocuSyntaxType19)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE20, OnDocuSyntaxType20)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE21, OnDocuSyntaxType21)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE22, OnDocuSyntaxType22)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE23, OnDocuSyntaxType23)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE24, OnDocuSyntaxType24)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE25, OnDocuSyntaxType25)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE26, OnDocuSyntaxType26)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE27, OnDocuSyntaxType27)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE28, OnDocuSyntaxType28)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE29, OnDocuSyntaxType29)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE30, OnDocuSyntaxType30)
	ON_COMMAND(ID_DOCU_SYNTAX_TYPE31, OnDocuSyntaxType31)
	ON_COMMAND(ID_DOCU_SYNTAX_AUTO, OnDocuSyntaxAuto)
	ON_COMMAND(ID_DOCU_SYNTAX_TEXT, OnDocuSyntaxText)
	ON_UPDATE_COMMAND_UI(ID_DOCU_FORMAT_DOS, OnUpdateDocuFormatDos)
	ON_UPDATE_COMMAND_UI(ID_DOCU_FORMAT_UNIX, OnUpdateDocuFormatUnix)
	ON_UPDATE_COMMAND_UI(ID_DOCU_FORMAT_MAC, OnUpdateDocuFormatMac)
	ON_COMMAND(ID_DOCU_FORMAT_DOS, OnDocuFormatDos)
	ON_COMMAND(ID_DOCU_FORMAT_UNIX, OnDocuFormatUnix)
	ON_COMMAND(ID_DOCU_FORMAT_MAC, OnDocuFormatMac)
	ON_UPDATE_COMMAND_UI(ID_DOCU_ENCODING_ASCII, OnUpdateDocuEncodingAscii)
	ON_UPDATE_COMMAND_UI(ID_DOCU_ENCODING_UNICODE_LE, OnUpdateDocuEncodingUnicodeLE)
	ON_UPDATE_COMMAND_UI(ID_DOCU_ENCODING_UNICODE_BE, OnUpdateDocuEncodingUnicodeBE)
	ON_UPDATE_COMMAND_UI(ID_DOCU_ENCODING_UTF8_WBOM, OnUpdateDocuEncodingUtf8WBOM)
	ON_UPDATE_COMMAND_UI(ID_DOCU_ENCODING_UTF8_XBOM, OnUpdateDocuEncodingUtf8XBOM)
	ON_COMMAND(ID_DOCU_ENCODING_ASCII, OnDocuEncodingAscii)
	ON_COMMAND(ID_DOCU_ENCODING_UNICODE_LE, OnDocuEncodingUnicodeLE)
	ON_COMMAND(ID_DOCU_ENCODING_UNICODE_BE, OnDocuEncodingUnicodeBE)
	ON_COMMAND(ID_DOCU_ENCODING_UTF8_WBOM, OnDocuEncodingUtf8WBOM)
	ON_COMMAND(ID_DOCU_ENCODING_UTF8_XBOM, OnDocuEncodingUtf8XBOM)
	ON_COMMAND(ID_DOCU_SUMMARY, OnDocuSummary)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CCedtDoc static member variables
BOOL CCedtDoc::m_bConvertTabsToSpacesBeforeSaving;
BOOL CCedtDoc::m_bRemoveTrailingSpacesBeforeSaving;

BOOL CCedtDoc::m_bSaveFilesInUnixFormat;
BOOL CCedtDoc::m_bSaveRemoteFilesInUnixFormat;

UINT CCedtDoc::m_nMakeBackupFile;
UINT CCedtDoc::m_nBackupMethod;
CString CCedtDoc::m_szBackupExtension;
CString CCedtDoc::m_szBackupDirectory;

CSyntaxType CCedtDoc::m_clsSyntaxTypes[MAX_SYNTAX_TYPE];

CDictionary CCedtDoc::m_clsDictionary;
BOOL CCedtDoc::m_bDictionaryLoaded = FALSE;

INT CCedtDoc::m_nCurrentFtpAccount = -1;
CString CCedtDoc::m_szCurrentRemotePathName = "";


/////////////////////////////////////////////////////////////////////////////
// CCedtDoc construction/destruction
CCedtDoc::CCedtDoc()
{
	m_szSavedCompositionString = "";
	m_bCompositionStringSaved = FALSE;
}

CCedtDoc::~CCedtDoc()
{
}


/////////////////////////////////////////////////////////////////////////////
// CCedtDoc diagnostics

#ifdef _DEBUG
void CCedtDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CCedtDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// Operations

BOOL CCedtDoc::IsModifiedOutside()
{
	CString szPathName = GetPathName();
	if( ! szPathName.GetLength() || IsRemoteFile() ) return FALSE;

	CFileStatus status;	
	if( ! CFile::GetStatus(szPathName, status) ) return FALSE;

	return( status.m_mtime != m_clsFileStatus.m_mtime );
}

void CCedtDoc::GoToLineNumber(INT nLineNumber)
{
	POSITION pos = GetFirstViewPosition();
	while( pos ) {
		CCedtView * pView = (CCedtView *)GetNextView( pos );
		pView->OnSearchGoTo(nLineNumber);
	}
}

void CCedtDoc::SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU) 
{
	m_strPathName = lpszPathName;
	ASSERT( ! m_strPathName.IsEmpty() );
	m_bEmbedded = FALSE;

	// set the document title based on path name
	if( ! IsRemoteFile() ) SetTitle( GetPathName() );
	else SetTitle( GetFullRemotePathName() );

	// add it to the file MRU list
	if( bAddToMRU && ! IsRemoteFile() )
		AfxGetApp()->AddToRecentFileList(lpszPathName);
}

CString CCedtDoc::GetFullRemotePathName() const
{
	CString szFullRemotePathName = CCedtApp::m_clsFtpAccounts[m_nFtpAccount].GetFullAccountName();
	szFullRemotePathName += m_szRemotePathName;
	return szFullRemotePathName;
}

/////////////////////////////////////////////////////////////////////////////
// CCedtDoc commands

BOOL CCedtDoc::OnNewDocument()
{
	m_nFtpAccount = -1;
	m_szRemotePathName = "";

	// This code segment replaces CDocument::OnNewDocument()
	if( IsModified() ) TRACE0("Warning: OnNewDocument replaces an unsaved document.\n");

	DeleteContents();
	m_strPathName.Empty();  // no path name yet
	SetModifiedFlag(FALSE); // make clean
	// End of code segment CDocument::OnNewDocument()

	m_bDocumentSaved = FALSE;
	m_nSavedUndoCount = 0;

⌨️ 快捷键说明

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