[RELEASE_V42]

1. Fix User Define Language extension recognition problem for sensitive case (now it's insensitive). 
2. Add a menu entry to access to notepad++ plugins project page. 
3. Enhance file open dialog (add all supported extensions in the filters list). 
4. Fix bug of Run macro until EOF. 

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@5 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
donho 2007-08-12 23:21:25 +00:00
parent 98e9f1f971
commit 2322694649
14 changed files with 402 additions and 260 deletions

View File

@ -8,13 +8,15 @@ v4.2 fixed bugs and added features (from v4.1.2) :
6. Fix TeX syntax highlighting corruption problem while switching off then switching back to current document. 6. Fix TeX syntax highlighting corruption problem while switching off then switching back to current document.
7. Fix User Define Language extension recognition problem for sensitive case (now it's insensitive). 7. Fix User Define Language extension recognition problem for sensitive case (now it's insensitive).
8. Add a menu entry to access to notepad++ plugins project page. 8. Add a menu entry to access to notepad++ plugins project page.
9. Enhance file open dialog (add all supported extensions in the filters list).
10. Fix bug of Run macro until EOF.
Plugins included in v4.2 : Plugins included in v4.2 :
1. TexFX v0.24a 1. TexFX v0.24a
2. Function list v1.2 2. Function list v1.2
3. ConvertExt v1.1 3. ConvertExt v1.1
4. NppExec v0.2 beta 3 4. NppExec v0.2 beta 4
5. Spell checker v1.1 5. Spell checker v1.1
6. Quick text v0.02 6. Quick text v0.02
7. Explorer v1.4 7. Explorer v1.4

View File

@ -17,13 +17,13 @@
; Define the application name ; Define the application name
!define APPNAME "Notepad++" !define APPNAME "Notepad++"
!define APPNAMEANDVERSION "Notepad++ v4.1.2" !define APPNAMEANDVERSION "Notepad++ v4.2"
; Main Install settings ; Main Install settings
Name "${APPNAMEANDVERSION}" Name "${APPNAMEANDVERSION}"
InstallDir "$PROGRAMFILES\Notepad++" InstallDir "$PROGRAMFILES\Notepad++"
InstallDirRegKey HKLM "Software\${APPNAME}" "" InstallDirRegKey HKLM "Software\${APPNAME}" ""
OutFile "..\bin\npp.4.1.2.Installer.exe" OutFile "..\bin\npp.4.2.Installer.exe"
@ -175,7 +175,7 @@ OutFile "..\bin\npp.4.1.2.Installer.exe"
!insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Ukrainian" !insertmacro MUI_LANGUAGE "Ukrainian"
!insertmacro MUI_LANGUAGE "Turkish" !insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "Catalan" ;!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Arabic" !insertmacro MUI_LANGUAGE "Arabic"
!insertmacro MUI_LANGUAGE "Lithuanian" !insertmacro MUI_LANGUAGE "Lithuanian"
!insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "Finnish"
@ -642,7 +642,7 @@ SubSection "Plugins" Plugins
SetOutPath "$INSTDIR\plugins" SetOutPath "$INSTDIR\plugins"
File "..\bin\plugins\FunctionList.dll" File "..\bin\plugins\FunctionList.dll"
SectionEnd SectionEnd
/*
Section "File Browser" FileBrowser Section "File Browser" FileBrowser
Delete "$INSTDIR\plugins\ExplorerPlugin.dll" Delete "$INSTDIR\plugins\ExplorerPlugin.dll"
SetOutPath "$INSTDIR\plugins" SetOutPath "$INSTDIR\plugins"
@ -654,7 +654,7 @@ SubSection "Plugins" Plugins
SetOutPath "$INSTDIR\plugins" SetOutPath "$INSTDIR\plugins"
File "..\bin\plugins\HexEditor.dll" File "..\bin\plugins\HexEditor.dll"
SectionEnd SectionEnd
*/
Section "ConvertExt" ConvertExt Section "ConvertExt" ConvertExt
SetOutPath "$INSTDIR\plugins" SetOutPath "$INSTDIR\plugins"
File "..\bin\plugins\ConvertExt.dll" File "..\bin\plugins\ConvertExt.dll"
@ -842,7 +842,7 @@ SubSection un.Plugins
Delete "$INSTDIR\plugins\FunctionList.dll" Delete "$INSTDIR\plugins\FunctionList.dll"
RMDir "$INSTDIR\plugins\" RMDir "$INSTDIR\plugins\"
SectionEnd SectionEnd
/*
Section un.FileBrowser Section un.FileBrowser
Delete "$INSTDIR\plugins\Explorer.dll" Delete "$INSTDIR\plugins\Explorer.dll"
Delete "$INSTDIR\plugins\Config\Explorer.ini" Delete "$INSTDIR\plugins\Config\Explorer.ini"
@ -854,7 +854,7 @@ SubSection un.Plugins
Delete "$INSTDIR\plugins\HexEditor.dll" Delete "$INSTDIR\plugins\HexEditor.dll"
RMDir "$INSTDIR\plugins\" RMDir "$INSTDIR\plugins\"
SectionEnd SectionEnd
*/
Section un.ConvertExt Section un.ConvertExt
Delete "$INSTDIR\plugins\ConvertExt.dll" Delete "$INSTDIR\plugins\ConvertExt.dll"

View File

@ -486,26 +486,110 @@ bool Notepad_plus::doOpen(const char *fileName, bool isReadOnly)
return false; return false;
} }
} }
string exts2Filters(string exts) {
const char *extStr = exts.c_str();
char aExt[MAX_PATH];
string filters("");
int j = 0;
bool stop = false;
for (size_t i = 0 ; i < exts.length() ; i++)
{
if (extStr[i] == ' ')
{
if (!stop)
{
aExt[j] = '\0';
stop = true;
if (aExt[0])
{
filters += "*.";
filters += aExt;
filters += ";";
}
j = 0;
}
}
else
{
aExt[j] = extStr[i];
stop = false;
j++;
}
}
if (j > 0)
{
aExt[j] = '\0';
if (aExt[0])
{
filters += "*.";
filters += aExt;
filters += ";";
}
}
// remove the last ';'
filters = filters.substr(0, filters.length()-1);
return filters;
};
void Notepad_plus::fileOpen() void Notepad_plus::fileOpen()
{ {
FileDialog fDlg(_hSelf, _hInst); FileDialog fDlg(_hSelf, _hInst);
fDlg.setExtFilter("All types", ".*", NULL); fDlg.setExtFilter("All types", ".*", NULL);
fDlg.setExtFilter("c/c++ src file", ".c", ".cpp", ".cxx", ".cc", ".h", NULL);
fDlg.setExtFilter("Window Resource File", ".rc", NULL);
fDlg.setExtFilter("Java src file", ".java", NULL);
fDlg.setExtFilter("HTML file", ".html", ".htm", NULL); NppParameters *pNppParam = NppParameters::getInstance();
fDlg.setExtFilter("XML file", ".xml", NULL); NppGUI & nppGUI = (NppGUI & )pNppParam->getNppGUI();
fDlg.setExtFilter("Makefile", "makefile", "GNUmakefile", ".makefile", NULL);
fDlg.setExtFilter("php file", ".php", ".php3", ".phtml", NULL); int i = 0;
fDlg.setExtFilter("asp file", ".asp", NULL); Lang *l = NppParameters::getInstance()->getLangFromIndex(i++);
fDlg.setExtFilter("ini file", ".ini", NULL); while (l)
fDlg.setExtFilter("nfo file", ".nfo", NULL); {
fDlg.setExtFilter("VB/VBS file", ".vb", ".vbs", NULL); LangType lid = l->getLangID();
fDlg.setExtFilter("SQL file", ".sql", NULL);
fDlg.setExtFilter("Objective C file", ".m", ".h", NULL); bool inExcludedList = false;
for (size_t j = 0 ; j < nppGUI._excludedLangList.size() ; j++)
{
if (lid == nppGUI._excludedLangList[j]._langType)
{
inExcludedList = true;
break;
}
}
if (!inExcludedList)
{
const char *defList = l->getDefaultExtList();
const char *userList = NULL;
LexerStylerArray &lsa = (NppParameters::getInstance())->getLStylerArray();
const char *lName = l->getLangName();
LexerStyler *pLS = lsa.getLexerStylerByName(lName);
if (pLS)
userList = pLS->getLexerUserExt();
std::string list("");
if (defList)
list += defList;
if (userList)
{
list += " ";
list += userList;
}
string stringFilters = exts2Filters(list);
const char *filters = stringFilters.c_str();
if (filters[0])
fDlg.setExtsFilter(getLangDesc(lid, true).c_str(), filters);
}
l = (NppParameters::getInstance())->getLangFromIndex(i++);
}
if (stringVector *pfns = fDlg.doOpenMultiFilesDlg()) if (stringVector *pfns = fDlg.doOpenMultiFilesDlg())
{ {
int sz = int(pfns->size()); int sz = int(pfns->size());
@ -1123,143 +1207,143 @@ void Notepad_plus::checkLangsMenu(int id) const
} }
::CheckMenuRadioItem(::GetMenu(_hSelf), IDM_LANG_C, IDM_LANG_USER_LIMIT, id, MF_BYCOMMAND); ::CheckMenuRadioItem(::GetMenu(_hSelf), IDM_LANG_C, IDM_LANG_USER_LIMIT, id, MF_BYCOMMAND);
} }
void Notepad_plus::setLangStatus(LangType langType) string Notepad_plus::getLangDesc(LangType langType, bool shortDesc)
{ {
string str2Show; string str2Show;
switch (langType) switch (langType)
{ {
case L_C: case L_C:
str2Show = "c source file"; break; str2Show = (shortDesc)?"C":"C source file"; break;
case L_CPP: case L_CPP:
str2Show = "c++ source file"; break; str2Show = (shortDesc)?"C++":"C++ source file"; break;
case L_OBJC: case L_OBJC:
str2Show = "Objective C source file"; break; str2Show = (shortDesc)?"Objective-C":"Objective-C source file"; break;
case L_JAVA: case L_JAVA:
str2Show = "Java source file"; break; str2Show = (shortDesc)?"Java":"Java source file"; break;
case L_CS: case L_CS:
str2Show = "C# source file"; break; str2Show = (shortDesc)?"C#":"C# source file"; break;
case L_RC : case L_RC :
str2Show = "Windows Resource file"; break; str2Show = (shortDesc)?"RC":"Windows Resource file"; break;
case L_MAKEFILE: case L_MAKEFILE:
str2Show = "Makefile"; break; str2Show = "Makefile"; break;
case L_HTML: case L_HTML:
str2Show = "Hyper Text Markup Language file"; break; str2Show = (shortDesc)?"HTML":"Hyper Text Markup Language file"; break;
case L_XML: case L_XML:
str2Show = "eXtensible Markup Language file"; break; str2Show = (shortDesc)?"XML":"eXtensible Markup Language file"; break;
case L_JS: case L_JS:
str2Show = "Javascript file"; break; str2Show = (shortDesc)?"JavaScript":"JavaScript file"; break;
case L_PHP: case L_PHP:
str2Show = "PHP Hypertext Preprocessor file"; break; str2Show = (shortDesc)?"PHP":"PHP Hypertext Preprocessor file"; break;
case L_ASP: case L_ASP:
str2Show = "Active Server Pages script file"; break; str2Show = (shortDesc)?"ASP":"Active Server Pages script file"; break;
case L_CSS: case L_CSS:
str2Show = "Cascade Style Sheets File"; break; str2Show = (shortDesc)?"CSS":"Cascade Style Sheets File"; break;
case L_LUA: case L_LUA:
str2Show = "Lua source File"; break; str2Show = (shortDesc)?"Lua":"Lua source File"; break;
case L_NFO: case L_NFO:
str2Show = "MSDOS Style"; break; str2Show = (shortDesc)?"NFO":"MSDOS Style"; break;
case L_SQL: case L_SQL:
str2Show = "Structure Query Language file"; break; str2Show = (shortDesc)?"SQL":"Structure Query Language file"; break;
case L_VB: case L_VB:
str2Show = "Visual Basic file"; break; str2Show =(shortDesc)?"VB": "Visual Basic file"; break;
case L_BATCH : case L_BATCH :
str2Show = "Batch file"; break; str2Show = (shortDesc)?"Batch":"Batch file"; break;
case L_PASCAL : case L_PASCAL :
str2Show = "Pascal source file"; break; str2Show = (shortDesc)?"Pascal":"Pascal source file"; break;
case L_PERL : case L_PERL :
str2Show = "Perl source file"; break; str2Show = (shortDesc)?"Perl":"Perl source file"; break;
case L_PYTHON : case L_PYTHON :
str2Show = "Python file"; break; str2Show = (shortDesc)?"Python":"Python file"; break;
case L_TEX : case L_TEX :
str2Show = "TeX file"; break; str2Show = (shortDesc)?"TeX":"TeX file"; break;
case L_FORTRAN : case L_FORTRAN :
str2Show = "Fortran source file"; break; str2Show = (shortDesc)?"Fortran":"Fortran source file"; break;
case L_BASH : case L_BASH :
str2Show = "Unix script file"; break; str2Show = (shortDesc)?"Shell":"Unix script file"; break;
case L_FLASH : case L_FLASH :
str2Show = "Flash Action script file"; break; str2Show = (shortDesc)?"Flash Action":"Flash Action script file"; break;
case L_NSIS : case L_NSIS :
str2Show = "Nullsoft Scriptable Install System script file"; break; str2Show = (shortDesc)?"NSIS":"Nullsoft Scriptable Install System script file"; break;
case L_TCL : case L_TCL :
str2Show = "Tool Command Language file"; break; str2Show = (shortDesc)?"TCL":"Tool Command Language file"; break;
case L_LISP : case L_LISP :
str2Show = "List Processing language file"; break; str2Show = (shortDesc)?"Lisp":"List Processing language file"; break;
case L_SCHEME : case L_SCHEME :
str2Show = "Sheme file"; break; str2Show = (shortDesc)?"Scheme":"Scheme file"; break;
case L_ASM : case L_ASM :
str2Show = "Assembler file"; break; str2Show = (shortDesc)?"Assembler":"Assembler file"; break;
case L_DIFF : case L_DIFF :
str2Show = "Diff file"; break; str2Show = (shortDesc)?"Diff":"Diff file"; break;
case L_PROPS : case L_PROPS :
str2Show = "Properties file"; break; str2Show = "Properties file"; break;
case L_PS : case L_PS :
str2Show = "Postscript file"; break; str2Show = (shortDesc)?"Postscript":"Postscript file"; break;
case L_RUBY : case L_RUBY :
str2Show = "Ruby file"; break; str2Show = (shortDesc)?"Ruby":"Ruby file"; break;
case L_SMALLTALK : case L_SMALLTALK :
str2Show = "Smalltalk file"; break; str2Show = (shortDesc)?"Smalltalk":"Smalltalk file"; break;
case L_VHDL : case L_VHDL :
str2Show = "VHSIC Hardware Description Language file"; break; str2Show = (shortDesc)?"VHDL":"VHSIC Hardware Description Language file"; break;
case L_VERILOG : case L_VERILOG :
str2Show = "Verilog file"; break; str2Show = (shortDesc)?"Verilog":"Verilog file"; break;
case L_KIX : case L_KIX :
str2Show = "KiXtart file"; break; str2Show = (shortDesc)?"KiXtart":"KiXtart file"; break;
case L_ADA : case L_ADA :
str2Show = "Ada file"; break; str2Show = (shortDesc)?"Ada":"Ada file"; break;
case L_CAML : case L_CAML :
str2Show = "Categorical Abstract Machine Language"; break; str2Show = (shortDesc)?"CAML":"Categorical Abstract Machine Language"; break;
case L_AU3 : case L_AU3 :
str2Show = "AutoIt"; break; str2Show = (shortDesc)?"AutoIt":"AutoIt"; break;
case L_MATLAB : case L_MATLAB :
str2Show = "MATrix LABoratory"; break; str2Show = (shortDesc)?"MATLAB":"MATrix LABoratory"; break;
case L_HASKELL : case L_HASKELL :
str2Show = "Haskell"; break; str2Show = "Haskell"; break;
case L_INNO : case L_INNO :
str2Show = "Inno Setup script"; break; str2Show = (shortDesc)?"Inno":"Inno Setup script"; break;
case L_CMAKE : case L_CMAKE :
str2Show = "CMAKEFILE"; break; str2Show = "CMAKEFILE"; break;
@ -1280,9 +1364,10 @@ void Notepad_plus::setLangStatus(LangType langType)
str2Show = "Normal text file"; str2Show = "Normal text file";
} }
_statusBar.setText(str2Show.c_str(), STATUSBAR_DOC_TYPE); return str2Show;
} }
void Notepad_plus::getApiFileName(LangType langType, string &fn) void Notepad_plus::getApiFileName(LangType langType, string &fn)
{ {
@ -5760,6 +5845,7 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
const char *dir = NULL; const char *dir = NULL;
char currentDir[MAX_PATH]; char currentDir[MAX_PATH];
const char *fltr;
if (wParam) if (wParam)
dir = (const char *)wParam; dir = (const char *)wParam;
@ -5768,10 +5854,10 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
::GetCurrentDirectory(MAX_PATH, currentDir); ::GetCurrentDirectory(MAX_PATH, currentDir);
dir = currentDir; dir = currentDir;
} }
if (lParam) if (lParam)
{ {
const char *filtre = (const char *)lParam; fltr = (const char *)lParam;
_findReplaceDlg.setFindInFilesDirFilter(dir, filtre);
} }
else else
{ {
@ -5788,12 +5874,12 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
filtres += "*."; filtres += "*.";
filtres += vStr[i] + " "; filtres += vStr[i] + " ";
} }
//::SetDlgItemText(_hSelf, IDD_FINDINFILES_FILTERS_COMBO, filtres.c_str()); fltr = filtres.c_str();
_findReplaceDlg.setFindInFilesDirFilter(currentDir, filtres.c_str());
} }
else else
_findReplaceDlg.setFindInFilesDirFilter(currentDir, "*.*"); fltr = "*.*";
} }
_findReplaceDlg.setFindInFilesDirFilter(dir, fltr);
return TRUE; return TRUE;
} }
@ -6256,6 +6342,8 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
int lastLine = int(_pEditView->execute(SCI_GETLINECOUNT)) - 1; int lastLine = int(_pEditView->execute(SCI_GETLINECOUNT)) - 1;
int currLine = _pEditView->getCurrentLineNumber(); int currLine = _pEditView->getCurrentLineNumber();
int indexMacro = _runMacroDlg.getMacro2Exec(); int indexMacro = _runMacroDlg.getMacro2Exec();
int deltaLastLine = 0;
int deltaCurrLine = 0;
Macro m = _macro; Macro m = _macro;
@ -6278,14 +6366,25 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
} }
else // run until eof else // run until eof
{ {
if ( currLine == _pEditView->getCurrentLineNumber() ) // line no. not changed? bool cursorMovedUp = deltaCurrLine < 0;
deltaLastLine = int(_pEditView->execute(SCI_GETLINECOUNT)) - 1 - lastLine;
deltaCurrLine = _pEditView->getCurrentLineNumber() - currLine;
if (( deltaCurrLine == 0 ) // line no. not changed?
&& (deltaLastLine >= 0)) // and no lines removed?
break; // exit break; // exit
// Update the line count, but only if the number of lines is shrinking.
// Otherwise, the macro playback may never end.
if (deltaLastLine < 0)
lastLine += deltaLastLine;
// save current line // save current line
currLine = _pEditView->getCurrentLineNumber(); currLine += deltaCurrLine;
// eof? // eof?
if ((currLine >= lastLine) || (currLine <= 0)) if ((currLine >= lastLine) || (currLine < 0)
|| ((deltaCurrLine == 0) && (currLine == 0) && ((deltaLastLine >= 0) || cursorMovedUp)))
break; break;
} }
} }

View File

@ -613,7 +613,11 @@ private:
void synchronise(); void synchronise();
void setLangStatus(LangType langType); string getLangDesc(LangType langType, bool shortDesc = false);
void setLangStatus(LangType langType){
_statusBar.setText(getLangDesc(langType).c_str(), STATUSBAR_DOC_TYPE);
};
void setDisplayFormat(formatType f) { void setDisplayFormat(formatType f) {
std::string str; std::string str;

View File

@ -2760,6 +2760,9 @@ int NppParameters::langTypeToCommandID(LangType lt) const
case L_CMAKE : case L_CMAKE :
id = IDM_LANG_CMAKE; break; id = IDM_LANG_CMAKE; break;
case L_SEARCHRESULT :
id = -1; break;
case L_TXT : case L_TXT :
id = IDM_LANG_TEXT; break; id = IDM_LANG_TEXT; break;
default : default :

View File

@ -338,6 +338,10 @@ BOOL CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
addText2Combo(str2Search.c_str(), hFindCombo, isUnicode); addText2Combo(str2Search.c_str(), hFindCombo, isUnicode);
processFindNext(str2Search.c_str()); processFindNext(str2Search.c_str());
} }
else if (_currentStatus == FINDINFILES_DLG)
{
::SendMessage(_hSelf, WM_COMMAND, IDD_FINDINFILES_FIND_BUTTON, (LPARAM)_hSelf);
}
} }
return TRUE; return TRUE;
@ -1077,7 +1081,7 @@ void FindReplaceDlg::enableReplaceFunc(bool isEnable)
RECT *pClosePos = isEnable?&_replaceClosePos:&_findClosePos; RECT *pClosePos = isEnable?&_replaceClosePos:&_findClosePos;
//::EnableWindow(::GetDlgItem(_hSelf, IDD_FINDINFILES_FIND_BUTTON), FALSE); //::EnableWindow(::GetDlgItem(_hSelf, IDD_FINDINFILES_FIND_BUTTON), FALSE);
::EnableWindow(::GetDlgItem(_hSelf, IDOK), TRUE); //::EnableWindow(::GetDlgItem(_hSelf, IDOK), TRUE);
enableFindInFilesControls(false); enableFindInFilesControls(false);
// replce controls // replce controls

