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

📄 cedtview.h

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

#if !defined(AFX_CEDTVIEW_H__FFCA2B8E_F9C5_11D4_A6F1_0050CE184C9B__INCLUDED_)
#define AFX_CEDTVIEW_H__FFCA2B8E_F9C5_11D4_A6F1_0050CE184C9B__INCLUDED_

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


class CCedtView : public CView
{
protected: // create from serialization only
	CCedtView();
	DECLARE_DYNCREATE(CCedtView)

public: // general preferences
	static COLORREF m_crBkgrColor[10], m_crTextColor[40];
	static LOGFONT  m_lfScreen[10], m_lfPrinter[10];
	static LOGFONT  m_lfMiscel[10]; // 0x00: Column Mode, 0x01: Output Window
	static INT  m_nCurrentScreenFont, m_nCurrentPrinterFont;
	static BOOL m_bUsingColumnModeFont;

	static BOOL m_bShowLineNumbers, m_bSyntaxHighlight;
	static BOOL m_bEmboldenKeywords, m_bItalicizeComment;
	static BOOL m_bHighlightActiveLine, m_bUseSpacesInPlaceOfTab;
	static BOOL m_bEnablePairsMatching, m_bEnableAutoIndent;
	static BOOL m_bShowSelectionMargin;
	static BOOL m_bHomeKeyGoesToFirstPosition, m_bSearchWrapAtEndOfFile;
	static BOOL m_bEnableDragAndDropEditing, m_bOpenDocumentWordWrapped;
	static BOOL m_bShowSpaces, m_bShowTabChars, m_bShowLineBreak;
	static INT  m_nTabSize, m_nLineSpacing, m_nLineNumberDigits;
	static INT  m_nCaretWidthRatio, m_nFileTabLength;
	static INT  m_nFixedWrapWidth, m_nWrapIndentation;
	static BOOL m_bShowColumnMarker1, m_bShowColumnMarker2;
	static INT  m_nColumnMarker1Pos, m_nColumnMarker2Pos;

public: // printing preferences
	static RECT m_rectPageMargin; // in LOMETRIC
	static BOOL m_bPrintLineNumbers, m_bPrintSyntaxHighlight;
	static BOOL m_bPrintHeader, m_bPrintFooter;
	static CString m_szHeaderFormat[3], m_szFooterFormat[3];
	static CString m_szHeaderString[3], m_szFooterString[3];

public: // global view mode
	static BOOL m_bOverwriteMode;
	static BOOL m_bColumnMode;

protected: // search related variables
	static BOOL m_bReplaceSearch;
	static CString m_szFindString, m_szReplaceString;
	static UINT m_nSearchOptions; // WholeWord, MatchCase, RegExp
	static CRegExp m_clsRegExp;

public: // user commands
	static CUserCommand m_clsUserCommand[11];
	static CString m_szUserCommandFilePath[8];

protected: // user command input & output
	static BOOL m_bChildOutputLineContinue;
	static CStringArray m_arrChildInputString;

protected: // redirect handles
	static HANDLE m_hChildStdinWrDup, m_hChildStdoutRdDup;
	static HANDLE m_hChildProcess, m_hChildThread;

public: // user macros buffers
	static CMacroBuffer m_clsMacroBuffer[11];
	static CString m_szMacroBufferFilePath[8];

protected: // macro recording variables
	static BOOL m_bMacroRecording;
	static INT  m_nMacroRecordingNumber;
	static CString m_szMacroName;

protected: // global screen resources
	static CDC   m_dcScreen;
	static CBitmap m_bmScreen;
	static CFont m_fontScreen, m_fontScreenIt;
	static CFont m_fontPrinter, m_fontPrinterIt;
	static INT   m_nScreenFontChangeSequence;

public:
	static WINDOWPLACEMENT * m_lpWindowPlacement;

protected: // formated file contents
	CFormatedText m_clsFormatedScreenText;
	CFormatedText m_clsFormatedPrintText;
	INT  m_nFormatedPrintTextStartIdxY; // starting index of formated print text

protected: // view status
	BOOL   m_bHaveFocus, m_bAutoScroll, m_bLineSelect;
	CRect  m_rectNonScroll;		// non scroll boundary of view
	CSize  m_szPrevClientSize;	// to check text formatting is necessary
	CPoint m_ptRButtonUpPoint;	// to check if context menu is called from mouse

protected: // local display options
	BOOL m_bLocalWordWrap;
	BOOL m_bLocalSpellCheck;

protected: // scroll position & caret position
	INT  m_nScrollPosX, m_nScrollPosY;
	INT  m_nAnchorPosX, m_nAnchorPosY;
	INT  m_nCaretPosX,  m_nCaretPosY;
	INT  m_nCaretPosXFixed; // used to move up & down

protected: // block selection (copy & paste)
	BOOL m_bSaveSelected, m_bSelected;
	INT  m_nSaveSelBegX, m_nSaveSelBegY;
	INT  m_nSaveSelEndX, m_nSaveSelEndY;

protected: // saved index (save & restore caret and anchor pos)
	INT  m_nScrollIdxX, m_nScrollIdxY;
	INT  m_nAnchorIdxX, m_nAnchorIdxY;
	INT  m_nCaretIdxX,  m_nCaretIdxY;

protected: // active line highlight
	CDC  m_dcActiveLine; CBitmap m_bmActiveLine;
	BOOL m_bActiveLineHighlighted;
	INT  m_nActiveLineHighlightedPosY;

protected: // matching pairs highlight
	BOOL m_bPairMatched, m_bBeginningPair;
	INT  m_nPairPosX[2], m_nPairPosY[2], m_nPairWidth;
	BOOL m_bPairHighlighted[2];

protected: // IMM composition
	BOOL m_bComposition;

protected: // Drag And Drop
	COleDropTarget m_oleDropTarget;
	BOOL m_bDragDataSource, m_bDragDropOccured;
	INT  m_nDragPosX, m_nDragPosY;


public: // *** CCedtView.cpp ***
	static BOOL IsOverwriteMode() { return m_bOverwriteMode; }
	static BOOL IsColumnMode() { return m_bColumnMode; }

