📄 notepad_plus.cpp.internaldockingdlg.svn-base
字号:
break;
case IDM_FILE_SAVE :
fileSave();
break;
case IDM_FILE_SAVEALL :
fileSaveAll();
break;
case IDM_FILE_SAVEAS :
fileSaveAs();
break;
case IDM_FILE_LOADSESSION:
fileLoadSession();
break;
case IDM_FILE_SAVESESSION:
fileSaveSession();
break;
case IDC_BUTTON_PRINT :
filePrint(false);
break;
case IDM_FILE_PRINT :
filePrint(true);
break;
case IDM_FILE_EXIT:
::SendMessage(_hSelf, WM_CLOSE, 0, 0);
break;
case IDM_EDIT_UNDO:
_pEditView->execute(WM_UNDO);
checkClipboard();
checkUndoState();
break;
case IDM_EDIT_REDO:
_pEditView->execute(SCI_REDO);
checkClipboard();
checkUndoState();
break;
case IDM_EDIT_CUT:
_pEditView->execute(WM_CUT);
break;
case IDM_EDIT_COPY:
_pEditView->execute(WM_COPY);
checkClipboard();
break;
case IDM_EDIT_PASTE:
{
int eolMode = int(_pEditView->execute(SCI_GETEOLMODE));
_pEditView->execute(WM_PASTE);
_pEditView->execute(SCI_CONVERTEOLS, eolMode);
}
break;
case IDM_EDIT_DELETE:
_pEditView->execute(WM_CLEAR);
break;
case IDM_EDIT_STARTRECORDINGMACRO:
case IDM_EDIT_STOPRECORDINGMACRO:
case IDC_EDIT_TOGGLEMACRORECORDING:
{
//static HCURSOR originalCur;
if (_recordingMacro)
{
// STOP !!!
_mainEditView.execute(SCI_STOPRECORD);
//_mainEditView.execute(SCI_ENDUNDOACTION);
_subEditView.execute(SCI_STOPRECORD);
//_subEditView.execute(SCI_ENDUNDOACTION);
//::SetCursor(originalCur);
_mainEditView.execute(SCI_SETCURSOR, (LPARAM)SC_CURSORNORMAL);
_subEditView.execute(SCI_SETCURSOR, (LPARAM)SC_CURSORNORMAL);
_recordingMacro = false;
_runMacroDlg.initMacroList();
}
else
{
//originalCur = ::LoadCursor(_hInst, MAKEINTRESOURCE(IDC_MACRO_RECORDING));
//::SetCursor(originalCur);
_mainEditView.execute(SCI_SETCURSOR, 9);
_subEditView.execute(SCI_SETCURSOR, 9);
_macro.clear();
// START !!!
_mainEditView.execute(SCI_STARTRECORD);
//_mainEditView.execute(SCI_BEGINUNDOACTION);
_subEditView.execute(SCI_STARTRECORD);
//_subEditView.execute(SCI_BEGINUNDOACTION);
_recordingMacro = true;
}
checkMacroState();
break;
}
case IDM_EDIT_PLAYBACKRECORDEDMACRO:
if (!_recordingMacro) // if we're not currently recording, then playback the recorded keystrokes
{
_pEditView->execute(SCI_BEGINUNDOACTION);
for (Macro::iterator step = _macro.begin(); step != _macro.end(); step++)
step->PlayBack(this, _pEditView);
_pEditView->execute(SCI_ENDUNDOACTION);
}
break;
case IDM_EDIT_RUNMULTIMACRODLG :
{
if (!_recordingMacro) // if we're not currently recording, then playback the recorded keystrokes
{
bool isFirstTime = !_runMacroDlg.isCreated();
_runMacroDlg.doDialog(_isRTL);
if (isFirstTime)
{
changeDlgLang(_runMacroDlg.getHSelf(), "MultiMacro");
}
break;
}
}
break;
case IDM_EDIT_SAVECURRENTMACRO :
{
if (addCurrentMacro())
_runMacroDlg.initMacroList();
break;
}
case IDM_EDIT_FULLPATHTOCLIP :
{
str2Cliboard(_pEditView->getCurrentTitle());
}
break;
case IDM_EDIT_CURRENTDIRTOCLIP :
{
char dir[MAX_PATH];
strcpy(dir, _pEditView->getCurrentTitle());
PathRemoveFileSpec((LPSTR)dir);
str2Cliboard(dir);
}
break;
case IDM_EDIT_FILENAMETOCLIP :
{
str2Cliboard(PathFindFileName((LPSTR)_pEditView->getCurrentTitle()));
}
break;
case IDM_SEARCH_FIND :
case IDM_SEARCH_REPLACE :
{
const int strSize = 64;
char str[strSize];
bool isFirstTime = !_findReplaceDlg.isCreated();
CharacterRange range = _pEditView->getSelection();
if (range.cpMin == range.cpMax)
_pEditView->expandWordSelection();
_findReplaceDlg.doDialog((id == IDM_SEARCH_FIND)?FIND:REPLACE, _isRTL);
if (_pEditView->getSelectedText(str, strSize, true))
_findReplaceDlg.setSearchText(str, _pEditView->getCurrentBuffer()._unicodeMode != uni8Bit);
if (isFirstTime)
changeDlgLang(_findReplaceDlg.getHSelf(), "Find");
break;
}
case IDM_SEARCH_FINDINFILES :
{
::SendMessage(_hSelf, WM_LAUNCH_FINDINFILESDLG, 0, 0);
break;
}
case IDM_SEARCH_FINDINCREMENT :
{
const int strSize = 64;
char str[strSize];
_incrementFindDlg.doDialog(_isRTL);
CharacterRange range = _pEditView->getSelection();
if (range.cpMin == range.cpMax)
{
_pEditView->expandWordSelection();
}
_pEditView->getSelectedText(str, strSize);
_incrementFindDlg.setSearchText(str, _pEditView->getCurrentBuffer()._unicodeMode != uni8Bit);
}
break;
case IDM_SEARCH_FINDNEXT :
case IDM_SEARCH_FINDPREV :
{
if (!_findReplaceDlg.isCreated())
return;
_findReplaceDlg.setSearchDirection(id == IDM_SEARCH_FINDNEXT?DIR_DOWN:DIR_UP);
string s = _findReplaceDlg.getText2search();
_findReplaceDlg.processFindNext(s.c_str());
break;
}
break;
case IDM_SEARCH_VOLATILE_FINDNEXT :
case IDM_SEARCH_VOLATILE_FINDPREV :
{
CharacterRange range = _pEditView->getSelection();
if (range.cpMin == range.cpMax)
{
_pEditView->expandWordSelection();
}
else
{
char text2Find[MAX_PATH];
_pEditView->getSelectedText(text2Find, sizeof(text2Find));
FindOption op;
op._isWholeWord = false;
op._whichDirection = (id == IDM_SEARCH_VOLATILE_FINDNEXT?DIR_DOWN:DIR_UP);
_findReplaceDlg.processFindNext(text2Find, &op);
}
break;
}
case IDM_SEARCH_GOTOLINE :
{
/*
bool isFirstTime = !_goToLineDlg.isCreated();
_goToLineDlg.doDialog(_isRTL);
if (isFirstTime)
changeDlgLang(_goToLineDlg.getHSelf(), "GoToLine");
break;
*/
bool isFirstTime = !_goToLineDlg.isCreated();
if (isFirstTime)
{
tTbData data = {0};
_goToLineDlg.create(&data, _isRTL);
_dockingManager.createDockableDlg(data);
changeDlgLang(_goToLineDlg.getHSelf(), "GoToLine");
}
else
{
_goToLineDlg.display();
}
}
case IDM_SEARCH_GOTOMATCHINGBRACE :
{
int braceAtCaret = -1;
int braceOpposite = -1;
findMatchingBracePos(braceAtCaret, braceOpposite);
if (braceOpposite != -1)
_pEditView->execute(SCI_GOTOPOS, braceOpposite);
break;
}
case IDM_SEARCH_TOGGLE_BOOKMARK :
bookmarkToggle(-1);
break;
case IDM_SEARCH_NEXT_BOOKMARK:
bookmarkNext(true);
break;
case IDM_SEARCH_PREV_BOOKMARK:
bookmarkNext(false);
break;
case IDM_SEARCH_CLEAR_BOOKMARKS:
bookmarkClearAll();
break;
case IDM_VIEW_USER_DLG :
{
bool isUDDlgVisible = false;
UserDefineDialog *udd = _pEditView->getUserDefineDlg();
if (!udd->isCreated())
{
_pEditView->doUserDefineDlg(true, _isRTL);
changeUserDefineLang();
if (_isUDDocked)
::SendMessage(udd->getHSelf(), WM_COMMAND, IDC_DOCK_BUTTON, 0);
}
else
{
isUDDlgVisible = udd->isVisible();
bool isUDDlgDocked = udd->isDocked();
if ((isUDDlgDocked)&&(isUDDlgVisible))
{
::ShowWindow(_pMainSplitter->getHSelf(), SW_HIDE);
if (_mainWindowStatus & TWO_VIEWS_MASK)
_pMainWindow = &_subSplitter;
else
_pMainWindow = _pDocTab;
RECT rc;
getMainClientRect(rc);
_dockingManager.reSizeTo(rc);
udd->display(false);
_mainWindowStatus &= ~DOCK_MASK;
}
else if ((isUDDlgDocked)&&(!isUDDlgVisible))
{
if (!_pMainSplitter)
{
_pMainSplitter = new SplitterContainer;
_pMainSplitter->init(_hInst, _hSelf);
Window *pWindow;
if (_mainWindowStatus & TWO_VIEWS_MASK)
pWindow = &_subSplitter;
else
pWindow = _pDocTab;
_pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, RIGHT_FIX, 45);
}
_pMainWindow = _pMainSplitter;
_pMainSplitter->setWin0((_mainWindowStatus & TWO_VIEWS_MASK)?(Window *)&_subSplitter:(Window *)_pDocTab);
RECT rc;
getMainClientRect(rc);
_dockingManager.reSizeTo(rc);
_pMainWindow->display();
_mainWindowStatus |= DOCK_MASK;
}
else if ((!isUDDlgDocked)&&(isUDDlgVisible))
{
udd->display(false);
}
else //((!isUDDlgDocked)&&(!isUDDlgVisible))
udd->display();
}
checkMenuItem(IDM_VIEW_USER_DLG, !isUDDlgVisible);
_toolBar.setCheck(IDM_VIEW_USER_DLG, !isUDDlgVisible);
break;
}
case IDM_EDIT_SELECTALL:
_pEditView->execute(SCI_SELECTALL);
checkClipboard();
break;
case IDM_EDIT_INS_TAB:
_pEditView->execute(SCI_TAB);
break;
case IDM_EDIT_RMV_TAB:
_pEditView->execute(SCI_BACKTAB);
break;
case IDM_EDIT_DUP_LINE:
_pEditView->execute(SCI_LINEDUPLICATE);
break;
/*
case IDM_EDIT_TRANSPOSE_LINE:
_pEditView->execute(SCI_LINETRANSPOSE);
break;
*/
case IDM_EDIT_SPLIT_LINES:
_pEditView->execute(SCI_TARGETFROMSELECTION);
_pEditView->execute(SCI_LINESSPLIT);
break;
case IDM_EDIT_JOIN_LINES:
_pEditView->execute(SCI_TARGETFROMSELECTION);
_pEditView->execute(SCI_LINESJOIN);
break;
case IDM_EDIT_LINE_UP:
_pEditView->currentLineUp();
break;
case IDM_EDIT_LINE_DOWN:
_pEditView->currentLineDown();
break;
case IDM_EDIT_UPPERCASE:
_pEditView->convertSelectedTextToUpperCase();
break;
case IDM_EDIT_LOWERCASE:
_pEditView->convertSelectedTextToLowerCase();
break;
case IDM_EDIT_BLOCK_COMMENT:
doBlockComment();
break;
case IDM_EDIT_STREAM_COMMENT:
doStreamComment();
break;
case IDM_EDIT_TRIMTRAILING:
doTrimTrailing();
break;
case IDM_EDIT_SETREADONLY:
{
HMENU hMenu = ::GetMenu(_hSelf);
int check = (::GetMenuState(hMenu, id, MF_BYCOMMAND) == MF_CHECKED)?MF_UNCHECKED:MF_CHECKED;
::CheckMenuItem(hMenu, id, MF_BYCOMMAND | check);
_pEditView->setCurrentDocReadOnlyByUser(check == MF_CHECKED);
_pDocTab->updateCurrentTabItem();
}
break;
case IDM_EDIT_CLEARREADONLY:
{
DWORD dwFileAttribs = ::GetFileAttributes(_pEditView->getCurrentBuffer().getFileName());
dwFileAttribs ^= FILE_ATTRIBUTE_READONLY;
::SetFileAttributes(_pEditView->getCurrentBuffer().getFileName(), dwFileAttribs);
//_pEditView->getCurrentBuffer().setReadOnly(false);
_pEditView->execute(SCI_SETREADONLY,false);
_pEditView->updateCurrentDocSysReadOnlyStat();
_pDocTab->updateCurrentTabItem();
HMENU hMenu = ::GetMenu(_hSelf);
enableCommand(IDM_EDIT_SETREADONLY, true, MENU);
}
break;
case IDM_VIEW_FULLSCREENTOGGLE :
fullScreenToggle();
break;
case IDM_VIEW_ALWAYSONTOP:
{
HMENU hMenu = ::GetMenu(_hSelf);
int check = (::GetMenuState(hMenu, id, MF_BYCOMMAND) == MF_CHECKED)?MF_UNCHECKED:MF_CHECKED;
::CheckMenuItem(hMenu, id, MF_BYCOMMAND | check);
SetWindowPos(_hSelf, check == MF_CHECKED?HWND_TOPMOST:HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
}
break;
case IDM_VIEW_FOLD_CURRENT :
case IDM_VIEW_UNFOLD_CURRENT :
_pEditView->foldCurrentPos((id==IDM_VIEW_FOLD_CURRENT)?fold_collapse:fold_uncollapse);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -