📄 cedtviewhndredit.cpp
字号:
#include "stdafx.h"
#include "cedtHeader.h"
#include "FindDialog.h"
#include "ReplaceDialog.h"
#include "AskReplaceDialog.h"
#include "GoToDialog.h"
/////////////////////////////////////////////////////////////////////////////
// CARET MOVEMENT
void CCedtView::OnMoveKeyDown(UINT nChar, UINT nFlags)
{
BOOL bRedraw = EventMoveCaret(nChar, nFlags, FALSE);
if( IsMacroRecording() ) MacroRecordMove(nChar, nFlags);
SetScrollPosToMakeCaretVisible();
if( bRedraw ) { Invalidate(); UpdateWindow(); UpdateAllViews(); }
else UpdateCaretPosition();
}
/////////////////////////////////////////////////////////////////////////////
// BASIC EDITING
void CCedtView::OnCharKeyDown(UINT nChar)
{
BeginActionRecording(TRUE);
EventInsertChar(nChar, FALSE);
if( IsMacroRecording() ) MacroRecordChar(nChar);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnDBCharKeyDown(UINT nCH1, UINT nCH2)
{
TCHAR szBuf[3]; szBuf[0] = nCH1; szBuf[1] = nCH2; szBuf[2] = '\0';
BeginActionRecording(TRUE);
EventInsertString(szBuf, FALSE);
if( IsMacroRecording() ) MacroRecordString(szBuf);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnImeCompositionStart()
{
EventCompositionStart(FALSE);
}
void CCedtView::OnImeCompositionEnd()
{
BeginActionRecording(TRUE);
EventCompositionEnd(FALSE);
// if( IsMacroRecording() ) MacroRecordNull();
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnImeCompositionCompose(LPCTSTR lpszString)
{
BeginActionRecording(TRUE);
EventCompositionCompose(lpszString, FALSE);
// if( IsMacroRecording() ) MacroRecordNull();
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnImeCompositionResult(LPCTSTR lpszString)
{
BeginActionRecording(TRUE);
EventCompositionResult(lpszString, FALSE);
if( IsMacroRecording() ) MacroRecordString(lpszString);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditEscape()
{
EventCommandEscape(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_ESCAPE);
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditReturn()
{
BeginActionRecording(TRUE);
EventCommandReturn(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_RETURN);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditBack()
{
BeginActionRecording(TRUE);
EventCommandBack(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_BACK);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDelete()
{
BeginActionRecording(TRUE);
EventCommandDelete(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditTab()
{
BeginActionRecording(TRUE);
EventCommandTab(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_TAB);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDetab()
{
BeginActionRecording(TRUE);
EventCommandDetab(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DETAB);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
/////////////////////////////////////////////////////////////////////////////
// ADVANCED EDITING
void CCedtView::OnEditIncreaseIndent()
{
BeginActionRecording(TRUE);
EventIncreaseIndent(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_INCREASE_INDENT);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDecreaseIndent()
{
BeginActionRecording(TRUE);
EventDecreaseIndent(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DECREASE_INDENT);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditMakeComment()
{
BeginActionRecording(TRUE);
EventMakeComment(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_ADD_COMMENT);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditReleaseComment()
{
BeginActionRecording(TRUE);
EventReleaseComment(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_REMOVE_COMMENT);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditJoinLines()
{
BeginActionRecording(TRUE);
EventJoinLines(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_JOIN_LINES);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditSplitLine()
{
BeginActionRecording(TRUE);
EventSplitLine(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_SPLIT_LINE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDeleteWord()
{
BeginActionRecording(TRUE);
EventDeleteWord(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_WORD);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDeletePrevWord()
{
BeginActionRecording(TRUE);
EventDeletePrevWord(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_PREV_WORD);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDeleteToEndOfLine()
{
BeginActionRecording(TRUE);
EventDeleteToEndOfLine(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_TO_END_OF_LINE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDeleteToBeginOfLine()
{
BeginActionRecording(TRUE);
EventDeleteToBeginOfLine(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_TO_BEGIN_OF_LINE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDeleteLine()
{
BeginActionRecording(TRUE);
EventDeleteLine(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DELETE_LINE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditDuplicateLine()
{
BeginActionRecording(TRUE);
EventDuplicateLine(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_DUPLICATE_LINE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
/////////////////////////////////////////////////////////////////////////////
// COPY & PASTE
void CCedtView::OnEditCut()
{
BeginActionRecording(TRUE);
EventCommandCut(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_CUT);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditCopy()
{
EventCommandCopy(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_COPY);
}
void CCedtView::OnEditCopyFilePath()
{
EventCommandCopyFilePath(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_COPY_FILE_PATH);
}
void CCedtView::OnEditCutAppend()
{
BeginActionRecording(TRUE);
EventCommandCutAppend(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_CUT_APPEND);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditCopyAppend()
{
EventCommandCopyAppend(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_COPY_APPEND);
}
void CCedtView::OnEditPaste()
{
BeginActionRecording(TRUE);
EventCommandPaste(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_PASTE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
/////////////////////////////////////////////////////////////////////////////
// DRAG & DROP
void CCedtView::OnDragAndDrop(HGLOBAL hMemory)
{
BeginActionRecording(TRUE);
EventDragDelete(FALSE);
EventDragAdjust(FALSE);
EventDropPaste(hMemory, FALSE);
// if( IsMacroRecording() ) MacroRecordCommand(ID_DRAG_AND_DROP);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnDragDelete()
{
BeginActionRecording(TRUE);
EventDragDelete(FALSE);
// if( IsMacroRecording() ) MacroRecordCommand(ID_DRAG_DELETE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnDropEscape()
{
EventDropEscape(FALSE);
// if( IsMacroRecording() ) MacroRecordCommand(ID_DROP_ESCAPE);
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnDropPaste(HGLOBAL hMemory)
{
BeginActionRecording(TRUE);
EventDropPaste(hMemory, FALSE);
// if( IsMacroRecording() ) MacroRecordCommand(ID_DROP_PASTE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
/////////////////////////////////////////////////////////////////////////////
// INSERT TEXT
void CCedtView::OnEditInsertDate()
{
BeginActionRecording(TRUE);
EventInsertString(GetCurrentDate() + CString(" "), FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_INSERT_DATE);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditInsertTime()
{
BeginActionRecording(TRUE);
EventInsertString(GetCurrentTime() + CString(" "), FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_INSERT_TIME);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditInsertFile()
{
DWORD dwFlags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST;
CString szFilter = CCedtApp::GetComposedFileFilter();
CFileDialog dlg(TRUE, NULL, NULL, dwFlags, szFilter);
TCHAR szCurrentDirectory[MAX_PATH];
GetCurrentDirectory( MAX_PATH, szCurrentDirectory );
static TCHAR szInitialDirectory[MAX_PATH] = "";
if( ! strlen( szInitialDirectory ) ) strcpy( szInitialDirectory, szCurrentDirectory );
CString szTitle; szTitle.LoadString(IDS_DLG_INSERT_FILE);
dlg.m_ofn.lpstrTitle = szTitle; dlg.m_ofn.lpstrInitialDir = szInitialDirectory;
dlg.m_ofn.nFilterIndex = CCedtApp::GetFilterIndexDialog() + 1;
if( dlg.DoModal() != IDOK ) return;
GetCurrentDirectory( MAX_PATH, szInitialDirectory );
SetCurrentDirectory( szCurrentDirectory );
CCedtApp::SetFilterIndexDialog(dlg.m_ofn.nFilterIndex - 1);
CString szPathName = dlg.GetPathName();
BeginActionRecording(TRUE);
EventInsertFile(szPathName, FALSE);
if( IsMacroRecording() ) MacroRecordFile(szPathName);
EndActionRecording();
EmptyRedoBuffer(); CheckIfAllActionsCanBeUndone();
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
/////////////////////////////////////////////////////////////////////////////
// SELECTING
void CCedtView::OnEditSelectAll()
{
EventSelectAll(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_SELECT_ALL);
SetScrollPosToMakeCaretVisible();
Invalidate(); UpdateWindow(); UpdateAllViews();
}
void CCedtView::OnEditSelectLine()
{
EventSelectLine(FALSE);
if( IsMacroRecording() ) MacroRecordCommand(ID_EDIT_SELECT_LINE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -