[ENHANCE] Thanks to Jocelyn Legault (precompiled headers), the build time is sped up.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@529 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
79eba94cba
commit
0c490dc55a
@ -15,12 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
//#include "Common.h" //use force include
|
||||
#include <shlwapi.h>
|
||||
#include <memory>
|
||||
#include <algorithm>
|
||||
#include "Common.h"
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
|
||||
WcharMbcsConvertor * WcharMbcsConvertor::_pSelf = new WcharMbcsConvertor;
|
||||
|
||||
|
@ -18,16 +18,6 @@
|
||||
#ifndef M30_IDE_COMMUN_H
|
||||
#define M30_IDE_COMMUN_H
|
||||
|
||||
#include <windows.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <time.h>
|
||||
#include <Shlobj.h>
|
||||
|
||||
#ifdef UNICODE
|
||||
#include <wchar.h>
|
||||
#endif
|
||||
|
||||
#define CP_ANSI_LATIN_1 1252
|
||||
#define CP_BIG5 950
|
||||
|
||||
@ -50,7 +40,6 @@
|
||||
#define generic_fopen _wfopen
|
||||
#define generic_fgets fgetws
|
||||
#define generic_stat _wstat
|
||||
//#define generic_string std::wstring
|
||||
#define COPYDATA_FILENAMES COPYDATA_FILENAMESW
|
||||
#else
|
||||
#define NppMainEntry WinMain
|
||||
@ -71,7 +60,6 @@
|
||||
#define generic_fopen fopen
|
||||
#define generic_fgets fgets
|
||||
#define generic_stat _stat
|
||||
//#define generic_string std::string
|
||||
#define COPYDATA_FILENAMES COPYDATA_FILENAMESA
|
||||
#endif
|
||||
|
||||
|
18
PowerEditor/src/MISC/Common/precompiledHeaders.cpp
Normal file
18
PowerEditor/src/MISC/Common/precompiledHeaders.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <don.h@free.fr>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
65
PowerEditor/src/MISC/Common/precompiledHeaders.h
Normal file
65
PowerEditor/src/MISC/Common/precompiledHeaders.h
Normal file
@ -0,0 +1,65 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <don.h@free.fr>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef PRECOMPILEHEADER_H
|
||||
#define PRECOMPILEHEADER_H
|
||||
|
||||
// w/o precompiled headers file : 1 minute 55 sec
|
||||
|
||||
// C RunTime Header Files
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <functional>
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
// STL Headers
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <deque>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <algorithm>
|
||||
#include <exception>
|
||||
|
||||
// Windows Header Files
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
#include <Shlobj.h>
|
||||
#include <shlwapi.h>
|
||||
#include <uxtheme.h>
|
||||
#include <Oleacc.h>
|
||||
#include <dbghelp.h>
|
||||
#include <eh.h>
|
||||
|
||||
#ifdef UNICODE
|
||||
#include <wchar.h>
|
||||
#endif
|
||||
|
||||
// Notepad++
|
||||
#include "Common.h"
|
||||
#include "Window.h"
|
||||
#include "StaticDialog.h"
|
||||
|
||||
#endif PRECOMPILEHEADER_H
|
@ -1,6 +1,25 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
//Adapted from http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx#_Reading_a_Minidump_with%20Visual%20Stud
|
||||
//Modified for use by Npp
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "MiniDumper.h"
|
||||
//#include "Common.h"
|
||||
#include <shlwapi.h>
|
||||
|
||||
LPCTSTR msgTitle = TEXT("Notepad++ crash analysis");
|
||||
|
||||
|
@ -1,10 +1,25 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//Adapted from http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx#_Reading_a_Minidump_with%20Visual%20Stud
|
||||
//Modified for use by Npp
|
||||
|
||||
#ifndef MDUMP_H
|
||||
#define MDUMP_H
|
||||
|
||||
#include <windows.h>
|
||||
#include "dbghelp.h"
|
||||
|
||||
// based on dbghelp.h
|
||||
typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD dwPid, HANDLE hFile, MINIDUMP_TYPE DumpType,
|
||||
|
@ -4,8 +4,9 @@
|
||||
//By Bennett
|
||||
//Formatting Slightly modified for N++
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Win32Exception.h"
|
||||
#include "eh.h"
|
||||
|
||||
|
||||
Win32Exception::Win32Exception(EXCEPTION_POINTERS * info) {
|
||||
_location = info->ExceptionRecord->ExceptionAddress;
|
||||
|
@ -4,9 +4,6 @@
|
||||
//By Bennett
|
||||
//Formatting Slightly modified for N++
|
||||
|
||||
#include "windows.h"
|
||||
#include <exception>
|
||||
|
||||
typedef const void* ExceptionAddress; // OK on Win32 platform
|
||||
|
||||
class Win32Exception : public std::exception
|
||||
|
@ -18,7 +18,6 @@
|
||||
#ifndef NOTEPAD_PLUS_MSGS_H
|
||||
#define NOTEPAD_PLUS_MSGS_H
|
||||
|
||||
//#include "menuCmdID.h"
|
||||
|
||||
enum LangType {L_TXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\
|
||||
L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_NFO, L_USER,\
|
||||
|
@ -18,9 +18,13 @@
|
||||
#ifndef PLUGININTERFACE_H
|
||||
#define PLUGININTERFACE_H
|
||||
|
||||
#include <windows.h>
|
||||
#ifndef SCINTILLA_H
|
||||
#include "Scintilla.h"
|
||||
#endif //SCINTILLA_H
|
||||
|
||||
#ifndef NOTEPAD_PLUS_MSGS_H
|
||||
#include "Notepad_plus_msgs.h"
|
||||
#endif //NOTEPAD_PLUS_MSGS_H
|
||||
|
||||
const int nbChar = 64;
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include <shlwapi.h>
|
||||
#include "precompiledHeaders.h"
|
||||
#include "PluginsManager.h"
|
||||
|
||||
const TCHAR * USERMSG = TEXT("This plugin is not compatible with current version of Notepad++.\n\n\
|
||||
|
@ -18,9 +18,17 @@
|
||||
#ifndef PLUGINSMANAGER_H
|
||||
#define PLUGINSMANAGER_H
|
||||
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
|
||||
#ifndef PARAMETERS_H
|
||||
#include "Parameters.h"
|
||||
#endif //PARAMETERS_H
|
||||
|
||||
#ifndef PLUGININTERFACE_H
|
||||
#include "PluginInterface.h"
|
||||
#endif //PLUGININTERFACE_H
|
||||
|
||||
typedef BOOL (__cdecl * PFUNCISUNICODE)();
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "process.h"
|
||||
|
||||
BOOL Process::run()
|
||||
|
@ -18,10 +18,6 @@
|
||||
#ifndef PROCESSUS_H
|
||||
#define PROCESSUS_H
|
||||
|
||||
#include <windows.h>
|
||||
#include <string>
|
||||
#include "Common.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
enum progType {WIN32_PROG, CONSOLE_PROG};
|
||||
|
@ -16,10 +16,9 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include "precompiledHeaders.h"
|
||||
#include "regExtDlg.h"
|
||||
#include "resource.h"
|
||||
#include "Common.h"
|
||||
|
||||
const TCHAR *nppName = TEXT("Notepad++_file");
|
||||
const TCHAR *nppBackup = TEXT("Notepad++_backup");
|
||||
|
@ -20,8 +20,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef REG_EXT_DLG_H
|
||||
#define REG_EXT_DLG_H
|
||||
|
||||
#include "StaticDialog.h"
|
||||
#ifndef REGEXTDLGRC_H
|
||||
#include "regExtDlgRc.h"
|
||||
#endif //REGEXTDLGRC_H
|
||||
|
||||
const int extNameLen = 32;
|
||||
|
||||
|
@ -18,14 +18,10 @@
|
||||
#define _WIN32_IE 0x500
|
||||
#endif
|
||||
|
||||
//#define INCLUDE_DEPRECATED_FEATURES 1
|
||||
|
||||
#include <shlwapi.h>
|
||||
//#include "dbghelp.h"
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Notepad_plus.h"
|
||||
#include "FileDialog.h"
|
||||
#include "resource.h"
|
||||
//#include "resource.h"
|
||||
#include "printer.h"
|
||||
#include "FileNameStringSplitter.h"
|
||||
#include "lesDlgs.h"
|
||||
@ -35,7 +31,6 @@
|
||||
#include "ShortcutMapper.h"
|
||||
#include "preferenceDlg.h"
|
||||
#include "TaskListDlg.h"
|
||||
#include <algorithm>
|
||||
#include "xmlMatchedTagsHighlighter.h"
|
||||
|
||||
const TCHAR Notepad_plus::_className[32] = TEXT("Notepad++");
|
||||
@ -1912,6 +1907,51 @@ void Notepad_plus::filePrint(bool showDialog)
|
||||
printer.doPrint();
|
||||
}
|
||||
|
||||
int Notepad_plus::doSaveOrNot(const TCHAR *fn)
|
||||
{
|
||||
TCHAR pattern[64] = TEXT("Save file \"%s\" ?");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn);
|
||||
return doActionOrNot(TEXT("Save"), phrase, MB_YESNOCANCEL | MB_ICONQUESTION | MB_APPLMODAL);
|
||||
}
|
||||
|
||||
int Notepad_plus::doReloadOrNot(const TCHAR *fn, bool dirty)
|
||||
{
|
||||
TCHAR* pattern = TEXT("%s\r\rThis file has been modified by another program.\rDo you want to reload it%s?");
|
||||
TCHAR* lose_info_str = dirty ? TEXT(" and lose the changes made in Notepad++") : TEXT("");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn, lose_info_str);
|
||||
int icon = dirty ? MB_ICONEXCLAMATION : MB_ICONQUESTION;
|
||||
return doActionOrNot(TEXT("Reload"), phrase, MB_YESNO | MB_APPLMODAL | icon);
|
||||
}
|
||||
|
||||
int Notepad_plus::doCloseOrNot(const TCHAR *fn)
|
||||
{
|
||||
TCHAR pattern[128] = TEXT("The file \"%s\" doesn't exist anymore.\rKeep this file in editor?");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn);
|
||||
return doActionOrNot(TEXT("Keep non existing file"), phrase, MB_YESNO | MB_ICONQUESTION | MB_APPLMODAL);
|
||||
}
|
||||
|
||||
int Notepad_plus::doDeleteOrNot(const TCHAR *fn)
|
||||
{
|
||||
TCHAR pattern[128] = TEXT("The file \"%s\"\rwill be deleted from your disk and this document will be closed.\rContinue?");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn);
|
||||
return doActionOrNot(TEXT("Delete file"), phrase, MB_YESNO | MB_ICONQUESTION | MB_APPLMODAL);
|
||||
}
|
||||
|
||||
int Notepad_plus::doActionOrNot(const TCHAR *title, const TCHAR *displayText, int type)
|
||||
{
|
||||
return ::MessageBox(_hSelf, displayText, title, type);
|
||||
}
|
||||
|
||||
void Notepad_plus::enableMenu(int cmdID, bool doEnable) const
|
||||
{
|
||||
int flag = doEnable?MF_ENABLED | MF_BYCOMMAND:MF_DISABLED | MF_GRAYED | MF_BYCOMMAND;
|
||||
::EnableMenuItem(_mainMenuHandle, cmdID, flag);
|
||||
}
|
||||
|
||||
void Notepad_plus::enableCommand(int cmdID, bool doEnable, int which) const
|
||||
{
|
||||
if (which & MENU)
|
||||
@ -2761,6 +2801,119 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Notepad_plus::copyMarkedLines()
|
||||
{
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
generic_string globalStr = TEXT("");
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
{
|
||||
generic_string currentStr = getMarkedLine(i) + globalStr;
|
||||
globalStr = currentStr;
|
||||
}
|
||||
}
|
||||
str2Cliboard(globalStr.c_str());
|
||||
}
|
||||
|
||||
void Notepad_plus::cutMarkedLines()
|
||||
{
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
generic_string globalStr = TEXT("");
|
||||
|
||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
{
|
||||
generic_string currentStr = getMarkedLine(i) + globalStr;
|
||||
globalStr = currentStr;
|
||||
|
||||
deleteMarkedline(i);
|
||||
}
|
||||
}
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
str2Cliboard(globalStr.c_str());
|
||||
}
|
||||
|
||||
void Notepad_plus::deleteMarkedLines()
|
||||
{
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
|
||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
deleteMarkedline(i);
|
||||
}
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
}
|
||||
|
||||
void Notepad_plus::pasteToMarkedLines()
|
||||
{
|
||||
int clipFormat;
|
||||
#ifdef UNICODE
|
||||
clipFormat = CF_UNICODETEXT;
|
||||
#else
|
||||
clipFormat = CF_TEXT;
|
||||
#endif
|
||||
BOOL canPaste = ::IsClipboardFormatAvailable(clipFormat);
|
||||
if (!canPaste)
|
||||
return;
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
|
||||
::OpenClipboard(_hSelf);
|
||||
HANDLE clipboardData = ::GetClipboardData(clipFormat);
|
||||
::GlobalSize(clipboardData);
|
||||
LPVOID clipboardDataPtr = ::GlobalLock(clipboardData);
|
||||
|
||||
generic_string clipboardStr = (const TCHAR *)clipboardDataPtr;
|
||||
|
||||
::GlobalUnlock(clipboardData);
|
||||
::CloseClipboard();
|
||||
|
||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
{
|
||||
replaceMarkedline(i, clipboardStr.c_str());
|
||||
}
|
||||
}
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
}
|
||||
|
||||
void Notepad_plus::deleteMarkedline(int ln)
|
||||
{
|
||||
int lineLen = _pEditView->execute(SCI_LINELENGTH, ln);
|
||||
int lineBegin = _pEditView->execute(SCI_POSITIONFROMLINE, ln);
|
||||
|
||||
bookmarkDelete(ln);
|
||||
TCHAR emptyString[2] = TEXT("");
|
||||
_pEditView->replaceTarget(emptyString, lineBegin, lineBegin + lineLen);
|
||||
}
|
||||
|
||||
void Notepad_plus::replaceMarkedline(int ln, const TCHAR *str)
|
||||
{
|
||||
int lineBegin = _pEditView->execute(SCI_POSITIONFROMLINE, ln);
|
||||
int lineEnd = _pEditView->execute(SCI_GETLINEENDPOSITION, ln);
|
||||
|
||||
_pEditView->replaceTarget(str, lineBegin, lineEnd);
|
||||
}
|
||||
|
||||
generic_string Notepad_plus::getMarkedLine(int ln)
|
||||
{
|
||||
int lineLen = _pEditView->execute(SCI_LINELENGTH, ln);
|
||||
int lineBegin = _pEditView->execute(SCI_POSITIONFROMLINE, ln);
|
||||
|
||||
TCHAR * buf = new TCHAR[lineLen+1];
|
||||
_pEditView->getGenericText(buf, lineBegin, lineBegin + lineLen);
|
||||
generic_string line = buf;
|
||||
delete [] buf;
|
||||
|
||||
return line;
|
||||
}
|
||||
|
||||
void Notepad_plus::findMatchingBracePos(int & braceAtCaret, int & braceOpposite)
|
||||
{
|
||||
int caretPos = int(_pEditView->execute(SCI_GETCURRENTPOS));
|
||||
@ -2820,6 +2973,77 @@ void Notepad_plus::braceMatch()
|
||||
enableCommand(IDM_SEARCH_GOTOMATCHINGBRACE, (braceAtCaret != -1) && (braceOpposite != -1), MENU | TOOLBAR);
|
||||
}
|
||||
|
||||
|
||||
void Notepad_plus::setDisplayFormat(formatType f)
|
||||
{
|
||||
generic_string str;
|
||||
switch (f)
|
||||
{
|
||||
case MAC_FORMAT :
|
||||
str = TEXT("MAC");
|
||||
break;
|
||||
case UNIX_FORMAT :
|
||||
str = TEXT("UNIX");
|
||||
break;
|
||||
default :
|
||||
str = TEXT("Dos\\Windows");
|
||||
}
|
||||
_statusBar.setText(str.c_str(), STATUSBAR_EOF_FORMAT);
|
||||
}
|
||||
|
||||
void Notepad_plus::setUniModeText(UniMode um)
|
||||
{
|
||||
TCHAR *uniModeText;
|
||||
switch (um)
|
||||
{
|
||||
case uniUTF8:
|
||||
uniModeText = TEXT("UTF-8"); break;
|
||||
case uni16BE:
|
||||
uniModeText = TEXT("UCS-2 Big Endian"); break;
|
||||
case uni16LE:
|
||||
uniModeText = TEXT("UCS-2 Little Endian"); break;
|
||||
case uni16BE_NoBOM:
|
||||
uniModeText = TEXT("UCS-2 BE w/o BOM"); break;
|
||||
case uni16LE_NoBOM:
|
||||
uniModeText = TEXT("UCS-2 LE w/o BOM"); break;
|
||||
case uniCookie:
|
||||
uniModeText = TEXT("ANSI as UTF-8"); break;
|
||||
default :
|
||||
uniModeText = TEXT("ANSI");
|
||||
}
|
||||
_statusBar.setText(uniModeText, STATUSBAR_UNICODE_TYPE);
|
||||
}
|
||||
|
||||
int Notepad_plus::getFolderMarginStyle() const
|
||||
{
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_SIMPLE, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_SIMPLE;
|
||||
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_ARROW, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_ARROW;
|
||||
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_CIRCLE, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_CIRCLE;
|
||||
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_BOX, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_BOX;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Notepad_plus::getFolderMaginStyleIDFrom(folderStyle fStyle) const
|
||||
{
|
||||
switch (fStyle)
|
||||
{
|
||||
case FOLDER_STYLE_SIMPLE : return IDM_VIEW_FOLDERMAGIN_SIMPLE;
|
||||
case FOLDER_STYLE_ARROW : return IDM_VIEW_FOLDERMAGIN_ARROW;
|
||||
case FOLDER_STYLE_CIRCLE : return IDM_VIEW_FOLDERMAGIN_CIRCLE;
|
||||
case FOLDER_STYLE_BOX : return IDM_VIEW_FOLDERMAGIN_BOX;
|
||||
default : return FOLDER_TYPE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Notepad_plus::charAdded(TCHAR chAdded)
|
||||
{
|
||||
bool indentMaintain = NppParameters::getInstance()->getNppGUI()._maitainIndent;
|
||||
@ -5544,6 +5768,13 @@ void Notepad_plus::dynamicCheckMenuAndTB() const
|
||||
//Syncronized scrolling
|
||||
}
|
||||
|
||||
void Notepad_plus::enableConvertMenuItems(formatType f) const
|
||||
{
|
||||
enableCommand(IDM_FORMAT_TODOS, (f != WIN_FORMAT), MENU);
|
||||
enableCommand(IDM_FORMAT_TOUNIX, (f != UNIX_FORMAT), MENU);
|
||||
enableCommand(IDM_FORMAT_TOMAC, (f != MAC_FORMAT), MENU);
|
||||
}
|
||||
|
||||
void Notepad_plus::checkUnicodeMenuItems(UniMode um) const
|
||||
{
|
||||
int id = -1;
|
||||
@ -7020,6 +7251,16 @@ void Notepad_plus::getTaskListInfo(TaskListInfo *tli)
|
||||
}
|
||||
}
|
||||
|
||||
bool Notepad_plus::isDlgsMsg(MSG *msg, bool unicodeSupported) const
|
||||
{
|
||||
for (size_t i = 0; i < _hModelessDlgs.size(); i++)
|
||||
{
|
||||
if (unicodeSupported?(::IsDialogMessageW(_hModelessDlgs[i], msg)):(::IsDialogMessageA(_hModelessDlgs[i], msg)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
LRESULT result = FALSE;
|
||||
@ -9515,14 +9756,6 @@ void Notepad_plus::getCurrentOpenedFiles(Session & session)
|
||||
session._subViewFiles.push_back(sfi);
|
||||
}
|
||||
}
|
||||
|
||||
//_mainEditView.activateBuffer(mainBuf->getID()); //restore buffer
|
||||
//_subEditView.activateBuffer(subBuf->getID()); //restore buffer
|
||||
//_mainEditView.execute(SCI_SETDOCPOINTER, 0, mainBuf->getDocument());
|
||||
//_mainEditView.restoreCurrentPos();
|
||||
//_subEditView.execute(SCI_SETDOCPOINTER, 0, subBuf->getDocument());
|
||||
//_subEditView.restoreCurrentPos();
|
||||
|
||||
_invisibleEditView.execute(SCI_SETDOCPOINTER, 0, oldDoc);
|
||||
}
|
||||
|
||||
@ -9567,7 +9800,6 @@ bool Notepad_plus::fileLoadSession(const TCHAR *fn)
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
const TCHAR * Notepad_plus::fileSaveSession(size_t nbFile, TCHAR ** fileNames, const TCHAR *sessionFile2save)
|
||||
{
|
||||
if (sessionFile2save)
|
||||
@ -10018,3 +10250,95 @@ vector<generic_string> Notepad_plus::addNppComponents(const TCHAR *destDir, cons
|
||||
}
|
||||
return copiedFiles;
|
||||
}
|
||||
|
||||
void Notepad_plus::setWorkingDir(const TCHAR *dir)
|
||||
{
|
||||
NppParameters * params = NppParameters::getInstance();
|
||||
if (params->getNppGUI()._openSaveDir == dir_last)
|
||||
return;
|
||||
if (params->getNppGUI()._openSaveDir == dir_userDef)
|
||||
{
|
||||
params->setWorkingDir(NULL);
|
||||
}
|
||||
else if (dir && PathIsDirectory(dir))
|
||||
{
|
||||
params->setWorkingDir(dir);
|
||||
}
|
||||
}
|
||||
|
||||
int Notepad_plus::getLangFromMenuName(const TCHAR * langName)
|
||||
{
|
||||
int id = 0;
|
||||
const int menuSize = 64;
|
||||
TCHAR menuLangName[menuSize];
|
||||
|
||||
for ( int i = IDM_LANG_C; i <= IDM_LANG_USER; i++ )
|
||||
if ( ::GetMenuString( _mainMenuHandle, i, menuLangName, menuSize, MF_BYCOMMAND ) )
|
||||
if ( !lstrcmp( langName, menuLangName ) )
|
||||
{
|
||||
id = i;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( id == 0 )
|
||||
{
|
||||
for ( int i = IDM_LANG_USER + 1; i <= IDM_LANG_USER_LIMIT; i++ )
|
||||
if ( ::GetMenuString( _mainMenuHandle, i, menuLangName, menuSize, MF_BYCOMMAND ) )
|
||||
if ( !lstrcmp( langName, menuLangName ) )
|
||||
{
|
||||
id = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
generic_string Notepad_plus::getLangFromMenu(const Buffer * buf)
|
||||
{
|
||||
|
||||
int id;
|
||||
generic_string userLangName;
|
||||
const int nbChar = 32;
|
||||
TCHAR menuLangName[nbChar];
|
||||
|
||||
id = (NppParameters::getInstance())->langTypeToCommandID( buf->getLangType() );
|
||||
if ( ( id != IDM_LANG_USER ) || !( buf->isUserDefineLangExt() ) )
|
||||
{
|
||||
::GetMenuString(_mainMenuHandle, id, menuLangName, nbChar-1, MF_BYCOMMAND);
|
||||
userLangName = menuLangName;
|
||||
}
|
||||
else
|
||||
{
|
||||
userLangName = buf->getUserDefineLangName();
|
||||
}
|
||||
return userLangName;
|
||||
}
|
||||
|
||||
Style * Notepad_plus::getStyleFromName(const TCHAR *styleName)
|
||||
{
|
||||
StyleArray & stylers = (NppParameters::getInstance())->getMiscStylerArray();
|
||||
|
||||
int i = stylers.getStylerIndexByName(styleName);
|
||||
Style * st = NULL;
|
||||
if (i != -1)
|
||||
{
|
||||
Style & style = stylers.getStyler(i);
|
||||
st = &style;
|
||||
}
|
||||
return st;
|
||||
}
|
||||
|
||||
bool Notepad_plus::noOpenedDoc() const
|
||||
{
|
||||
if (_mainDocTab.isVisible() && _subDocTab.isVisible())
|
||||
return false;
|
||||
if (_pDocTab->nbItem() == 1)
|
||||
{
|
||||
BufferID buffer = _pDocTab->getBufferByIndex(0);
|
||||
Buffer * buf = MainFileManager->getBufferByID(buffer);
|
||||
if (!buf->isDirty() && buf->isUntitled())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
@ -17,38 +17,94 @@
|
||||
|
||||
#ifndef NOTEPAD_PLUS_H
|
||||
#define NOTEPAD_PLUS_H
|
||||
#include <window.h>
|
||||
#include "Window.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "ToolBar.h"
|
||||
#include "ImageListSet.h"
|
||||
#include "DocTabView.h"
|
||||
|
||||
#include "StaticDialog.h"
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#include "ScintillaEditView.h"
|
||||
#endif //SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
#ifndef DOCTABVIEW_H
|
||||
#include "DocTabView.h"
|
||||
#endif //DOCTABVIEW_H
|
||||
|
||||
#ifndef SPLITTER_CONTAINER_H
|
||||
#include "SplitterContainer.h"
|
||||
#endif //SPLITTER_CONTAINER_H
|
||||
|
||||
#ifndef FIND_REPLACE_DLG_H
|
||||
#include "FindReplaceDlg.h"
|
||||
#endif //FIND_REPLACE_DLG_H
|
||||
|
||||
#ifndef ABOUT_DLG_H
|
||||
#include "AboutDlg.h"
|
||||
#endif //ABOUT_DLG_H
|
||||
|
||||
#ifndef RUN_DLG_H
|
||||
#include "RunDlg.h"
|
||||
#include "UserDefineDialog.h"
|
||||
#endif //RUN_DLG_H
|
||||
|
||||
#ifndef STATUS_BAR_H
|
||||
#include "StatusBar.h"
|
||||
#include "Parameters.h"
|
||||
#endif //STATUS_BAR_H
|
||||
|
||||
#ifndef LASTRECENTFILELIST_H
|
||||
#include "lastRecentFileList.h"
|
||||
#endif //LASTRECENTFILELIST_H
|
||||
|
||||
#ifndef GOTILINE_DLG_H
|
||||
#include "GoToLineDlg.h"
|
||||
#endif //GOTILINE_DLG_H
|
||||
|
||||
#ifndef COLUMNEDITOR_H
|
||||
#include "columnEditor.h"
|
||||
#endif //COLUMNEDITOR_H
|
||||
|
||||
#ifndef WORD_STYLE_H
|
||||
#include "WordStyleDlg.h"
|
||||
//#include "constant.h"
|
||||
#endif //WORD_STYLE_H
|
||||
|
||||
#ifndef TRAY_ICON_CONTROLER_H
|
||||
#include "trayIconControler.h"
|
||||
#include "ContextMenu.h"
|
||||
#endif //TRAY_ICON_CONTROLER_H
|
||||
|
||||
#ifndef PLUGINSMANAGER_H
|
||||
#include "PluginsManager.h"
|
||||
#endif //PLUGINSMANAGER_H
|
||||
/*
|
||||
#ifndef NOTEPAD_PLUS_MSGS_H
|
||||
#include "Notepad_plus_msgs.h"
|
||||
#endif //NOTEPAD_PLUS_MSGS_H
|
||||
*/
|
||||
#ifndef PREFERENCE_DLG_H
|
||||
#include "preferenceDlg.h"
|
||||
#endif //PREFERENCE_DLG_H
|
||||
|
||||
#ifndef WINDOWS_DLG_H
|
||||
#include "WindowsDlg.h"
|
||||
#endif //WINDOWS_DLG_H
|
||||
|
||||
#ifndef RUN_MACRO_DLG_H
|
||||
#include "RunMacroDlg.h"
|
||||
#endif //RUN_MACRO_DLG_H
|
||||
|
||||
#ifndef DOCKINGMANAGER_H
|
||||
#include "DockingManager.h"
|
||||
#endif //DOCKINGMANAGER_H
|
||||
|
||||
#ifndef PROCESSUS_H
|
||||
#include "Process.h"
|
||||
#endif //PROCESSUS_H
|
||||
|
||||
#ifndef AUTOCOMPLETION_H
|
||||
#include "AutoCompletion.h"
|
||||
#include "Buffer.h"
|
||||
#endif //AUTOCOMPLETION_H
|
||||
|
||||
#ifndef SMARTHIGHLIGHTER_H
|
||||
#include "SmartHighlighter.h"
|
||||
#endif //SMARTHIGHLIGHTER_H
|
||||
|
||||
#ifndef SCINTILLACTRLS_H
|
||||
#include "ScintillaCtrls.h"
|
||||
#endif //SCINTILLACTRLS_H
|
||||
|
||||
#define MENU 0x01
|
||||
#define TOOLBAR 0x02
|
||||
@ -131,14 +187,7 @@ public:
|
||||
void getTaskListInfo(TaskListInfo *tli);
|
||||
|
||||
// For filtering the modeless Dialog message
|
||||
inline bool isDlgsMsg(MSG *msg, bool unicodeSupported) const {
|
||||
for (size_t i = 0; i < _hModelessDlgs.size(); i++)
|
||||
{
|
||||
if (unicodeSupported?(::IsDialogMessageW(_hModelessDlgs[i], msg)):(::IsDialogMessageA(_hModelessDlgs[i], msg)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
bool isDlgsMsg(MSG *msg, bool unicodeSupported) const;
|
||||
|
||||
// fileOperations
|
||||
//The doXXX functions apply to a single buffer and dont need to worry about views, with the excpetion of doClose, since closing one view doesnt have to mean the document is gone
|
||||
@ -169,17 +218,12 @@ public:
|
||||
void filePrint(bool showDialog);
|
||||
bool saveScintillaParams(bool whichOne);
|
||||
|
||||
inline bool saveGUIParams();
|
||||
|
||||
inline void saveDockingParams();
|
||||
|
||||
inline void saveUserDefineLangs();
|
||||
|
||||
inline void saveShortcuts();
|
||||
|
||||
inline void saveSession(const Session & session);
|
||||
|
||||
inline void saveFindHistory();
|
||||
bool saveGUIParams();
|
||||
void saveDockingParams();
|
||||
void saveUserDefineLangs();
|
||||
void saveShortcuts();
|
||||
void saveSession(const Session & session);
|
||||
void saveFindHistory();
|
||||
|
||||
void getCurrentOpenedFiles(Session & session);
|
||||
|
||||
@ -337,49 +381,7 @@ private:
|
||||
|
||||
bool _isFileOpening;
|
||||
|
||||
class ScintillaCtrls {
|
||||
public :
|
||||
//ScintillaCtrls();
|
||||
void init(HINSTANCE hInst, HWND hNpp) {
|
||||
_hInst = hInst;
|
||||
_hParent = hNpp;
|
||||
};
|
||||
|
||||
HWND createSintilla(HWND hParent) {
|
||||
_hParent = hParent;
|
||||
|
||||
ScintillaEditView *scint = new ScintillaEditView;
|
||||
scint->init(_hInst, _hParent);
|
||||
_scintVector.push_back(scint);
|
||||
return scint->getHSelf();
|
||||
};
|
||||
bool destroyScintilla(HWND handle2Destroy) {
|
||||
for (size_t i = 0 ; i < _scintVector.size() ; i++)
|
||||
{
|
||||
if (_scintVector[i]->getHSelf() == handle2Destroy)
|
||||
{
|
||||
_scintVector[i]->destroy();
|
||||
delete _scintVector[i];
|
||||
|
||||
vector<ScintillaEditView *>::iterator it2delete = _scintVector.begin()+ i;
|
||||
_scintVector.erase(it2delete);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
void destroy() {
|
||||
for (size_t i = 0 ; i < _scintVector.size() ; i++)
|
||||
{
|
||||
_scintVector[i]->destroy();
|
||||
delete _scintVector[i];
|
||||
}
|
||||
};
|
||||
private:
|
||||
vector<ScintillaEditView *> _scintVector;
|
||||
HINSTANCE _hInst;
|
||||
HWND _hParent;
|
||||
} _scintillaCtrls4Plugins;
|
||||
ScintillaCtrls _scintillaCtrls4Plugins;
|
||||
|
||||
vector<pair<int, int> > _hideLinesMarks;
|
||||
StyleArray _hotspotStyles;
|
||||
@ -411,12 +413,15 @@ private:
|
||||
int currentView(){
|
||||
return _activeView;
|
||||
};
|
||||
|
||||
int otherView(){
|
||||
return (_activeView == MAIN_VIEW?SUB_VIEW:MAIN_VIEW);
|
||||
};
|
||||
|
||||
int otherFromView(int whichOne){
|
||||
return (whichOne == MAIN_VIEW?SUB_VIEW:MAIN_VIEW);
|
||||
};
|
||||
|
||||
bool canHideView(int whichOne); //true if view can safely be hidden (no open docs etc)
|
||||
|
||||
int switchEditViewTo(int gid); //activate other view (set focus etc)
|
||||
@ -432,43 +437,13 @@ private:
|
||||
void performPostReload(int whichOne);
|
||||
//END: Document management
|
||||
|
||||
int doSaveOrNot(const TCHAR *fn) {
|
||||
TCHAR pattern[64] = TEXT("Save file \"%s\" ?");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn);
|
||||
return doActionOrNot(TEXT("Save"), phrase, MB_YESNOCANCEL | MB_ICONQUESTION | MB_APPLMODAL);
|
||||
};
|
||||
int doSaveOrNot(const TCHAR *fn);
|
||||
int doReloadOrNot(const TCHAR *fn, bool dirty);
|
||||
int doCloseOrNot(const TCHAR *fn);
|
||||
int doDeleteOrNot(const TCHAR *fn);
|
||||
int doActionOrNot(const TCHAR *title, const TCHAR *displayText, int type);
|
||||
|
||||
int doReloadOrNot(const TCHAR *fn, bool dirty) {
|
||||
TCHAR* pattern = TEXT("%s\r\rThis file has been modified by another program.\rDo you want to reload it%s?");
|
||||
TCHAR* lose_info_str = dirty ? TEXT(" and lose the changes made in Notepad++") : TEXT("");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn, lose_info_str);
|
||||
int icon = dirty ? MB_ICONEXCLAMATION : MB_ICONQUESTION;
|
||||
return doActionOrNot(TEXT("Reload"), phrase, MB_YESNO | MB_APPLMODAL | icon);
|
||||
};
|
||||
|
||||
int doCloseOrNot(const TCHAR *fn) {
|
||||
TCHAR pattern[128] = TEXT("The file \"%s\" doesn't exist anymore.\rKeep this file in editor?");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn);
|
||||
return doActionOrNot(TEXT("Keep non existing file"), phrase, MB_YESNO | MB_ICONQUESTION | MB_APPLMODAL);
|
||||
};
|
||||
|
||||
int doDeleteOrNot(const TCHAR *fn) {
|
||||
TCHAR pattern[128] = TEXT("The file \"%s\"\rwill be deleted from your disk and this document will be closed.\rContinue?");
|
||||
TCHAR phrase[512];
|
||||
wsprintf(phrase, pattern, fn);
|
||||
return doActionOrNot(TEXT("Delete file"), phrase, MB_YESNO | MB_ICONQUESTION | MB_APPLMODAL);
|
||||
};
|
||||
|
||||
int doActionOrNot(const TCHAR *title, const TCHAR *displayText, int type) {
|
||||
return ::MessageBox(_hSelf, displayText, title, type);
|
||||
};
|
||||
void enableMenu(int cmdID, bool doEnable) const {
|
||||
int flag = doEnable?MF_ENABLED | MF_BYCOMMAND:MF_DISABLED | MF_GRAYED | MF_BYCOMMAND;
|
||||
::EnableMenuItem(_mainMenuHandle, cmdID, flag);
|
||||
}
|
||||
void enableMenu(int cmdID, bool doEnable) const;
|
||||
void enableCommand(int cmdID, bool doEnable, int which) const;
|
||||
void checkClipboard();
|
||||
void checkDocState();
|
||||
@ -479,15 +454,8 @@ private:
|
||||
void checkModifiedDocument();
|
||||
|
||||
void getMainClientRect(RECT & rc) const;
|
||||
|
||||
void dynamicCheckMenuAndTB() const;
|
||||
|
||||
void enableConvertMenuItems(formatType f) const {
|
||||
enableCommand(IDM_FORMAT_TODOS, (f != WIN_FORMAT), MENU);
|
||||
enableCommand(IDM_FORMAT_TOUNIX, (f != UNIX_FORMAT), MENU);
|
||||
enableCommand(IDM_FORMAT_TOMAC, (f != MAC_FORMAT), MENU);
|
||||
};
|
||||
|
||||
void enableConvertMenuItems(formatType f) const;
|
||||
void checkUnicodeMenuItems(UniMode um) const;
|
||||
|
||||
generic_string getLangDesc(LangType langType, bool shortDesc = false);
|
||||
@ -496,83 +464,21 @@ private:
|
||||
_statusBar.setText(getLangDesc(langType).c_str(), STATUSBAR_DOC_TYPE);
|
||||
};
|
||||
|
||||
void setDisplayFormat(formatType f) {
|
||||
generic_string str;
|
||||
switch (f)
|
||||
{
|
||||
case MAC_FORMAT :
|
||||
str = TEXT("MAC");
|
||||
break;
|
||||
case UNIX_FORMAT :
|
||||
str = TEXT("UNIX");
|
||||
break;
|
||||
default :
|
||||
str = TEXT("Dos\\Windows");
|
||||
}
|
||||
_statusBar.setText(str.c_str(), STATUSBAR_EOF_FORMAT);
|
||||
};
|
||||
void setDisplayFormat(formatType f);
|
||||
|
||||
void setUniModeText(UniMode um)
|
||||
{
|
||||
TCHAR *uniModeText;
|
||||
switch (um)
|
||||
{
|
||||
case uniUTF8:
|
||||
uniModeText = TEXT("UTF-8"); break;
|
||||
case uni16BE:
|
||||
uniModeText = TEXT("UCS-2 Big Endian"); break;
|
||||
case uni16LE:
|
||||
uniModeText = TEXT("UCS-2 Little Endian"); break;
|
||||
case uni16BE_NoBOM:
|
||||
uniModeText = TEXT("UCS-2 BE w/o BOM"); break;
|
||||
case uni16LE_NoBOM:
|
||||
uniModeText = TEXT("UCS-2 LE w/o BOM"); break;
|
||||
case uniCookie:
|
||||
uniModeText = TEXT("ANSI as UTF-8"); break;
|
||||
default :
|
||||
uniModeText = TEXT("ANSI");
|
||||
}
|
||||
_statusBar.setText(uniModeText, STATUSBAR_UNICODE_TYPE);
|
||||
};
|
||||
void setUniModeText(UniMode um);
|
||||
|
||||
void checkLangsMenu(int id) const ;
|
||||
|
||||
void setLanguage(LangType langType);
|
||||
|
||||
enum LangType menuID2LangType(int cmdID);
|
||||
|
||||
int getFolderMarginStyle() const
|
||||
{
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_SIMPLE, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_SIMPLE;
|
||||
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_ARROW, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_ARROW;
|
||||
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_CIRCLE, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_CIRCLE;
|
||||
|
||||
if (::GetMenuState(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_BOX, MF_BYCOMMAND) == MF_CHECKED)
|
||||
return IDM_VIEW_FOLDERMAGIN_BOX;
|
||||
|
||||
return 0;
|
||||
};
|
||||
int getFolderMarginStyle() const;
|
||||
|
||||
void checkFolderMarginStyleMenu(int id2Check) const {
|
||||
::CheckMenuRadioItem(_mainMenuHandle, IDM_VIEW_FOLDERMAGIN_SIMPLE, IDM_VIEW_FOLDERMAGIN_BOX, id2Check, MF_BYCOMMAND);
|
||||
};
|
||||
|
||||
int getFolderMaginStyleIDFrom(folderStyle fStyle) const {
|
||||
switch (fStyle)
|
||||
{
|
||||
case FOLDER_STYLE_SIMPLE : return IDM_VIEW_FOLDERMAGIN_SIMPLE;
|
||||
case FOLDER_STYLE_ARROW : return IDM_VIEW_FOLDERMAGIN_ARROW;
|
||||
case FOLDER_STYLE_CIRCLE : return IDM_VIEW_FOLDERMAGIN_CIRCLE;
|
||||
case FOLDER_STYLE_BOX : return IDM_VIEW_FOLDERMAGIN_BOX;
|
||||
default : return FOLDER_TYPE;
|
||||
}
|
||||
//return
|
||||
};
|
||||
int getFolderMaginStyleIDFrom(folderStyle fStyle) const;
|
||||
|
||||
void checkMenuItem(int itemID, bool willBeChecked) const {
|
||||
::CheckMenuItem(_mainMenuHandle, itemID, MF_BYCOMMAND | (willBeChecked?MF_CHECKED:MF_UNCHECKED));
|
||||
@ -614,113 +520,13 @@ private:
|
||||
_pEditView->execute(SCI_MARKERDELETEALL, MARK_BOOKMARK);
|
||||
};
|
||||
|
||||
|
||||
void copyMarkedLines() {
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
generic_string globalStr = TEXT("");
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
{
|
||||
generic_string currentStr = getMarkedLine(i) + globalStr;
|
||||
globalStr = currentStr;
|
||||
}
|
||||
}
|
||||
str2Cliboard(globalStr.c_str());
|
||||
};
|
||||
|
||||
void cutMarkedLines() {
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
generic_string globalStr = TEXT("");
|
||||
|
||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
{
|
||||
generic_string currentStr = getMarkedLine(i) + globalStr;
|
||||
globalStr = currentStr;
|
||||
|
||||
deleteMarkedline(i);
|
||||
}
|
||||
}
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
str2Cliboard(globalStr.c_str());
|
||||
};
|
||||
|
||||
void deleteMarkedLines() {
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
|
||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
deleteMarkedline(i);
|
||||
}
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
};
|
||||
|
||||
void pasteToMarkedLines() {
|
||||
int clipFormat;
|
||||
#ifdef UNICODE
|
||||
clipFormat = CF_UNICODETEXT;
|
||||
#else
|
||||
clipFormat = CF_TEXT;
|
||||
#endif
|
||||
BOOL canPaste = ::IsClipboardFormatAvailable(clipFormat);
|
||||
if (!canPaste)
|
||||
return;
|
||||
int lastLine = _pEditView->lastZeroBasedLineNumber();
|
||||
|
||||
::OpenClipboard(_hSelf);
|
||||
HANDLE clipboardData = ::GetClipboardData(clipFormat);
|
||||
::GlobalSize(clipboardData);
|
||||
LPVOID clipboardDataPtr = ::GlobalLock(clipboardData);
|
||||
|
||||
generic_string clipboardStr = (const TCHAR *)clipboardDataPtr;
|
||||
|
||||
::GlobalUnlock(clipboardData);
|
||||
::CloseClipboard();
|
||||
|
||||
_pEditView->execute(SCI_BEGINUNDOACTION);
|
||||
for (int i = lastLine ; i >= 0 ; i--)
|
||||
{
|
||||
if (bookmarkPresent(i))
|
||||
{
|
||||
replaceMarkedline(i, clipboardStr.c_str());
|
||||
}
|
||||
}
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
};
|
||||
|
||||
void deleteMarkedline(int ln) {
|
||||
int lineLen = _pEditView->execute(SCI_LINELENGTH, ln);
|
||||
int lineBegin = _pEditView->execute(SCI_POSITIONFROMLINE, ln);
|
||||
|
||||
bookmarkDelete(ln);
|
||||
TCHAR emptyString[2] = TEXT("");
|
||||
_pEditView->replaceTarget(emptyString, lineBegin, lineBegin + lineLen);
|
||||
};
|
||||
|
||||
void replaceMarkedline(int ln, const TCHAR *str) {
|
||||
int lineBegin = _pEditView->execute(SCI_POSITIONFROMLINE, ln);
|
||||
int lineEnd = _pEditView->execute(SCI_GETLINEENDPOSITION, ln);
|
||||
|
||||
_pEditView->replaceTarget(str, lineBegin, lineEnd);
|
||||
};
|
||||
|
||||
generic_string getMarkedLine(int ln) {
|
||||
int lineLen = _pEditView->execute(SCI_LINELENGTH, ln);
|
||||
int lineBegin = _pEditView->execute(SCI_POSITIONFROMLINE, ln);
|
||||
|
||||
TCHAR * buf = new TCHAR[lineLen+1];
|
||||
_pEditView->getGenericText(buf, lineBegin, lineBegin + lineLen);
|
||||
generic_string line = buf;
|
||||
delete [] buf;
|
||||
|
||||
return line;
|
||||
};
|
||||
|
||||
void copyMarkedLines();
|
||||
void cutMarkedLines();
|
||||
void deleteMarkedLines();
|
||||
void pasteToMarkedLines();
|
||||
void deleteMarkedline(int ln);
|
||||
void replaceMarkedline(int ln, const TCHAR *str);
|
||||
generic_string getMarkedLine(int ln);
|
||||
void findMatchingBracePos(int & braceAtCaret, int & braceOpposite);
|
||||
void braceMatch();
|
||||
|
||||
@ -742,104 +548,22 @@ private:
|
||||
void getMatchedFileNames(const TCHAR *dir, const vector<generic_string> & patterns, vector<generic_string> & fileNames, bool isRecursive, bool isInHiddenDir);
|
||||
|
||||
void doSynScorll(HWND hW);
|
||||
void setWorkingDir(const TCHAR *dir) {
|
||||
NppParameters * params = NppParameters::getInstance();
|
||||
if (params->getNppGUI()._openSaveDir == dir_last)
|
||||
return;
|
||||
if (params->getNppGUI()._openSaveDir == dir_userDef)
|
||||
{
|
||||
params->setWorkingDir(NULL);
|
||||
}
|
||||
else if (dir && PathIsDirectory(dir))
|
||||
{
|
||||
params->setWorkingDir(dir);
|
||||
}
|
||||
}
|
||||
void setWorkingDir(const TCHAR *dir);
|
||||
bool str2Cliboard(const TCHAR *str2cpy);
|
||||
bool bin2Cliboard(const UCHAR *uchar2cpy, size_t length);
|
||||
|
||||
bool getIntegralDockingData(tTbData & dockData, int & iCont, bool & isVisible);
|
||||
|
||||
int getLangFromMenuName(const TCHAR * langName) {
|
||||
int id = 0;
|
||||
const int menuSize = 64;
|
||||
TCHAR menuLangName[menuSize];
|
||||
|
||||
for ( int i = IDM_LANG_C; i <= IDM_LANG_USER; i++ )
|
||||
if ( ::GetMenuString( _mainMenuHandle, i, menuLangName, menuSize, MF_BYCOMMAND ) )
|
||||
if ( !lstrcmp( langName, menuLangName ) )
|
||||
{
|
||||
id = i;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( id == 0 )
|
||||
{
|
||||
for ( int i = IDM_LANG_USER + 1; i <= IDM_LANG_USER_LIMIT; i++ )
|
||||
if ( ::GetMenuString( _mainMenuHandle, i, menuLangName, menuSize, MF_BYCOMMAND ) )
|
||||
if ( !lstrcmp( langName, menuLangName ) )
|
||||
{
|
||||
id = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return id;
|
||||
};
|
||||
|
||||
generic_string getLangFromMenu(const Buffer * buf) {
|
||||
|
||||
int id;
|
||||
generic_string userLangName;
|
||||
const int nbChar = 32;
|
||||
TCHAR menuLangName[nbChar];
|
||||
|
||||
id = (NppParameters::getInstance())->langTypeToCommandID( buf->getLangType() );
|
||||
if ( ( id != IDM_LANG_USER ) || !( buf->isUserDefineLangExt() ) )
|
||||
{
|
||||
::GetMenuString(_mainMenuHandle, id, menuLangName, nbChar-1, MF_BYCOMMAND);
|
||||
userLangName = menuLangName;
|
||||
}
|
||||
else
|
||||
{
|
||||
userLangName = buf->getUserDefineLangName();
|
||||
}
|
||||
return userLangName;
|
||||
};
|
||||
int getLangFromMenuName(const TCHAR * langName);
|
||||
generic_string getLangFromMenu(const Buffer * buf);
|
||||
|
||||
void setFileOpenSaveDlgFilters(FileDialog & fDlg);
|
||||
void markSelectedTextInc(bool enable);
|
||||
|
||||
Style * getStyleFromName(const TCHAR *styleName) {
|
||||
StyleArray & stylers = (NppParameters::getInstance())->getMiscStylerArray();
|
||||
|
||||
int i = stylers.getStylerIndexByName(styleName);
|
||||
Style * st = NULL;
|
||||
if (i != -1)
|
||||
{
|
||||
Style & style = stylers.getStyler(i);
|
||||
st = &style;
|
||||
}
|
||||
return st;
|
||||
};
|
||||
|
||||
Style * getStyleFromName(const TCHAR *styleName);
|
||||
bool dumpFiles(const TCHAR * outdir, const TCHAR * fileprefix = TEXT("")); //helper func
|
||||
void drawTabbarColoursFromStylerArray();
|
||||
|
||||
void loadCommandlineParams(const TCHAR * commandLine, CmdLineParams * pCmdParams);
|
||||
|
||||
bool noOpenedDoc() const {
|
||||
if (_mainDocTab.isVisible() && _subDocTab.isVisible())
|
||||
return false;
|
||||
if (_pDocTab->nbItem() == 1)
|
||||
{
|
||||
BufferID buffer = _pDocTab->getBufferByIndex(0);
|
||||
Buffer * buf = MainFileManager->getBufferByID(buffer);
|
||||
if (!buf->isDirty() && buf->isUntitled())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
bool noOpenedDoc() const;
|
||||
};
|
||||
|
||||
#endif //NOTEPAD_PLUS_H
|
||||
|
@ -15,11 +15,10 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Parameters.h"
|
||||
#include "FileDialog.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include <shlobj.h>
|
||||
|
||||
#include "keys.h"
|
||||
|
||||
struct WinMenuKeyDefinition { //more or less matches accelerator table definition, easy copy/paste
|
||||
|
@ -18,19 +18,41 @@
|
||||
#ifndef PARAMETERS_H
|
||||
#define PARAMETERS_H
|
||||
|
||||
#include <string>
|
||||
#include <shlwapi.h>
|
||||
#ifndef TINYXMLA_INCLUDED
|
||||
#include "tinyxmlA.h"
|
||||
#include "tinyxml.h"
|
||||
#endif //TINYXMLA_INCLUDED
|
||||
|
||||
//#include "ScintillaEditView.h"
|
||||
#ifndef TINYXML_INCLUDED
|
||||
#include "tinyxml.h"
|
||||
#endif //TINYXML_INCLUDED
|
||||
|
||||
#ifndef SCINTILLA_H
|
||||
#include "Scintilla.h"
|
||||
#endif //SCINTILLA_H
|
||||
|
||||
#ifndef SCINTILLA_REF_H
|
||||
#include "ScintillaRef.h"
|
||||
#endif //SCINTILLA_REF_H
|
||||
|
||||
#ifndef TOOL_BAR_H
|
||||
#include "ToolBar.h"
|
||||
#endif //TOOL_BAR_H
|
||||
|
||||
#ifndef USER_DEFINE_LANG_REFERENCE_H
|
||||
#include "UserDefineLangReference.h"
|
||||
#endif //USER_DEFINE_LANG_REFERENCE_H
|
||||
|
||||
#ifndef COLORS_H
|
||||
#include "colors.h"
|
||||
#endif //COLORS_H
|
||||
|
||||
#ifndef SHORTCUTS_H
|
||||
#include "shortcut.h"
|
||||
#endif //SHORTCUTS_H
|
||||
|
||||
#ifndef CONTEXTMENU
|
||||
#include "ContextMenu.h"
|
||||
#endif //CONTEXTMENU
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -15,9 +15,10 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
|
||||
#include "AutoCompletion.h"
|
||||
#include "Notepad_plus_msgs.h"
|
||||
#include <algorithm>
|
||||
|
||||
static bool isInList(generic_string word, const vector<generic_string> & wordArray)
|
||||
{
|
||||
|
@ -18,9 +18,15 @@
|
||||
#ifndef AUTOCOMPLETION_H
|
||||
#define AUTOCOMPLETION_H
|
||||
|
||||
#include "ScintillaEditView.h"
|
||||
#ifndef FUNCTIONCALLTIP_H
|
||||
#include "FunctionCallTip.h"
|
||||
#endif// FUNCTIONCALLTIP_H
|
||||
|
||||
#ifndef TINYXML_INCLUDED
|
||||
#include "tinyxml.h"
|
||||
#endif// TINYXML_INCLUDED
|
||||
|
||||
class ScintillaEditView;
|
||||
|
||||
class AutoCompletion {
|
||||
public:
|
||||
|
@ -1,12 +1,26 @@
|
||||
#include "Buffer.h"
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2003 Don HO <donho@altern.org>
|
||||
|
||||
#include <shlwapi.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Buffer.h"
|
||||
#include "Scintilla.h"
|
||||
#include "Parameters.h"
|
||||
|
||||
|
||||
#include "Notepad_plus.h"
|
||||
#include "ScintillaEditView.h"
|
||||
|
||||
@ -48,6 +62,28 @@ static bool isInList(const TCHAR *token, const TCHAR *list) {
|
||||
return false;
|
||||
};
|
||||
|
||||
Buffer::Buffer(FileManager * pManager, BufferID id, Document doc, DocFileStatus type, const TCHAR *fileName) //type must be either DOC_REGULAR or DOC_UNNAMED
|
||||
: _pManager(pManager), _id(id), _isDirty(false), _doc(doc), _isFileReadOnly(false), _isUserReadOnly(false), _recentTag(-1), _references(0),
|
||||
_canNotify(false), _timeStamp(0), _needReloading(false)
|
||||
{
|
||||
NppParameters *pNppParamInst = NppParameters::getInstance();
|
||||
const NewDocDefaultSettings & ndds = (pNppParamInst->getNppGUI()).getNewDocDefaultSettings();
|
||||
_format = ndds._format;
|
||||
_unicodeMode = ndds._encoding;
|
||||
|
||||
_userLangExt[0] = 0;
|
||||
_fullPathName[0] = 0;
|
||||
_fileName = NULL;
|
||||
setFileName(fileName, ndds._lang);
|
||||
updateTimeStamp();
|
||||
checkFileState();
|
||||
_currentStatus = type;
|
||||
_isDirty = false;
|
||||
|
||||
_needLexer = false; //new buffers do not need lexing, Scintilla takes care of that
|
||||
_canNotify = true;
|
||||
}
|
||||
|
||||
void Buffer::determinateFormat(const char *data) {
|
||||
_format = WIN_FORMAT;
|
||||
size_t len = strlen(data);
|
||||
@ -75,7 +111,20 @@ void Buffer::determinateFormat(const char *data) {
|
||||
|
||||
doNotify(BufferChangeFormat);
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
void Buffer::setLangType(LangType lang, const TCHAR * userLangName)
|
||||
{
|
||||
if (lang == _lang && lang != L_USER)
|
||||
return;
|
||||
_lang = lang;
|
||||
if (_lang == L_USER)
|
||||
{
|
||||
_userLangExt = userLangName;
|
||||
}
|
||||
_needLexer = true; //change of lang means lexern eeds updating
|
||||
doNotify(BufferChangeLanguage|BufferChangeLexing);
|
||||
}
|
||||
|
||||
long Buffer::_recentTagCtr = 0;
|
||||
|
||||
|
@ -18,7 +18,9 @@
|
||||
#ifndef BUFFER_H
|
||||
#define BUFFER_H
|
||||
|
||||
#ifndef UTF8_16_H
|
||||
#include "Utf8_16.h"
|
||||
#endif// UTF8_16_H
|
||||
|
||||
class Buffer;
|
||||
typedef Buffer * BufferID; //each buffer has unique ID by which it can be retrieved
|
||||
@ -135,27 +137,7 @@ public :
|
||||
//Load the document into Scintilla/add to TabBar
|
||||
//The entire lifetime if the buffer, the Document has reference count of _atleast_ one
|
||||
//Destructor makes sure its purged
|
||||
Buffer(FileManager * pManager, BufferID id, Document doc, DocFileStatus type, const TCHAR *fileName) //type must be either DOC_REGULAR or DOC_UNNAMED
|
||||
: _pManager(pManager), _id(id), _isDirty(false), _doc(doc), _isFileReadOnly(false), _isUserReadOnly(false), _recentTag(-1), _references(0),
|
||||
_canNotify(false), _timeStamp(0), _needReloading(false)
|
||||
{
|
||||
NppParameters *pNppParamInst = NppParameters::getInstance();
|
||||
const NewDocDefaultSettings & ndds = (pNppParamInst->getNppGUI()).getNewDocDefaultSettings();
|
||||
_format = ndds._format;
|
||||
_unicodeMode = ndds._encoding;
|
||||
|
||||
_userLangExt[0] = 0;
|
||||
_fullPathName[0] = 0;
|
||||
_fileName = NULL;
|
||||
setFileName(fileName, ndds._lang);
|
||||
updateTimeStamp();
|
||||
checkFileState();
|
||||
_currentStatus = type;
|
||||
_isDirty = false;
|
||||
|
||||
_needLexer = false; //new buffers do not need lexing, Scintilla takes care of that
|
||||
_canNotify = true;
|
||||
};
|
||||
Buffer(FileManager * pManager, BufferID id, Document doc, DocFileStatus type, const TCHAR *fileName);
|
||||
|
||||
LangType getLangFromExt(const TCHAR *ext);
|
||||
|
||||
@ -228,16 +210,7 @@ public :
|
||||
return _lang;
|
||||
};
|
||||
|
||||
void setLangType(LangType lang, const TCHAR * userLangName = TEXT("")) {
|
||||
if (lang == _lang && lang != L_USER)
|
||||
return;
|
||||
_lang = lang;
|
||||
if (_lang == L_USER) {
|
||||
_userLangExt = userLangName;
|
||||
}
|
||||
_needLexer = true; //change of lang means lexern eeds updating
|
||||
doNotify(BufferChangeLanguage|BufferChangeLexing);
|
||||
};
|
||||
void setLangType(LangType lang, const TCHAR * userLangName = TEXT(""));
|
||||
|
||||
UniMode getUnicodeMode() const {
|
||||
return _unicodeMode;
|
||||
@ -245,7 +218,6 @@ public :
|
||||
|
||||
void setUnicodeMode(UniMode mode) {
|
||||
_unicodeMode = mode;
|
||||
//_isDirty = true; //set to dirty if change unicode mode
|
||||
doNotify(BufferChangeUnicode | BufferChangeDirty);
|
||||
};
|
||||
DocFileStatus getStatus() const {
|
||||
|
@ -15,14 +15,14 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "DocTabView.h"
|
||||
#include "ScintillaEditView.h"
|
||||
|
||||
#ifndef _WIN32_IE
|
||||
#define _WIN32_IE 0x0600
|
||||
#endif //_WIN32_IE
|
||||
|
||||
#include <commctrl.h>
|
||||
#include <shlwapi.h>
|
||||
|
||||
bool DocTabView::_hideTabBarStatus = false;
|
||||
|
||||
@ -144,3 +144,19 @@ void DocTabView::setBuffer(int index, BufferID id) {
|
||||
|
||||
::SendMessage(_hParent, WM_SIZE, 0, 0);
|
||||
}
|
||||
|
||||
void DocTabView::reSizeTo(RECT & rc)
|
||||
{
|
||||
if (_hideTabBarStatus)
|
||||
{
|
||||
RECT rcTmp = rc;
|
||||
|
||||
TabBar::reSizeTo(rcTmp);
|
||||
_pView->reSizeTo(rc);
|
||||
}
|
||||
else
|
||||
{
|
||||
TabBar::reSizeTo(rc);
|
||||
_pView->reSizeTo(rc);
|
||||
}
|
||||
}
|
@ -18,9 +18,13 @@
|
||||
#ifndef DOCTABVIEW_H
|
||||
#define DOCTABVIEW_H
|
||||
|
||||
#ifndef TAB_BAR_H
|
||||
#include "TabBar.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "ImageListSet.h"
|
||||
#endif //TAB_BAR_H
|
||||
|
||||
#ifndef BUFFER_H
|
||||
#include "Buffer.h"
|
||||
#endif //BUFFER_H
|
||||
|
||||
const int SAVED_IMG_INDEX = 0;
|
||||
const int UNSAVED_IMG_INDEX = 1;
|
||||
@ -69,20 +73,7 @@ public :
|
||||
return _hideTabBarStatus;
|
||||
};
|
||||
|
||||
virtual void reSizeTo(RECT & rc) {
|
||||
if (_hideTabBarStatus)
|
||||
{
|
||||
RECT rcTmp = rc;
|
||||
|
||||
TabBar::reSizeTo(rcTmp);
|
||||
_pView->reSizeTo(rc);
|
||||
}
|
||||
else
|
||||
{
|
||||
TabBar::reSizeTo(rc);
|
||||
_pView->reSizeTo(rc);
|
||||
}
|
||||
};
|
||||
virtual void reSizeTo(RECT & rc);
|
||||
|
||||
private :
|
||||
ScintillaEditView *_pView;
|
||||
|
@ -15,10 +15,10 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "FindReplaceDlg.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "Notepad_plus_msgs.h"
|
||||
//#include "constant.h"
|
||||
#include "UniConversion.h"
|
||||
|
||||
int Searching::convertExtendedToString(const TCHAR * query, TCHAR * result, int length) { //query may equal to result, since it always gets smaller
|
||||
@ -264,6 +264,14 @@ generic_string FindReplaceDlg::getTextFromCombo(HWND hCombo, bool isUnicode) con
|
||||
// important : to activate all styles
|
||||
const int STYLING_MASK = 255;
|
||||
|
||||
FindReplaceDlg::~FindReplaceDlg()
|
||||
{
|
||||
_tab.destroy();
|
||||
if (_pFinder)
|
||||
delete _pFinder;
|
||||
delete [] _uniFileName;
|
||||
}
|
||||
|
||||
void FindReplaceDlg::create(int dialogID, bool isRTL)
|
||||
{
|
||||
StaticDialog::create(dialogID, isRTL);
|
||||
@ -1695,6 +1703,18 @@ void FindReplaceDlg::findAllIn(InWhat op)
|
||||
::SendMessage(_hSelf, WM_NEXTDLGCTL, (WPARAM)::GetDlgItem(_hSelf, IDD_FINDINFILES_DIR_COMBO), TRUE);
|
||||
}
|
||||
|
||||
|
||||
void FindReplaceDlg::setSearchText(TCHAR * txt2find) {
|
||||
HWND hCombo = ::GetDlgItem(_hSelf, IDFINDWHAT);
|
||||
if (txt2find && txt2find[0])
|
||||
{
|
||||
// We got a valid search string
|
||||
::SendMessage(hCombo, CB_SETCURSEL, (WPARAM)-1, 0); // remove selection - to allow using down arrow to get to last searched word
|
||||
::SetDlgItemText(_hSelf, IDFINDWHAT, txt2find);
|
||||
}
|
||||
::SendMessage(hCombo, CB_SETEDITSEL, 0, MAKELPARAM(0, -1)); // select all text - fast edit
|
||||
}
|
||||
|
||||
void FindReplaceDlg::enableReplaceFunc(bool isEnable)
|
||||
{
|
||||
_currentStatus = isEnable?REPLACE_DLG:FIND_DLG;
|
||||
@ -1783,6 +1803,81 @@ void FindReplaceDlg::getPatterns(vector<generic_string> & patternVect)
|
||||
cutString(_filters.c_str(), patternVect);
|
||||
}
|
||||
|
||||
void FindReplaceDlg::setFindInFilesDirFilter(const TCHAR *dir, const TCHAR *filters)
|
||||
{
|
||||
if (dir)
|
||||
{
|
||||
_directory = dir;
|
||||
::SetDlgItemText(_hSelf, IDD_FINDINFILES_DIR_COMBO, dir);
|
||||
}
|
||||
if (filters)
|
||||
{
|
||||
_filters = filters;
|
||||
::SetDlgItemText(_hSelf, IDD_FINDINFILES_FILTERS_COMBO, filters);
|
||||
}
|
||||
}
|
||||
|
||||
void FindReplaceDlg::initOptionsFromDlg()
|
||||
{
|
||||
_options._isWholeWord = isCheckedOrNot(IDWHOLEWORD);
|
||||
_options._isMatchCase = isCheckedOrNot(IDMATCHCASE);
|
||||
_options._searchType = isCheckedOrNot(IDREGEXP)?FindRegex:isCheckedOrNot(IDEXTENDED)?FindExtended:FindNormal;
|
||||
_options._isWrapAround = isCheckedOrNot(IDWRAP);
|
||||
_isInSelection = isCheckedOrNot(IDC_IN_SELECTION_CHECK);
|
||||
|
||||
_doPurge = isCheckedOrNot(IDC_PURGE_CHECK);
|
||||
_doMarkLine = isCheckedOrNot(IDC_MARKLINE_CHECK);
|
||||
_doStyleFoundToken = isCheckedOrNot(IDC_STYLEFOUND_CHECK);
|
||||
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDCMARKALL), (_doMarkLine || _doStyleFoundToken));
|
||||
}
|
||||
|
||||
void FindReplaceDlg::doDialog(DIALOG_TYPE whichType, bool isRTL)
|
||||
{
|
||||
if (!isCreated())
|
||||
{
|
||||
create(IDD_FIND_REPLACE_DLG, isRTL);
|
||||
_isRTL = isRTL;
|
||||
}
|
||||
|
||||
if (whichType == FINDINFILES_DLG)
|
||||
enableFindInFilesFunc();
|
||||
else
|
||||
enableReplaceFunc(whichType == REPLACE_DLG);
|
||||
|
||||
::SetFocus(::GetDlgItem(_hSelf, IDFINDWHAT));
|
||||
display();
|
||||
}
|
||||
|
||||
LRESULT FAR PASCAL FindReplaceDlg::finderProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (message == WM_KEYDOWN && (wParam == VK_DELETE || wParam == VK_RETURN))
|
||||
{
|
||||
ScintillaEditView *pScint = (ScintillaEditView *)(::GetWindowLongPtr(hwnd, GWL_USERDATA));
|
||||
Finder *pFinder = (Finder *)(::GetWindowLongPtr(pScint->getHParent(), GWL_USERDATA));
|
||||
if (wParam == VK_RETURN)
|
||||
pFinder->GotoFoundLine();
|
||||
else // VK_DELETE
|
||||
pFinder->DeleteResult();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
// Call default (original) window procedure
|
||||
return CallWindowProc((WNDPROC) originalFinderProc, hwnd, message, wParam, lParam);
|
||||
}
|
||||
|
||||
void FindReplaceDlg::enableFindInFilesFunc()
|
||||
{
|
||||
enableFindInFilesControls();
|
||||
_currentStatus = FINDINFILES_DLG;
|
||||
gotoCorrectTab();
|
||||
::MoveWindow(::GetDlgItem(_hSelf, IDCANCEL), _findInFilesClosePos.left, _findInFilesClosePos.top, _findInFilesClosePos.right, _findInFilesClosePos.bottom, TRUE);
|
||||
TCHAR label[MAX_PATH];
|
||||
_tab.getCurrentTitle(label, MAX_PATH);
|
||||
::SetWindowText(_hSelf, label);
|
||||
setDefaultButton(IDD_FINDINFILES_FIND_BUTTON);
|
||||
}
|
||||
|
||||
void FindReplaceDlg::combo2ExtendedMode(int comboID)
|
||||
{
|
||||
HWND hFindCombo = ::GetDlgItem(_hSelf, comboID);
|
||||
@ -1832,6 +1927,128 @@ void FindReplaceDlg::combo2ExtendedMode(int comboID)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Finder::addSearchLine(const TCHAR *searchName)
|
||||
{
|
||||
generic_string str = TEXT("Search \"");
|
||||
str += searchName;
|
||||
str += TEXT("\"\r\n");
|
||||
|
||||
setFinderReadOnly(false);
|
||||
_scintView.addGenericText(str.c_str());
|
||||
setFinderReadOnly(true);
|
||||
_lastSearchHeaderPos = _scintView.execute(SCI_GETCURRENTPOS) - 2;
|
||||
|
||||
_pMainFoundInfos->push_back(EmptyFoundInfo);
|
||||
_pMainMarkings->push_back(EmptySearchResultMarking);
|
||||
}
|
||||
|
||||
void Finder::addFileNameTitle(const TCHAR * fileName)
|
||||
{
|
||||
generic_string str = TEXT(" ");
|
||||
str += fileName;
|
||||
str += TEXT("\r\n");
|
||||
|
||||
setFinderReadOnly(false);
|
||||
_scintView.addGenericText(str.c_str());
|
||||
setFinderReadOnly(true);
|
||||
_lastFileHeaderPos = _scintView.execute(SCI_GETCURRENTPOS) - 2;
|
||||
|
||||
_pMainFoundInfos->push_back(EmptyFoundInfo);
|
||||
_pMainMarkings->push_back(EmptySearchResultMarking);
|
||||
}
|
||||
|
||||
void Finder::addFileHitCount(int count)
|
||||
{
|
||||
TCHAR text[20];
|
||||
wsprintf(text, TEXT(" (%i hits)"), count);
|
||||
setFinderReadOnly(false);
|
||||
_scintView.insertGenericTextFrom(_lastFileHeaderPos, text);
|
||||
setFinderReadOnly(true);
|
||||
nFoundFiles++;
|
||||
}
|
||||
|
||||
void Finder::addSearchHitCount(int count)
|
||||
{
|
||||
TCHAR text[50];
|
||||
wsprintf(text, TEXT(" (%i hits in %i files)"), count, nFoundFiles);
|
||||
setFinderReadOnly(false);
|
||||
_scintView.insertGenericTextFrom(_lastSearchHeaderPos, text);
|
||||
setFinderReadOnly(true);
|
||||
}
|
||||
|
||||
|
||||
void Finder::add(FoundInfo fi, SearchResultMarking mi, const TCHAR* foundline, int lineNb)
|
||||
{
|
||||
_pMainFoundInfos->push_back(fi);
|
||||
generic_string str = TEXT("\tLine ");
|
||||
|
||||
TCHAR lnb[16];
|
||||
wsprintf(lnb, TEXT("%d"), lineNb);
|
||||
str += lnb;
|
||||
str += TEXT(": ");
|
||||
mi._start += str.length();
|
||||
mi._end += str.length();
|
||||
str += foundline;
|
||||
|
||||
if (str.length() >= SC_SEARCHRESULT_LINEBUFFERMAXLENGTH)
|
||||
{
|
||||
const TCHAR * endOfLongLine = TEXT("...\r\n");
|
||||
str = str.substr(0, SC_SEARCHRESULT_LINEBUFFERMAXLENGTH - lstrlen(endOfLongLine) - 1);
|
||||
str += endOfLongLine;
|
||||
}
|
||||
setFinderReadOnly(false);
|
||||
_scintView.addGenericText(str.c_str(), &mi._start, &mi._end);
|
||||
setFinderReadOnly(true);
|
||||
_pMainMarkings->push_back(mi);
|
||||
}
|
||||
|
||||
void Finder::removeAll()
|
||||
{
|
||||
_pMainFoundInfos->clear();
|
||||
_pMainMarkings->clear();
|
||||
setFinderReadOnly(false);
|
||||
_scintView.execute(SCI_CLEARALL);
|
||||
setFinderReadOnly(true);
|
||||
}
|
||||
|
||||
void Finder::beginNewFilesSearch()
|
||||
{
|
||||
_scintView.execute(SCI_SETLEXER, SCLEX_NULL);
|
||||
|
||||
_scintView.execute(SCI_SETCURRENTPOS, 0);
|
||||
_pMainFoundInfos = _pMainFoundInfos == &_foundInfos1 ? &_foundInfos2 : &_foundInfos1;
|
||||
_pMainMarkings = _pMainMarkings == &_markings1 ? &_markings2 : &_markings1;
|
||||
nFoundFiles = 0;
|
||||
|
||||
// fold all old searches (1st level only)
|
||||
_scintView.collapse(searchHeaderLevel - SC_FOLDLEVELBASE, fold_collapse);
|
||||
}
|
||||
|
||||
void Finder::finishFilesSearch(int count)
|
||||
{
|
||||
std::vector<FoundInfo>* _pOldFoundInfos;
|
||||
std::vector<SearchResultMarking>* _pOldMarkings;
|
||||
_pOldFoundInfos = _pMainFoundInfos == &_foundInfos1 ? &_foundInfos2 : &_foundInfos1;
|
||||
_pOldMarkings = _pMainMarkings == &_markings1 ? &_markings2 : &_markings1;
|
||||
|
||||
_pOldFoundInfos->insert(_pOldFoundInfos->begin(), _pMainFoundInfos->begin(), _pMainFoundInfos->end());
|
||||
_pOldMarkings->insert(_pOldMarkings->begin(), _pMainMarkings->begin(), _pMainMarkings->end());
|
||||
_pMainFoundInfos->clear();
|
||||
_pMainMarkings->clear();
|
||||
_pMainFoundInfos = _pOldFoundInfos;
|
||||
_pMainMarkings = _pOldMarkings;
|
||||
|
||||
_MarkingsStruct._length = _pMainMarkings->size();
|
||||
_MarkingsStruct._markings = &((*_pMainMarkings)[0]);
|
||||
|
||||
addSearchHitCount(count);
|
||||
_scintView.execute(SCI_SETSEL, 0, 0);
|
||||
|
||||
_scintView.execute(SCI_SETLEXER, SCLEX_SEARCHRESULT);
|
||||
}
|
||||
|
||||
|
||||
void Finder::setFinderStyle()
|
||||
{
|
||||
// Set global styles for the finder
|
||||
@ -1941,6 +2158,16 @@ BOOL CALLBACK Finder::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void FindIncrementDlg::init(HINSTANCE hInst, HWND hPere, FindReplaceDlg *pFRDlg, bool isRTL)
|
||||
{
|
||||
Window::init(hInst, hPere);
|
||||
if (!pFRDlg)
|
||||
throw int(9910);
|
||||
_pFRDlg = pFRDlg;
|
||||
create(IDD_INCREMENT_FIND, isRTL);
|
||||
_isRTL = isRTL;
|
||||
}
|
||||
|
||||
void FindIncrementDlg::destroy()
|
||||
{
|
||||
if (_pRebar)
|
||||
@ -2124,6 +2351,25 @@ void FindIncrementDlg::markSelectedTextInc(bool enable, FindOption *opt)
|
||||
_pFRDlg->markAllInc(text2Find, opt);
|
||||
}
|
||||
|
||||
void FindIncrementDlg::setFindStatus(FindStatus iStatus)
|
||||
{
|
||||
static TCHAR *findStatus[] = { TEXT(""), // FSFound
|
||||
TEXT("Phrase not found"), //FSNotFound
|
||||
TEXT("Reached top of page, continued from bottom"), // FSTopReached
|
||||
TEXT("Reached end of page, continued from top")}; // FSEndReached
|
||||
if (iStatus<0 || iStatus >= sizeof(findStatus)/sizeof(findStatus[0]))
|
||||
return; // out of range
|
||||
|
||||
_FindStatus = iStatus;
|
||||
|
||||
// get the HWND of the editor
|
||||
HWND hEditor = ::GetDlgItem(_hSelf, IDC_INCFINDTEXT);
|
||||
|
||||
// invalidate the editor rect
|
||||
::InvalidateRect(hEditor, NULL, TRUE);
|
||||
::SendDlgItemMessage(_hSelf, IDC_INCFINDSTATUS, WM_SETTEXT, 0, (LPARAM)findStatus[iStatus]);
|
||||
}
|
||||
|
||||
void FindIncrementDlg::addToRebar(ReBar * rebar)
|
||||
{
|
||||
if(_pRebar)
|
||||
|
@ -18,13 +18,17 @@
|
||||
#ifndef FIND_REPLACE_DLG_H
|
||||
#define FIND_REPLACE_DLG_H
|
||||
|
||||
#include "StaticDialog.h"
|
||||
#ifndef FINDREPLACE_DLG_H
|
||||
#include "FindReplaceDlg_rc.h"
|
||||
#include "Buffer.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "StatusBar.h"
|
||||
#include "DockingDlgInterface.h"
|
||||
#endif //FINDREPLACE_DLG_H
|
||||
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#include "ScintillaEditView.h"
|
||||
#endif //SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
#ifndef DOCKINGDLGINTERFACE_H
|
||||
#include "DockingDlgInterface.h"
|
||||
#endif //DOCKINGDLGINTERFACE_H
|
||||
|
||||
#define FIND_RECURSIVE 1
|
||||
#define FIND_INHIDDENDIR 2
|
||||
@ -102,121 +106,15 @@ public:
|
||||
_ppEditView = ppEditView;
|
||||
};
|
||||
|
||||
void addSearchLine(const TCHAR *searchName) {
|
||||
generic_string str = TEXT("Search \"");
|
||||
str += searchName;
|
||||
str += TEXT("\"\r\n");
|
||||
|
||||
setFinderReadOnly(false);
|
||||
_scintView.addGenericText(str.c_str());
|
||||
setFinderReadOnly(true);
|
||||
_lastSearchHeaderPos = _scintView.execute(SCI_GETCURRENTPOS) - 2;
|
||||
|
||||
_pMainFoundInfos->push_back(EmptyFoundInfo);
|
||||
_pMainMarkings->push_back(EmptySearchResultMarking);
|
||||
};
|
||||
|
||||
void addFileNameTitle(const TCHAR * fileName) {
|
||||
generic_string str = TEXT(" ");
|
||||
str += fileName;
|
||||
str += TEXT("\r\n");
|
||||
|
||||
setFinderReadOnly(false);
|
||||
_scintView.addGenericText(str.c_str());
|
||||
setFinderReadOnly(true);
|
||||
_lastFileHeaderPos = _scintView.execute(SCI_GETCURRENTPOS) - 2;
|
||||
|
||||
_pMainFoundInfos->push_back(EmptyFoundInfo);
|
||||
_pMainMarkings->push_back(EmptySearchResultMarking);
|
||||
};
|
||||
|
||||
void addFileHitCount(int count) {
|
||||
TCHAR text[20];
|
||||
wsprintf(text, TEXT(" (%i hits)"), count);
|
||||
setFinderReadOnly(false);
|
||||
_scintView.insertGenericTextFrom(_lastFileHeaderPos, text);
|
||||
setFinderReadOnly(true);
|
||||
nFoundFiles++;
|
||||
};
|
||||
|
||||
void addSearchHitCount(int count) {
|
||||
TCHAR text[50];
|
||||
wsprintf(text, TEXT(" (%i hits in %i files)"), count, nFoundFiles);
|
||||
setFinderReadOnly(false);
|
||||
_scintView.insertGenericTextFrom(_lastSearchHeaderPos, text);
|
||||
setFinderReadOnly(true);
|
||||
};
|
||||
|
||||
|
||||
void add(FoundInfo fi, SearchResultMarking mi, const TCHAR* foundline, int lineNb) {
|
||||
_pMainFoundInfos->push_back(fi);
|
||||
generic_string str = TEXT("\tLine ");
|
||||
|
||||
TCHAR lnb[16];
|
||||
wsprintf(lnb, TEXT("%d"), lineNb);
|
||||
str += lnb;
|
||||
str += TEXT(": ");
|
||||
mi._start += str.length();
|
||||
mi._end += str.length();
|
||||
str += foundline;
|
||||
|
||||
if (str.length() >= SC_SEARCHRESULT_LINEBUFFERMAXLENGTH)
|
||||
{
|
||||
const TCHAR * endOfLongLine = TEXT("...\r\n");
|
||||
str = str.substr(0, SC_SEARCHRESULT_LINEBUFFERMAXLENGTH - lstrlen(endOfLongLine) - 1);
|
||||
str += endOfLongLine;
|
||||
}
|
||||
setFinderReadOnly(false);
|
||||
_scintView.addGenericText(str.c_str(), &mi._start, &mi._end);
|
||||
setFinderReadOnly(true);
|
||||
_pMainMarkings->push_back(mi);
|
||||
};
|
||||
|
||||
void addSearchLine(const TCHAR *searchName);
|
||||
void addFileNameTitle(const TCHAR * fileName);
|
||||
void addFileHitCount(int count);
|
||||
void addSearchHitCount(int count);
|
||||
void add(FoundInfo fi, SearchResultMarking mi, const TCHAR* foundline, int lineNb);
|
||||
void setFinderStyle();
|
||||
|
||||
void removeAll() {
|
||||
_pMainFoundInfos->clear();
|
||||
_pMainMarkings->clear();
|
||||
setFinderReadOnly(false);
|
||||
_scintView.execute(SCI_CLEARALL);
|
||||
setFinderReadOnly(true);
|
||||
};
|
||||
|
||||
void beginNewFilesSearch() {
|
||||
_scintView.execute(SCI_SETLEXER, SCLEX_NULL);
|
||||
|
||||
_scintView.execute(SCI_SETCURRENTPOS, 0);
|
||||
_pMainFoundInfos = _pMainFoundInfos == &_foundInfos1 ? &_foundInfos2 : &_foundInfos1;
|
||||
_pMainMarkings = _pMainMarkings == &_markings1 ? &_markings2 : &_markings1;
|
||||
nFoundFiles = 0;
|
||||
|
||||
// fold all old searches (1st level only)
|
||||
_scintView.collapse(searchHeaderLevel - SC_FOLDLEVELBASE, fold_collapse);
|
||||
};
|
||||
|
||||
void finishFilesSearch(int count) {
|
||||
std::vector<FoundInfo>* _pOldFoundInfos;
|
||||
std::vector<SearchResultMarking>* _pOldMarkings;
|
||||
_pOldFoundInfos = _pMainFoundInfos == &_foundInfos1 ? &_foundInfos2 : &_foundInfos1;
|
||||
_pOldMarkings = _pMainMarkings == &_markings1 ? &_markings2 : &_markings1;
|
||||
|
||||
_pOldFoundInfos->insert(_pOldFoundInfos->begin(), _pMainFoundInfos->begin(), _pMainFoundInfos->end());
|
||||
_pOldMarkings->insert(_pOldMarkings->begin(), _pMainMarkings->begin(), _pMainMarkings->end());
|
||||
_pMainFoundInfos->clear();
|
||||
_pMainMarkings->clear();
|
||||
_pMainFoundInfos = _pOldFoundInfos;
|
||||
_pMainMarkings = _pOldMarkings;
|
||||
|
||||
_MarkingsStruct._length = _pMainMarkings->size();
|
||||
_MarkingsStruct._markings = &((*_pMainMarkings)[0]);
|
||||
|
||||
addSearchHitCount(count);
|
||||
_scintView.execute(SCI_SETSEL, 0, 0);
|
||||
|
||||
_scintView.execute(SCI_SETLEXER, SCLEX_SEARCHRESULT);
|
||||
};
|
||||
|
||||
|
||||
void removeAll();
|
||||
void beginNewFilesSearch();
|
||||
void finishFilesSearch(int count);
|
||||
void gotoNextFoundResult(int direction);
|
||||
void GotoFoundLine();
|
||||
void DeleteResult();
|
||||
@ -253,7 +151,7 @@ private:
|
||||
};
|
||||
|
||||
enum FindStatus { FSFound, FSNotFound, FSTopReached, FSEndReached};
|
||||
//FindReplaceDialog: standard find/replace window
|
||||
|
||||
class FindReplaceDlg : public StaticDialog
|
||||
{
|
||||
friend class FindIncrementDlg;
|
||||
@ -263,12 +161,7 @@ public :
|
||||
_uniFileName = new char[(_fileNameLenMax + 3) * 2];
|
||||
_winVer = (NppParameters::getInstance())->getWinVersion();
|
||||
};
|
||||
~FindReplaceDlg() {
|
||||
_tab.destroy();
|
||||
if (_pFinder)
|
||||
delete _pFinder;
|
||||
delete [] _uniFileName;
|
||||
};
|
||||
~FindReplaceDlg();
|
||||
|
||||
void init(HINSTANCE hInst, HWND hPere, ScintillaEditView **ppEditView) {
|
||||
Window::init(hInst, hPere);
|
||||
@ -279,35 +172,9 @@ public :
|
||||
|
||||
virtual void create(int dialogID, bool isRTL = false);
|
||||
|
||||
void initOptionsFromDlg() {
|
||||
_options._isWholeWord = isCheckedOrNot(IDWHOLEWORD);
|
||||
_options._isMatchCase = isCheckedOrNot(IDMATCHCASE);
|
||||
_options._searchType = isCheckedOrNot(IDREGEXP)?FindRegex:isCheckedOrNot(IDEXTENDED)?FindExtended:FindNormal;
|
||||
_options._isWrapAround = isCheckedOrNot(IDWRAP);
|
||||
_isInSelection = isCheckedOrNot(IDC_IN_SELECTION_CHECK);
|
||||
void initOptionsFromDlg();
|
||||
|
||||
_doPurge = isCheckedOrNot(IDC_PURGE_CHECK);
|
||||
_doMarkLine = isCheckedOrNot(IDC_MARKLINE_CHECK);
|
||||
_doStyleFoundToken = isCheckedOrNot(IDC_STYLEFOUND_CHECK);
|
||||
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDCMARKALL), (_doMarkLine || _doStyleFoundToken));
|
||||
};
|
||||
|
||||
void doDialog(DIALOG_TYPE whichType, bool isRTL = false) {
|
||||
if (!isCreated())
|
||||
{
|
||||
create(IDD_FIND_REPLACE_DLG, isRTL);
|
||||
_isRTL = isRTL;
|
||||
}
|
||||
|
||||
if (whichType == FINDINFILES_DLG)
|
||||
enableFindInFilesFunc();
|
||||
else
|
||||
enableReplaceFunc(whichType == REPLACE_DLG);
|
||||
|
||||
::SetFocus(::GetDlgItem(_hSelf, IDFINDWHAT));
|
||||
display();
|
||||
};
|
||||
void doDialog(DIALOG_TYPE whichType, bool isRTL = false);
|
||||
bool processFindNext(const TCHAR *txt2find, FindOption *options = NULL, FindStatus *oFindStatus = NULL);
|
||||
bool processReplace(const TCHAR *txt2find, const TCHAR *txt2replace, FindOption *options = NULL);
|
||||
|
||||
@ -320,17 +187,8 @@ public :
|
||||
int processRange(ProcessOperation op, const TCHAR *txt2find, const TCHAR *txt2replace, int startRange, int endRange, const TCHAR *fileName = NULL, FindOption *opt = NULL, int colourStyleID = -1);
|
||||
void replaceAllInOpenedDocs();
|
||||
void findAllIn(InWhat op);
|
||||
void setSearchText(TCHAR * txt2find);
|
||||
|
||||
void setSearchText(TCHAR * txt2find) {
|
||||
HWND hCombo = ::GetDlgItem(_hSelf, IDFINDWHAT);
|
||||
if (txt2find && txt2find[0])
|
||||
{
|
||||
// We got a valid search string
|
||||
::SendMessage(hCombo, CB_SETCURSEL, (WPARAM)-1, 0); // remove selection - to allow using down arrow to get to last searched word
|
||||
::SetDlgItemText(_hSelf, IDFINDWHAT, txt2find);
|
||||
}
|
||||
::SendMessage(hCombo, CB_SETEDITSEL, 0, MAKELPARAM(0, -1)); // select all text - fast edit
|
||||
}
|
||||
void gotoNextFoundResult(int direction = 0) {if (_pFinder) _pFinder->gotoNextFoundResult(direction);};
|
||||
|
||||
void putFindResult(int result) {
|
||||
@ -344,18 +202,7 @@ public :
|
||||
doDialog(FINDINFILES_DLG);
|
||||
};
|
||||
|
||||
void setFindInFilesDirFilter(const TCHAR *dir, const TCHAR *filters) {
|
||||
if (dir)
|
||||
{
|
||||
_directory = dir;
|
||||
::SetDlgItemText(_hSelf, IDD_FINDINFILES_DIR_COMBO, dir);
|
||||
}
|
||||
if (filters)
|
||||
{
|
||||
_filters = filters;
|
||||
::SetDlgItemText(_hSelf, IDD_FINDINFILES_FILTERS_COMBO, filters);
|
||||
}
|
||||
};
|
||||
void setFindInFilesDirFilter(const TCHAR *dir, const TCHAR *filters);
|
||||
|
||||
generic_string getText2search() const {
|
||||
return getTextFromCombo(::GetDlgItem(_hSelf, IDFINDWHAT));
|
||||
@ -413,22 +260,8 @@ protected :
|
||||
static LONG originalFinderProc;
|
||||
|
||||
// Window procedure for the finder
|
||||
static LRESULT FAR PASCAL finderProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (message == WM_KEYDOWN && (wParam == VK_DELETE || wParam == VK_RETURN))
|
||||
{
|
||||
ScintillaEditView *pScint = (ScintillaEditView *)(::GetWindowLongPtr(hwnd, GWL_USERDATA));
|
||||
Finder *pFinder = (Finder *)(::GetWindowLongPtr(pScint->getHParent(), GWL_USERDATA));
|
||||
if (wParam == VK_RETURN)
|
||||
pFinder->GotoFoundLine();
|
||||
else // VK_DELETE
|
||||
pFinder->DeleteResult();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
// Call default (original) window procedure
|
||||
return CallWindowProc((WNDPROC) originalFinderProc, hwnd, message, wParam, lParam);
|
||||
}
|
||||
static LRESULT FAR PASCAL finderProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
void combo2ExtendedMode(int comboID);
|
||||
|
||||
private :
|
||||
@ -463,57 +296,12 @@ private :
|
||||
|
||||
void enableReplaceFunc(bool isEnable);
|
||||
void enableFindInFilesControls(bool isEnable = true);
|
||||
void enableFindInFilesFunc() {
|
||||
enableFindInFilesControls();
|
||||
void enableFindInFilesFunc();
|
||||
|
||||
_currentStatus = FINDINFILES_DLG;
|
||||
gotoCorrectTab();
|
||||
::MoveWindow(::GetDlgItem(_hSelf, IDCANCEL), _findInFilesClosePos.left, _findInFilesClosePos.top, _findInFilesClosePos.right, _findInFilesClosePos.bottom, TRUE);
|
||||
|
||||
TCHAR label[MAX_PATH];
|
||||
_tab.getCurrentTitle(label, MAX_PATH);
|
||||
::SetWindowText(_hSelf, label);
|
||||
|
||||
setDefaultButton(IDD_FINDINFILES_FIND_BUTTON);
|
||||
void setDefaultButton(int nID) {
|
||||
SendMessage(_hSelf, DM_SETDEFID, (WPARAM)nID, 0L);
|
||||
};
|
||||
|
||||
//////////////////
|
||||
|
||||
void setDefaultButton(int nID)
|
||||
{
|
||||
#if 0
|
||||
// There is a problem when you:
|
||||
// 1. open the find dialog
|
||||
// 2. press the "close" buttom
|
||||
// 3. open it again
|
||||
// 4. search for a non existing text
|
||||
// 5. when the "Can't find the text:" messagebox appears, hit "OK"
|
||||
// 6. now, the "Close" button looks like the default button. (but it only looks like that)
|
||||
// if you hit "Enter" the "Find" button will be "pressed".
|
||||
// I thought this code might fix this but it doesn't
|
||||
// See: http://msdn.microsoft.com/en-us/library/ms645413(VS.85).aspx
|
||||
|
||||
HWND pButton;
|
||||
DWORD dwDefInfo = SendMessage(_hSelf, DM_GETDEFID, 0, 0L);
|
||||
if (HIWORD(dwDefInfo) == DC_HASDEFID && (int)LOWORD(dwDefInfo) != nID)
|
||||
{
|
||||
// Reset 'DefButton' style
|
||||
pButton = GetDlgItem(_hSelf, (int)LOWORD(dwDefInfo));
|
||||
if (pButton)
|
||||
SendMessage(pButton, BM_SETSTYLE, LOWORD(BS_PUSHBUTTON | BS_RIGHT ), MAKELPARAM(TRUE, 0));
|
||||
}
|
||||
|
||||
SendMessage(_hSelf, DM_SETDEFID, (WPARAM)nID, 0L);
|
||||
pButton = GetDlgItem(_hSelf, nID);
|
||||
if (pButton)
|
||||
{
|
||||
SendMessage(pButton, BM_SETSTYLE, LOWORD(BS_DEFPUSHBUTTON), MAKELPARAM(TRUE, 0));
|
||||
}
|
||||
#endif
|
||||
SendMessage(_hSelf, DM_SETDEFID, (WPARAM)nID, 0L);
|
||||
}
|
||||
////////////////////////
|
||||
|
||||
void gotoCorrectTab() {
|
||||
int currentIndex = _tab.getCurrentTabIndex();
|
||||
if (currentIndex != _currentStatus)
|
||||
@ -540,14 +328,7 @@ class FindIncrementDlg : public StaticDialog
|
||||
{
|
||||
public :
|
||||
FindIncrementDlg() : _pFRDlg(NULL), _pRebar(NULL), _FindStatus(FSFound) {};
|
||||
void init(HINSTANCE hInst, HWND hPere, FindReplaceDlg *pFRDlg, bool isRTL = false) {
|
||||
Window::init(hInst, hPere);
|
||||
if (!pFRDlg)
|
||||
throw int(9910);
|
||||
_pFRDlg = pFRDlg;
|
||||
create(IDD_INCREMENT_FIND, isRTL);
|
||||
_isRTL = isRTL;
|
||||
};
|
||||
void init(HINSTANCE hInst, HWND hPere, FindReplaceDlg *pFRDlg, bool isRTL = false);
|
||||
virtual void destroy();
|
||||
virtual void display(bool toShow = true) const;
|
||||
#ifdef UNICODE
|
||||
@ -576,23 +357,7 @@ public :
|
||||
};
|
||||
#endif
|
||||
|
||||
void setFindStatus(FindStatus iStatus) {
|
||||
static TCHAR *findStatus[] = { TEXT(""), // FSFound
|
||||
TEXT("Phrase not found"), //FSNotFound
|
||||
TEXT("Reached top of page, continued from bottom"), // FSTopReached
|
||||
TEXT("Reached end of page, continued from top")}; // FSEndReached
|
||||
if (iStatus<0 || iStatus >= sizeof(findStatus)/sizeof(findStatus[0]))
|
||||
return; // out of range
|
||||
|
||||
_FindStatus = iStatus;
|
||||
|
||||
// get the HWND of the editor
|
||||
HWND hEditor = ::GetDlgItem(_hSelf, IDC_INCFINDTEXT);
|
||||
|
||||
// invalidate the editor rect
|
||||
::InvalidateRect(hEditor, NULL, TRUE);
|
||||
::SendDlgItemMessage(_hSelf, IDC_INCFINDSTATUS, WM_SETTEXT, 0, (LPARAM)findStatus[iStatus]);
|
||||
}
|
||||
void setFindStatus(FindStatus iStatus);
|
||||
|
||||
FindStatus getFindStatus() {
|
||||
return _FindStatus;
|
||||
|
@ -1,4 +1,22 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef FINDREPLACE_DLG_H
|
||||
#define FINDREPLACE_DLG_H
|
||||
|
||||
#define IDD_FIND_REPLACE_DLG 1600
|
||||
#define IDFINDWHAT 1601
|
||||
@ -74,3 +92,5 @@
|
||||
#define IDC_TRANSPARENT_CHECK 1686
|
||||
#define IDC_TRANSPARENT_LOSSFOCUS_RADIO 1687
|
||||
#define IDC_TRANSPARENT_ALWAYS_RADIO 1688
|
||||
|
||||
#endif //FINDREPLACE_DLG_H
|
||||
|
@ -15,6 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "FunctionCallTip.h"
|
||||
|
||||
|
||||
|
@ -18,7 +18,9 @@
|
||||
#ifndef FUNCTIONCALLTIP_H
|
||||
#define FUNCTIONCALLTIP_H
|
||||
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#include "ScintillaEditView.h"
|
||||
#endif //SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
typedef std::vector<const TCHAR *> stringVec;
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "GoToLineDlg.h"
|
||||
|
||||
|
||||
@ -100,4 +101,22 @@ BOOL CALLBACK GoToLineDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
}
|
||||
}
|
||||
|
||||
void GoToLineDlg::updateLinesNumbers() const
|
||||
{
|
||||
unsigned int current = 0;
|
||||
unsigned int limit = 0;
|
||||
|
||||
if (_mode == go2line)
|
||||
{
|
||||
current = (unsigned int)((*_ppEditView)->getCurrentLineNumber() + 1);
|
||||
limit = (unsigned int)((*_ppEditView)->execute(SCI_GETLINECOUNT));
|
||||
}
|
||||
else
|
||||
{
|
||||
current = (unsigned int)(*_ppEditView)->execute(SCI_GETCURRENTPOS);
|
||||
limit = (unsigned int)((*_ppEditView)->getCurrentDocLen() - 1);
|
||||
}
|
||||
::SetDlgItemInt(_hSelf, ID_CURRLINE, current, FALSE);
|
||||
::SetDlgItemInt(_hSelf, ID_LASTLINE, limit, FALSE);
|
||||
}
|
||||
|
||||
|
@ -18,10 +18,13 @@
|
||||
#ifndef GOTILINE_DLG_H
|
||||
#define GOTILINE_DLG_H
|
||||
|
||||
#include "StaticDialog.h"
|
||||
#include "..\resource.h"
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#include "ScintillaEditView.h"
|
||||
#endif //SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
class GoToLineDlg : public StaticDialog
|
||||
{
|
||||
@ -60,23 +63,7 @@ private :
|
||||
|
||||
ScintillaEditView **_ppEditView;
|
||||
|
||||
void updateLinesNumbers() const {
|
||||
unsigned int current = 0;
|
||||
unsigned int limit = 0;
|
||||
|
||||
if (_mode == go2line)
|
||||
{
|
||||
current = (unsigned int)((*_ppEditView)->getCurrentLineNumber() + 1);
|
||||
limit = (unsigned int)((*_ppEditView)->execute(SCI_GETLINECOUNT));
|
||||
}
|
||||
else
|
||||
{
|
||||
current = (unsigned int)(*_ppEditView)->execute(SCI_GETCURRENTPOS);
|
||||
limit = (unsigned int)((*_ppEditView)->getCurrentDocLen() - 1);
|
||||
}
|
||||
::SetDlgItemInt(_hSelf, ID_CURRLINE, current, FALSE);
|
||||
::SetDlgItemInt(_hSelf, ID_LASTLINE, limit, FALSE);
|
||||
};
|
||||
void updateLinesNumbers() const;
|
||||
|
||||
void cleanLineEdit() const {
|
||||
::SetDlgItemText(_hSelf, ID_GOLINE_EDIT, TEXT(""));
|
||||
|
@ -15,7 +15,10 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Printer.h"
|
||||
#include "RunDlg.h"
|
||||
//#include "Parameters.h"
|
||||
|
||||
void replaceStr(generic_string & str, generic_string str2BeReplaced, generic_string replacement)
|
||||
{
|
||||
|
@ -18,10 +18,10 @@
|
||||
#ifndef PRINTER_H
|
||||
#define PRINTER_H
|
||||
|
||||
#include <windows.h>
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#include "ScintillaEditView.h"
|
||||
#include "RunDlg.h"
|
||||
#include "Parameters.h"
|
||||
#endif //SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
|
||||
struct RangeToFormat {
|
||||
HDC hdc;
|
||||
|
55
PowerEditor/src/ScitillaComponent/ScintillaCtrls.cpp
Normal file
55
PowerEditor/src/ScitillaComponent/ScintillaCtrls.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "ScintillaCtrls.h"
|
||||
#include "ScintillaEditView.h"
|
||||
|
||||
HWND ScintillaCtrls::createSintilla(HWND hParent)
|
||||
{
|
||||
_hParent = hParent;
|
||||
ScintillaEditView *scint = new ScintillaEditView;
|
||||
scint->init(_hInst, _hParent);
|
||||
_scintVector.push_back(scint);
|
||||
return scint->getHSelf();
|
||||
}
|
||||
|
||||
bool ScintillaCtrls::destroyScintilla(HWND handle2Destroy)
|
||||
{
|
||||
for (size_t i = 0 ; i < _scintVector.size() ; i++)
|
||||
{
|
||||
if (_scintVector[i]->getHSelf() == handle2Destroy)
|
||||
{
|
||||
_scintVector[i]->destroy();
|
||||
delete _scintVector[i];
|
||||
|
||||
vector<ScintillaEditView *>::iterator it2delete = _scintVector.begin()+ i;
|
||||
_scintVector.erase(it2delete);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void ScintillaCtrls::destroy()
|
||||
{
|
||||
for (size_t i = 0 ; i < _scintVector.size() ; i++)
|
||||
{
|
||||
_scintVector[i]->destroy();
|
||||
delete _scintVector[i];
|
||||
}
|
||||
}
|
40
PowerEditor/src/ScitillaComponent/ScintillaCtrls.h
Normal file
40
PowerEditor/src/ScitillaComponent/ScintillaCtrls.h
Normal file
@ -0,0 +1,40 @@
|
||||
//this file is part of notepad++
|
||||
//Copyright (C)2003 Don HO <donho@altern.org>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef SCINTILLACTRLS_H
|
||||
#define SCINTILLACTRLS_H
|
||||
|
||||
class ScintillaEditView;
|
||||
|
||||
class ScintillaCtrls {
|
||||
public :
|
||||
void init(HINSTANCE hInst, HWND hNpp) {
|
||||
_hInst = hInst;
|
||||
_hParent = hNpp;
|
||||
};
|
||||
|
||||
HWND createSintilla(HWND hParent);
|
||||
bool destroyScintilla(HWND handle2Destroy);
|
||||
void destroy();
|
||||
|
||||
private:
|
||||
std::vector<ScintillaEditView *> _scintVector;
|
||||
HINSTANCE _hInst;
|
||||
HWND _hParent;
|
||||
};
|
||||
|
||||
#endif //SCINTILLACTRLS_H
|
@ -16,8 +16,7 @@
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
#include <ShellAPI.h>
|
||||
#include "precompiledHeaders.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "Parameters.h"
|
||||
|
||||
@ -1363,9 +1362,6 @@ void ScintillaEditView::restoreCurrentPos()
|
||||
}
|
||||
|
||||
void ScintillaEditView::restyleBuffer() {
|
||||
//int end = execute(SCI_GETENDSTYLED); //style up to the last styled byte.
|
||||
//if (end == 0)
|
||||
// return;
|
||||
execute(SCI_CLEARDOCUMENTSTYLE);
|
||||
execute(SCI_COLOURISE, 0, -1);
|
||||
_currentBuffer->setNeedsLexing(false);
|
||||
@ -1447,6 +1443,7 @@ void ScintillaEditView::activateBuffer(BufferID buffer)
|
||||
runMarkers(true, 0, true, false);
|
||||
return; //all done
|
||||
}
|
||||
|
||||
void ScintillaEditView::bufferUpdated(Buffer * buffer, int mask) {
|
||||
//actually only care about language and lexing etc
|
||||
if (buffer == _currentBuffer)
|
||||
|
@ -18,18 +18,38 @@
|
||||
#ifndef SCINTILLA_EDIT_VIEW_H
|
||||
#define SCINTILLA_EDIT_VIEW_H
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
#include "Window.h"
|
||||
#ifndef SCINTILLA_H
|
||||
#include "Scintilla.h"
|
||||
#endif //SCINTILLA_H
|
||||
|
||||
#ifndef SCINTILLA_REF_H
|
||||
#include "ScintillaRef.h"
|
||||
#endif //SCINTILLA_REF_H
|
||||
|
||||
#ifndef SCILEXER_H
|
||||
#include "SciLexer.h"
|
||||
#endif //SCILEXER_H
|
||||
|
||||
#ifndef BUFFER_H
|
||||
#include "Buffer.h"
|
||||
#endif //BUFFER_H
|
||||
|
||||
#ifndef COLORS_H
|
||||
#include "colors.h"
|
||||
#endif //COLORS_H
|
||||
|
||||
#ifndef USER_DEFINE_H
|
||||
#include "UserDefineDialog.h"
|
||||
#endif //USER_DEFINE_H
|
||||
|
||||
#ifndef XPM_ICON_H
|
||||
#include "xpm_icons.h"
|
||||
#endif //XPM_ICON_H
|
||||
/*
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
*/
|
||||
|
||||
#ifndef WM_MOUSEWHEEL
|
||||
#define WM_MOUSEWHEEL 0x020A
|
||||
|
@ -15,8 +15,10 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "SmartHighlighter.h"
|
||||
//#include "Parameters.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "FindReplaceDlg.h"
|
||||
|
||||
#define MAXLINEHIGHLIGHT 400 //prevent highlighter from doing too much work when a lot is visible
|
||||
|
||||
|
@ -18,8 +18,8 @@
|
||||
#ifndef SMARTHIGHLIGHTER_H
|
||||
#define SMARTHIGHLIGHTER_H
|
||||
|
||||
#include "ScintillaEditView.h"
|
||||
#include "FindReplaceDlg.h"
|
||||
class ScintillaEditView;
|
||||
class FindReplaceDlg;
|
||||
|
||||
class SmartHighlighter {
|
||||
public:
|
||||
|
@ -15,6 +15,8 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
|
||||
#include "UserDefineDialog.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#include "Parameters.h"
|
||||
@ -68,14 +70,6 @@ void SharedParametersDialog::initControls()
|
||||
int k = ::SendMessage(hFontNameCombo, CB_ADDSTRING, 0, (LPARAM)fontlist[j].c_str());
|
||||
::SendMessage(hFontNameCombo, CB_SETITEMDATA, k, (LPARAM)fontlist[j].c_str());
|
||||
}
|
||||
/*
|
||||
ETDTProc enableDlgTheme = (ETDTProc)pNppParam->getEnableThemeDlgTexture();
|
||||
if (enableDlgTheme)
|
||||
{
|
||||
enableDlgTheme(_hSelf, ETDT_ENABLETAB);
|
||||
redraw();
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@ -155,6 +149,39 @@ void FolderStyleDialog::setKeywords2List(int ctrlID)
|
||||
::GetDlgItemText(_hSelf, ctrlID, _pUserLang->_keywordLists[index], max_char);
|
||||
}
|
||||
|
||||
int FolderStyleDialog::getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const
|
||||
{
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_DEFAULT_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_DEFAULT_INDEX;
|
||||
|
||||
case IDC_DEFAULT_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_DEFAULT_INDEX;
|
||||
|
||||
case IDC_FOLDEROPEN_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_BLOCK_OPEN_INDEX;
|
||||
|
||||
case IDC_FOLDEROPEN_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_BLOCK_OPEN_INDEX;
|
||||
|
||||
case IDC_FOLDERCLOSE_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_BLOCK_CLOSE_INDEX;
|
||||
|
||||
case IDC_FOLDERCLOSE_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_BLOCK_CLOSE_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CALLBACK SharedParametersDialog::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (Message)
|
||||
@ -438,6 +465,47 @@ int KeyWordsStyleDialog::getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPick
|
||||
return -1;
|
||||
}
|
||||
|
||||
int KeyWordsStyleDialog::getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const
|
||||
{
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_KEYWORD1_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD1_INDEX;
|
||||
|
||||
case IDC_KEYWORD1_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD1_INDEX;
|
||||
|
||||
case IDC_KEYWORD2_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD2_INDEX;
|
||||
|
||||
case IDC_KEYWORD2_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD2_INDEX;
|
||||
|
||||
case IDC_KEYWORD3_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD3_INDEX;
|
||||
|
||||
case IDC_KEYWORD3_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD3_INDEX;
|
||||
|
||||
case IDC_KEYWORD4_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD4_INDEX;
|
||||
|
||||
case IDC_KEYWORD4_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD4_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int KeyWordsStyleDialog::getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const
|
||||
{
|
||||
switch (ctrlID)
|
||||
@ -606,6 +674,40 @@ int CommentStyleDialog::getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicke
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int CommentStyleDialog::getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const
|
||||
{
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_COMMENT_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_COMMENT_INDEX;
|
||||
|
||||
case IDC_COMMENT_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_COMMENT_INDEX;
|
||||
|
||||
case IDC_COMMENTLINE_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_COMMENTLINE_INDEX;
|
||||
|
||||
case IDC_COMMENTLINE_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_COMMENTLINE_INDEX;
|
||||
|
||||
case IDC_NUMBER_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_NUMBER_INDEX;
|
||||
|
||||
case IDC_NUMBER_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_NUMBER_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int CommentStyleDialog::getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const
|
||||
{
|
||||
switch (ctrlID)
|
||||
@ -767,6 +869,40 @@ int SymbolsStyleDialog::getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicke
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int SymbolsStyleDialog::getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const
|
||||
{
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_SYMBOL_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_OPERATOR_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_OPERATOR_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONT2_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_DELIM2_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONTSIZE2_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_DELIM2_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONT3_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_DELIM3_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONTSIZE3_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_DELIM3_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
void SymbolsStyleDialog::symbolAction(bool action)
|
||||
{
|
||||
int id2Add, id2Remove;
|
||||
@ -1608,3 +1744,43 @@ BOOL CALLBACK UserDefineDialog::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CALLBACK StringDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
|
||||
switch (Message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
::SetWindowText(_hSelf, _title.c_str());
|
||||
::SetDlgItemText(_hSelf, IDC_STRING_STATIC, _static.c_str());
|
||||
::SetDlgItemText(_hSelf, IDC_STRING_EDIT, _textValue.c_str());
|
||||
if (_txtLen)
|
||||
::SendDlgItemMessage(_hSelf, IDC_STRING_EDIT, EM_SETLIMITTEXT, _txtLen, 0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND :
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case IDOK :
|
||||
{
|
||||
::GetDlgItemText(_hSelf, IDC_STRING_EDIT, (LPTSTR)_textValue.c_str(), 256);
|
||||
::EndDialog(_hSelf, int(_textValue.c_str()));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case IDCANCEL :
|
||||
::EndDialog(_hSelf, 0);
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
default :
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -20,17 +20,23 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef USER_DEFINE_H
|
||||
#define USER_DEFINE_H
|
||||
|
||||
#include <string>
|
||||
#include <shlwapi.h>
|
||||
|
||||
#ifndef USERDEFINE_RC_H
|
||||
#include "UserDefineResource.h"
|
||||
#endif //USERDEFINE_RC_H
|
||||
|
||||
#ifndef CONTROLS_TAB_H
|
||||
#include "ControlsTab.h"
|
||||
#endif //CONTROLS_TAB_H
|
||||
|
||||
#ifndef COLOUR_PICKER_H
|
||||
#include "ColourPicker.h"
|
||||
#include "UserDefineLangReference.h"
|
||||
//#include "Parameters.h"
|
||||
#endif //COLOUR_PICKER_H
|
||||
|
||||
#ifndef PARAMETERS_H
|
||||
#include "Parameters.h"
|
||||
#endif //PARAMETERS_H
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
static int min(int a, int b) {
|
||||
return (a<b)?a:b;
|
||||
};
|
||||
@ -38,8 +44,8 @@ static int min(int a, int b) {
|
||||
static int max(int a, int b) {
|
||||
return (a>b)?a:b;
|
||||
};
|
||||
|
||||
#endif //__GNUC__
|
||||
|
||||
class ScintillaEditView;
|
||||
class UserLangContainer;
|
||||
struct Style;
|
||||
@ -128,37 +134,7 @@ public:
|
||||
protected :
|
||||
void setKeywords2List(int ctrlID);
|
||||
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const {
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_DEFAULT_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_DEFAULT_INDEX;
|
||||
|
||||
case IDC_DEFAULT_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_DEFAULT_INDEX;
|
||||
|
||||
case IDC_FOLDEROPEN_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_BLOCK_OPEN_INDEX;
|
||||
|
||||
case IDC_FOLDEROPEN_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_BLOCK_OPEN_INDEX;
|
||||
|
||||
case IDC_FOLDERCLOSE_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_BLOCK_CLOSE_INDEX;
|
||||
|
||||
case IDC_FOLDERCLOSE_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_BLOCK_CLOSE_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const;
|
||||
int getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const;
|
||||
int getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const;
|
||||
};
|
||||
@ -174,45 +150,7 @@ protected :
|
||||
void setKeywords2List(int id);
|
||||
|
||||
// SEE @REF #01
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const {
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_KEYWORD1_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD1_INDEX;
|
||||
|
||||
case IDC_KEYWORD1_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD1_INDEX;
|
||||
|
||||
case IDC_KEYWORD2_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD2_INDEX;
|
||||
|
||||
case IDC_KEYWORD2_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD2_INDEX;
|
||||
|
||||
case IDC_KEYWORD3_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD3_INDEX;
|
||||
|
||||
case IDC_KEYWORD3_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD3_INDEX;
|
||||
|
||||
case IDC_KEYWORD4_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_WORD4_INDEX;
|
||||
|
||||
case IDC_KEYWORD4_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_WORD4_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const;
|
||||
int getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const;
|
||||
int getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const;
|
||||
};
|
||||
@ -227,38 +165,7 @@ protected :
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
void setKeywords2List(int id);
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const {
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_COMMENT_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_COMMENT_INDEX;
|
||||
|
||||
case IDC_COMMENT_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_COMMENT_INDEX;
|
||||
|
||||
case IDC_COMMENTLINE_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_COMMENTLINE_INDEX;
|
||||
|
||||
case IDC_COMMENTLINE_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_COMMENTLINE_INDEX;
|
||||
|
||||
case IDC_NUMBER_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_NUMBER_INDEX;
|
||||
|
||||
case IDC_NUMBER_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_NUMBER_INDEX;
|
||||
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const;
|
||||
|
||||
int getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const;
|
||||
int getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const;
|
||||
@ -278,37 +185,7 @@ public :
|
||||
protected :
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
void setKeywords2List(int) {};
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const {
|
||||
switch (ctrlID)
|
||||
{
|
||||
case IDC_SYMBOL_FONT_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_OPERATOR_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONTSIZE_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_OPERATOR_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONT2_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_DELIM2_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONTSIZE2_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_DELIM2_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONT3_COMBO :
|
||||
isFontSize = false;
|
||||
return STYLE_DELIM3_INDEX;
|
||||
|
||||
case IDC_SYMBOL_FONTSIZE3_COMBO :
|
||||
isFontSize = true;
|
||||
return STYLE_DELIM3_INDEX;
|
||||
|
||||
default :
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
int getGroupIndexFromCombo(int ctrlID, bool & isFontSize) const;
|
||||
int getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const;
|
||||
int getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const;
|
||||
|
||||
@ -452,45 +329,7 @@ public :
|
||||
virtual void destroy() {};
|
||||
|
||||
protected :
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
|
||||
switch (Message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
::SetWindowText(_hSelf, _title.c_str());
|
||||
::SetDlgItemText(_hSelf, IDC_STRING_STATIC, _static.c_str());
|
||||
::SetDlgItemText(_hSelf, IDC_STRING_EDIT, _textValue.c_str());
|
||||
if (_txtLen)
|
||||
::SendDlgItemMessage(_hSelf, IDC_STRING_EDIT, EM_SETLIMITTEXT, _txtLen, 0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND :
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case IDOK :
|
||||
{
|
||||
::GetDlgItemText(_hSelf, IDC_STRING_EDIT, (LPTSTR)_textValue.c_str(), 256);
|
||||
::EndDialog(_hSelf, int(_textValue.c_str()));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case IDCANCEL :
|
||||
::EndDialog(_hSelf, 0);
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
default :
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM);
|
||||
|
||||
private :
|
||||
generic_string _title;
|
||||
|
@ -18,7 +18,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef USER_DEFINE_LANG_REFERENCE_H
|
||||
|
||||
#define USER_DEFINE_LANG_REFERENCE_H
|
||||
|
||||
const int langNameLenMax = 16;
|
||||
|
@ -18,8 +18,6 @@
|
||||
#ifndef COLORS_H
|
||||
#define COLORS_H
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
const COLORREF red = RGB(0xFF, 0, 0);
|
||||
const COLORREF darkRed = RGB(0x80, 0, 0);
|
||||
const COLORREF offWhite = RGB(0xFF, 0xFB, 0xF0);
|
||||
|
@ -16,8 +16,9 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "columnEditor.h"
|
||||
#include "ScintillaEditView.h"
|
||||
|
||||
/*
|
||||
BOOL CALLBACK ColumnEditorDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
@ -228,6 +229,12 @@ BOOL CALLBACK ColumnEditorDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
}
|
||||
*/
|
||||
|
||||
void ColumnEditorDlg::display(bool toShow) const
|
||||
{
|
||||
Window::display(toShow);
|
||||
if (toShow)
|
||||
::SetFocus(::GetDlgItem(_hSelf, ID_GOLINE_EDIT));
|
||||
}
|
||||
|
||||
BOOL CALLBACK ColumnEditorDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
@ -461,3 +468,16 @@ void ColumnEditorDlg::switchTo(bool toText)
|
||||
|
||||
::SetFocus(toText?hText:hNum);
|
||||
}
|
||||
|
||||
UCHAR ColumnEditorDlg::getFormat()
|
||||
{
|
||||
bool isLeadingZeros = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_LEADZERO_CHECK, BM_GETCHECK, 0, 0));
|
||||
UCHAR f = 0; // Dec by default
|
||||
if (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_HEX_RADIO, BM_GETCHECK, 0, 0))
|
||||
f = 1;
|
||||
else if (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_OCT_RADIO, BM_GETCHECK, 0, 0))
|
||||
f = 2;
|
||||
else if (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_BIN_RADIO, BM_GETCHECK, 0, 0))
|
||||
f = 3;
|
||||
return (f | (isLeadingZeros?MASK_ZERO_LEADING:0));
|
||||
}
|
||||
|
@ -20,9 +20,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef COLUMNEDITOR_H
|
||||
#define COLUMNEDITOR_H
|
||||
|
||||
#ifndef COLUMNEDITOR_RC_H
|
||||
#include "columnEditor_rc.h"
|
||||
#include "StaticDialog.h"
|
||||
#include "ScintillaEditView.h"
|
||||
#endif //COLUMNEDITOR_RC_H
|
||||
|
||||
class ScintillaEditView;
|
||||
|
||||
const bool activeText = true;
|
||||
const bool activeNumeric = false;
|
||||
@ -51,25 +53,11 @@ public :
|
||||
::SetFocus(::GetDlgItem(_hSelf, isTextMode?IDC_COL_TEXT_EDIT:IDC_COL_INITNUM_EDIT));
|
||||
};
|
||||
|
||||
virtual void display(bool toShow = true) const {
|
||||
Window::display(toShow);
|
||||
if (toShow)
|
||||
::SetFocus(::GetDlgItem(_hSelf, ID_GOLINE_EDIT));
|
||||
};
|
||||
virtual void display(bool toShow = true) const;
|
||||
|
||||
void switchTo(bool toText);
|
||||
|
||||
UCHAR getFormat() {
|
||||
bool isLeadingZeros = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_LEADZERO_CHECK, BM_GETCHECK, 0, 0));
|
||||
UCHAR f = 0; // Dec by default
|
||||
if (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_HEX_RADIO, BM_GETCHECK, 0, 0))
|
||||
f = 1;
|
||||
else if (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_OCT_RADIO, BM_GETCHECK, 0, 0))
|
||||
f = 2;
|
||||
else if (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_COL_BIN_RADIO, BM_GETCHECK, 0, 0))
|
||||
f = 3;
|
||||
return (f | (isLeadingZeros?MASK_ZERO_LEADING:0));
|
||||
};
|
||||
UCHAR getFormat();
|
||||
|
||||
protected :
|
||||
virtual BOOL CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
@ -15,6 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "xmlMatchedTagsHighlighter.h"
|
||||
#include "ScintillaEditView.h"
|
||||
|
||||
|
@ -18,9 +18,6 @@
|
||||
#ifndef XMLMATCHEDTAGSHIGHLIGHTER_H
|
||||
#define XMLMATCHEDTAGSHIGHLIGHTER_H
|
||||
|
||||
#include <vector>
|
||||
#include <windows.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class ScintillaEditView;
|
||||
|
@ -22,14 +22,13 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxmlA.h"
|
||||
|
||||
#ifndef TIXMLA_USE_STL
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
|
||||
#include "tinystrA.h"
|
||||
|
||||
|
@ -22,8 +22,9 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#ifndef TINYXMLA_INCLUDED
|
||||
#include "tinyxmlA.h"
|
||||
|
||||
#endif TINYXMLA_INCLUDED
|
||||
|
||||
#ifndef TIXMLA_USE_STL
|
||||
|
||||
@ -32,7 +33,6 @@ distribution.
|
||||
|
||||
#pragma warning( disable : 4514 )
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
/*
|
||||
TiXmlStringA is an emulation of the std::string template.
|
||||
|
@ -22,7 +22,7 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxmlA.h"
|
||||
|
||||
#ifdef TIXMLA_USE_STL
|
||||
|
@ -31,13 +31,6 @@ distribution.
|
||||
#pragma warning( disable : 4786 )
|
||||
#endif
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
#include "Common.h"
|
||||
|
||||
// Help out windows:
|
||||
#if defined( _DEBUG ) && !defined( DEBUG )
|
||||
@ -52,9 +45,6 @@ distribution.
|
||||
#endif
|
||||
|
||||
#ifdef TIXMLA_USE_STL
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
//#include <ostream>
|
||||
#define TIXMLA_STRING std::string
|
||||
#define TIXMLA_ISTREAM std::istream
|
||||
#define TIXMLA_OSTREAM std::ostream
|
||||
|
@ -22,6 +22,7 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxmlA.h"
|
||||
|
||||
// The goal of the seperate error file is to make the first
|
||||
|
@ -22,8 +22,8 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxmlA.h"
|
||||
#include <ctype.h>
|
||||
|
||||
//#define DEBUG_PARSER
|
||||
|
||||
|
@ -22,15 +22,11 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "tinyxml.h"
|
||||
#include "precompiledHeaders.h"
|
||||
|
||||
#ifndef TIXML_USE_STL
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "tinystr.h"
|
||||
|
||||
// TiXmlString constructor, based on a C generic_string
|
||||
|
@ -22,8 +22,9 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#ifndef TINYXML_INCLUDED
|
||||
#include "tinyxml.h"
|
||||
|
||||
#endif //TINYXML_INCLUDED
|
||||
|
||||
#ifndef TIXML_USE_STL
|
||||
|
||||
@ -32,9 +33,6 @@ distribution.
|
||||
|
||||
#pragma warning( disable : 4514 )
|
||||
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
|
||||
/*
|
||||
TiXmlString is an emulation of the string template.
|
||||
Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.
|
||||
|
@ -22,13 +22,9 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxml.h"
|
||||
|
||||
#ifdef TIXML_USE_STL
|
||||
#include <sstream>
|
||||
#endif
|
||||
|
||||
bool TiXmlBase::condenseWhiteSpace = true;
|
||||
|
||||
void TiXmlBase::PutString( const TIXML_STRING& str, TIXML_OSTREAM* stream )
|
||||
|
@ -31,13 +31,6 @@ distribution.
|
||||
#pragma warning( disable : 4786 )
|
||||
#endif
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
#include "Common.h"
|
||||
|
||||
// Help out windows:
|
||||
#if defined( _DEBUG ) && !defined( DEBUG )
|
||||
@ -52,12 +45,7 @@ distribution.
|
||||
#endif
|
||||
|
||||
#ifdef TIXML_USE_STL
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
//#include <ostream>
|
||||
#define TIXML_STRING generic_string
|
||||
//#define TIXML_ISTREAM std::istream
|
||||
//#define TIXML_OSTREAM std::ostream
|
||||
#define TIXML_ISTREAM std::basic_istream<TCHAR>
|
||||
#define TIXML_OSTREAM std::basic_ostream<TCHAR>
|
||||
|
||||
|
@ -22,8 +22,8 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxml.h"
|
||||
//#include "tchar.h"
|
||||
|
||||
// The goal of the seperate error file is to make the first
|
||||
// step towards localization. tinyxml (currently) only supports
|
||||
|
@ -22,8 +22,8 @@ must not be misrepresented as being the original software.
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "tinyxml.h"
|
||||
#include <ctype.h>
|
||||
|
||||
//#define DEBUG_PARSER
|
||||
|
||||
|
@ -5,8 +5,7 @@
|
||||
// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
|
||||
// The License.txt file describes the conditions under which this software may be distributed.
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <windows.h>
|
||||
#include "precompiledHeaders.h"
|
||||
#include "UniConversion.h"
|
||||
|
||||
unsigned int UTF8Length(const wchar_t *uptr, unsigned int tlen) {
|
||||
|
@ -16,12 +16,9 @@
|
||||
// - Add convert function in Utf8_16_Write
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Utf8_16.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
#include "PluginInterface.h"
|
||||
|
||||
const Utf8_16::utf8 Utf8_16::k_Boms[][3] = {
|
||||
{0x00, 0x00, 0x00}, // Unknown
|
||||
{0xEF, 0xBB, 0xBF}, // UTF8
|
||||
|
@ -18,11 +18,14 @@
|
||||
// - Removing UCS-Bug in Utf8_Iter
|
||||
// - Add convert function in Utf8_16_Write
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef UTF8_16_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#ifndef PARAMETERS_H
|
||||
#include "Parameters.h"
|
||||
#endif// PARAMETERS_H
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable: 4514) // nreferenced inline function has been removed
|
||||
@ -151,3 +154,5 @@ protected:
|
||||
size_t m_nBufSize;
|
||||
bool m_bFirstWrite;
|
||||
};
|
||||
|
||||
#endif// UTF8_16_H
|
||||
|
@ -15,6 +15,7 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "AboutDlg.h"
|
||||
#include "Parameters.h"
|
||||
|
||||
|
@ -18,10 +18,13 @@
|
||||
#ifndef ABOUT_DLG_H
|
||||
#define ABOUT_DLG_H
|
||||
|
||||
#ifndef URLCTRL_INCLUDED
|
||||
#include "URLCtrl.h"
|
||||
#include "StaticDialog.h"
|
||||
#include "ColourPicker.h"
|
||||
#include "..\\..\\resource.h"
|
||||
#endif// URLCTRL_INCLUDED
|
||||
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif// RESOURCE_H
|
||||
|
||||
#define LICENCE_TXT \
|
||||
TEXT("This program is free software; you can redistribute it and/or \
|
||||
|
@ -1,3 +1,23 @@
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2003 Don HO <donho@altern.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "URLCtrl.h"
|
||||
|
||||
static BYTE XORMask[128] =
|
||||
@ -155,6 +175,15 @@ void URLCtrl::create(HWND itemHandle, int cmd, HWND msgDest)
|
||||
// associate the URL structure with the static control
|
||||
::SetWindowLongPtr(itemHandle, GWL_USERDATA, (LONG)this);
|
||||
}
|
||||
|
||||
void URLCtrl::destroy()
|
||||
{
|
||||
if(_hfUnderlined)
|
||||
::DeleteObject(_hfUnderlined);
|
||||
if(_hCursor)
|
||||
::DestroyCursor(_hCursor);
|
||||
}
|
||||
|
||||
LRESULT URLCtrl::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch(Message)
|
||||
|
@ -1,10 +1,25 @@
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2003 Don HO < donho@altern.org >
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef URLCTRL_INCLUDED
|
||||
#define URLCTRL_INCLUDED
|
||||
|
||||
//
|
||||
#include <Window.h>
|
||||
#include "Common.h"
|
||||
|
||||
class URLCtrl : public Window {
|
||||
public:
|
||||
URLCtrl():_hfUnderlined(0),_hCursor(0), _msgDest(NULL), _cmdID(0), _oldproc(NULL), \
|
||||
@ -12,12 +27,7 @@ public:
|
||||
|
||||
void create(HWND itemHandle, TCHAR * link, COLORREF linkColor = RGB(0,0,255));
|
||||
void create(HWND itemHandle, int cmd, HWND msgDest = NULL);
|
||||
void destroy(){
|
||||
if(_hfUnderlined)
|
||||
::DeleteObject(_hfUnderlined);
|
||||
if(_hCursor)
|
||||
::DestroyCursor(_hCursor);
|
||||
};
|
||||
void destroy();
|
||||
|
||||
protected :
|
||||
generic_string _URL;
|
||||
|
@ -16,10 +16,9 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "ColourPicker.h"
|
||||
#include "Common.h"
|
||||
|
||||
#include "ColourPopup.h"
|
||||
|
||||
void ColourPicker::init(HINSTANCE hInst, HWND parent)
|
||||
{
|
||||
|
@ -20,8 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef COLOUR_PICKER_H
|
||||
#define COLOUR_PICKER_H
|
||||
|
||||
#include "Window.h"
|
||||
#include "ColourPopup.h"
|
||||
class ColourPopup;
|
||||
|
||||
//#define CP_CLASS_NAME "colourPickerButton"
|
||||
#define CPN_COLOURPICKED (BN_CLICKED)
|
||||
|
@ -16,9 +16,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "ColourPopup.h"
|
||||
#include "Common.h"
|
||||
|
||||
DWORD colourItems[] = {
|
||||
RGB( 0, 0, 0), RGB( 64, 0, 0), RGB(128, 0, 0), RGB(128, 64, 64), RGB(255, 0, 0), RGB(255, 128, 128),
|
||||
|
@ -20,9 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef COLOUR_POPUP_H
|
||||
#define COLOUR_POPUP_H
|
||||
|
||||
#include "Window.h"
|
||||
#ifndef COLOUR_POPUP_RESOURCE_H
|
||||
#include "ColourPopupResource.h"
|
||||
#endif //COLOUR_POPUP_RESOURCE_H
|
||||
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
|
||||
#define WM_PICKUP_COLOR (COLOURPOPUP_USER + 1)
|
||||
#define WM_PICKUP_CANCEL (COLOURPOPUP_USER + 2)
|
||||
@ -58,9 +62,6 @@ private :
|
||||
|
||||
static BOOL CALLBACK dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
BOOL CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif //COLOUR_POPUP_H
|
||||
|
@ -1,3 +1,24 @@
|
||||
#define IDD_COLOUR_POPUP 2100
|
||||
/*
|
||||
this file is part of notepad++
|
||||
Copyright (C)2003 Don HO <donho@altern.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#ifndef COLOUR_POPUP_RESOURCE_H
|
||||
|
||||
#define IDD_COLOUR_POPUP 2100
|
||||
#define IDC_COLOUR_LIST (IDD_COLOUR_POPUP + 1)
|
||||
|
||||
#endif //COLOUR_POPUP_RESOURCE_H
|
||||
|
@ -17,6 +17,7 @@ along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "WordStyleDlg.h"
|
||||
#include "ScintillaEditView.h"
|
||||
|
||||
@ -481,6 +482,29 @@ void WordStyleDlg::updateThemeName(generic_string themeName)
|
||||
nppGUI._themeName.assign( themeName );
|
||||
}
|
||||
|
||||
int WordStyleDlg::whichTabColourIndex()
|
||||
{
|
||||
int i = ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETCURSEL, 0, 0);
|
||||
if (i == LB_ERR)
|
||||
return -1;
|
||||
TCHAR styleName[128];
|
||||
::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETTEXT, i, (LPARAM)styleName);
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_ACTIVEFOCUSEDINDCATOR) == 0)
|
||||
return (int)TabBarPlus::activeFocusedTop;
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_ACTIVEUNFOCUSEDINDCATOR) == 0)
|
||||
return (int)TabBarPlus::activeUnfocusedTop;
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_ACTIVETEXT) == 0)
|
||||
return (int)TabBarPlus::activeText;
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_INACTIVETEXT) == 0)
|
||||
return (int)TabBarPlus::inactiveText;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void WordStyleDlg::updateColour(bool which)
|
||||
{
|
||||
Style & style = getCurrentStyler();
|
||||
|
@ -20,13 +20,17 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef WORD_STYLE_H
|
||||
#define WORD_STYLE_H
|
||||
|
||||
#include "Window.h"
|
||||
#ifndef COLOUR_PICKER_H
|
||||
#include "ColourPicker.h"
|
||||
#include "StaticDialog.h"
|
||||
#endif //COLOUR_PICKER_H
|
||||
|
||||
#ifndef WORD_STYLE_DLG_RES_H
|
||||
#include "WordStyleDlgRes.h"
|
||||
#include "TabBar.h"
|
||||
#endif //WORD_STYLE_DLG_RES_H
|
||||
|
||||
#ifndef PARAMETERS_H
|
||||
#include "Parameters.h"
|
||||
#include "resource.h"
|
||||
#endif //PARAMETERS_H
|
||||
|
||||
#define WM_UPDATESCINTILLAS (WORDSTYLE_USER + 1) //GlobalStyleDlg's msg 2 send 2 its parent
|
||||
|
||||
@ -38,7 +42,7 @@ const bool C_BACKGROUND = true;
|
||||
|
||||
class ColourStaticTextHooker {
|
||||
public :
|
||||
ColourStaticTextHooker() : _colour(RGB(0x00, 0x00, 0x00))/*, _hFont(NULL)*/ {};
|
||||
ColourStaticTextHooker() : _colour(RGB(0x00, 0x00, 0x00)) {};
|
||||
|
||||
COLORREF setColour(COLORREF colour2Set) {
|
||||
COLORREF oldColour = _colour;
|
||||
@ -85,8 +89,6 @@ public :
|
||||
display();
|
||||
};
|
||||
|
||||
|
||||
|
||||
void prepare2Cancel() {
|
||||
_styles2restored = (NppParameters::getInstance())->getLStylerArray();
|
||||
_gstyles2restored = (NppParameters::getInstance())->getGlobalStylers();
|
||||
@ -171,27 +173,7 @@ private :
|
||||
}
|
||||
};
|
||||
|
||||
int whichTabColourIndex() {
|
||||
int i = ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETCURSEL, 0, 0);
|
||||
if (i == LB_ERR)
|
||||
return -1;
|
||||
TCHAR styleName[128];
|
||||
::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETTEXT, i, (LPARAM)styleName);
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_ACTIVEFOCUSEDINDCATOR) == 0)
|
||||
return (int)TabBarPlus::activeFocusedTop;
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_ACTIVEUNFOCUSEDINDCATOR) == 0)
|
||||
return (int)TabBarPlus::activeUnfocusedTop;
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_ACTIVETEXT) == 0)
|
||||
return (int)TabBarPlus::activeText;
|
||||
|
||||
if (lstrcmp(styleName, TABBAR_INACTIVETEXT) == 0)
|
||||
return (int)TabBarPlus::inactiveText;
|
||||
|
||||
return -1;
|
||||
};
|
||||
int whichTabColourIndex();
|
||||
|
||||
void updateColour(bool which);
|
||||
void updateFontStyleStatus(fontStyleType whitchStyle);
|
||||
|
@ -16,6 +16,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#ifndef WORD_STYLE_DLG_RES_H
|
||||
#define WORD_STYLE_DLG_RES_H
|
||||
|
||||
#define IDD_STYLER_DLG 2200
|
||||
|
||||
@ -63,3 +65,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#define IDC_STYLES_LIST (IDD_GLOBAL_STYLER_DLG + 5)
|
||||
#define IDC_SWITCH2THEME_STATIC (IDD_GLOBAL_STYLER_DLG + 6)
|
||||
#define IDC_SWITCH2THEME_COMBO (IDD_GLOBAL_STYLER_DLG + 7)
|
||||
|
||||
#endif //WORD_STYLE_DLG_RES_H
|
||||
|
||||
|
@ -20,9 +20,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef CONTEXTMENU
|
||||
#define CONTEXTMENU
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
struct MenuItemUnit {
|
||||
|
@ -20,7 +20,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef DOCKING_H
|
||||
#define DOCKING_H
|
||||
|
||||
#include "windows.h"
|
||||
// ATTENTION : It's a part of interface header, so don't include the others header here
|
||||
|
||||
// styles for containers
|
||||
@ -72,7 +71,6 @@ typedef struct {
|
||||
|
||||
|
||||
#define HIT_TEST_THICKNESS 20
|
||||
|
||||
#define SPLITTER_WIDTH 4
|
||||
|
||||
|
||||
|
@ -15,17 +15,13 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "dockingResource.h"
|
||||
#include "math.h"
|
||||
#include "Docking.h"
|
||||
#include "DockingCont.h"
|
||||
#include "DropData.h"
|
||||
|
||||
#include "SplitterContainer.h"
|
||||
#include "WindowInterface.h"
|
||||
#include "ToolTip.h"
|
||||
#include <Commctrl.h>
|
||||
#include "Parameters.h"
|
||||
#include "Common.h"
|
||||
|
||||
#ifndef WH_MOUSE_LL
|
||||
#define WH_MOUSE_LL 14
|
||||
|
@ -19,14 +19,13 @@
|
||||
#ifndef DOCKINGCONT
|
||||
#define DOCKINGCONT
|
||||
|
||||
#include "StaticDialog.h"
|
||||
#include "Resource.h"
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
|
||||
#ifndef DOCKING_H
|
||||
#include "Docking.h"
|
||||
#include <windows.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <commctrl.h>
|
||||
#include "Common.h"
|
||||
#endif //DOCKING_H
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -94,7 +93,7 @@ public:
|
||||
void setActiveTb(tTbData* pTbData);
|
||||
void setActiveTb(INT iItem);
|
||||
INT getActiveTb();
|
||||
tTbData* getDataOfActiveTb();
|
||||
tTbData * getDataOfActiveTb();
|
||||
vector<tTbData *> getDataOfAllTb() {
|
||||
return _vTbData;
|
||||
};
|
||||
|
@ -20,18 +20,19 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef DOCKINGDLGINTERFACE_H
|
||||
#define DOCKINGDLGINTERFACE_H
|
||||
|
||||
#include "StaticDialog.h"
|
||||
#ifndef DOCKING_RESOURCE_H
|
||||
#include "dockingResource.h"
|
||||
#include "Docking.h"
|
||||
#include <shlwapi.h>
|
||||
#endif //DOCKING_RESOURCE_H
|
||||
|
||||
#ifndef DOCKING_H
|
||||
#include "Docking.h"
|
||||
#endif //DOCKING_H
|
||||
|
||||
class DockingDlgInterface : public StaticDialog
|
||||
{
|
||||
public:
|
||||
DockingDlgInterface(): StaticDialog() {};
|
||||
DockingDlgInterface(int dlgID): StaticDialog(),
|
||||
_dlgID(dlgID), _isFloating(TRUE), _iDockedPos(0) {};
|
||||
DockingDlgInterface(int dlgID): StaticDialog(), _dlgID(dlgID), _isFloating(TRUE), _iDockedPos(0) {};
|
||||
|
||||
virtual void init(HINSTANCE hInst, HWND parent)
|
||||
{
|
||||
|
@ -15,12 +15,11 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
|
||||
#include "DockingCont.h"
|
||||
#include "precompiledHeaders.h"
|
||||
#include "DockingManager.h"
|
||||
#include "DockingSplitter.h"
|
||||
#include "DockingCont.h"
|
||||
#include "Gripper.h"
|
||||
#include <Oleacc.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
BOOL DockingManager::_isRegistered = FALSE;
|
||||
@ -68,14 +67,22 @@ DockingManager::DockingManager()
|
||||
/* create four containers with splitters */
|
||||
for (int i = 0; i < DOCKCONT_MAX; i++)
|
||||
{
|
||||
DockingCont* _pDockCont = new DockingCont;
|
||||
DockingCont *_pDockCont = new DockingCont;
|
||||
_vContainer.push_back(_pDockCont);
|
||||
|
||||
DockingSplitter* _pSplitter = new DockingSplitter;
|
||||
DockingSplitter *_pSplitter = new DockingSplitter;
|
||||
_vSplitter.push_back(_pSplitter);
|
||||
}
|
||||
}
|
||||
|
||||
DockingManager::~DockingManager()
|
||||
{
|
||||
// delete 4 splitters
|
||||
for (int i = 0; i < DOCKCONT_MAX; i++)
|
||||
{
|
||||
delete _vSplitter[i];
|
||||
}
|
||||
}
|
||||
|
||||
void DockingManager::init(HINSTANCE hInst, HWND hWnd, Window ** ppWin)
|
||||
{
|
||||
@ -154,6 +161,11 @@ void DockingManager::init(HINSTANCE hInst, HWND hWnd, Window ** ppWin)
|
||||
_isInitialized = TRUE;
|
||||
}
|
||||
|
||||
void DockingManager::destroy()
|
||||
{
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
LRESULT CALLBACK DockingManager::staticWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
DockingManager *pDockingManager = NULL;
|
||||
@ -173,6 +185,26 @@ LRESULT CALLBACK DockingManager::staticWinProc(HWND hwnd, UINT message, WPARAM w
|
||||
}
|
||||
}
|
||||
|
||||
void DockingManager::updateContainerInfo(HWND hClient)
|
||||
{
|
||||
for (size_t iCont = 0; iCont < _vContainer.size(); iCont++)
|
||||
{
|
||||
if (_vContainer[iCont]->updateInfo(hClient) == TRUE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DockingManager::showContainer(HWND hCont, BOOL view)
|
||||
{
|
||||
for (size_t iCont = 0; iCont < _vContainer.size(); iCont++)
|
||||
{
|
||||
if (_vContainer[iCont]->getHSelf() == hCont)
|
||||
showContainer(iCont, view);
|
||||
}
|
||||
}
|
||||
|
||||
LRESULT DockingManager::runProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (message)
|
||||
@ -628,6 +660,65 @@ void DockingManager::setActiveTab(int iCont, int iItem)
|
||||
_vContainer[_iContMap[iCont]]->setActiveTb(iItem);
|
||||
}
|
||||
|
||||
void DockingManager::showDockableDlg(HWND hDlg, BOOL view)
|
||||
{
|
||||
tTbData *pTbData = NULL;
|
||||
for (size_t i = 0; i < _vContainer.size(); i++)
|
||||
{
|
||||
pTbData = _vContainer[i]->findToolbarByWnd(hDlg);
|
||||
if (pTbData != NULL)
|
||||
{
|
||||
_vContainer[i]->showToolbar(pTbData, view);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DockingManager::showDockableDlg(TCHAR* pszName, BOOL view)
|
||||
{
|
||||
tTbData *pTbData = NULL;
|
||||
for (size_t i = 0; i < _vContainer.size(); i++)
|
||||
{
|
||||
pTbData = _vContainer[i]->findToolbarByName(pszName);
|
||||
if (pTbData != NULL)
|
||||
{
|
||||
_vContainer[i]->showToolbar(pTbData, view);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LRESULT DockingManager::SendNotify(HWND hWnd, UINT message)
|
||||
{
|
||||
NMHDR nmhdr;
|
||||
nmhdr.code = message;
|
||||
nmhdr.hwndFrom = _hParent;
|
||||
nmhdr.idFrom = ::GetDlgCtrlID(_hParent);
|
||||
::SendMessage(hWnd, WM_NOTIFY, nmhdr.idFrom, (LPARAM)&nmhdr);
|
||||
return ::GetWindowLongPtr(hWnd, DWL_MSGRESULT);
|
||||
}
|
||||
|
||||
void DockingManager::setDockedContSize(int iCont, int iSize)
|
||||
{
|
||||
if ((iCont == CONT_TOP) || (iCont == CONT_BOTTOM))
|
||||
_dockData.rcRegion[iCont].bottom = iSize;
|
||||
else if ((iCont == CONT_LEFT) || (iCont == CONT_RIGHT))
|
||||
_dockData.rcRegion[iCont].right = iSize;
|
||||
else
|
||||
return;
|
||||
onSize();
|
||||
}
|
||||
|
||||
int DockingManager::getDockedContSize(int iCont)
|
||||
{
|
||||
if ((iCont == CONT_TOP) || (iCont == CONT_BOTTOM))
|
||||
return _dockData.rcRegion[iCont].bottom;
|
||||
else if ((iCont == CONT_LEFT) || (iCont == CONT_RIGHT))
|
||||
return _dockData.rcRegion[iCont].right;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
DockingCont* DockingManager::toggleActiveTb(DockingCont* pContSrc, UINT message, BOOL bNew, LPRECT prcFloat)
|
||||
{
|
||||
tTbData TbData = *pContSrc->getDataOfActiveTb();
|
||||
|
@ -18,15 +18,15 @@
|
||||
#ifndef DOCKINGMANAGER_H
|
||||
#define DOCKINGMANAGER_H
|
||||
|
||||
#include "Docking.h"
|
||||
#include "Window.h"
|
||||
#ifndef DOCKINGCONT
|
||||
#include "DockingCont.h"
|
||||
#include "DockingSplitter.h"
|
||||
#include <vector>
|
||||
#include <commctrl.h>
|
||||
#endif //DOCKINGCONT
|
||||
|
||||
class DockingSplitter;
|
||||
|
||||
#ifndef SPLITTER_CONTAINER_H
|
||||
#include "SplitterContainer.h"
|
||||
#include "dockingResource.h"
|
||||
#include "Parameters.h"
|
||||
#endif //SPLITTER_CONTAINER_H
|
||||
|
||||
#define DSPC_CLASS_NAME TEXT("dockingManager")
|
||||
|
||||
@ -40,13 +40,7 @@ class DockingManager : public Window
|
||||
{
|
||||
public :
|
||||
DockingManager();
|
||||
~DockingManager(){
|
||||
// delete 4 splitters
|
||||
for (int i = 0; i < DOCKCONT_MAX; i++)
|
||||
{
|
||||
delete _vSplitter[i];
|
||||
}
|
||||
};
|
||||
~DockingManager();
|
||||
|
||||
void init(HINSTANCE hInst, HWND hWnd, Window ** ppWin);
|
||||
virtual void reSizeTo(RECT & rc);
|
||||
@ -56,78 +50,37 @@ public :
|
||||
_ppMainWindow = ppWin;
|
||||
};
|
||||
|
||||
void showContainer(HWND hCont, BOOL view = TRUE) {
|
||||
for (size_t iCont = 0; iCont < _vContainer.size(); iCont++)
|
||||
{
|
||||
if (_vContainer[iCont]->getHSelf() == hCont)
|
||||
showContainer(iCont, view);
|
||||
}
|
||||
}
|
||||
void showContainer(HWND hCont, BOOL view = TRUE);
|
||||
|
||||
void showContainer(UINT uCont, BOOL view = TRUE) {
|
||||
_vContainer[uCont]->doDialog((view == TRUE));
|
||||
onSize();
|
||||
}
|
||||
|
||||
void updateContainerInfo(HWND hClient) {
|
||||
for (size_t iCont = 0; iCont < _vContainer.size(); iCont++)
|
||||
{
|
||||
if (_vContainer[iCont]->updateInfo(hClient) == TRUE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void updateContainerInfo(HWND hClient);
|
||||
void createDockableDlg(tTbData data, int iCont = CONT_LEFT, bool isVisible = false);
|
||||
void setActiveTab(int iCont, int iItem);
|
||||
|
||||
void showDockableDlg(HWND hDlg, BOOL view) {
|
||||
tTbData* pTbData = NULL;
|
||||
|
||||
for (size_t i = 0; i < _vContainer.size(); i++)
|
||||
{
|
||||
pTbData = _vContainer[i]->findToolbarByWnd(hDlg);
|
||||
if (pTbData != NULL)
|
||||
{
|
||||
_vContainer[i]->showToolbar(pTbData, view);
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void showDockableDlg(TCHAR* pszName, BOOL view) {
|
||||
tTbData* pTbData = NULL;
|
||||
|
||||
for (size_t i = 0; i < _vContainer.size(); i++)
|
||||
{
|
||||
pTbData = _vContainer[i]->findToolbarByName(pszName);
|
||||
if (pTbData != NULL)
|
||||
{
|
||||
_vContainer[i]->showToolbar(pTbData, view);
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
void showDockableDlg(HWND hDlg, BOOL view);
|
||||
void showDockableDlg(TCHAR* pszName, BOOL view);
|
||||
|
||||
DockingCont* toggleActiveTb(DockingCont* pContSrc, UINT message, BOOL bNew = FALSE, LPRECT rcFloat = NULL);
|
||||
DockingCont* toggleVisTb(DockingCont* pContSrc, UINT message, LPRECT rcFloat = NULL);
|
||||
void toggleActiveTb(DockingCont* pContSrc, DockingCont* pContTgt);
|
||||
void toggleVisTb(DockingCont* pContSrc, DockingCont* pContTgt);
|
||||
|
||||
/* get number of container */
|
||||
// get number of container
|
||||
int GetContainer(DockingCont* pCont);
|
||||
|
||||
/* get all container in vector */
|
||||
// get all container in vector
|
||||
vector<DockingCont*> & getContainerInfo() {
|
||||
return _vContainer;
|
||||
};
|
||||
/* get dock data (sized areas) */
|
||||
// get dock data (sized areas)
|
||||
void getDockInfo(tDockMgr *pDockData) {
|
||||
*pDockData = _dockData;
|
||||
};
|
||||
|
||||
/* setting styles of docking */
|
||||
// setting styles of docking
|
||||
void setStyleCaption(BOOL captionOnTop) {
|
||||
_vContainer[CONT_TOP]->setCaptionTop(captionOnTop);
|
||||
_vContainer[CONT_BOTTOM]->setCaptionTop(captionOnTop);
|
||||
@ -138,30 +91,9 @@ public :
|
||||
_vContainer[i]->setTabStyle(orangeLine);
|
||||
};
|
||||
|
||||
int getDockedContSize(int iCont)
|
||||
{
|
||||
if ((iCont == CONT_TOP) || (iCont == CONT_BOTTOM))
|
||||
return _dockData.rcRegion[iCont].bottom;
|
||||
else if ((iCont == CONT_LEFT) || (iCont == CONT_RIGHT))
|
||||
return _dockData.rcRegion[iCont].right;
|
||||
else
|
||||
return -1;
|
||||
};
|
||||
|
||||
void setDockedContSize(int iCont, int iSize)
|
||||
{
|
||||
if ((iCont == CONT_TOP) || (iCont == CONT_BOTTOM))
|
||||
_dockData.rcRegion[iCont].bottom = iSize;
|
||||
else if ((iCont == CONT_LEFT) || (iCont == CONT_RIGHT))
|
||||
_dockData.rcRegion[iCont].right = iSize;
|
||||
else
|
||||
return;
|
||||
onSize();
|
||||
};
|
||||
|
||||
virtual void destroy() {
|
||||
::DestroyWindow(_hSelf);
|
||||
};
|
||||
int getDockedContSize(int iCont);
|
||||
void setDockedContSize(int iCont, int iSize);
|
||||
virtual void destroy();
|
||||
|
||||
private :
|
||||
|
||||
@ -171,43 +103,24 @@ private :
|
||||
|
||||
void toggleTb(DockingCont* pContSrc, DockingCont* pContTgt, tTbData TbData);
|
||||
|
||||
/* test if container exists */
|
||||
// test if container exists
|
||||
BOOL ContExists(size_t iCont);
|
||||
int FindEmptyContainer();
|
||||
|
||||
LRESULT SendNotify(HWND hWnd, UINT message) {
|
||||
NMHDR nmhdr;
|
||||
|
||||
nmhdr.code = message;
|
||||
nmhdr.hwndFrom = _hParent;
|
||||
nmhdr.idFrom = ::GetDlgCtrlID(_hParent);
|
||||
::SendMessage(hWnd, WM_NOTIFY, nmhdr.idFrom, (LPARAM)&nmhdr);
|
||||
return ::GetWindowLongPtr(hWnd, DWL_MSGRESULT);
|
||||
};
|
||||
LRESULT SendNotify(HWND hWnd, UINT message);
|
||||
|
||||
private:
|
||||
/* Handles */
|
||||
Window **_ppWindow;
|
||||
|
||||
RECT _rcWork;
|
||||
RECT _rect;
|
||||
Window **_ppMainWindow;
|
||||
|
||||
/* handles all the icons */
|
||||
vector<HWND> _vImageList;
|
||||
HIMAGELIST _hImageList;
|
||||
|
||||
vector<DockingCont*> _vContainer;
|
||||
tDockMgr _dockData;
|
||||
|
||||
static BOOL _isRegistered;
|
||||
BOOL _isInitialized;
|
||||
|
||||
/* container map for startup (restore settings) */
|
||||
int _iContMap[CONT_MAP_MAX];
|
||||
|
||||
/* splitter data */
|
||||
vector<DockingSplitter*> _vSplitter;
|
||||
vector<DockingSplitter *> _vSplitter;
|
||||
};
|
||||
|
||||
#endif //DOCKINGMANAGER_H
|
||||
|
@ -15,9 +15,8 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "DockingSplitter.h"
|
||||
#include "Common.h"
|
||||
#include "Notepad_plus_msgs.h"
|
||||
#include "Parameters.h"
|
||||
|
||||
|
@ -19,16 +19,17 @@
|
||||
#ifndef DOCKINGSPLITTER_H
|
||||
#define DOCKINGSPLITTER_H
|
||||
|
||||
#ifndef DOCKING_H
|
||||
#include "Docking.h"
|
||||
#include "dockingResource.h"
|
||||
#include "window.h"
|
||||
#endif //DOCKING_H
|
||||
|
||||
#ifndef DOCKING_RESOURCE_H
|
||||
#include "dockingResource.h"
|
||||
#endif //DOCKING_RESOURCE_H
|
||||
|
||||
#define DMS_VERTICAL 0x00000001
|
||||
#define DMS_HORIZONTAL 0x00000002
|
||||
|
||||
|
||||
|
||||
class DockingSplitter : public Window
|
||||
{
|
||||
public :
|
||||
|
@ -1,214 +0,0 @@
|
||||
//this file is part of docking functionality for Notepad++
|
||||
//Copyright (C)2006 Jens Lorenz <jens.plugin.npp@gmx.de>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "DropData.h"
|
||||
#include <Commctrl.h>
|
||||
#include <shlobj.h>
|
||||
#include "dockingResource.h"
|
||||
|
||||
DropData::DropData(HWND hWnd, DockingCont* pCont)
|
||||
{
|
||||
_lRefCount = 1;
|
||||
_pCont = pCont;
|
||||
_hWnd = hWnd;
|
||||
_pAreasData = NULL;
|
||||
_hTab = _pCont->getTabWnd();
|
||||
_hCaption = _pCont->getCaptionWnd();
|
||||
}
|
||||
|
||||
DropData::~DropData()
|
||||
{
|
||||
if (_pAreasData != NULL)
|
||||
{
|
||||
delete [] _pAreasData;
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT __stdcall DropData::QueryInterface (REFIID iid, void ** ppvObject)
|
||||
{
|
||||
if(iid == IID_IDropTarget || iid == IID_IUnknown)
|
||||
{
|
||||
AddRef();
|
||||
*ppvObject = this;
|
||||
return S_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
*ppvObject = 0;
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
}
|
||||
|
||||
ULONG __stdcall DropData::AddRef(void)
|
||||
{
|
||||
return InterlockedIncrement(&_lRefCount);
|
||||
}
|
||||
|
||||
ULONG __stdcall DropData::Release(void)
|
||||
{
|
||||
LONG count = InterlockedDecrement(&_lRefCount);
|
||||
|
||||
if(count == 0)
|
||||
{
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD DropData::DropEffect(DWORD grfKeyState, POINTL ptl, DWORD dwAllowed)
|
||||
{
|
||||
DWORD dwEffect = DROPEFFECT_NONE;
|
||||
POINT pt = {ptl.x, ptl.y};
|
||||
|
||||
for (int iElem = 0; iElem < _iElemCnt; iElem++)
|
||||
{
|
||||
/* test if cursor points in a rect */
|
||||
if (::PtInRect(&_pAreasData[iElem].rcDropArea, pt) == TRUE)
|
||||
{
|
||||
dwEffect = DROPEFFECT_COPY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return dwEffect;
|
||||
}
|
||||
|
||||
HRESULT __stdcall DropData::DragEnter(IDataObject * pDataObject, DWORD grfKeyState, POINTL ptl, DWORD * pdwEffect)
|
||||
{
|
||||
int iItem = 0;
|
||||
int iItemCnt = 0;
|
||||
TCITEM tcItem = {0};
|
||||
|
||||
/* initial element count */
|
||||
_iElemCnt = 0;
|
||||
|
||||
/* get amount of element in tab and add caption */
|
||||
iItemCnt = ::SendMessage(_hTab, TCM_GETITEMCOUNT, 0, 0) + 1;
|
||||
|
||||
/* allocate resources */
|
||||
_pAreasData = (tAreaData*) new tAreaData[iItemCnt];
|
||||
|
||||
/* get allowed areas */
|
||||
tcItem.mask = TCIF_PARAM;
|
||||
|
||||
if (::IsWindowVisible(_hTab) == TRUE)
|
||||
{
|
||||
/* get possible areas for all tabs */
|
||||
for (iItem = 0; iItem < (iItemCnt - 1); iItem++)
|
||||
{
|
||||
::SendMessage(_hTab, TCM_GETITEM, iItem, (LPARAM)&tcItem);
|
||||
|
||||
if (((tTbData*)tcItem.lParam)->uMask & DWS_ACCEPTDATA)
|
||||
{
|
||||
if (pDataObject->QueryGetData(((tTbData*)tcItem.lParam)->pFETC) == S_OK)
|
||||
{
|
||||
_pAreasData[_iElemCnt].targetWnd = ((tTbData*)tcItem.lParam)->hClient;
|
||||
::SendMessage(_hTab, TCM_GETITEMRECT, iItem, (LPARAM)&_pAreasData[_iElemCnt].rcDropArea);
|
||||
ClientToScreen(_hTab, &_pAreasData[_iElemCnt++].rcDropArea);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* get caption area when current selected tab allowes data drop */
|
||||
iItem = ::SendMessage(_hTab, TCM_GETCURSEL, 0, 0);
|
||||
::SendMessage(_hTab, TCM_GETITEM, iItem, (LPARAM)&tcItem);
|
||||
if (((tTbData*)tcItem.lParam)->uMask & DWS_ACCEPTDATA)
|
||||
{
|
||||
if (pDataObject->QueryGetData(((tTbData*)tcItem.lParam)->pFETC) == S_OK)
|
||||
{
|
||||
_pAreasData[_iElemCnt].targetWnd = ((tTbData*)tcItem.lParam)->hClient;
|
||||
|
||||
if (_pCont->isFloating())
|
||||
{
|
||||
_pCont->getWindowRect(_pAreasData[_iElemCnt].rcDropArea);
|
||||
_pAreasData[_iElemCnt].rcDropArea.bottom = _pAreasData[_iElemCnt].rcDropArea.top + 24;
|
||||
}
|
||||
else
|
||||
{
|
||||
::GetWindowRect(_hCaption, &_pAreasData[_iElemCnt].rcDropArea);
|
||||
}
|
||||
_iElemCnt++;
|
||||
}
|
||||
}
|
||||
|
||||
*pdwEffect = DropEffect(grfKeyState, ptl, *pdwEffect);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT __stdcall DropData::DragOver(DWORD grfKeyState, POINTL ptl, DWORD * pdwEffect)
|
||||
{
|
||||
*pdwEffect = DropEffect(grfKeyState, ptl, *pdwEffect);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT __stdcall DropData::DragLeave(void)
|
||||
{
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT __stdcall DropData::Drop(IDataObject * pDataObject, DWORD grfKeyState, POINTL ptl, DWORD * pdwEffect)
|
||||
{
|
||||
POINT pt = {ptl.x, ptl.y};
|
||||
|
||||
/* initial elements */
|
||||
*pdwEffect = DROPEFFECT_NONE;
|
||||
|
||||
for (int iElem = 0; iElem < _iElemCnt; iElem++)
|
||||
{
|
||||
/* test if cursor points in a rect */
|
||||
if (::PtInRect(&_pAreasData[iElem].rcDropArea, (POINT)pt) == TRUE)
|
||||
{
|
||||
/* notify child windows */
|
||||
::SendMessage(_pAreasData[iElem].targetWnd, LMM_DROPDATA, 0, (LPARAM)pDataObject);
|
||||
|
||||
*pdwEffect = DROPEFFECT_COPY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
void RegisterDropWindow(HWND hwnd, DockingCont* pCont, IDropTarget **ppDropTarget)
|
||||
{
|
||||
DropData *pDropTarget = new DropData(hwnd, pCont);
|
||||
|
||||
// tell OLE that the window is a drop target
|
||||
::RegisterDragDrop(hwnd, pDropTarget);
|
||||
|
||||
*ppDropTarget = pDropTarget;
|
||||
}
|
||||
|
||||
void UnregisterDropWindow(HWND hwnd, IDropTarget *pDropTarget)
|
||||
{
|
||||
// remove drag+drop
|
||||
::RevokeDragDrop(hwnd);
|
||||
|
||||
// remove the strong lock
|
||||
CoLockObjectExternal(pDropTarget, FALSE, TRUE);
|
||||
|
||||
// release our own reference
|
||||
pDropTarget->Release();
|
||||
}
|
||||
|
@ -1,74 +0,0 @@
|
||||
//this file is part of docking functionality for Notepad++
|
||||
//Copyright (C)2006 Jens Lorenz <jens.plugin.npp@gmx.de>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
|
||||
#ifndef DROP_TARGET_H
|
||||
#define DROP_TARGET_H
|
||||
|
||||
#include "DockingCont.h"
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
void RegisterDropWindow(HWND hwnd, DockingCont* pCont, IDropTarget **ppDropTarget);
|
||||
void UnregisterDropWindow(HWND hwnd, IDropTarget *pDropTarget);
|
||||
|
||||
|
||||
typedef struct {
|
||||
HWND targetWnd;
|
||||
RECT rcDropArea;
|
||||
} tAreaData;
|
||||
|
||||
|
||||
class DropData : public IDropTarget
|
||||
{
|
||||
public:
|
||||
/* IUnknown implementation */
|
||||
HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObject);
|
||||
ULONG __stdcall AddRef(void);
|
||||
ULONG __stdcall Release(void);
|
||||
|
||||
/* IDropTarget implementation */
|
||||
HRESULT __stdcall DragEnter(IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
|
||||
HRESULT __stdcall DragOver(DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
|
||||
HRESULT __stdcall DragLeave(void);
|
||||
HRESULT __stdcall Drop(IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
|
||||
|
||||
// Constructor
|
||||
DropData(HWND hwnd, DockingCont* pCont);
|
||||
~DropData();
|
||||
|
||||
private:
|
||||
/* internal helper function */
|
||||
DWORD DropEffect(DWORD grfKeyState, POINTL pt, DWORD dwAllowed);
|
||||
bool QueryDataObject(IDataObject *pDataObject);
|
||||
|
||||
|
||||
private:
|
||||
LONG _lRefCount;
|
||||
|
||||
HWND _hWnd;
|
||||
HWND _hCaption;
|
||||
HWND _hTab;
|
||||
|
||||
DockingCont* _pCont;
|
||||
|
||||
tAreaData* _pAreasData;
|
||||
int _iElemCnt;
|
||||
};
|
||||
|
||||
|
||||
#endif // DROP_TARGET_H
|
@ -15,11 +15,10 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
|
||||
#include "dockingResource.h"
|
||||
#include "math.h"
|
||||
#include "Docking.h"
|
||||
#include "precompiledHeaders.h"
|
||||
#include "Gripper.h"
|
||||
#include "DockingManager.h"
|
||||
#include "Parameters.h"
|
||||
|
||||
#ifndef WH_KEYBOARD_LL
|
||||
#define WH_KEYBOARD_LL 13
|
||||
|
@ -18,11 +18,16 @@
|
||||
#ifndef GRIPPER_H
|
||||
#define GRIPPER_H
|
||||
|
||||
#include "Resource.h"
|
||||
#ifndef DOCKING_H
|
||||
#include "Docking.h"
|
||||
#include "DockingCont.h"
|
||||
#include "DockingManager.h"
|
||||
#include "commctrl.h"
|
||||
#endif //DOCKING_H
|
||||
|
||||
#ifndef DOCKING_RESOURCE_H
|
||||
#include "dockingResource.h"
|
||||
#endif //DOCKING_RESOURCE_H
|
||||
|
||||
class DockingCont;
|
||||
class DockingManager;
|
||||
|
||||
|
||||
// Used by getRectAndStyle() to draw the drag rectangle
|
||||
@ -47,16 +52,17 @@ public:
|
||||
|
||||
void startGrip(DockingCont* pCont, DockingManager* pDockMgr, void* pRes);
|
||||
|
||||
~Gripper()
|
||||
{
|
||||
if (_hdc)
|
||||
{::ReleaseDC(0, _hdc);}
|
||||
if (_hbm)
|
||||
{::DeleteObject(_hbm);}
|
||||
if (_hbrush)
|
||||
{::DeleteObject(_hbrush);}
|
||||
|
||||
~Gripper() {
|
||||
if (_hdc) {
|
||||
::ReleaseDC(0, _hdc);
|
||||
}
|
||||
if (_hbm) {
|
||||
::DeleteObject(_hbm);
|
||||
}
|
||||
if (_hbrush) {
|
||||
::DeleteObject(_hbrush);
|
||||
}
|
||||
};
|
||||
|
||||
protected :
|
||||
|
||||
@ -72,8 +78,8 @@ protected :
|
||||
void drawRectangle(POINT pt);
|
||||
void getMousePoints(POINT* pt, POINT* ptPrev);
|
||||
void getMovingRect(POINT pt, RECT *rc);
|
||||
DockingCont* contHitTest(POINT pt);
|
||||
DockingCont* workHitTest(POINT pt, RECT *rcCont = NULL);
|
||||
DockingCont * contHitTest(POINT pt);
|
||||
DockingCont * workHitTest(POINT pt, RECT *rcCont = NULL);
|
||||
|
||||
void initTabInformation();
|
||||
|
||||
@ -97,24 +103,24 @@ protected :
|
||||
};
|
||||
|
||||
private:
|
||||
/* Handle */
|
||||
// Handle
|
||||
HINSTANCE _hInst;
|
||||
HWND _hParent;
|
||||
HWND _hSelf;
|
||||
|
||||
/* data of container */
|
||||
// data of container
|
||||
tDockMgr _dockData;
|
||||
DockingManager* _pDockMgr;
|
||||
DockingCont* _pCont;
|
||||
DockingManager *_pDockMgr;
|
||||
DockingCont *_pCont;
|
||||
|
||||
/* mouse offset in moving rectangle */
|
||||
// mouse offset in moving rectangle
|
||||
POINT _ptOffset;
|
||||
|
||||
/* remembers old mouse point */
|
||||
// remembers old mouse point
|
||||
POINT _ptOld;
|
||||
BOOL _bPtOldValid;
|
||||
|
||||
/* for sorting tabs */
|
||||
// for sorting tabs
|
||||
HWND _hTab;
|
||||
HWND _hTabSource;
|
||||
BOOL _startMovingFromTab;
|
||||
@ -122,17 +128,15 @@ private:
|
||||
RECT _rcItem;
|
||||
TCITEM _tcItem;
|
||||
|
||||
/* resource pointer of THIS class */
|
||||
void* _pRes;
|
||||
// resource pointer of THIS class
|
||||
void *_pRes;
|
||||
|
||||
HDC _hdc;
|
||||
HBITMAP _hbm;
|
||||
HBRUSH _hbrush;
|
||||
|
||||
/* is class registered */
|
||||
// is class registered
|
||||
static BOOL _isRegistered;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // GRIPPER_H
|
@ -1,3 +1,20 @@
|
||||
//this file is part of docking functionality for Notepad++
|
||||
//Copyright (C)2006 Jens Lorenz <jens.plugin.npp@gmx.de>
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU General Public License
|
||||
//as published by the Free Software Foundation; either
|
||||
//version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#ifndef DOCKING_RESOURCE_H
|
||||
#define DOCKING_RESOURCE_H
|
||||
|
||||
|
@ -10,8 +10,8 @@ Add WM_MOUSEWHEEL, WM_LBUTTONDBLCLK and WM_RBUTTONUP events
|
||||
Modified by Don HO <don.h@free.fr>
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "babygrid.h"
|
||||
#include "Common.h"
|
||||
|
||||
#define MAX_GRIDS 20
|
||||
|
||||
|
@ -5,9 +5,11 @@
|
||||
//Printed BABYGRID message reference and tutorial available.
|
||||
//email: mudcat@mis.net for more information.
|
||||
|
||||
#ifndef BABYGRID_H
|
||||
|
||||
#include <windows.h>
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif// RESOURCE_H
|
||||
|
||||
#ifndef WM_MOUSEWHEEL
|
||||
#define WM_MOUSEWHEEL 0x020A
|
||||
@ -101,9 +103,4 @@ LRESULT CALLBACK GridProc(HWND, UINT, WPARAM, LPARAM);
|
||||
void SetCell(_BGCELL *cell,int row, int col);
|
||||
|
||||
|
||||
//global variables
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif// BABYGRID_H
|
||||
|
@ -17,6 +17,7 @@ along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "BabyGridWrapper.h"
|
||||
const TCHAR *babyGridClassName = TEXT("BABYGRID");
|
||||
|
||||
|
@ -16,11 +16,13 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef BABYGRIDWRAPPER
|
||||
#define BABYGRIDWRAPPER
|
||||
|
||||
#ifndef BABYGRID_H
|
||||
#include "babygrid.h"
|
||||
#include "Window.h"
|
||||
#endif// BABYGRID_H
|
||||
|
||||
class BabyGridWrapper : public Window
|
||||
{
|
||||
@ -79,12 +81,6 @@ public :
|
||||
|
||||
private :
|
||||
static bool _isRegistered;
|
||||
/*
|
||||
static LRESULT CALLBACK staticWinProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
|
||||
return (((BabyGridWrapper *)(::GetWindowLongPtr(hwnd, GWL_USERDATA)))->runProc(Message, wParam, lParam));
|
||||
};
|
||||
LRESULT runProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
*/
|
||||
};
|
||||
|
||||
#endif //BABYGRIDWRAPPER
|
||||
|
@ -17,6 +17,7 @@ along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "ShortcutMapper.h"
|
||||
#include "Notepad_plus.h"
|
||||
|
||||
|
@ -20,10 +20,21 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#ifndef SHORTCUTMAPPER
|
||||
#define SHORTCUTMAPPER
|
||||
|
||||
#ifndef BABYGRIDWRAPPER
|
||||
#include "BabyGridWrapper.h"
|
||||
#endif// BABYGRIDWRAPPER
|
||||
|
||||
#ifndef SHORTCUTMAPPER_RC_H
|
||||
#include "ShortcutMapper_rc.h"
|
||||
#endif //SHORTCUTMAPPER_RC_H
|
||||
|
||||
#ifndef SHORTCUTS_H
|
||||
#include "shortcut.h"
|
||||
#endif// SHORTCUTS_H
|
||||
|
||||
#ifndef CONTEXTMENU
|
||||
#include "ContextMenu.h"
|
||||
#endif// CONTEXTMENU
|
||||
|
||||
enum GridState {STATE_MENU, STATE_MACRO, STATE_USER, STATE_PLUGIN, STATE_SCINTILLA};
|
||||
|
||||
|
@ -16,9 +16,13 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
#ifndef SHORTCUTMAPPER_RC_H
|
||||
#define SHORTCUTMAPPER_RC_H
|
||||
|
||||
#define IDD_SHORTCUTMAPPER_DLG 2600
|
||||
#define IDD_BABYGRID_ID1 (IDD_SHORTCUTMAPPER_DLG + 1)
|
||||
#define IDM_BABYGRID_MODIFY (IDD_SHORTCUTMAPPER_DLG + 2)
|
||||
#define IDM_BABYGRID_DELETE (IDD_SHORTCUTMAPPER_DLG + 3)
|
||||
#define IDC_BABYGRID_TABBAR (IDD_SHORTCUTMAPPER_DLG + 4)
|
||||
|
||||
#endif// SHORTCUTMAPPER_RC_H
|
||||
|
@ -15,8 +15,55 @@
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "ImageListSet.h"
|
||||
//#include "resource.h"
|
||||
|
||||
void IconList::create(HINSTANCE hInst, int iconSize)
|
||||
{
|
||||
InitCommonControls();
|
||||
_hInst = hInst;
|
||||
_iconSize = iconSize;
|
||||
_hImglst = ImageList_Create(iconSize, iconSize, ILC_COLOR32 | ILC_MASK, 0, nbMax);
|
||||
if (!_hImglst)
|
||||
throw int(25);
|
||||
};
|
||||
|
||||
void IconList::create(int iconSize, HINSTANCE hInst, int *iconIDArray, int iconIDArraySize)
|
||||
{
|
||||
create(hInst, iconSize);
|
||||
_pIconIDArray = iconIDArray;
|
||||
_iconIDArraySize = iconIDArraySize;
|
||||
|
||||
for (int i = 0 ; i < iconIDArraySize ; i++)
|
||||
addIcon(iconIDArray[i]);
|
||||
};
|
||||
|
||||
void IconList::addIcon(int iconID) const
|
||||
{
|
||||
HICON hIcon = ::LoadIcon(_hInst, MAKEINTRESOURCE(iconID));
|
||||
if (!hIcon)
|
||||
throw int(26);
|
||||
ImageList_AddIcon(_hImglst, hIcon);
|
||||
::DestroyIcon(hIcon);
|
||||
};
|
||||
|
||||
bool IconList::changeIcon(int index, const TCHAR *iconLocation) const
|
||||
{
|
||||
HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, _iconSize, _iconSize, LR_LOADFROMFILE | LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||
if (!hBmp)
|
||||
return false;
|
||||
int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp);
|
||||
ImageList_AddMasked(_hImglst, (HBITMAP)hBmp, RGB(255,0,255));
|
||||
::DeleteObject(hBmp);
|
||||
return (i == index);
|
||||
}
|
||||
|
||||
void IconList::setIconSize(int size) const
|
||||
{
|
||||
ImageList_SetIconSize(_hImglst, size, size);
|
||||
for (int i = 0 ; i < _iconIDArraySize ; i++)
|
||||
addIcon(_pIconIDArray[i]);
|
||||
}
|
||||
|
||||
void ToolBarIcons::init(ToolBarButtonUnit *buttonUnitArray, int arraySize)
|
||||
{
|
||||
@ -25,17 +72,32 @@ void ToolBarIcons::init(ToolBarButtonUnit *buttonUnitArray, int arraySize)
|
||||
_nbCmd = arraySize;
|
||||
}
|
||||
|
||||
void ToolBarIcons::reInit(int size)
|
||||
{
|
||||
ImageList_SetIconSize(getDefaultLst(), size, size);
|
||||
ImageList_SetIconSize(getHotLst(), size, size);
|
||||
ImageList_SetIconSize(getDisableLst(), size, size);
|
||||
|
||||
for (int i = 0 ; i < int(_tbiis.size()) ; i++)
|
||||
{
|
||||
if (_tbiis[i]._defaultIcon != -1)
|
||||
{
|
||||
_iconListVector[HLIST_DEFAULT].addIcon(_tbiis[i]._defaultIcon);
|
||||
_iconListVector[HLIST_HOT].addIcon(_tbiis[i]._hotIcon);
|
||||
_iconListVector[HLIST_DISABLE].addIcon(_tbiis[i]._grayIcon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ToolBarIcons::create(HINSTANCE hInst, int iconSize)
|
||||
{
|
||||
_iconListVector.push_back(IconList());
|
||||
_iconListVector.push_back(IconList());
|
||||
_iconListVector.push_back(IconList());
|
||||
//_iconListVector.push_back(IconList());
|
||||
|
||||
_iconListVector[HLIST_DEFAULT].create(hInst, iconSize);
|
||||
_iconListVector[HLIST_HOT].create(hInst, iconSize);
|
||||
_iconListVector[HLIST_DISABLE].create(hInst, iconSize);
|
||||
//_iconListVector[HLIST_UGLY].create(hInst, 16);
|
||||
|
||||
reInit(iconSize);
|
||||
}
|
||||
@ -47,16 +109,7 @@ void ToolBarIcons::destroy()
|
||||
_iconListVector[HLIST_DISABLE].destroy();
|
||||
//_iconListVector[HLIST_UGLY].destroy();
|
||||
}
|
||||
/*
|
||||
bool IconList::changeIcon(int index, const TCHAR *iconLocation) const
|
||||
{
|
||||
HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, _iconSize, _iconSize, LR_LOADFROMFILE );
|
||||
if (!hBmp)
|
||||
return false;
|
||||
int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp);
|
||||
::DeleteObject(hBmp);
|
||||
return (i == index);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -18,10 +18,6 @@
|
||||
#ifndef IMAGE_LIST_H
|
||||
#define IMAGE_LIST_H
|
||||
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
#include <vector>
|
||||
|
||||
const int nbMax = 45;
|
||||
#define IDI_SEPARATOR_ICON -1
|
||||
|
||||
@ -29,54 +25,17 @@ class IconList
|
||||
{
|
||||
public :
|
||||
IconList() : _hImglst(NULL) {};
|
||||
|
||||
void create(HINSTANCE hInst, int iconSize) {
|
||||
InitCommonControls();
|
||||
_hInst = hInst;
|
||||
_iconSize = iconSize;
|
||||
_hImglst = ImageList_Create(iconSize, iconSize, ILC_COLOR32 | ILC_MASK, 0, nbMax);
|
||||
if (!_hImglst)
|
||||
throw int(25);
|
||||
};
|
||||
|
||||
void create(int iconSize, HINSTANCE hInst, int *iconIDArray, int iconIDArraySize) {
|
||||
create(hInst, iconSize);
|
||||
_pIconIDArray = iconIDArray;
|
||||
_iconIDArraySize = iconIDArraySize;
|
||||
|
||||
for (int i = 0 ; i < iconIDArraySize ; i++)
|
||||
addIcon(iconIDArray[i]);
|
||||
};
|
||||
void create(HINSTANCE hInst, int iconSize);
|
||||
void create(int iconSize, HINSTANCE hInst, int *iconIDArray, int iconIDArraySize);
|
||||
|
||||
void destroy() {
|
||||
ImageList_Destroy(_hImglst);
|
||||
};
|
||||
|
||||
HIMAGELIST getHandle() const {return _hImglst;};
|
||||
void addIcon(int iconID) const;
|
||||
bool changeIcon(int index, const TCHAR *iconLocation) const;
|
||||
void setIconSize(int size) const;
|
||||
|
||||
void addIcon(int iconID) const {
|
||||
HICON hIcon = ::LoadIcon(_hInst, MAKEINTRESOURCE(iconID));
|
||||
if (!hIcon)
|
||||
throw int(26);
|
||||
ImageList_AddIcon(_hImglst, hIcon);
|
||||
::DestroyIcon(hIcon);
|
||||
};
|
||||
|
||||
bool changeIcon(int index, const TCHAR *iconLocation) const{
|
||||
HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, _iconSize, _iconSize, LR_LOADFROMFILE | LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||
if (!hBmp)
|
||||
return false;
|
||||
int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp);
|
||||
ImageList_AddMasked(_hImglst, (HBITMAP)hBmp, RGB(255,0,255));
|
||||
::DeleteObject(hBmp);
|
||||
return (i == index);
|
||||
};
|
||||
|
||||
void setIconSize(int size) const {
|
||||
ImageList_SetIconSize(_hImglst, size, size);
|
||||
for (int i = 0 ; i < _iconIDArraySize ; i++)
|
||||
addIcon(_pIconIDArray[i]);
|
||||
};
|
||||
private :
|
||||
HIMAGELIST _hImglst;
|
||||
HINSTANCE _hInst;
|
||||
@ -94,7 +53,7 @@ typedef struct
|
||||
int _grayIcon;
|
||||
|
||||
int _stdIcon;
|
||||
}ToolBarButtonUnit;
|
||||
} ToolBarButtonUnit;
|
||||
|
||||
typedef std::vector<ToolBarButtonUnit> ToolBarIconIDs;
|
||||
|
||||
@ -143,22 +102,7 @@ public :
|
||||
reInit(size);
|
||||
};
|
||||
|
||||
void reInit(int size) {
|
||||
ImageList_SetIconSize(getDefaultLst(), size, size);
|
||||
ImageList_SetIconSize(getHotLst(), size, size);
|
||||
ImageList_SetIconSize(getDisableLst(), size, size);
|
||||
|
||||
for (int i = 0 ; i < int(_tbiis.size()) ; i++)
|
||||
{
|
||||
if (_tbiis[i]._defaultIcon != -1)
|
||||
{
|
||||
_iconListVector[HLIST_DEFAULT].addIcon(_tbiis[i]._defaultIcon);
|
||||
_iconListVector[HLIST_HOT].addIcon(_tbiis[i]._hotIcon);
|
||||
_iconListVector[HLIST_DISABLE].addIcon(_tbiis[i]._grayIcon);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
void reInit(int size);
|
||||
|
||||
int getNbIcon() const {
|
||||
return int(_tbiis.size());
|
||||
@ -172,7 +116,6 @@ public :
|
||||
if ((witchList != HLIST_DEFAULT) && (witchList != HLIST_HOT) && (witchList != HLIST_DISABLE))
|
||||
return false;
|
||||
return _iconListVector[witchList].changeIcon(iconIndex, iconLocation);
|
||||
|
||||
};
|
||||
|
||||
private :
|
||||
|
@ -14,8 +14,10 @@
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "precompiledHeaders.h"
|
||||
#include "FileDialog.h"
|
||||
#include "Parameters.h"
|
||||
|
||||
|
||||
FileDialog *FileDialog::staticThis = NULL;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user