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

📄 cedtdocundo.cpp

📁 Crimson编辑器的英文版,完成从韩文版变成英文版的移植,并且附带可执行文件和注册表文件,无需原先的安装包,是改写编辑器的最理想选择.
💻 CPP
字号:
#include "stdafx.h"
#include "cedtHeader.h"



void CCedtDoc::BeginActionRecording(BOOL bRecordingUndo)
{
	m_nRecordingCount = 0;
	m_bRecordingUndo = bRecordingUndo;
}

void CCedtDoc::EndActionRecording()
{
	if( m_nRecordingCount == 0 ) return;
	if( m_bRecordingUndo ) m_clsUndoBuffer.AddHead( m_nRecordingCount );
	else m_clsRedoBuffer.AddHead( m_nRecordingCount );
}


void CCedtDoc::RecordInsertChar(INT nIdxX, INT nIdxY)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_INSERTCHAR );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nIdxY );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_INSERTCHAR );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nIdxY );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordDeleteChar(INT nIdxX, INT nIdxY, UINT nChar)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_DELETECHAR );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nIdxY );
		m_clsUndoBuffer.m_lstChar.AddHead( nChar );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_DELETECHAR );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nIdxY );
		m_clsRedoBuffer.m_lstChar.AddHead( nChar );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordInsertString(INT nIdxX, INT nIdxY, INT nLength)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_INSERTSTRING );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nIdxY );
		m_clsUndoBuffer.m_lstParam.AddHead( nLength );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_INSERTSTRING );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nIdxY );
		m_clsRedoBuffer.m_lstParam.AddHead( nLength );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordDeleteString(INT nIdxX, INT nIdxY, LPCTSTR lpszString)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_DELETESTRING );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nIdxY );
		m_clsUndoBuffer.m_lstString.AddHead( lpszString );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_DELETESTRING );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nIdxY );
		m_clsRedoBuffer.m_lstString.AddHead( lpszString );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordInsertBlock(INT nBegX, INT nBegY, INT nEndX, INT nEndY)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_INSERTBLOCK );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nEndX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nEndY );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nBegX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nBegY );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_INSERTBLOCK );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nEndX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nEndY );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nBegX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nBegY );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordDeleteBlock(INT nBegX, INT nBegY, CMemText & rBlock)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_DELETEBLOCK );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nBegX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nBegY );
		m_clsUndoBuffer.m_lstBlock.AddHead( rBlock );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_DELETEBLOCK );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nBegX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nBegY );
		m_clsRedoBuffer.m_lstBlock.AddHead( rBlock );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordSplitLine(INT nIdxX, INT nIdxY)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_SPLITLINE );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nIdxY );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_SPLITLINE );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nIdxY );
	}
	m_nRecordingCount++;
}

void CCedtDoc::RecordJoinLines(INT nIdxX, INT nIdxY)
{
	if( m_bRecordingUndo ) {
		m_clsUndoBuffer.m_lstAction.AddHead( AT_JOINLINES );
		m_clsUndoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsUndoBuffer.m_lstIdxY.AddHead( nIdxY );
	} else {
		m_clsRedoBuffer.m_lstAction.AddHead( AT_JOINLINES );
		m_clsRedoBuffer.m_lstIdxX.AddHead( nIdxX );
		m_clsRedoBuffer.m_lstIdxY.AddHead( nIdxY );
	}
	m_nRecordingCount++;
}

⌨️ 快捷键说明

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