View File

@ -331,7 +331,7 @@ private :
void enableFindInFilesFunc() { void enableFindInFilesFunc() {
enableFindInFilesControls(); enableFindInFilesControls();
::EnableWindow(::GetDlgItem(_hSelf, IDOK), FALSE); //::EnableWindow(::GetDlgItem(_hSelf, IDOK), FALSE);
_currentStatus = FINDINFILES_DLG; _currentStatus = FINDINFILES_DLG;
gotoCorrectTab(); gotoCorrectTab();

View File

@ -73,7 +73,7 @@ BOOL CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPar
::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_ADDSTRING, 0, (LPARAM)_lsArray.getLexerDescFromIndex(i)); ::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_ADDSTRING, 0, (LPARAM)_lsArray.getLexerDescFromIndex(i));
} }
_hStyleList = ::GetDlgItem(_hSelf, IDC_STYLES_LIST); //_hStyleList = ::GetDlgItem(_hSelf, IDC_STYLES_LIST);
_hCheckBold = ::GetDlgItem(_hSelf, IDC_BOLD_CHECK); _hCheckBold = ::GetDlgItem(_hSelf, IDC_BOLD_CHECK);
_hCheckItalic = ::GetDlgItem(_hSelf, IDC_ITALIC_CHECK); _hCheckItalic = ::GetDlgItem(_hSelf, IDC_ITALIC_CHECK);
_hCheckUnderline = ::GetDlgItem(_hSelf, IDC_UNDERLINE_CHECK); _hCheckUnderline = ::GetDlgItem(_hSelf, IDC_UNDERLINE_CHECK);
@ -407,7 +407,7 @@ void WordStyleDlg::setStyleListFromLexer(int index)
// Fill out Styles listbox // Fill out Styles listbox
// Before filling out, we clean it // Before filling out, we clean it
::SendMessage(_hStyleList, LB_RESETCONTENT, 0, 0); ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_RESETCONTENT, 0, 0);
if (index) if (index)
{ {
@ -416,7 +416,6 @@ void WordStyleDlg::setStyleListFromLexer(int index)
const char *userExt = (_lsArray.getLexerStylerByName(langName))->getLexerUserExt(); const char *userExt = (_lsArray.getLexerStylerByName(langName))->getLexerUserExt();
::SendDlgItemMessage(_hSelf, IDC_DEF_EXT_EDIT, WM_SETTEXT, 0, (LPARAM)(ext)); ::SendDlgItemMessage(_hSelf, IDC_DEF_EXT_EDIT, WM_SETTEXT, 0, (LPARAM)(ext));
::SendDlgItemMessage(_hSelf, IDC_USER_EXT_EDIT, WM_SETTEXT, 0, (LPARAM)(userExt)); ::SendDlgItemMessage(_hSelf, IDC_USER_EXT_EDIT, WM_SETTEXT, 0, (LPARAM)(userExt));
//::SetWindowText(::GetDlgItem(_hSelf, IDC_USER_EXT_EDIT), userExt);
} }
::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_EDIT), index?SW_SHOW:SW_HIDE); ::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_EDIT), index?SW_SHOW:SW_HIDE);
::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_STATIC), index?SW_SHOW:SW_HIDE); ::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_STATIC), index?SW_SHOW:SW_HIDE);
@ -429,9 +428,9 @@ void WordStyleDlg::setStyleListFromLexer(int index)
for (int i = 0 ; i < lexerStyler.getNbStyler() ; i++) for (int i = 0 ; i < lexerStyler.getNbStyler() ; i++)
{ {
Style & style = lexerStyler.getStyler(i); Style & style = lexerStyler.getStyler(i);
::SendMessage(_hStyleList, LB_ADDSTRING, 0, (LPARAM)style._styleDesc); ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_ADDSTRING, 0, (LPARAM)style._styleDesc);
} }
::SendMessage(_hStyleList, LB_SETCURSEL, 0, 0); ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_SETCURSEL, 0, 0);
setVisualFromStyleList(); setVisualFromStyleList();
} }

