mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-24 22:34:54 +02:00
[BUG_FIXED] Fix a crash issue while launch Fin in file (regression since the last svn commit).
[BUG_FIXED] Fix a crash issue while deleting the last line. [BUG_FIXED] Fix a bug of plugin message NPPM_GETPLUGINSCONFIGDIR (regression since the last svn commit). [NEW_FEATURE] User can define different size of TAB by each language (in progress). [NEW_FEATURE] Add new plugin notification NPPN_DOCORDERCHANGED to notify plugins that document order is changed. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@518 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
846a96e4a3
commit
dd70030c5c
@ -462,3 +462,25 @@ TCHAR *BuildMenuFileName(TCHAR *buffer, int len, int pos, const TCHAR *filename)
|
|||||||
}
|
}
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
generic_string PathRemoveFileSpec(generic_string & path)
|
||||||
|
{
|
||||||
|
generic_string::size_type lastBackslash = path.find_last_of(TEXT('\\'));
|
||||||
|
if (lastBackslash == generic_string::npos)
|
||||||
|
{
|
||||||
|
if (path.size() >= 2 && path[1] == TEXT(':')) // "C:foo.bar" becomes "C:"
|
||||||
|
path.erase(2);
|
||||||
|
else
|
||||||
|
path.erase();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (lastBackslash == 2 && path[1] == TEXT(':') && path.size() >= 3) // "C:\foo.exe" becomes "C:\"
|
||||||
|
path.erase(3);
|
||||||
|
else if (lastBackslash == 0 && path.size() > 1) // "\foo.exe" becomes "\"
|
||||||
|
path.erase(1);
|
||||||
|
else
|
||||||
|
path.erase(lastBackslash);
|
||||||
|
}
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
@ -138,5 +138,7 @@ private:
|
|||||||
#define REBARBAND_SIZE sizeof(REBARBANDINFO)
|
#define REBARBAND_SIZE sizeof(REBARBANDINFO)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
generic_string PathRemoveFileSpec(generic_string & path);
|
||||||
|
|
||||||
|
|
||||||
#endif //M30_IDE_COMMUN_H
|
#endif //M30_IDE_COMMUN_H
|
||||||
|
@ -267,6 +267,7 @@ enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV
|
|||||||
// BOOL NPPM_ADDREBAR(INT ID, 0)
|
// BOOL NPPM_ADDREBAR(INT ID, 0)
|
||||||
//Use ID assigned with NPPM_ADDREBAR
|
//Use ID assigned with NPPM_ADDREBAR
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define NPPM_HIDETOOLBAR (NPPMSG + 70)
|
#define NPPM_HIDETOOLBAR (NPPMSG + 70)
|
||||||
// BOOL NPPM_HIDETOOLBAR(0, BOOL hideOrNot)
|
// BOOL NPPM_HIDETOOLBAR(0, BOOL hideOrNot)
|
||||||
// if hideOrNot is set as TRUE then tool bar will be hidden
|
// if hideOrNot is set as TRUE then tool bar will be hidden
|
||||||
@ -435,4 +436,9 @@ enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV
|
|||||||
#define DOCSTAUS_READONLY 1
|
#define DOCSTAUS_READONLY 1
|
||||||
#define DOCSTAUS_BUFFERDIRTY 2
|
#define DOCSTAUS_BUFFERDIRTY 2
|
||||||
|
|
||||||
|
#define NPPN_DOCORDERCHANGED (NPPN_FIRST + 16) // To notify plugins that document order is changed
|
||||||
|
//scnNotification->nmhdr.code = NPPN_DOCORDERCHANGED;
|
||||||
|
//scnNotification->nmhdr.hwndFrom = newIndex;
|
||||||
|
//scnNotification->nmhdr.idFrom = BufferID;
|
||||||
|
|
||||||
#endif //NOTEPAD_PLUS_MSGS_H
|
#endif //NOTEPAD_PLUS_MSGS_H
|
||||||
|
@ -271,10 +271,6 @@ void Notepad_plus::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLine, CmdL
|
|||||||
else
|
else
|
||||||
::MoveWindow(_hSelf, newUpperLeft.x, newUpperLeft.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE);
|
::MoveWindow(_hSelf, newUpperLeft.x, newUpperLeft.y, nppGUI._appPos.right, nppGUI._appPos.bottom, TRUE);
|
||||||
|
|
||||||
TCHAR nppBinPath[MAX_PATH*4];
|
|
||||||
::GetModuleFileName(NULL, nppBinPath, MAX_PATH*4);
|
|
||||||
_nppPath = nppBinPath;
|
|
||||||
|
|
||||||
if (nppGUI._tabStatus & TAB_MULTILINE)
|
if (nppGUI._tabStatus & TAB_MULTILINE)
|
||||||
::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_DRAWTABBAR_MULTILINE, 0);
|
::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_DRAWTABBAR_MULTILINE, 0);
|
||||||
|
|
||||||
@ -305,12 +301,12 @@ void Notepad_plus::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLine, CmdL
|
|||||||
vector<generic_string> patterns;
|
vector<generic_string> patterns;
|
||||||
patterns.push_back(TEXT("*.xml"));
|
patterns.push_back(TEXT("*.xml"));
|
||||||
|
|
||||||
generic_string nppDir(_nppPath);
|
generic_string nppDir(pNppParams->getNppPath());
|
||||||
::PathRemoveFileSpec((TCHAR *)nppDir.c_str()); // <- nppDir is modified via the string pointer
|
::PathRemoveFileSpec(nppDir);
|
||||||
|
|
||||||
#ifdef UNICODE
|
#ifdef UNICODE
|
||||||
LocalizationSwitcher & localizationSwitcher = pNppParams->getLocalizationSwitcher();
|
LocalizationSwitcher & localizationSwitcher = pNppParams->getLocalizationSwitcher();
|
||||||
wstring localizationDir = nppDir.c_str(); // <- should use the pointer to avoid the constructor of copy
|
wstring localizationDir = nppDir.c_str();
|
||||||
|
|
||||||
localizationDir += TEXT("\\localization\\");
|
localizationDir += TEXT("\\localization\\");
|
||||||
getMatchedFileNames(localizationDir.c_str(), patterns, fileNames, false, false);
|
getMatchedFileNames(localizationDir.c_str(), patterns, fileNames, false, false);
|
||||||
@ -720,7 +716,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isReadOnly)
|
|||||||
{
|
{
|
||||||
TCHAR str2display[MAX_PATH*2];
|
TCHAR str2display[MAX_PATH*2];
|
||||||
generic_string longFileDir(longFileName);
|
generic_string longFileDir(longFileName);
|
||||||
PathRemoveFileSpec((TCHAR *)longFileDir.c_str()); // <- Modify std::string via pointer
|
PathRemoveFileSpec(longFileDir);
|
||||||
|
|
||||||
if (PathFileExists(longFileDir.c_str()))
|
if (PathFileExists(longFileDir.c_str()))
|
||||||
{
|
{
|
||||||
@ -1146,8 +1142,8 @@ bool Notepad_plus::fileSave(BufferID id)
|
|||||||
|
|
||||||
// std::string path should be a temp throwable variable
|
// std::string path should be a temp throwable variable
|
||||||
generic_string path = fn;
|
generic_string path = fn;
|
||||||
::PathRemoveFileSpec((LPTSTR)path.c_str()); // <- here we modify its data w/o using its interface
|
::PathRemoveFileSpec(path);
|
||||||
fn_dateTime_bak = path.c_str(); // <- here it must be path.c_str() but not path. Because the constructor of copy processes differently string and char *
|
fn_dateTime_bak = path.c_str();
|
||||||
|
|
||||||
|
|
||||||
fn_dateTime_bak += TEXT("\\");
|
fn_dateTime_bak += TEXT("\\");
|
||||||
@ -3091,7 +3087,7 @@ void Notepad_plus::specialCmd(int id, int param)
|
|||||||
|
|
||||||
void Notepad_plus::command(int id)
|
void Notepad_plus::command(int id)
|
||||||
{
|
{
|
||||||
NppParameters *pNppParam = NppParameters::getInstance();
|
//NppParameters *pNppParam = NppParameters::getInstance();
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case IDM_FILE_NEW:
|
case IDM_FILE_NEW:
|
||||||
@ -3286,7 +3282,7 @@ void Notepad_plus::command(int id)
|
|||||||
else if (id == IDM_EDIT_CURRENTDIRTOCLIP)
|
else if (id == IDM_EDIT_CURRENTDIRTOCLIP)
|
||||||
{
|
{
|
||||||
generic_string dir(buf->getFullPathName());
|
generic_string dir(buf->getFullPathName());
|
||||||
PathRemoveFileSpec((TCHAR *)dir.c_str());
|
PathRemoveFileSpec(dir);
|
||||||
str2Cliboard(dir.c_str());
|
str2Cliboard(dir.c_str());
|
||||||
}
|
}
|
||||||
else if (id == IDM_EDIT_FILENAMETOCLIP)
|
else if (id == IDM_EDIT_FILENAMETOCLIP)
|
||||||
@ -4131,7 +4127,7 @@ void Notepad_plus::command(int id)
|
|||||||
|
|
||||||
case IDM_SETTING_TAB_REPLCESPACE:
|
case IDM_SETTING_TAB_REPLCESPACE:
|
||||||
{
|
{
|
||||||
NppGUI & nppgui = (NppGUI &)(pNppParam->getNppGUI());
|
NppGUI & nppgui = (NppGUI &)((NppParameters::getInstance())->getNppGUI());
|
||||||
nppgui._tabReplacedBySpace = !nppgui._tabReplacedBySpace;
|
nppgui._tabReplacedBySpace = !nppgui._tabReplacedBySpace;
|
||||||
_pEditView->execute(SCI_SETUSETABS, !nppgui._tabReplacedBySpace);
|
_pEditView->execute(SCI_SETUSETABS, !nppgui._tabReplacedBySpace);
|
||||||
//checkMenuItem(IDM_SETTING_TAB_REPLCESPACE, nppgui._tabReplacedBySpace);
|
//checkMenuItem(IDM_SETTING_TAB_REPLCESPACE, nppgui._tabReplacedBySpace);
|
||||||
@ -4141,7 +4137,7 @@ void Notepad_plus::command(int id)
|
|||||||
case IDM_SETTING_TAB_SIZE:
|
case IDM_SETTING_TAB_SIZE:
|
||||||
{
|
{
|
||||||
ValueDlg tabSizeDlg;
|
ValueDlg tabSizeDlg;
|
||||||
NppGUI & nppgui = (NppGUI &)(pNppParam->getNppGUI());
|
NppGUI & nppgui = (NppGUI &)((NppParameters::getInstance())->getNppGUI());
|
||||||
tabSizeDlg.init(_hInst, _preference.getHSelf(), nppgui._tabSize, TEXT("Tab Size : "));
|
tabSizeDlg.init(_hInst, _preference.getHSelf(), nppgui._tabSize, TEXT("Tab Size : "));
|
||||||
POINT p;
|
POINT p;
|
||||||
::GetCursorPos(&p);
|
::GetCursorPos(&p);
|
||||||
@ -4290,8 +4286,8 @@ void Notepad_plus::command(int id)
|
|||||||
|
|
||||||
case IDM_HELP :
|
case IDM_HELP :
|
||||||
{
|
{
|
||||||
generic_string tmp(_nppPath);
|
generic_string tmp((NppParameters::getInstance())->getNppPath());
|
||||||
::PathRemoveFileSpec((TCHAR *)tmp.c_str());
|
::PathRemoveFileSpec(tmp);
|
||||||
generic_string nppHelpPath = tmp.c_str();
|
generic_string nppHelpPath = tmp.c_str();
|
||||||
|
|
||||||
nppHelpPath += TEXT("\\NppHelp.chm");
|
nppHelpPath += TEXT("\\NppHelp.chm");
|
||||||
@ -4343,7 +4339,7 @@ void Notepad_plus::command(int id)
|
|||||||
|
|
||||||
case IDM_UPDATE_NPP :
|
case IDM_UPDATE_NPP :
|
||||||
{
|
{
|
||||||
generic_string updaterDir = _nppPath;
|
generic_string updaterDir = (NppParameters::getInstance())->getNppPath();
|
||||||
updaterDir += TEXT("\\updater\\");
|
updaterDir += TEXT("\\updater\\");
|
||||||
generic_string updaterFullPath = updaterDir + TEXT("gup.exe");
|
generic_string updaterFullPath = updaterDir + TEXT("gup.exe");
|
||||||
generic_string param = TEXT("-verbose -v");
|
generic_string param = TEXT("-verbose -v");
|
||||||
@ -4520,7 +4516,7 @@ void Notepad_plus::command(int id)
|
|||||||
else if ((id >= ID_MACRO) && (id < ID_MACRO_LIMIT))
|
else if ((id >= ID_MACRO) && (id < ID_MACRO_LIMIT))
|
||||||
{
|
{
|
||||||
int i = id - ID_MACRO;
|
int i = id - ID_MACRO;
|
||||||
vector<MacroShortcut> & theMacros = pNppParam->getMacroList();
|
vector<MacroShortcut> & theMacros = (NppParameters::getInstance())->getMacroList();
|
||||||
Macro macro = theMacros[i].getMacro();
|
Macro macro = theMacros[i].getMacro();
|
||||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||||
|
|
||||||
@ -4533,7 +4529,7 @@ void Notepad_plus::command(int id)
|
|||||||
else if ((id >= ID_USER_CMD) && (id < ID_USER_CMD_LIMIT))
|
else if ((id >= ID_USER_CMD) && (id < ID_USER_CMD_LIMIT))
|
||||||
{
|
{
|
||||||
int i = id - ID_USER_CMD;
|
int i = id - ID_USER_CMD;
|
||||||
vector<UserCommand> & theUserCommands = pNppParam->getUserCommandList();
|
vector<UserCommand> & theUserCommands = (NppParameters::getInstance())->getUserCommandList();
|
||||||
UserCommand ucmd = theUserCommands[i];
|
UserCommand ucmd = theUserCommands[i];
|
||||||
|
|
||||||
Command cmd(ucmd.getCmd());
|
Command cmd(ucmd.getCmd());
|
||||||
@ -7690,6 +7686,20 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NPPM_INTERNAL_DOCORDERCHANGED :
|
||||||
|
{
|
||||||
|
BufferID id = _pEditView->getCurrentBufferID();
|
||||||
|
|
||||||
|
// Notify plugins that current file is about to be closed
|
||||||
|
SCNotification scnN;
|
||||||
|
scnN.nmhdr.code = NPPN_DOCORDERCHANGED;
|
||||||
|
scnN.nmhdr.hwndFrom = (void *)lParam;
|
||||||
|
scnN.nmhdr.idFrom = (uptr_t)id;
|
||||||
|
_pluginsManager.notify(&scnN);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
{
|
{
|
||||||
RECT rc;
|
RECT rc;
|
||||||
@ -8833,7 +8843,7 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
generic_string pluginsConfigDirPrefix = pNppParam->getAppDataNppDir();
|
generic_string pluginsConfigDirPrefix = pNppParam->getAppDataNppDir();
|
||||||
|
|
||||||
if (pluginsConfigDirPrefix == TEXT(""))
|
if (pluginsConfigDirPrefix == TEXT(""))
|
||||||
pluginsConfigDirPrefix = _nppPath;
|
pluginsConfigDirPrefix = pNppParam->getNppPath();
|
||||||
|
|
||||||
const TCHAR *secondPart = TEXT("plugins\\Config");
|
const TCHAR *secondPart = TEXT("plugins\\Config");
|
||||||
|
|
||||||
@ -9759,7 +9769,7 @@ void Notepad_plus::notifyBufferChanged(Buffer * buffer, int mask) {
|
|||||||
checkDocState();
|
checkDocState();
|
||||||
setTitle();
|
setTitle();
|
||||||
generic_string dir(buffer->getFullPathName());
|
generic_string dir(buffer->getFullPathName());
|
||||||
PathRemoveFileSpec((TCHAR *)dir.c_str());
|
PathRemoveFileSpec(dir);
|
||||||
setWorkingDir(dir.c_str());
|
setWorkingDir(dir.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9812,7 +9822,7 @@ void Notepad_plus::notifyBufferActivated(BufferID bufid, int view) {
|
|||||||
setDisplayFormat(buf->getFormat());
|
setDisplayFormat(buf->getFormat());
|
||||||
enableConvertMenuItems(buf->getFormat());
|
enableConvertMenuItems(buf->getFormat());
|
||||||
generic_string dir(buf->getFullPathName());
|
generic_string dir(buf->getFullPathName());
|
||||||
PathRemoveFileSpec((TCHAR *)dir.c_str());
|
PathRemoveFileSpec(dir);
|
||||||
setWorkingDir(dir.c_str());
|
setWorkingDir(dir.c_str());
|
||||||
setTitle();
|
setTitle();
|
||||||
//Make sure the colors of the tab controls match
|
//Make sure the colors of the tab controls match
|
||||||
|
@ -66,6 +66,7 @@ enum WindowStatus { //bitwise mask
|
|||||||
WindowMask = 0x07
|
WindowMask = 0x07
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
//Plugins rely on #define's
|
//Plugins rely on #define's
|
||||||
enum Views {
|
enum Views {
|
||||||
@ -223,7 +224,6 @@ public:
|
|||||||
static HWND gNppHWND; //static handle to Notepad++ window, NULL if non-existant
|
static HWND gNppHWND; //static handle to Notepad++ window, NULL if non-existant
|
||||||
private:
|
private:
|
||||||
static const TCHAR _className[32];
|
static const TCHAR _className[32];
|
||||||
generic_string _nppPath;
|
|
||||||
Window *_pMainWindow;
|
Window *_pMainWindow;
|
||||||
DockingManager _dockingManager;
|
DockingManager _dockingManager;
|
||||||
|
|
||||||
|
@ -630,6 +630,10 @@ const int NB_MAX_FINDHISTORY_REPLACE = 30;
|
|||||||
const int NB_MAX_FINDHISTORY_PATH = 30;
|
const int NB_MAX_FINDHISTORY_PATH = 30;
|
||||||
const int NB_MAX_FINDHISTORY_FILTER = 20;
|
const int NB_MAX_FINDHISTORY_FILTER = 20;
|
||||||
|
|
||||||
|
|
||||||
|
const int MASK_ReplaceBySpc = 0x80;
|
||||||
|
const int MASK_TabSize = 0x7F;
|
||||||
|
|
||||||
struct Lang
|
struct Lang
|
||||||
{
|
{
|
||||||
LangType _langID;
|
LangType _langID;
|
||||||
@ -640,8 +644,16 @@ struct Lang
|
|||||||
const TCHAR *_pCommentStart;
|
const TCHAR *_pCommentStart;
|
||||||
const TCHAR *_pCommentEnd;
|
const TCHAR *_pCommentEnd;
|
||||||
|
|
||||||
Lang() {for (int i = 0 ; i < NB_LIST ; _langKeyWordList[i] = NULL ,i++);};
|
bool _isTabReplacedBySpace;
|
||||||
Lang(LangType langID, const TCHAR *name) : _langID(langID), _langName(name?name:TEXT("")){
|
int _tabSize;
|
||||||
|
|
||||||
|
Lang(): _langID(L_TXT), _langName(TEXT("")), _defaultExtList(NULL), _pCommentLineSymbol(NULL), _pCommentStart(NULL),
|
||||||
|
_pCommentEnd(NULL), _isTabReplacedBySpace(false), _tabSize(-1) {
|
||||||
|
for (int i = 0 ; i < NB_LIST ; _langKeyWordList[i] = NULL ,i++);
|
||||||
|
};
|
||||||
|
Lang(LangType langID, const TCHAR *name) : _langID(langID), _langName(name?name:TEXT("")),\
|
||||||
|
_defaultExtList(NULL), _pCommentLineSymbol(NULL), _pCommentStart(NULL),\
|
||||||
|
_pCommentEnd(NULL), _isTabReplacedBySpace(false), _tabSize(-1) {
|
||||||
for (int i = 0 ; i < NB_LIST ; _langKeyWordList[i] = NULL ,i++);
|
for (int i = 0 ; i < NB_LIST ; _langKeyWordList[i] = NULL ,i++);
|
||||||
};
|
};
|
||||||
~Lang() {};
|
~Lang() {};
|
||||||
@ -661,6 +673,12 @@ struct Lang
|
|||||||
_pCommentEnd = commentEnd;
|
_pCommentEnd = commentEnd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void setTabInfo(int tabInfo) {
|
||||||
|
if (tabInfo == -1 || tabInfo == 0) return;
|
||||||
|
_isTabReplacedBySpace = (tabInfo & MASK_ReplaceBySpc) != 0;
|
||||||
|
_tabSize = tabInfo & MASK_TabSize;
|
||||||
|
};
|
||||||
|
|
||||||
const TCHAR * getDefaultExtList() const {
|
const TCHAR * getDefaultExtList() const {
|
||||||
return _defaultExtList;
|
return _defaultExtList;
|
||||||
};
|
};
|
||||||
@ -675,6 +693,11 @@ struct Lang
|
|||||||
|
|
||||||
LangType getLangID() const {return _langID;};
|
LangType getLangID() const {return _langID;};
|
||||||
const TCHAR * getLangName() const {return _langName.c_str();};
|
const TCHAR * getLangName() const {return _langName.c_str();};
|
||||||
|
|
||||||
|
int getTabInfo() const {
|
||||||
|
if (_tabSize == -1) return -1;
|
||||||
|
return _isTabReplacedBySpace?0x80:0x00 | _tabSize;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class UserLangContainer
|
class UserLangContainer
|
||||||
|
@ -333,6 +333,7 @@ public :
|
|||||||
return _pManager->docLength(_id);
|
return _pManager->docLength(_id);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Lang * getCurrentLang() const;
|
||||||
private :
|
private :
|
||||||
FileManager * _pManager;
|
FileManager * _pManager;
|
||||||
bool _canNotify;
|
bool _canNotify;
|
||||||
@ -368,7 +369,6 @@ private :
|
|||||||
static long _recentTagCtr;
|
static long _recentTagCtr;
|
||||||
|
|
||||||
void updateTimeStamp();
|
void updateTimeStamp();
|
||||||
Lang * getCurrentLang() const;
|
|
||||||
|
|
||||||
int indexOfReference(ScintillaEditView * identifier) const;
|
int indexOfReference(ScintillaEditView * identifier) const;
|
||||||
|
|
||||||
|
@ -1447,6 +1447,7 @@ void ScintillaEditView::activateBuffer(BufferID buffer)
|
|||||||
// Due to execute(SCI_CLEARDOCUMENTSTYLE); in defineDocType() function
|
// Due to execute(SCI_CLEARDOCUMENTSTYLE); in defineDocType() function
|
||||||
// defineDocType() function should be called here, but not be after the fold info loop
|
// defineDocType() function should be called here, but not be after the fold info loop
|
||||||
defineDocType(_currentBuffer->getLangType());
|
defineDocType(_currentBuffer->getLangType());
|
||||||
|
setTabSettings(_currentBuffer->getCurrentLang());
|
||||||
|
|
||||||
if (_currentBuffer->getNeedsLexing()) {
|
if (_currentBuffer->getNeedsLexing()) {
|
||||||
restyleBuffer();
|
restyleBuffer();
|
||||||
@ -2579,3 +2580,19 @@ void ScintillaEditView::runMarkers(bool doHide, int searchStart, bool endOfDoc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ScintillaEditView::setTabSettings(Lang *lang)
|
||||||
|
{
|
||||||
|
if (lang->_tabSize != -1 && lang->_tabSize != 0)
|
||||||
|
{
|
||||||
|
execute(SCI_SETTABWIDTH, lang->_tabSize);
|
||||||
|
execute(SCI_SETUSETABS, lang->_isTabReplacedBySpace);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const NppGUI & nppgui = (NppParameters::getInstance())->getNppGUI();
|
||||||
|
execute(SCI_SETTABWIDTH, nppgui._tabSize);
|
||||||
|
execute(SCI_SETUSETABS, nppgui._tabReplacedBySpace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -805,6 +805,7 @@ protected:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void setTabSettings(Lang *lang);
|
||||||
bool expandWordSelection();
|
bool expandWordSelection();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -594,18 +594,20 @@ void WordStyleDlg::switchToTheme()
|
|||||||
_themeName.clear();
|
_themeName.clear();
|
||||||
_themeName.assign( (TCHAR *)::SendMessage(_hSwitch2ThemeCombo, CB_GETITEMDATA, iSel, 0) );
|
_themeName.assign( (TCHAR *)::SendMessage(_hSwitch2ThemeCombo, CB_GETITEMDATA, iSel, 0) );
|
||||||
|
|
||||||
if ( _isThemeDirty ) {
|
if (_isThemeDirty)
|
||||||
|
{
|
||||||
TCHAR themeFileName[MAX_PATH];
|
TCHAR themeFileName[MAX_PATH];
|
||||||
lstrcpy(themeFileName, prevThemeName.c_str());
|
lstrcpy(themeFileName, prevThemeName.c_str());
|
||||||
PathStripPath( themeFileName );
|
PathStripPath(themeFileName);
|
||||||
PathRemoveExtension( themeFileName );
|
PathRemoveExtension(themeFileName);
|
||||||
int mb_response =
|
int mb_response =
|
||||||
::MessageBox( _hSelf,
|
::MessageBox( _hSelf,
|
||||||
TEXT(" Unsaved changes are about to be discarded!\n")
|
TEXT(" Unsaved changes are about to be discarded!\n")
|
||||||
TEXT(" Do you want to save your changes before switching themes?"),
|
TEXT(" Do you want to save your changes before switching themes?"),
|
||||||
themeFileName,
|
themeFileName,
|
||||||
MB_ICONWARNING | MB_YESNO | MB_APPLMODAL | MB_SETFOREGROUND );
|
MB_ICONWARNING | MB_YESNO | MB_APPLMODAL | MB_SETFOREGROUND );
|
||||||
if ( mb_response == IDYES ) (NppParameters::getInstance())->writeStyles(_lsArray, _globalStyles);
|
if ( mb_response == IDYES )
|
||||||
|
(NppParameters::getInstance())->writeStyles(_lsArray, _globalStyles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,14 +36,16 @@ public:
|
|||||||
virtual void init(HINSTANCE hInst, HWND parent)
|
virtual void init(HINSTANCE hInst, HWND parent)
|
||||||
{
|
{
|
||||||
StaticDialog::init(hInst, parent);
|
StaticDialog::init(hInst, parent);
|
||||||
::GetModuleFileName((HMODULE)hInst, (TCHAR *)_moduleName.c_str(), MAX_PATH);
|
TCHAR temp[MAX_PATH];
|
||||||
_moduleName = PathFindFileName(_moduleName.c_str());
|
::GetModuleFileName((HMODULE)hInst, temp, MAX_PATH);
|
||||||
|
_moduleName = PathFindFileName(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void create(tTbData * data, bool isRTL = false){
|
void create(tTbData * data, bool isRTL = false){
|
||||||
StaticDialog::create(_dlgID, isRTL);
|
StaticDialog::create(_dlgID, isRTL);
|
||||||
::GetWindowText(_hSelf, (LPTSTR)_pluginName.c_str(), MAX_PATH);
|
TCHAR temp[MAX_PATH];
|
||||||
|
::GetWindowText(_hSelf, temp, MAX_PATH);
|
||||||
|
_pluginName = temp;
|
||||||
// user information
|
// user information
|
||||||
data->hClient = _hSelf;
|
data->hClient = _hSelf;
|
||||||
data->pszName = (TCHAR *)_pluginName.c_str();
|
data->pszName = (TCHAR *)_pluginName.c_str();
|
||||||
|
@ -62,8 +62,8 @@ public :
|
|||||||
_splitter.display(toShow);
|
_splitter.display(toShow);
|
||||||
};
|
};
|
||||||
virtual void redraw() const {
|
virtual void redraw() const {
|
||||||
_pWin0->redraw();
|
_pWin0->redraw(true);
|
||||||
_pWin1->redraw();
|
_pWin1->redraw(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
void setWin0(Window *pWin) {
|
void setWin0(Window *pWin) {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
#include "TabBar.h"
|
#include "TabBar.h"
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
//#include "Notepad_plus_msgs.h"
|
||||||
|
|
||||||
const COLORREF blue = RGB(0, 0, 0xFF);
|
const COLORREF blue = RGB(0, 0, 0xFF);
|
||||||
const COLORREF black = RGB(0, 0, 0);
|
const COLORREF black = RGB(0, 0, 0);
|
||||||
@ -798,12 +799,13 @@ void TabBarPlus::exchangeItemData(POINT point)
|
|||||||
::SendMessage(_hSelf, TCM_SETITEM, i, reinterpret_cast<LPARAM>(&itemData_shift));
|
::SendMessage(_hSelf, TCM_SETITEM, i, reinterpret_cast<LPARAM>(&itemData_shift));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//
|
|
||||||
::SendMessage(_hSelf, TCM_SETITEM, nTab, reinterpret_cast<LPARAM>(&itemData_nDraggedTab));
|
::SendMessage(_hSelf, TCM_SETITEM, nTab, reinterpret_cast<LPARAM>(&itemData_nDraggedTab));
|
||||||
|
|
||||||
//3. update the current index
|
//3. update the current index
|
||||||
_nTabDragged = nTab;
|
_nTabDragged = nTab;
|
||||||
|
|
||||||
|
// Tell Notepad_plus to notifiy plugins that a D&D operation was done (so doc index has been changed)
|
||||||
|
::SendMessage(_hParent, NPPM_INTERNAL_DOCORDERCHANGED, 0, _nTabDragged);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -50,9 +50,10 @@ public:
|
|||||||
redraw();
|
redraw();
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void redraw() const {
|
virtual void redraw(bool forceUpdate = false) const {
|
||||||
::InvalidateRect(_hSelf, NULL, TRUE);
|
::InvalidateRect(_hSelf, NULL, TRUE);
|
||||||
::UpdateWindow(_hSelf);
|
if (forceUpdate)
|
||||||
|
::UpdateWindow(_hSelf);
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void getClientRect(RECT & rc) const {
|
virtual void getClientRect(RECT & rc) const {
|
||||||
|
@ -309,7 +309,10 @@
|
|||||||
#define NPPM_INTERNAL_SEARCH_GOTOPREVFOUND (NOTEPADPLUS_USER_INTERNAL + 29)
|
#define NPPM_INTERNAL_SEARCH_GOTOPREVFOUND (NOTEPADPLUS_USER_INTERNAL + 29)
|
||||||
#define NPPM_INTERNAL_FOCUS_ON_FOUND_RESULTS (NOTEPADPLUS_USER_INTERNAL + 30)
|
#define NPPM_INTERNAL_FOCUS_ON_FOUND_RESULTS (NOTEPADPLUS_USER_INTERNAL + 30)
|
||||||
#define NPPM_INTERNAL_RELOADSTYLERS (NOTEPADPLUS_USER_INTERNAL + 31)
|
#define NPPM_INTERNAL_RELOADSTYLERS (NOTEPADPLUS_USER_INTERNAL + 31)
|
||||||
|
#define NPPM_INTERNAL_DOCORDERCHANGED (NOTEPADPLUS_USER_INTERNAL + 32)
|
||||||
|
|
||||||
|
//wParam: 0
|
||||||
|
//lParam: document new index
|
||||||
// See Notepad_plus_msgs.h
|
// See Notepad_plus_msgs.h
|
||||||
//#define NOTEPADPLUS_USER (WM_USER + 1000)
|
//#define NOTEPADPLUS_USER (WM_USER + 1000)
|
||||||
|
|
||||||
@ -342,6 +345,8 @@
|
|||||||
//lParam: name to set (TCHAR*)
|
//lParam: name to set (TCHAR*)
|
||||||
//Buffer must have been previously unnamed (eg "new 1" document types)
|
//Buffer must have been previously unnamed (eg "new 1" document types)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define SCINTILLA_USER (WM_USER + 2000)
|
#define SCINTILLA_USER (WM_USER + 2000)
|
||||||
|
|
||||||
|
|
||||||
|
@ -633,14 +633,6 @@
|
|||||||
RelativePath="..\src\resource.h"
|
RelativePath="..\src\resource.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\WinControls\ColourPicker\resource.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\src\WinControls\Preference\resource.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\WinControls\StaticDialog\RunDlg\RunDlg.h"
|
RelativePath="..\src\WinControls\StaticDialog\RunDlg\RunDlg.h"
|
||||||
>
|
>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user