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

📄 cedtdoc.h

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

#if !defined(AFX_CEDTDOC_H__FFCA2B8C_F9C5_11D4_A6F1_0050CE184C9B__INCLUDED_)
#define AFX_CEDTDOC_H__FFCA2B8C_F9C5_11D4_A6F1_0050CE184C9B__INCLUDED_

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


class CCedtDoc : public CDocument
{
protected: // create from serialization only
	CCedtDoc();
	DECLARE_DYNCREATE(CCedtDoc)

public: // Attributes
	static BOOL m_bConvertTabsToSpacesBeforeSaving;
	static BOOL m_bRemoveTrailingSpacesBeforeSaving;

	static BOOL m_bSaveFilesInUnixFormat;
	static BOOL m_bSaveRemoteFilesInUnixFormat;

	static UINT m_nMakeBackupFile;
	static UINT m_nBackupMethod;
	static CString m_szBackupExtension;
	static CString m_szBackupDirectory;

public: // syntax types
	static CSyntaxType m_clsSyntaxTypes[MAX_SYNTAX_TYPE];

protected: // dictionary
	static CDictionary m_clsDictionary;
	static BOOL m_bDictionaryLoaded;

public: // file contents & status
	CAnalyzedText m_clsAnalyzedText;
	INT  m_nEncodingType; // ASCII/Unicode/UTF-8
	INT  m_nFileFormat;   // DOS/UNIX/MAC
	
	CFileStatus m_clsFileStatus;
	DWORD m_dwFileAttribute;

	BOOL m_bDocumentSaved;
	INT  m_nSavedUndoCount;

public: // shared remote path name
	static INT m_nCurrentFtpAccount;
	static CString m_szCurrentRemotePathName;

protected: // remote path name
	INT m_nFtpAccount;
	CString m_szRemotePathName;

public: // syntax type
	BOOL m_bAutomaticSyntaxType;
	CString m_szLangSpecFile;
	CString m_szKeywordsFile;

protected: // language specification
	CLangSpec m_clsLangSpec;
	CKeywords m_clsKeywords;

protected: // saved composition string
	CString m_szSavedCompositionString;
	BOOL m_bCompositionStringSaved;

protected: // undo & redo buffer
	CUndoBuffer m_clsUndoBuffer;
	CUndoBuffer m_clsRedoBuffer;

	BOOL m_bRecordingUndo;
	INT  m_nRecordingCount;


public: // *** cedtDoc.cpp ***
	BOOL IsModifiedOutside();
	void GoToLineNumber(INT nLineNumber);

	BOOL IsReadOnlyFile() const { return (m_dwFileAttribute & FILE_ATTRIBUTE_READONLY) ? TRUE : FALSE; }
	BOOL IsHiddenFile() const { return (m_dwFileAttribute & FILE_ATTRIBUTE_HIDDEN) ? TRUE : FALSE; }
	BOOL IsSystemFile() const { return (m_dwFileAttribute & FILE_ATTRIBUTE_SYSTEM) ? TRUE : FALSE; }

	BOOL IsRemoteFile() const { return (m_nFtpAccount >= 0) ? TRUE : FALSE; }
	BOOL IsNewFileNotSaved() const { return GetPathName().IsEmpty(); }

	BOOL HaveAnyOverflowLine() { return m_clsAnalyzedText.HaveAnyOverflowLine(); }
	BOOL MultiLineStringConstant() const { return m_clsLangSpec.m_bMultiLineStringConstant; }
	BOOL VariableHighlightInString() const { return m_clsLangSpec.m_bVariableHighlightInString; }

	BOOL HasLineCommentDelimiter() const { return m_clsLangSpec.m_szLineComment1.GetLength(); }
	BOOL HasBlockCommentDelimiter() const { return (m_clsLangSpec.m_szBlockComment1On.GetLength() && m_clsLangSpec.m_szBlockComment1Off.GetLength()); }

	INT GetFtpAccountNumber() const { return m_nFtpAccount; }
	CString GetRemotePathName() const { return m_szRemotePathName; }

	CString GetFullRemotePathName() const;
	LONG GetFileSize() const { return m_clsFileStatus.m_size; }

protected:
//	BOOL OnNewDocument();
	BOOL OnReloadDocument(LPCTSTR lpszPathName, INT nEncodingType);
//	BOOL OnOpenDocument(LPCTSTR lpszPathName);
//	BOOL OnSaveDocument(LPCTSTR lpszPathName);


public: // *** cedtDocView.cpp ***
	CView * GetFirstView();
	INT GetViewCount();

	void ReinitializeAllViews();
	void UpdateMDIFileTab();

	void FormatScreenText();
	void FormatScreenText(INT nIndex, INT nCount);

	void RemoveScreenText(INT nIndex, INT nCount);
	void InsertScreenText(INT nIndex, INT nCount);


public: // *** cedtDocFile.cpp ***
	BOOL FileSave();
	BOOL FileSaveAs();
	BOOL FileSaveAsRemote();
	BOOL FileReload(INT nEncodingType);

	BOOL SaveDocumentFile(LPCTSTR lpszPathName);
	BOOL SaveRemoteDocumentFile(INT nFtpAccount, LPCTSTR lpszPathName);

	BOOL ReloadDocumentFile(LPCTSTR lpszPathName, INT nLineNum, INT nEncodingType);
	BOOL ReloadRemoteDocumentFile(INT nFtpAccount, LPCTSTR lpszPathName, DWORD dwFileSize, INT nLineNum, INT nEncodingType);

	BOOL UpdateFileStatus();
	BOOL BackupDocument(LPCTSTR lpszPathName);


public: // *** cedtDocSyntax.cpp ***
	BOOL DetectSyntaxType(LPCTSTR lpszPathName, LPCTSTR lpszFirstLine);
	BOOL SearchLinkFileWithFirstLine(LPCTSTR lpszFirstLine, CString & szLinkFilePath);
	BOOL SearchLinkFileWithPathName(LPCTSTR lpszPathName, CString & szLinkFilePath);
	BOOL GetContainsPartOfLinkFile(LPCTSTR lpszLinkFilePath, CString & szContains);
	BOOL ReadExtensionLinkFile(LPCTSTR lpszLinkFilePath);
	BOOL LoadSyntaxInformation();


public: // *** cedtDocDictionary.cpp ***
	static BOOL IsDictionaryLoaded() { return m_bDictionaryLoaded; }
	static BOOL LoadDictionary();
	static BOOL LoadingProgress(UINT nTotalRead);


public: // *** cedtDocAnal.cpp ***
	INT  GetCharType(TCHAR nChar);
	void AnalyzeText() { AnalyzeText(0, GetLineCount()); }
	void AnalyzeText(INT nIndex, INT nCount);


public: // *** cedtDocHndr.cpp ***
	void OnUpdateDocuSyntaxType(CCmdUI * pCmdUI, INT nSyntaxType);
	void OnDocuSyntaxType(INT nSyntaxType);

	void OnDocuFileFormat(INT nFileFormat);
	void OnDocuEncodingType(INT nEncodingType);


public: // *** cedtDocMap.cpp ***
	INT GetLineCount() { return m_clsAnalyzedText.GetCount(); }
	INT GetLastIdxY() { return m_clsAnalyzedText.GetCount()-1; }
	INT GetWordCount();
	INT GetByteCount();

	INT GetFirstIdxX(CAnalyzedString & rLine);
	INT GetLastIdxX(CAnalyzedString & rLine);
	INT GetFirstNonBlankIdxX(CAnalyzedString & rLine);
	INT GetTrailingBlankIdxX(CAnalyzedString & rLine);

	CAnalyzedString & GetLineFromIdxY(INT nIdxY);
	ANALYZEDWORDINFO & GetWordFromIdxX(CAnalyzedString & rLine, INT nIdxX);

	BOOL IsBlankLine(CAnalyzedString & rLine);
	BOOL IsBlankLineFromIdxY(INT nIdxY);


public: // *** cedtDocEdit.cpp ***
	BOOL IsCompositionStringSaved() { return m_bCompositionStringSaved; }
	void EmptySavedCompositionString();
	void SaveCurrentCompositionString(INT nIdxY);
	void RestoreCurrentCompositionString(INT nIdxY);

	void InsertCompositionString(INT nIdxX, INT nIdxY, LPCTSTR lpszString);
	void DeleteCompositionString(INT nIdxX, INT nIdxY, INT nLength);

	void InsertChar(INT nIdxX, INT nIdxY, UINT nChar);
	void DeleteChar(INT nIdxX, INT nIdxY);
	void InsertString(INT nIdxX, INT nIdxY, LPCTSTR lpszString);
	void DeleteString(INT nIdxX, INT nIdxY, INT nLength);

	void InsertBlock(INT nBegX, INT nBegY, INT & nEndX, INT & nEndY, CMemText & rBlock);
	void DeleteBlock(INT nBegX, INT nBegY, INT nEndX, INT nEndY);
	void SplitLine(INT nIdxX, INT nIdxY);
	void JoinLines(INT nIdxX, INT nIdxY);

	void CopyToString(CString & rString, INT nBegX, INT nBegY, INT nLength);
	void CopyToBlock(CMemText & rBlock, INT nBegX, INT nBegY, INT nEndX, INT nEndY);

protected:
	void FastInsertChar(CAnalyzedString & rLine, INT nIdxX, INT nIdxY, UINT nChar);
	void FastDeleteChar(CAnalyzedString & rLine, INT nIdxX, INT nIdxY);
	void FastInsertString(CAnalyzedString & rLine, INT nIdxX, INT nIdxY, LPCTSTR lpszString);
	void FastDeleteString(CAnalyzedString & rLine, INT nIdxX, INT nIdxY, INT nLength);


public: // *** cedtDocEditAdv.cpp
	// return number of characters inserted or deleted
	INT  IndentLine(INT nIdxY, INT nTabSize, BOOL bUseSpaces);
	INT  UnindentLine(INT nIdxY, INT nTabSize);
	INT  MakeCommentLine(INT nIdxY);			INT  ReleaseCommentLine(INT nIdxY);

⌨️ 快捷键说明

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