[NEW_FEATURE] Add new pluin notification NPPN_LANGCHANGED (Finished).
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@321 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
cc263ceda3
commit
5c6fb5e0f5
@ -1674,8 +1674,11 @@ void Notepad_plus::checkDocState()
|
||||
}
|
||||
}
|
||||
|
||||
bool isCurrentUntitled = curBuf->isUntitled();
|
||||
enableCommand(IDM_FILE_SAVE, isCurrentDirty, MENU | TOOLBAR);
|
||||
enableCommand(IDM_FILE_SAVEALL, isSeveralDirty, MENU | TOOLBAR);
|
||||
enableCommand(IDM_VIEW_GOTO_NEW_INSTANCE, !(isCurrentDirty || isCurrentUntitled), MENU);
|
||||
enableCommand(IDM_VIEW_LOAD_IN_NEW_INSTANCE, !(isCurrentDirty || isCurrentUntitled), MENU);
|
||||
|
||||
bool isSysReadOnly = curBuf->getFileReadOnly();
|
||||
if (isSysReadOnly)
|
||||
@ -2046,6 +2049,8 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
TCHAR print[32] = TEXT("Print me");
|
||||
TCHAR readOnly[32] = TEXT("Read only");
|
||||
TCHAR clearReadOnly[32] = TEXT("Clear read only flag");
|
||||
TCHAR goToNewInst[32] = TEXT("Go to new instance");
|
||||
TCHAR openInNewInst[32] = TEXT("Open in new instance");
|
||||
TCHAR goToView[32] = TEXT("Go to another View");
|
||||
TCHAR cloneToView[32] = TEXT("Clone to another View");
|
||||
TCHAR cilpFullPath[32] = TEXT("Full file path to Clipboard");
|
||||
@ -2063,13 +2068,15 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
const TCHAR *pClearReadOnly = clearReadOnly;
|
||||
const TCHAR *pGoToView = goToView;
|
||||
const TCHAR *pCloneToView = cloneToView;
|
||||
const TCHAR *pGoToNewInst = goToNewInst;
|
||||
const TCHAR *pOpenInNewInst = openInNewInst;
|
||||
const TCHAR *pCilpFullPath = cilpFullPath;
|
||||
const TCHAR *pCilpFileName = cilpFileName;
|
||||
const TCHAR *pCilpCurrentDir = cilpCurrentDir;
|
||||
const TCHAR *pRename = rename;
|
||||
const TCHAR *pRemove = remove;
|
||||
#ifdef UNICODE
|
||||
basic_string<wchar_t> goToViewW, cloneToViewW, closeW, closeButW, saveW, saveAsW, printW,\
|
||||
basic_string<wchar_t> goToViewW, cloneToViewW, goToNewInstW, openInNewInstW, closeW, closeButW, saveW, saveAsW, printW,\
|
||||
readOnlyW, clearReadOnlyW, cilpFullPathW, cilpFileNameW, cilpCurrentDirW, removeW, renameW;
|
||||
#endif
|
||||
if (_nativeLang)
|
||||
@ -2117,6 +2124,10 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
pReadOnly = element->Attribute(TEXT("name")); break;
|
||||
case 13 :
|
||||
pClearReadOnly = element->Attribute(TEXT("name")); break;
|
||||
case 14 :
|
||||
pGoToNewInst = element->Attribute(TEXT("name")); break;
|
||||
case 15 :
|
||||
pOpenInNewInst = element->Attribute(TEXT("name")); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2132,6 +2143,14 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
cloneToViewW = wmc->char2wchar(pCharStrA, _nativeLangEncoding);
|
||||
pCloneToView = cloneToViewW.c_str();
|
||||
|
||||
pCharStrA = wmc->wchar2char(pGoToNewInst, CP_ANSI_LATIN_1);
|
||||
goToNewInstW = wmc->char2wchar(pCharStrA, _nativeLangEncoding);
|
||||
pGoToNewInst = goToNewInstW.c_str();
|
||||
|
||||
pCharStrA = wmc->wchar2char(pOpenInNewInst, CP_ANSI_LATIN_1);
|
||||
openInNewInstW = wmc->char2wchar(pCharStrA, _nativeLangEncoding);
|
||||
pOpenInNewInst = openInNewInstW.c_str();
|
||||
|
||||
pCharStrA = wmc->wchar2char(pClose, CP_ANSI_LATIN_1);
|
||||
closeW = wmc->char2wchar(pCharStrA, _nativeLangEncoding);
|
||||
pClose = closeW.c_str();
|
||||
@ -2194,6 +2213,10 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
pGoToView = goToView;
|
||||
if (!pCloneToView || !pCloneToView[0])
|
||||
pCloneToView = cloneToView;
|
||||
if (!pGoToNewInst || !pGoToNewInst[0])
|
||||
pGoToNewInst = goToNewInst;
|
||||
if (!pOpenInNewInst || !pOpenInNewInst[0])
|
||||
pOpenInNewInst = openInNewInst;
|
||||
if (!pCilpFullPath || !pCilpFullPath[0])
|
||||
pCilpFullPath = cilpFullPath;
|
||||
if (!pCilpFileName || !pCilpFileName[0])
|
||||
@ -2227,6 +2250,8 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
itemUnitArray.push_back(MenuItemUnit(0, NULL));
|
||||
itemUnitArray.push_back(MenuItemUnit(IDM_VIEW_GOTO_ANOTHER_VIEW, pGoToView));
|
||||
itemUnitArray.push_back(MenuItemUnit(IDM_VIEW_CLONE_TO_ANOTHER_VIEW, pCloneToView));
|
||||
itemUnitArray.push_back(MenuItemUnit(IDM_VIEW_GOTO_NEW_INSTANCE, pGoToNewInst));
|
||||
itemUnitArray.push_back(MenuItemUnit(IDM_VIEW_LOAD_IN_NEW_INSTANCE, pOpenInNewInst));
|
||||
|
||||
_tabPopupMenu.create(_hSelf, itemUnitArray);
|
||||
|
||||
@ -2247,6 +2272,11 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
_tabPopupMenu.enableItem(IDM_FILE_DELETE, isFileExisting);
|
||||
_tabPopupMenu.enableItem(IDM_FILE_RENAME, isFileExisting);
|
||||
|
||||
bool isDirty = buf->isDirty();
|
||||
bool isUntitled = buf->isUntitled();
|
||||
_tabPopupMenu.enableItem(IDM_VIEW_GOTO_NEW_INSTANCE, !(isDirty||isUntitled));
|
||||
_tabPopupMenu.enableItem(IDM_VIEW_LOAD_IN_NEW_INSTANCE, !(isDirty||isUntitled));
|
||||
|
||||
_tabPopupMenu.display(p);
|
||||
return TRUE;
|
||||
}
|
||||
@ -4809,10 +4839,15 @@ void Notepad_plus::undockUserDlg()
|
||||
}
|
||||
void Notepad_plus::docOpenInNewInstance(FileTransferMode mode)
|
||||
{
|
||||
BufferID bufferID = _pEditView->getCurrentBufferID();
|
||||
Buffer * buf = MainFileManager->getBufferByID(bufferID);
|
||||
if (buf->isUntitled() || buf->isDirty())
|
||||
return;
|
||||
|
||||
Command cmd(TEXT("$(NPP_DIRECTORY)\\notepad++.exe $(FULL_CURRENT_PATH) -multiInst -nosession"));
|
||||
cmd.run(_hSelf);
|
||||
if (mode == TransferMove)
|
||||
doClose(_pEditView->getCurrentBufferID(), currentView());
|
||||
doClose(bufferID, currentView());
|
||||
}
|
||||
|
||||
void Notepad_plus::docGotoAnotherEditView(FileTransferMode mode)
|
||||
|
Loading…
Reference in New Issue
Block a user