	static void OnSizeMainWindow(int cx, int cy);

	BOOL IsWordWrapOn() { return m_bLocalWordWrap; }
	BOOL IsSpellCheckOn() { return m_bLocalSpellCheck; }

//	void OnInitialUpdate();
	void Reinitialize();

	void UpdateScrollBars();
	void UpdateCaretPosition();
	void UpdateDragPosition();

	void UpdateFileStatusPane();
	void UpdateMDIFileTabOfTheDocument();

	BOOL TurnOffWordWrapMode();

protected:
	void UpdateAllPanesInTheSameRow();
	void UpdateAllPanesSharingScrollBar();

	void UpdateAllViews();

public:
	INT GetCompositionString(DWORD dwIndex, CString & szString);
	INT GetCurrentLineNumber();

	CString GetCurrentWord();
	CString GetSelectedString();

protected:
	void OnScreenFontChange();
	void OnTimerAutoScroll();


public: // *** cedtViewFont.cpp ***
	static BOOL IsFixedPitchScreenFont(INT nFont);
	static BOOL IsUsingFixedPitchFont(CDC * pDC = NULL);

	static void CreateScreenFontObject();
	static void CreatePrinterFontObject(CDC * pDC);

	static CFont * ApplyCurrentScreenFont();
	static CFont * ApplyCurrentPrinterFont(CDC * pDC);



public: // *** cedtViewMetric.cpp ***
	static INT GetLogPixelsX(CDC * pDC = NULL);
	static INT GetLogPixelsY(CDC * pDC = NULL);

protected:
	static INT GetCharHeight(CDC * pDC = NULL);
	static INT GetSpaceWidth(CDC * pDC = NULL);
	static INT GetNumberWidth(CDC * pDC = NULL);
	static INT GetAveCharWidth(CDC * pDC = NULL);
	static INT GetMaxCharWidth(CDC * pDC = NULL);

	static INT GetLeftMargin(CDC * pDC = NULL);
	static INT GetLineHeight(CDC * pDC = NULL);

	INT GetCharWidth();
	INT GetLinesPerPage();


public: // *** cedtViewScroll.cpp ***
	void SetScrollPosY(INT nPosY);
	void SetScrollPosX(INT nPosX);

protected:
	void SetScrollPosSyncAllPanes(INT nPosX, INT nPosY);
	void SetScrollPosToMakeCaretVisible();

	void SetScrollPosToMakeAutoScroll();
	void SetScrollPosToMakeDragScroll();

	void SetScrollPosToMakeCaretTop();
	void SetScrollPosToMakeCaretBottom();
	void SetScrollPosToMakeCaretCenter();


public: // *** cedtViewCaret.cpp ***
	BOOL IsSelected() { return m_bSelected; }
	INT  GetSelectedLineCount();

	void SaveCaretAndAnchorPos();
	void RestoreCaretAndAnchorPos();

	void GetSelectedPosition(INT & nBegX, INT & nBegY, INT & nEndX, INT & nEndY);
	void GetSelectedIndex(INT & nBegX, INT & nBegY, INT & nEndX, INT & nEndY);

protected:
	void SetCaretPosY(INT nPosY);				
	void SetCaretPosX(INT nPosX, BOOL bFix = TRUE);
	void SetCaretPosFromMouse(CPoint point);

	void SetDragPosY(INT nPosY);
	void SetDragPosX(INT nPosX);
	void SetDragPosFromMouse(CPoint point);

	BOOL IsCaretVisible();
	BOOL IsPointInSelection(CPoint point);
	BOOL IsPositionInSelection(INT nPosX, INT nPosY);

	INT  RelativePosToSavedSelection(INT nPosX, INT nPosY);
	void AdjustCaretAndAnchorPosRelativeToSavedSelection();
	void AdjustCaretPosAfterLineSelectMouseMove();


public: // *** cedtViewMisc.cpp ***
	static void SetClipboardData(CMemText & rBlock);
	static BOOL GetClipboardData(CMemText & rBlock);
	static BOOL HasClipboardData();

	static BOOL GetOleDataObjectData(COleDataObject * pDataObject, CMemText & rBlock);

	static BOOL GetGlobalMemoryText(HGLOBAL hMemory, CMemText & rBlock);
	static HGLOBAL SetGlobalMemoryText(CMemText & rBlock);

protected:
	BOOL MultiLineStringConstant();
	BOOL VariableHighlightInString();

	BOOL HasLineCommentDelimiter();
	BOOL HasBlockCommentDelimiter();

	static UINT GetKeyState();

	static CString GetCurrentDate();
	static CString GetCurrentTime();


protected: // *** cedtViewDraw.cpp ***
	void DrawScreenBackgroundAndText();
	void InvertScreenSelected();

	void DrawPrintPageOutline(CDC * pDC, RECT rectDraw, INT nCurPage);
	void DrawPrintPageBackgroundAndText(CDC * pDC, RECT rectDraw, INT nCurPage);

	void DrawActiveLineHighlight();
	void DrawColumnMarkerHighlight();

	void DrawScreenBookmark(INT nPosX, INT nPosY, INT nWidth, INT nHeight);
	void DrawScreenUnderbar(INT nPosX, INT nPosY, INT nWidth, INT nHeight);
	void DrawScreenSpace(INT nPosX, INT nPosY, INT nWidth, INT nHeight);
	void DrawScreenTabChar(INT nPosX, INT nPosY, INT nWidth, INT nHeight);
	void DrawScreenLineBreak(INT nPosX, INT nPosY, INT nWidth, INT nHeight);

	void ParsePageHeaderAndFooter(INT nCurPage, INT nMaxPage);
	void ParsePageHeaderAndFooter(CString & szArgument, LPCTSTR lpszFilePath, LPCTSTR lpszFileName,
		 LPCTSTR lpszPageNumber, LPCTSTR lpszTotalPage, LPCTSTR lpszCurrDate, LPCTSTR lpszCurrTime);


protected: // *** cedtViewHighlight.cpp ***
	void HighlightActiveLine();
	void UnhighlightActiveLine();
	void HighlightColumnMarker();

	void HighlightMatchingPairs();
	void UnhighlightPairs();


public: // *** cedtViewFormat.cpp ***

⌨️ 快捷键说明

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