View File

@ -53,7 +53,6 @@ public :
private : private :
COLORREF _colour; COLORREF _colour;
WNDPROC _oldProc; WNDPROC _oldProc;
//HFONT _hFont;
static BOOL CALLBACK staticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ static BOOL CALLBACK staticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
ColourStaticTextHooker *pColourStaticTextHooker = reinterpret_cast<ColourStaticTextHooker *>(::GetWindowLong(hwnd, GWL_USERDATA)); ColourStaticTextHooker *pColourStaticTextHooker = reinterpret_cast<ColourStaticTextHooker *>(::GetWindowLong(hwnd, GWL_USERDATA));
@ -95,7 +94,6 @@ private :
int _currentLexerIndex; int _currentLexerIndex;
HWND _hStyleList;
HWND _hCheckBold; HWND _hCheckBold;
HWND _hCheckItalic; HWND _hCheckItalic;
HWND _hCheckUnderline; HWND _hCheckUnderline;
@ -121,7 +119,7 @@ private :
Style & getCurrentStyler() { Style & getCurrentStyler() {
int styleIndex = int(::SendMessage(_hStyleList, LB_GETCURSEL, 0, 0)); int styleIndex = ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETCURSEL, 0, 0);
if (_currentLexerIndex == 0) if (_currentLexerIndex == 0)
return _globalStyles.getStyler(styleIndex); return _globalStyles.getStyler(styleIndex);
else else

View File

@ -100,6 +100,27 @@ void FileDialog::setExtFilter(const char *extText, const char *ext, ...)
_nbCharFileExt += exts.length() + 1; _nbCharFileExt += exts.length() + 1;
} }
void FileDialog::setExtsFilter(const char *extText, const char *exts)
{
// fill out the ext array for save as file dialog
if (_nbExt < nbExtMax)
strcpy(_extArray[_nbExt++], exts);
//
std::string extFilter = extText;
extFilter += " (";
extFilter += exts;
extFilter += ")";
char *pFileExt = _fileExt + _nbCharFileExt;
memcpy(pFileExt, extFilter.c_str(), extFilter.length() + 1);
_nbCharFileExt += extFilter.length() + 1;
pFileExt = _fileExt + _nbCharFileExt;
memcpy(pFileExt, exts, strlen(exts) + 1);
_nbCharFileExt += strlen(exts) + 1;
}
char * FileDialog::doOpenSingleFileDlg() char * FileDialog::doOpenSingleFileDlg()
{ {
char dir[MAX_PATH]; char dir[MAX_PATH];

View File

@ -37,6 +37,8 @@ class FileDialog
public: public:
FileDialog(HWND hwnd, HINSTANCE hInst); FileDialog(HWND hwnd, HINSTANCE hInst);
void setExtFilter(const char *, const char *, ...); void setExtFilter(const char *, const char *, ...);
void setExtsFilter(const char *extText, const char *exts);
void setDefFileName(const char *fn){strcpy(_fileName, fn);} void setDefFileName(const char *fn){strcpy(_fileName, fn);}
char * doSaveDlg(); char * doSaveDlg();
@ -76,9 +78,8 @@ protected :
private: private:
char _fileName[MAX_PATH*8]; char _fileName[MAX_PATH*8];
char _fileExt[MAX_PATH*2]; char _fileExt[MAX_PATH*10];
int _nbCharFileExt; int _nbCharFileExt;
//bool _isMultiSel;
stringVector _fileNames; stringVector _fileNames;
OPENFILENAME _ofn; OPENFILENAME _ofn;

View File

@ -627,7 +627,7 @@ BOOL CALLBACK DefaultNewDocDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM
//if ((LangType)i != L_END) //if ((LangType)i != L_END)
{ {
int cmdID = pNppParam->langTypeToCommandID((LangType)i); int cmdID = pNppParam->langTypeToCommandID((LangType)i);
if (getNameStrFromCmd(cmdID, str) == TYPE_CMD) if ((cmdID != -1) && (getNameStrFromCmd(cmdID, str) == TYPE_CMD))
{ {
_langList.push_back(LangID_Name((LangType)i, str)); _langList.push_back(LangID_Name((LangType)i, str));
::SendDlgItemMessage(_hSelf, IDC_COMBO_DEFAULTLANG, CB_ADDSTRING, 0, (LPARAM)str.c_str()); ::SendDlgItemMessage(_hSelf, IDC_COMBO_DEFAULTLANG, CB_ADDSTRING, 0, (LPARAM)str.c_str());

View File

@ -74,8 +74,6 @@ BOOL CALLBACK RunMacroDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPara
case IDOK : case IDOK :
if ( isCheckedOrNot(IDC_M_RUN_MULTI) ) if ( isCheckedOrNot(IDC_M_RUN_MULTI) )
{ {
//char str[512];
m_Mode = RM_RUN_MULTI; m_Mode = RM_RUN_MULTI;
m_Times = ::GetDlgItemInt(_hSelf, IDC_M_RUN_TIMES, NULL, FALSE); m_Times = ::GetDlgItemInt(_hSelf, IDC_M_RUN_TIMES, NULL, FALSE);
} }

View File

@ -382,5 +382,18 @@ void recordedMacroStep::PlayBack(Window* pNotepad, ScintillaEditView *pEditView)
if (MacroType == mtUseSParameter) if (MacroType == mtUseSParameter)
lParam = reinterpret_cast<long>(sParameter.c_str()); lParam = reinterpret_cast<long>(sParameter.c_str());
pEditView->execute(message, wParameter, lParam); pEditView->execute(message, wParameter, lParam);
if ( (message == SCI_SETTEXT)
|| (message == SCI_REPLACESEL)
|| (message == SCI_ADDTEXT)
|| (message == SCI_ADDSTYLEDTEXT)
|| (message == SCI_INSERTTEXT)
|| (message == SCI_APPENDTEXT) ) {
SCNotification scnN;
scnN.nmhdr.code = SCN_CHARADDED;
scnN.nmhdr.hwndFrom = pEditView->getHSelf();
scnN.nmhdr.idFrom = 0;
scnN.ch = sParameter.at(0);
::SendMessage(pNotepad->getHSelf(), WM_NOTIFY, 0, reinterpret_cast<LPARAM>(&scnN));
}
} }
} }