From 56563f000df3a55f553f17358d351ec10a2602f5 Mon Sep 17 00:00:00 2001 From: harrybharry Date: Mon, 22 Sep 2008 21:20:12 +0000 Subject: [PATCH] Add NPPM_SETFILENAME. Implement 3 TODO messages. Fix bug if plugin doesnt clean up Scintilla handles. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@327 f5eea248-9336-0410-98b8-ebc06183d4e3 --- .../MISC/PluginsManager/Notepad_plus_msgs.h | 15 +++++-- PowerEditor/src/Notepad_plus.cpp | 45 +++++++++++++++++++ PowerEditor/src/Notepad_plus.h | 1 + 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/PowerEditor/src/MISC/PluginsManager/Notepad_plus_msgs.h b/PowerEditor/src/MISC/PluginsManager/Notepad_plus_msgs.h index 6d2ad3888..2f5f2cdbe 100644 --- a/PowerEditor/src/MISC/PluginsManager/Notepad_plus_msgs.h +++ b/PowerEditor/src/MISC/PluginsManager/Notepad_plus_msgs.h @@ -223,13 +223,22 @@ enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV // allocate fullFilePath with the return values + 1, then call it again to get full path file name #define NPPM_GETBUFFERIDFROMPOS (NPPMSG + 59) - // TODO + //wParam: Position of document + //lParam: View to use, 0 = Main, 1 = Secondary + //Returns 0 if invalid #define NPPM_GETCURRENTBUFFERID (NPPMSG + 60) - // TODO + //Returns active Buffer #define NPPM_RELOADBUFFERID (NPPMSG + 61) - // TODO + //Reloads Buffer + //wParam: Buffer to reload + //lParam: 0 if no alert, else alert + + #define NPPM_SETFILENAME (NPPMSG + 63) + //wParam: BufferID to rename + //lParam: name to set (TCHAR*) + //Buffer must have been previously unnamed (eg "new 1" document types) /* #define NPPM_ADDREBAR (NPPMSG + 57) diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index 30adf8208..00a30c9ba 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -6719,6 +6719,51 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa } break; + case NPPM_SETFILENAME: + { + if (!lParam && !wParam) + return FALSE; + BufferID id = (BufferID)wParam; + Buffer * b = MainFileManager->getBufferByID(id); + if (b && b->getStatus() == DOC_UNNAMED) { + b->setFileName((const TCHAR*)lParam); + return TRUE; + } + return FALSE; + } + break; + + case NPPM_GETBUFFERIDFROMPOS: + { + DocTabView * pView = NULL; + if (lParam == MAIN_VIEW) { + pView = &_mainDocTab; + } else if (lParam == SUB_VIEW) { + pView = &_subDocTab; + } else { + return (LRESULT)BUFFER_INVALID; + } + if ((int)wParam < pView->nbItem()) { + return (LRESULT)(pView->getBufferByIndex((int)wParam)); + } + return (LRESULT)BUFFER_INVALID; + } + break; + + case NPPM_GETCURRENTBUFFERID: + { + return (LRESULT)(_pEditView->getCurrentBufferID()); + } + break; + + case NPPM_RELOADBUFFERID: + { + if (!wParam) + return FALSE; + return doReload((BufferID)wParam, lParam != 0); + } + break; + case NPPM_RELOADFILE: { BufferID id = MainFileManager->getBufferFromName((const TCHAR *)lParam); diff --git a/PowerEditor/src/Notepad_plus.h b/PowerEditor/src/Notepad_plus.h index f5336e93e..553673bbf 100644 --- a/PowerEditor/src/Notepad_plus.h +++ b/PowerEditor/src/Notepad_plus.h @@ -335,6 +335,7 @@ private: void destroy() { for (size_t i = 0 ; i < _scintVector.size() ; i++) { + _scintVector[i]->destroy(); delete _scintVector[i]; } };