Merge branch 'master' of https://github.com/notepad-plus-plus/notepad-plus-plus
This commit is contained in:
commit
5464e62067
@ -682,8 +682,8 @@
|
||||
</DefaultDir>
|
||||
|
||||
<FileAssoc title="File Association">
|
||||
<Item id="4009" name="Supported exts:"/>
|
||||
<Item id="4010" name="Registered exts:"/>
|
||||
<Item id="4009" name="Supported extensions:"/>
|
||||
<Item id="4010" name="Registered extensions:"/>
|
||||
</FileAssoc>
|
||||
<LangMenu title="Language Menu">
|
||||
<Item id="6505" name="Available items"/>
|
||||
|
@ -654,8 +654,8 @@
|
||||
</DefaultDir>
|
||||
|
||||
<FileAssoc title="File Association">
|
||||
<Item id="4009" name="Supported exts:"/>
|
||||
<Item id="4010" name="Registered exts:"/>
|
||||
<Item id="4009" name="Supported extensions:"/>
|
||||
<Item id="4010" name="Registered extensions:"/>
|
||||
</FileAssoc>
|
||||
<LangMenu title="Language Menu">
|
||||
<Item id="6505" name="Available items"/>
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <string>
|
||||
#include <windows.h>
|
||||
#include <iso646.h>
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
const bool dirUp = true;
|
||||
|
@ -34,14 +34,14 @@ IDD_REGEXT_BOX DIALOGEX 0, 0, 370, 180
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | DS_CONTROL
|
||||
FONT 8, TEXT("MS Shell Dlg"), 0, 0, 0x1
|
||||
BEGIN
|
||||
LTEXT "Supported exts :",IDC_SUPPORTEDEXTS_STATIC,100,18,77,8
|
||||
LISTBOX IDC_REGEXT_LANG_LIST,100,31,63,122,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||
LISTBOX IDC_REGEXT_LANGEXT_LIST,168,31,42,122,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||
EDITTEXT IDC_CUSTOMEXT_EDIT,181,75,30,14,ES_AUTOHSCROLL | NOT WS_VISIBLE
|
||||
PUSHBUTTON "->",IDC_ADDFROMLANGEXT_BUTTON,218,75,26,14
|
||||
PUSHBUTTON "<-",IDC_REMOVEEXT_BUTTON,218,98,26,14
|
||||
LTEXT "Registered exts :",IDC_REGISTEREDEXTS_STATIC,252,18,72,8
|
||||
LISTBOX IDC_REGEXT_REGISTEREDEXTS_LIST,251,30,48,123,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Supported extensions:",IDC_SUPPORTEDEXTS_STATIC,70,18,80,8
|
||||
LISTBOX IDC_REGEXT_LANG_LIST,70,30,100,125,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||
LISTBOX IDC_REGEXT_LANGEXT_LIST,175,30,80,125,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||
EDITTEXT IDC_CUSTOMEXT_EDIT,175,75,80,14,ES_AUTOHSCROLL | NOT WS_VISIBLE
|
||||
PUSHBUTTON "->",IDC_ADDFROMLANGEXT_BUTTON,265,76,25,14
|
||||
PUSHBUTTON "<-",IDC_REMOVEEXT_BUTTON,265,96,25,14
|
||||
LTEXT "Registered extensions:",IDC_REGISTEREDEXTS_STATIC,300,18,80,8
|
||||
LISTBOX IDC_REGEXT_REGISTEREDEXTS_LIST,300,30,80,125,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||
//CONTROL "",IDC_POUPELLE_STATIC,"Static",SS_OWNERDRAW,301,82,20,20
|
||||
END
|
||||
|
||||
|
@ -362,7 +362,7 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
||||
bool isVertical = (nppGUI._splitterPos == POS_VERTICAL);
|
||||
|
||||
_subSplitter.init(_pPublicInterface->getHinst(), hwnd);
|
||||
_subSplitter.create(&_mainDocTab, &_subDocTab, 8, DYNAMIC, 50, isVertical);
|
||||
_subSplitter.create(&_mainDocTab, &_subDocTab, 8, SplitterMode::DYNAMIC, 50, isVertical);
|
||||
|
||||
//--Status Bar Section--//
|
||||
bool willBeShown = nppGUI._statusBarShow;
|
||||
@ -3240,7 +3240,7 @@ void Notepad_plus::dockUserDlg()
|
||||
else
|
||||
pWindow = _pDocTab;
|
||||
|
||||
_pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, RIGHT_FIX, 45);
|
||||
_pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, SplitterMode::RIGHT_FIX, 45);
|
||||
}
|
||||
|
||||
if (bothActive())
|
||||
|
@ -223,7 +223,7 @@ public:
|
||||
//! \name File Operations
|
||||
//@{
|
||||
//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
|
||||
BufferID doOpen(const TCHAR *fileName, bool isRecursive = false, bool isReadOnly = false, int encoding = -1, const TCHAR *backupFileName = NULL, time_t fileNameTimestamp = 0);
|
||||
BufferID doOpen(const generic_string& fileName, bool isRecursive = false, bool isReadOnly = false, int encoding = -1, const TCHAR *backupFileName = NULL, time_t fileNameTimestamp = 0);
|
||||
bool doReload(BufferID id, bool alert = true);
|
||||
bool doSave(BufferID, const TCHAR * filename, bool isSaveCopy = false);
|
||||
void doClose(BufferID, int whichOne, bool doDeleteBackup = false);
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,13 +24,11 @@
|
||||
// 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 NOTEPAD_PLUS_WINDOW_H
|
||||
#define NOTEPAD_PLUS_WINDOW_H
|
||||
|
||||
#pragma once
|
||||
#include "Notepad_plus.h"
|
||||
|
||||
|
||||
|
||||
const TCHAR COMMAND_ARG_HELP[] = TEXT("Usage :\r\
|
||||
\r\
|
||||
notepad++ [--help] [-multiInst] [-noPlugin] [-lLanguage] [-LlangCode] [-nLineNumber] [-cColumnNumber] [-xLeftPos] [-yTopPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [-alwaysOnTop] [-openSession] [-r] [-qnEsterEggName | -qtText | -qfCntentFileName] [filePath]\r\
|
||||
@ -59,47 +57,57 @@ notepad++ [--help] [-multiInst] [-noPlugin] [-lLanguage] [-LlangCode] [-nLineNum
|
||||
filePath : file or folder name to open (absolute or relative path name)\r\
|
||||
");
|
||||
|
||||
class Notepad_plus_Window : public Window {
|
||||
|
||||
|
||||
|
||||
|
||||
class Notepad_plus_Window : public Window
|
||||
{
|
||||
public:
|
||||
Notepad_plus_Window() : _isPrelaunch(false), _disablePluginsManager(false) {};
|
||||
void init(HINSTANCE, HWND, const TCHAR *cmdLine, CmdLineParams *cmdLineParams);
|
||||
|
||||
bool isDlgsMsg(MSG *msg) const;
|
||||
|
||||
HACCEL getAccTable() const {
|
||||
|
||||
HACCEL getAccTable() const
|
||||
{
|
||||
return _notepad_plus_plus_core.getAccTable();
|
||||
};
|
||||
|
||||
bool emergency(generic_string emergencySavedDir) {
|
||||
}
|
||||
|
||||
bool emergency(generic_string emergencySavedDir)
|
||||
{
|
||||
return _notepad_plus_plus_core.emergency(emergencySavedDir);
|
||||
};
|
||||
}
|
||||
|
||||
bool isPrelaunch() const {
|
||||
bool isPrelaunch() const
|
||||
{
|
||||
return _isPrelaunch;
|
||||
};
|
||||
}
|
||||
|
||||
void setIsPrelaunch(bool val) {
|
||||
void setIsPrelaunch(bool val)
|
||||
{
|
||||
_isPrelaunch = val;
|
||||
};
|
||||
}
|
||||
|
||||
virtual void destroy(){
|
||||
::DestroyWindow(_hSelf);
|
||||
};
|
||||
virtual void destroy()
|
||||
{
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
static const TCHAR * getClassName() {
|
||||
static const TCHAR * getClassName()
|
||||
{
|
||||
return _className;
|
||||
};
|
||||
}
|
||||
|
||||
static HWND gNppHWND; //static handle to Notepad++ window, NULL if non-existant
|
||||
|
||||
|
||||
|
||||
private:
|
||||
Notepad_plus _notepad_plus_plus_core;
|
||||
static LRESULT CALLBACK Notepad_plus_Proc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
static const TCHAR _className[32];
|
||||
bool _isPrelaunch;
|
||||
bool _disablePluginsManager;
|
||||
std::string _userQuote; // keep the availability of this string for thread using
|
||||
bool _isPrelaunch = false;
|
||||
bool _disablePluginsManager = false;
|
||||
std::string _userQuote; // keep the availability of this string for thread using
|
||||
};
|
||||
|
||||
#endif //NOTEPAD_PLUS_WINDOW_H
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -55,7 +55,7 @@ void Notepad_plus::macroPlayback(Macro macro)
|
||||
_pEditView->execute(SCI_ENDUNDOACTION);
|
||||
}
|
||||
|
||||
void Notepad_plus::command(int id)
|
||||
void Notepad_plus::command(int id)
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
@ -127,7 +127,7 @@ void Notepad_plus::command(int id)
|
||||
checkDocState();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_FILE_CLOSEALL_BUT_CURRENT :
|
||||
fileCloseAllButCurrent();
|
||||
checkDocState();
|
||||
@ -234,12 +234,12 @@ void Notepad_plus::command(int id)
|
||||
unsigned char *lpucharCopy = (unsigned char *)GlobalLock(hglbCopy);
|
||||
memcpy(lpucharCopy, pBinText, textLen * sizeof(unsigned char));
|
||||
lpucharCopy[textLen] = 0; // null character
|
||||
|
||||
|
||||
GlobalUnlock(hglbCopy);
|
||||
|
||||
|
||||
// Place the handle on the clipboard.
|
||||
SetClipboardData(CF_TEXT, hglbCopy);
|
||||
|
||||
|
||||
|
||||
// Allocate a global memory object for the text length.
|
||||
HGLOBAL hglbLenCopy = GlobalAlloc(GMEM_MOVEABLE, sizeof(unsigned long));
|
||||
@ -248,13 +248,13 @@ void Notepad_plus::command(int id)
|
||||
CloseClipboard();
|
||||
return;
|
||||
}
|
||||
|
||||
// Lock the handle and copy the text to the buffer.
|
||||
unsigned long *lpLenCopy = (unsigned long *)GlobalLock(hglbLenCopy);
|
||||
|
||||
// Lock the handle and copy the text to the buffer.
|
||||
unsigned long *lpLenCopy = (unsigned long *)GlobalLock(hglbLenCopy);
|
||||
*lpLenCopy = textLen;
|
||||
|
||||
GlobalUnlock(hglbLenCopy);
|
||||
|
||||
|
||||
GlobalUnlock(hglbLenCopy);
|
||||
|
||||
// Place the handle on the clipboard.
|
||||
UINT f = RegisterClipboardFormat(CF_NPPTEXTLEN);
|
||||
SetClipboardData(f, hglbLenCopy);
|
||||
@ -276,33 +276,33 @@ void Notepad_plus::command(int id)
|
||||
break;
|
||||
|
||||
case IDM_EDIT_PASTE_BINARY:
|
||||
{
|
||||
{
|
||||
LongRunningOperation op;
|
||||
if (!IsClipboardFormatAvailable(CF_TEXT))
|
||||
return;
|
||||
|
||||
if (!OpenClipboard(NULL))
|
||||
return;
|
||||
|
||||
HGLOBAL hglb = GetClipboardData(CF_TEXT);
|
||||
if (hglb != NULL)
|
||||
{
|
||||
char *lpchar = (char *)GlobalLock(hglb);
|
||||
if (lpchar != NULL)
|
||||
return;
|
||||
|
||||
HGLOBAL hglb = GetClipboardData(CF_TEXT);
|
||||
if (hglb != NULL)
|
||||
{
|
||||
char *lpchar = (char *)GlobalLock(hglb);
|
||||
if (lpchar != NULL)
|
||||
{
|
||||
UINT cf_nppTextLen = RegisterClipboardFormat(CF_NPPTEXTLEN);
|
||||
if (IsClipboardFormatAvailable(cf_nppTextLen))
|
||||
{
|
||||
HGLOBAL hglbLen = GetClipboardData(cf_nppTextLen);
|
||||
if (hglbLen != NULL)
|
||||
{
|
||||
unsigned long *lpLen = (unsigned long *)GlobalLock(hglbLen);
|
||||
if (lpLen != NULL)
|
||||
HGLOBAL hglbLen = GetClipboardData(cf_nppTextLen);
|
||||
if (hglbLen != NULL)
|
||||
{
|
||||
unsigned long *lpLen = (unsigned long *)GlobalLock(hglbLen);
|
||||
if (lpLen != NULL)
|
||||
{
|
||||
_pEditView->execute(SCI_REPLACESEL, 0, (LPARAM)"");
|
||||
_pEditView->execute(SCI_ADDTEXT, *lpLen, (LPARAM)lpchar);
|
||||
|
||||
GlobalUnlock(hglb);
|
||||
GlobalUnlock(hglb);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -311,7 +311,7 @@ void Notepad_plus::command(int id)
|
||||
|
||||
_pEditView->execute(SCI_REPLACESEL, 0, (LPARAM)lpchar);
|
||||
}
|
||||
GlobalUnlock(hglb);
|
||||
GlobalUnlock(hglb);
|
||||
}
|
||||
}
|
||||
CloseClipboard();
|
||||
@ -325,27 +325,27 @@ void Notepad_plus::command(int id)
|
||||
LongRunningOperation op;
|
||||
UINT f = RegisterClipboardFormat(id==IDM_EDIT_PASTE_AS_HTML?CF_HTML:CF_RTF);
|
||||
|
||||
if (!IsClipboardFormatAvailable(f))
|
||||
if (!IsClipboardFormatAvailable(f))
|
||||
return;
|
||||
|
||||
|
||||
if (!OpenClipboard(NULL))
|
||||
return;
|
||||
|
||||
HGLOBAL hglb = GetClipboardData(f);
|
||||
if (hglb != NULL)
|
||||
{
|
||||
LPSTR lptstr = (LPSTR)GlobalLock(hglb);
|
||||
if (lptstr != NULL)
|
||||
{
|
||||
// Call the application-defined ReplaceSelection
|
||||
// function to insert the text and repaint the
|
||||
// window.
|
||||
return;
|
||||
|
||||
HGLOBAL hglb = GetClipboardData(f);
|
||||
if (hglb != NULL)
|
||||
{
|
||||
LPSTR lptstr = (LPSTR)GlobalLock(hglb);
|
||||
if (lptstr != NULL)
|
||||
{
|
||||
// Call the application-defined ReplaceSelection
|
||||
// function to insert the text and repaint the
|
||||
// window.
|
||||
_pEditView->execute(SCI_REPLACESEL, 0, (LPARAM)lptstr);
|
||||
|
||||
GlobalUnlock(hglb);
|
||||
GlobalUnlock(hglb);
|
||||
}
|
||||
}
|
||||
CloseClipboard();
|
||||
CloseClipboard();
|
||||
}
|
||||
break;
|
||||
|
||||
@ -551,7 +551,7 @@ void Notepad_plus::command(int id)
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case IDM_VIEW_TAB1:
|
||||
case IDM_VIEW_TAB2:
|
||||
case IDM_VIEW_TAB3:
|
||||
@ -613,10 +613,10 @@ void Notepad_plus::command(int id)
|
||||
// STOP !!!
|
||||
_mainEditView.execute(SCI_STOPRECORD);
|
||||
_subEditView.execute(SCI_STOPRECORD);
|
||||
|
||||
|
||||
_mainEditView.execute(SCI_SETCURSOR, (WPARAM)SC_CURSORNORMAL);
|
||||
_subEditView.execute(SCI_SETCURSOR, (WPARAM)SC_CURSORNORMAL);
|
||||
|
||||
|
||||
_recordingMacro = false;
|
||||
_runMacroDlg.initMacroList();
|
||||
}
|
||||
@ -646,13 +646,13 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
bool isFirstTime = !_runMacroDlg.isCreated();
|
||||
_runMacroDlg.doDialog(_nativeLangSpeaker.isRTL());
|
||||
|
||||
|
||||
if (isFirstTime)
|
||||
{
|
||||
_nativeLangSpeaker.changeDlgLang(_runMacroDlg.getHSelf(), "MultiMacro");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -693,7 +693,7 @@ void Notepad_plus::command(int id)
|
||||
TCHAR str[strSize];
|
||||
|
||||
bool isFirstTime = !_findReplaceDlg.isCreated();
|
||||
|
||||
|
||||
DIALOG_TYPE dlgID = FIND_DLG;
|
||||
if (id == IDM_SEARCH_REPLACE)
|
||||
dlgID = REPLACE_DLG;
|
||||
@ -898,7 +898,7 @@ void Notepad_plus::command(int id)
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_SEARCH_GOPREVMARKER1 :
|
||||
case IDM_SEARCH_GOPREVMARKER2 :
|
||||
case IDM_SEARCH_GOPREVMARKER3 :
|
||||
@ -1004,11 +1004,11 @@ void Notepad_plus::command(int id)
|
||||
case IDM_SEARCH_CLEAR_BOOKMARKS:
|
||||
bookmarkClearAll();
|
||||
break;
|
||||
|
||||
|
||||
case IDM_LANG_USER_DLG :
|
||||
{
|
||||
bool isUDDlgVisible = false;
|
||||
|
||||
|
||||
UserDefineDialog *udd = _pEditView->getUserDefineDlg();
|
||||
|
||||
if (!udd->isCreated())
|
||||
@ -1034,7 +1034,7 @@ void Notepad_plus::command(int id)
|
||||
_pMainWindow = _pDocTab;
|
||||
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
|
||||
|
||||
|
||||
udd->display(false);
|
||||
_mainWindowStatus &= ~WindowUserActive;
|
||||
}
|
||||
@ -1051,7 +1051,7 @@ void Notepad_plus::command(int id)
|
||||
else
|
||||
pWindow = _pDocTab;
|
||||
|
||||
_pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, RIGHT_FIX, 45);
|
||||
_pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, SplitterMode::RIGHT_FIX, 45);
|
||||
}
|
||||
|
||||
_pMainWindow = _pMainSplitter;
|
||||
@ -1137,7 +1137,7 @@ void Notepad_plus::command(int id)
|
||||
case IDM_EDIT_BLOCK_COMMENT:
|
||||
doBlockComment(cm_toggle);
|
||||
break;
|
||||
|
||||
|
||||
case IDM_EDIT_BLOCK_COMMENT_SET:
|
||||
doBlockComment(cm_comment);
|
||||
break;
|
||||
@ -1213,11 +1213,11 @@ void Notepad_plus::command(int id)
|
||||
case IDM_EDIT_CLEARREADONLY:
|
||||
{
|
||||
Buffer * buf = _pEditView->getCurrentBuffer();
|
||||
|
||||
DWORD dwFileAttribs = ::GetFileAttributes(buf->getFullPathName());
|
||||
dwFileAttribs ^= FILE_ATTRIBUTE_READONLY;
|
||||
|
||||
::SetFileAttributes(buf->getFullPathName(), dwFileAttribs);
|
||||
DWORD dwFileAttribs = ::GetFileAttributes(buf->getFullPathName());
|
||||
dwFileAttribs ^= FILE_ATTRIBUTE_READONLY;
|
||||
|
||||
::SetFileAttributes(buf->getFullPathName(), dwFileAttribs);
|
||||
buf->setFileReadOnly(false);
|
||||
}
|
||||
break;
|
||||
@ -1367,7 +1367,7 @@ void Notepad_plus::command(int id)
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_VIEW_REFRESHTABAR :
|
||||
{
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
|
||||
@ -1397,7 +1397,7 @@ void Notepad_plus::command(int id)
|
||||
TabBarPlus::setDrawTabCloseButton(!TabBarPlus::drawTabCloseButton());
|
||||
|
||||
// This part is just for updating (redraw) the tabs
|
||||
{
|
||||
{
|
||||
int tabDpiDynamicalHeight = NppParameters::getInstance()->_dpiManager.scaleY(TabBarPlus::drawTabCloseButton()?21:20);
|
||||
int tabDpiDynamicalWidth = NppParameters::getInstance()->_dpiManager.scaleX(TabBarPlus::drawTabCloseButton() ? 60:45);
|
||||
TabCtrl_SetItemSize(_mainDocTab.getHSelf(), tabDpiDynamicalWidth, tabDpiDynamicalHeight);
|
||||
@ -1412,18 +1412,18 @@ void Notepad_plus::command(int id)
|
||||
TabBarPlus::setDbClk2Close(!TabBarPlus::isDbClk2Close());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_VIEW_DRAWTABBAR_VERTICAL :
|
||||
{
|
||||
TabBarPlus::setVertical(!TabBarPlus::isVertical());
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_VIEW_DRAWTABBAR_MULTILINE :
|
||||
{
|
||||
TabBarPlus::setMultiLine(!TabBarPlus::isMultiLine());
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1555,7 +1555,7 @@ void Notepad_plus::command(int id)
|
||||
case IDM_VIEW_SYNSCROLLV:
|
||||
{
|
||||
bool isSynScollV = !_syncInfo._isSynScollV;
|
||||
|
||||
|
||||
checkMenuItem(IDM_VIEW_SYNSCROLLV, isSynScollV);
|
||||
_toolBar.setCheck(IDM_VIEW_SYNSCROLLV, isSynScollV);
|
||||
|
||||
@ -1566,7 +1566,7 @@ void Notepad_plus::command(int id)
|
||||
int subCurrentLine = _subEditView.execute(SCI_GETFIRSTVISIBLELINE);
|
||||
_syncInfo._line = mainCurrentLine - subCurrentLine;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1699,7 +1699,7 @@ void Notepad_plus::command(int id)
|
||||
case IDM_FORMAT_TOMAC :
|
||||
{
|
||||
Buffer * buf = _pEditView->getCurrentBuffer();
|
||||
|
||||
|
||||
int f = int((id == IDM_FORMAT_TODOS)?SC_EOL_CRLF:(id == IDM_FORMAT_TOUNIX)?SC_EOL_LF:SC_EOL_CR);
|
||||
|
||||
buf->setFormat((formatType)f);
|
||||
@ -1708,7 +1708,7 @@ void Notepad_plus::command(int id)
|
||||
}
|
||||
|
||||
case IDM_FORMAT_ANSI :
|
||||
case IDM_FORMAT_UTF_8 :
|
||||
case IDM_FORMAT_UTF_8 :
|
||||
case IDM_FORMAT_UCS_2BE :
|
||||
case IDM_FORMAT_UCS_2LE :
|
||||
case IDM_FORMAT_AS_UTF_8 :
|
||||
@ -1723,7 +1723,7 @@ void Notepad_plus::command(int id)
|
||||
shoulBeDirty = buf->getUnicodeMode() != uni8Bit;
|
||||
um = uniCookie;
|
||||
break;
|
||||
|
||||
|
||||
case IDM_FORMAT_UTF_8:
|
||||
um = uniUTF8;
|
||||
break;
|
||||
@ -1842,7 +1842,7 @@ void Notepad_plus::command(int id)
|
||||
case IDM_FORMAT_KOREAN_WIN :
|
||||
case IDM_FORMAT_EUC_KR :
|
||||
case IDM_FORMAT_TIS_620 :
|
||||
case IDM_FORMAT_MAC_CYRILLIC :
|
||||
case IDM_FORMAT_MAC_CYRILLIC :
|
||||
case IDM_FORMAT_KOI8U_CYRILLIC :
|
||||
case IDM_FORMAT_KOI8R_CYRILLIC :
|
||||
{
|
||||
@ -1883,7 +1883,7 @@ void Notepad_plus::command(int id)
|
||||
TEXT("You should save the current modification.\rAll the saved modifications can not be undone.\r\rContinue?"),
|
||||
TEXT("Lose Undo Ability Waning"),
|
||||
MB_YESNO);
|
||||
|
||||
|
||||
if (answer == IDYES)
|
||||
{
|
||||
// Do nothing
|
||||
@ -1906,7 +1906,7 @@ void Notepad_plus::command(int id)
|
||||
case IDM_FORMAT_CONV2_ANSI:
|
||||
case IDM_FORMAT_CONV2_AS_UTF_8:
|
||||
case IDM_FORMAT_CONV2_UTF_8:
|
||||
case IDM_FORMAT_CONV2_UCS_2BE:
|
||||
case IDM_FORMAT_CONV2_UCS_2BE:
|
||||
case IDM_FORMAT_CONV2_UCS_2LE:
|
||||
{
|
||||
int idEncoding = -1;
|
||||
@ -1927,7 +1927,7 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
if (um == uni8Bit)
|
||||
return;
|
||||
|
||||
|
||||
// set scintilla to ANSI
|
||||
idEncoding = IDM_FORMAT_ANSI;
|
||||
}
|
||||
@ -1978,7 +1978,7 @@ void Notepad_plus::command(int id)
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_FORMAT_CONV2_UCS_2BE:
|
||||
{
|
||||
if (encoding != -1)
|
||||
@ -2001,7 +2001,7 @@ void Notepad_plus::command(int id)
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case IDM_FORMAT_CONV2_UCS_2LE:
|
||||
{
|
||||
if (encoding != -1)
|
||||
@ -2037,8 +2037,8 @@ void Notepad_plus::command(int id)
|
||||
LPVOID clipboardData2 = ::GlobalLock(allocClipboardData);
|
||||
|
||||
::memcpy(clipboardData2, clipboardDataPtr, len);
|
||||
::GlobalUnlock(clipboardData);
|
||||
::GlobalUnlock(allocClipboardData);
|
||||
::GlobalUnlock(clipboardData);
|
||||
::GlobalUnlock(allocClipboardData);
|
||||
::CloseClipboard();
|
||||
|
||||
_pEditView->saveCurrentPos();
|
||||
@ -2049,7 +2049,7 @@ void Notepad_plus::command(int id)
|
||||
_pEditView->execute(SCI_CLEARALL);
|
||||
|
||||
// Change to the proper buffer, save buffer status
|
||||
|
||||
|
||||
::SendMessage(_pPublicInterface->getHSelf(), WM_COMMAND, idEncoding, 0);
|
||||
|
||||
// Paste the texte, restore buffer status
|
||||
@ -2058,7 +2058,7 @@ void Notepad_plus::command(int id)
|
||||
|
||||
// Restore the previous clipboard data
|
||||
::OpenClipboard(_pPublicInterface->getHSelf());
|
||||
::EmptyClipboard();
|
||||
::EmptyClipboard();
|
||||
::SetClipboardData(CF_TEXT, clipboardData2);
|
||||
::CloseClipboard();
|
||||
|
||||
@ -2106,7 +2106,7 @@ void Notepad_plus::command(int id)
|
||||
for (size_t i = 0, len = copiedFiles.size(); i < len ; ++i)
|
||||
{
|
||||
generic_string themeName(themeSwitcher.getThemeFromXmlFileName(copiedFiles[i].c_str()));
|
||||
if (!themeSwitcher.themeNameExists(themeName.c_str()))
|
||||
if (!themeSwitcher.themeNameExists(themeName.c_str()))
|
||||
{
|
||||
themeSwitcher.addThemeFromXml(copiedFiles[i].c_str());
|
||||
if (_configStyleDlg.isCreated())
|
||||
@ -2134,7 +2134,7 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
bool isFirstTime = !_preference.isCreated();
|
||||
_preference.doDialog(_nativeLangSpeaker.isRTL());
|
||||
|
||||
|
||||
if (isFirstTime)
|
||||
{
|
||||
_nativeLangSpeaker.changePrefereceDlgLang(_preference);
|
||||
@ -2154,7 +2154,7 @@ void Notepad_plus::command(int id)
|
||||
MB_OK|MB_APPLMODAL);
|
||||
}
|
||||
NppParameters *pNppParams = NppParameters::getInstance();
|
||||
BufferID bufID = doOpen((pNppParams->getContextMenuPath()).c_str());
|
||||
BufferID bufID = doOpen((pNppParams->getContextMenuPath()));
|
||||
switchToFile(bufID);
|
||||
break;
|
||||
}
|
||||
@ -2209,7 +2209,7 @@ void Notepad_plus::command(int id)
|
||||
char author[maxSelLen+1] = "";
|
||||
_pEditView->getSelectedText(author, maxSelLen + 1);
|
||||
int iQuote = getQuoteIndexFrom(author);
|
||||
|
||||
|
||||
if (iQuote == -1)
|
||||
{
|
||||
doAboutDlg = true;
|
||||
@ -2229,7 +2229,7 @@ void Notepad_plus::command(int id)
|
||||
if (!::PathFileExists(noEasterEggsPath.c_str()))
|
||||
showQuoteFromIndex(iQuote);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (doAboutDlg)
|
||||
{
|
||||
@ -2444,7 +2444,7 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
int nbDoc = viewVisible(MAIN_VIEW)?_mainDocTab.nbItem():0;
|
||||
nbDoc += viewVisible(SUB_VIEW)?_subDocTab.nbItem():0;
|
||||
|
||||
|
||||
bool doTaskList = ((NppParameters::getInstance())->getNppGUI())._doTaskList;
|
||||
if (nbDoc > 1)
|
||||
{
|
||||
@ -2455,7 +2455,7 @@ void Notepad_plus::command(int id)
|
||||
activateNextDoc(direction);
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
TaskListDlg tld;
|
||||
HIMAGELIST hImgLst = _docTabIconList.getHandle();
|
||||
tld.init(_pPublicInterface->getHinst(), _pPublicInterface->getHSelf(), hImgLst, direction);
|
||||
@ -2472,7 +2472,7 @@ void Notepad_plus::command(int id)
|
||||
int size = _lastRecentFileList.getSize();
|
||||
for (int i = size - 1; i >= 0; i--)
|
||||
{
|
||||
BufferID test = doOpen(_lastRecentFileList.getIndex(i).c_str());
|
||||
BufferID test = doOpen(_lastRecentFileList.getIndex(i));
|
||||
if (test != BUFFER_INVALID)
|
||||
lastOne = test;
|
||||
}
|
||||
@ -2507,7 +2507,7 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
WindowsDlg _windowsDlg;
|
||||
_windowsDlg.init(_pPublicInterface->getHinst(), _pPublicInterface->getHSelf(), _pDocTab);
|
||||
|
||||
|
||||
const TiXmlNodeA *nativeLangA = _nativeLangSpeaker.getNativeLangA();
|
||||
TiXmlNodeA *dlgNode = NULL;
|
||||
if (nativeLangA)
|
||||
@ -2545,11 +2545,11 @@ void Notepad_plus::command(int id)
|
||||
if (!buf->isUntitled() || buf->docLength() != 0)
|
||||
{
|
||||
fileNew();
|
||||
}
|
||||
}
|
||||
command(IDM_EDIT_PASTE);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case IDM_SYSTRAYPOPUP_OPENFILE:
|
||||
{
|
||||
NppGUI & nppGUI = (NppGUI &)((NppParameters::getInstance())->getNppGUI());
|
||||
@ -2570,13 +2570,11 @@ void Notepad_plus::command(int id)
|
||||
case IDM_FILE_RESTORELASTCLOSEDFILE:
|
||||
{
|
||||
generic_string lastOpenedFullPath = _lastRecentFileList.getFirstItem();
|
||||
if (lastOpenedFullPath != TEXT(""))
|
||||
if (not lastOpenedFullPath.empty())
|
||||
{
|
||||
BufferID lastOpened = doOpen(lastOpenedFullPath.c_str());
|
||||
BufferID lastOpened = doOpen(lastOpenedFullPath);
|
||||
if (lastOpened != BUFFER_INVALID)
|
||||
{
|
||||
switchToFile(lastOpened);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -2667,7 +2665,7 @@ void Notepad_plus::command(int id)
|
||||
default :
|
||||
if (id > IDM_FILEMENU_LASTONE && id < (IDM_FILEMENU_LASTONE + _lastRecentFileList.getMaxNbLRF() + 1))
|
||||
{
|
||||
BufferID lastOpened = doOpen(_lastRecentFileList.getItem(id).c_str());
|
||||
BufferID lastOpened = doOpen(_lastRecentFileList.getItem(id));
|
||||
if (lastOpened != BUFFER_INVALID)
|
||||
{
|
||||
switchToFile(lastOpened);
|
||||
@ -2687,7 +2685,7 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
int i = id - ID_MACRO;
|
||||
vector<MacroShortcut> & theMacros = (NppParameters::getInstance())->getMacroList();
|
||||
macroPlayback(theMacros[i].getMacro());
|
||||
macroPlayback(theMacros[i].getMacro());
|
||||
}
|
||||
else if ((id >= ID_USER_CMD) && (id < ID_USER_CMD_LIMIT))
|
||||
{
|
||||
@ -2707,7 +2705,7 @@ void Notepad_plus::command(int id)
|
||||
{
|
||||
_pluginsManager.relayNppMessages(WM_COMMAND, id, 0);
|
||||
}
|
||||
/*UNLOAD
|
||||
/*UNLOAD
|
||||
else if ((id >= ID_PLUGINS_REMOVING) && (id < ID_PLUGINS_REMOVING_END))
|
||||
{
|
||||
int i = id - ID_PLUGINS_REMOVING;
|
||||
@ -2716,11 +2714,11 @@ void Notepad_plus::command(int id)
|
||||
*/
|
||||
else if ((id >= IDM_WINDOW_MRU_FIRST) && (id <= IDM_WINDOW_MRU_LIMIT))
|
||||
{
|
||||
activateDoc(id-IDM_WINDOW_MRU_FIRST);
|
||||
activateDoc(id-IDM_WINDOW_MRU_FIRST);
|
||||
}
|
||||
}
|
||||
|
||||
if (_recordingMacro)
|
||||
|
||||
if (_recordingMacro)
|
||||
switch (id)
|
||||
{
|
||||
case IDM_FILE_NEW :
|
||||
@ -2817,15 +2815,15 @@ void Notepad_plus::command(int id)
|
||||
case IDM_VIEW_GOTO_ANOTHER_VIEW:
|
||||
case IDM_VIEW_SYNSCROLLV:
|
||||
case IDM_VIEW_SYNSCROLLH:
|
||||
case IDM_VIEW_TAB1:
|
||||
case IDM_VIEW_TAB2:
|
||||
case IDM_VIEW_TAB3:
|
||||
case IDM_VIEW_TAB4:
|
||||
case IDM_VIEW_TAB5:
|
||||
case IDM_VIEW_TAB6:
|
||||
case IDM_VIEW_TAB7:
|
||||
case IDM_VIEW_TAB8:
|
||||
case IDM_VIEW_TAB9:
|
||||
case IDM_VIEW_TAB1:
|
||||
case IDM_VIEW_TAB2:
|
||||
case IDM_VIEW_TAB3:
|
||||
case IDM_VIEW_TAB4:
|
||||
case IDM_VIEW_TAB5:
|
||||
case IDM_VIEW_TAB6:
|
||||
case IDM_VIEW_TAB7:
|
||||
case IDM_VIEW_TAB8:
|
||||
case IDM_VIEW_TAB9:
|
||||
case IDM_VIEW_TAB_NEXT:
|
||||
case IDM_VIEW_TAB_PREV:
|
||||
case IDC_PREV_DOC :
|
||||
|
@ -37,10 +37,11 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isReadOnly, int encoding, const TCHAR *backupFileName, time_t fileNameTimestamp)
|
||||
BufferID Notepad_plus::doOpen(const generic_string& fileName, bool isRecursive, bool isReadOnly, int encoding, const TCHAR *backupFileName, time_t fileNameTimestamp)
|
||||
{
|
||||
|
||||
const rsize_t longFileNameBufferSize = MAX_PATH;
|
||||
const rsize_t longFileNameBufferSize = MAX_PATH; // TODO stop using fixed-size buffer
|
||||
if (fileName.size() >= longFileNameBufferSize - 1) // issue with all other sub-routines
|
||||
return BUFFER_INVALID;
|
||||
|
||||
//If [GetFullPathName] succeeds, the return value is the length, in TCHARs, of the string copied to lpBuffer, not including the terminating null character.
|
||||
//If the lpBuffer buffer is too small to contain the path, the return value [of GetFullPathName] is the size, in TCHARs, of the buffer that is required to hold the path and the terminating null character.
|
||||
@ -49,7 +50,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
NppParameters *pNppParam = NppParameters::getInstance();
|
||||
TCHAR longFileName[longFileNameBufferSize];
|
||||
|
||||
const DWORD getFullPathNameResult = ::GetFullPathName(fileName, longFileNameBufferSize, longFileName, NULL);
|
||||
const DWORD getFullPathNameResult = ::GetFullPathName(fileName.c_str(), longFileNameBufferSize, longFileName, NULL);
|
||||
if ( getFullPathNameResult == 0 )
|
||||
{
|
||||
return BUFFER_INVALID;
|
||||
@ -66,14 +67,14 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
bool isSnapshotMode = backupFileName != NULL && PathFileExists(backupFileName);
|
||||
if (isSnapshotMode && !PathFileExists(longFileName)) // UNTITLED
|
||||
{
|
||||
lstrcpy(longFileName, fileName);
|
||||
lstrcpy(longFileName, fileName.c_str());
|
||||
}
|
||||
|
||||
|
||||
_lastRecentFileList.remove(longFileName);
|
||||
|
||||
const TCHAR * fileName2Find;
|
||||
generic_string gs_fileName = fileName;
|
||||
generic_string fileName2Find;
|
||||
generic_string gs_fileName{fileName};
|
||||
size_t res = gs_fileName.find_first_of(UNTITLED_STR);
|
||||
|
||||
if (res != string::npos && res == 0)
|
||||
@ -85,7 +86,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
fileName2Find = longFileName;
|
||||
}
|
||||
|
||||
BufferID test = MainFileManager->getBufferFromName(fileName2Find);
|
||||
BufferID test = MainFileManager->getBufferFromName(fileName2Find.c_str());
|
||||
if (test != BUFFER_INVALID && !isSnapshotMode)
|
||||
{
|
||||
//switchToFile(test);
|
||||
@ -248,14 +249,14 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
}
|
||||
else
|
||||
{
|
||||
if (globbing || ::PathIsDirectory(fileName))
|
||||
if (globbing || ::PathIsDirectory(fileName.c_str()))
|
||||
{
|
||||
vector<generic_string> fileNames;
|
||||
vector<generic_string> patterns;
|
||||
if (globbing)
|
||||
{
|
||||
const TCHAR * substring = wcsrchr(fileName, TCHAR('\\'));
|
||||
size_t pos = substring - fileName;
|
||||
const TCHAR * substring = wcsrchr(fileName.c_str(), TCHAR('\\'));
|
||||
size_t pos = substring - fileName.c_str();
|
||||
|
||||
patterns.push_back(substring + 1);
|
||||
generic_string dir(fileName, pos + 1);
|
||||
@ -264,7 +265,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
else
|
||||
{
|
||||
generic_string fileNameStr = fileName;
|
||||
if (fileName[lstrlen(fileName) - 1] != '\\')
|
||||
if (fileName[fileName.size() - 1] != '\\')
|
||||
fileNameStr += TEXT("\\");
|
||||
|
||||
patterns.push_back(TEXT("*"));
|
||||
@ -277,19 +278,17 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
if (nbFiles2Open > 200)
|
||||
{
|
||||
ok2Open = IDYES == _nativeLangSpeaker.messageBox("NbFileToOpenImportantWarning",
|
||||
_pPublicInterface->getHSelf(),
|
||||
TEXT("$INT_REPLACE$ files are about to be opened.\rAre you sure to open them?"),
|
||||
TEXT("Amount of files to open is too large"),
|
||||
MB_YESNO|MB_APPLMODAL,
|
||||
nbFiles2Open);
|
||||
_pPublicInterface->getHSelf(),
|
||||
TEXT("$INT_REPLACE$ files are about to be opened.\rAre you sure to open them?"),
|
||||
TEXT("Amount of files to open is too large"),
|
||||
MB_YESNO|MB_APPLMODAL,
|
||||
nbFiles2Open);
|
||||
}
|
||||
|
||||
if (ok2Open)
|
||||
{
|
||||
for (size_t i = 0 ; i < nbFiles2Open ; ++i)
|
||||
{
|
||||
doOpen(fileNames[i].c_str());
|
||||
}
|
||||
doOpen(fileNames[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -313,6 +312,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
bool Notepad_plus::doReload(BufferID id, bool alert)
|
||||
{
|
||||
if (alert)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,74 +24,69 @@
|
||||
// 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 <iostream>
|
||||
#include "ColourPicker.h"
|
||||
#include "ColourPopup.h"
|
||||
|
||||
|
||||
|
||||
|
||||
void ColourPicker::init(HINSTANCE hInst, HWND parent)
|
||||
{
|
||||
Window::init(hInst, parent);
|
||||
|
||||
_hSelf = ::CreateWindowEx(
|
||||
0,
|
||||
TEXT("Button"),
|
||||
TEXT("F"),
|
||||
WS_CHILD | WS_VISIBLE,
|
||||
0, 0, 25, 25,
|
||||
_hParent,
|
||||
NULL,
|
||||
_hInst,
|
||||
(LPVOID)0);
|
||||
0,
|
||||
TEXT("Button"),
|
||||
TEXT("F"),
|
||||
WS_CHILD | WS_VISIBLE,
|
||||
0, 0, 25, 25,
|
||||
_hParent, NULL, _hInst, (LPVOID)0);
|
||||
|
||||
if (!_hSelf)
|
||||
{
|
||||
throw std::runtime_error("ColourPicker::init : CreateWindowEx() function return null");
|
||||
}
|
||||
|
||||
|
||||
::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (LONG_PTR)this);
|
||||
_buttonDefaultProc = reinterpret_cast<WNDPROC>(::SetWindowLongPtr(_hSelf, GWLP_WNDPROC, (LONG_PTR)staticWinProc));
|
||||
|
||||
::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (LONG_PTR)this);
|
||||
_buttonDefaultProc = reinterpret_cast<WNDPROC>(::SetWindowLongPtr(_hSelf, GWLP_WNDPROC, (LONG_PTR)staticWinProc));
|
||||
}
|
||||
|
||||
|
||||
void ColourPicker::destroy()
|
||||
{
|
||||
if (_pColourPopup)
|
||||
{
|
||||
delete _pColourPopup;
|
||||
_pColourPopup = NULL;
|
||||
}
|
||||
delete _pColourPopup;
|
||||
_pColourPopup = NULL;
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
|
||||
void ColourPicker::drawBackground(HDC hDC)
|
||||
{
|
||||
RECT rc;
|
||||
RECT rc;
|
||||
HBRUSH hbrush;
|
||||
|
||||
if(!hDC)
|
||||
if (!hDC)
|
||||
return;
|
||||
|
||||
getClientRect(rc);
|
||||
getClientRect(rc);
|
||||
hbrush = ::CreateSolidBrush(_currentColour);
|
||||
HGDIOBJ oldObj = ::SelectObject(hDC, hbrush);
|
||||
::Rectangle(hDC, 0, 0, rc.right, rc.bottom);
|
||||
::SelectObject(hDC, oldObj);
|
||||
//FillRect(hDC, &rc, hbrush);
|
||||
::DeleteObject(hbrush);
|
||||
::DeleteObject(hbrush);
|
||||
}
|
||||
|
||||
|
||||
void ColourPicker::drawForeground(HDC hDC)
|
||||
{
|
||||
RECT rc;
|
||||
RECT rc;
|
||||
HBRUSH hbrush = NULL;
|
||||
|
||||
if(!hDC || _isEnabled)
|
||||
if (!hDC || _isEnabled)
|
||||
return;
|
||||
|
||||
int oldMode = ::SetBkMode(hDC, TRANSPARENT);
|
||||
getClientRect(rc);
|
||||
getClientRect(rc);
|
||||
COLORREF strikeOut = RGB(0,0,0);
|
||||
if ((((_currentColour ) & 0xFF) +
|
||||
((_currentColour >> 8) & 0xFF) +
|
||||
@ -103,17 +98,18 @@ void ColourPicker::drawForeground(HDC hDC)
|
||||
::Rectangle(hDC, 0, 0, rc.right, rc.bottom);
|
||||
::SelectObject(hDC, oldObj);
|
||||
//FillRect(hDC, &rc, hbrush);
|
||||
::DeleteObject(hbrush);
|
||||
::DeleteObject(hbrush);
|
||||
::SetBkMode(hDC, oldMode);
|
||||
}
|
||||
|
||||
|
||||
LRESULT ColourPicker::runProc(UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (Message)
|
||||
{
|
||||
case WM_LBUTTONDBLCLK :
|
||||
case WM_LBUTTONDOWN :
|
||||
{
|
||||
case WM_LBUTTONDBLCLK:
|
||||
case WM_LBUTTONDOWN:
|
||||
{
|
||||
RECT rc;
|
||||
POINT p;
|
||||
Window::getClientRect(rc);
|
||||
@ -134,8 +130,9 @@ LRESULT ColourPicker::runProc(UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
_pColourPopup->doDialog(p);
|
||||
_pColourPopup->display(true);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
{
|
||||
_isEnabled = !_isEnabled;
|
||||
@ -152,41 +149,44 @@ LRESULT ColourPicker::runProc(UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_PAINT :
|
||||
{
|
||||
case WM_PAINT:
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC dc = ::BeginPaint(_hSelf, &ps);
|
||||
drawForeground(dc);
|
||||
drawForeground(dc);
|
||||
::EndPaint(_hSelf, &ps);
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_PICKUP_COLOR :
|
||||
{
|
||||
_currentColour = (COLORREF)wParam;
|
||||
redraw();
|
||||
case WM_PICKUP_COLOR:
|
||||
{
|
||||
_currentColour = (COLORREF)wParam;
|
||||
redraw();
|
||||
|
||||
_pColourPopup->display(false);
|
||||
::SendMessage(_hParent, WM_COMMAND, MAKELONG(0, CPN_COLOURPICKED), (LPARAM)_hSelf);
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_ENABLE :
|
||||
{
|
||||
if ((BOOL)wParam == FALSE)
|
||||
{
|
||||
_currentColour = ::GetSysColor(COLOR_3DFACE);
|
||||
redraw();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
case WM_ENABLE:
|
||||
{
|
||||
if ((BOOL)wParam == FALSE)
|
||||
{
|
||||
_currentColour = ::GetSysColor(COLOR_3DFACE);
|
||||
redraw();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_PICKUP_CANCEL :
|
||||
case WM_PICKUP_CANCEL:
|
||||
{
|
||||
_pColourPopup->display(false);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default :
|
||||
default:
|
||||
return ::CallWindowProc(_buttonDefaultProc, _hSelf, Message, wParam, lParam);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,62 +24,54 @@
|
||||
// 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_H
|
||||
#define COLOUR_POPUP_H
|
||||
|
||||
#ifndef COLOUR_POPUP_RESOURCE_H
|
||||
#pragma once
|
||||
#include "ColourPopupResource.h"
|
||||
#endif //COLOUR_POPUP_RESOURCE_H
|
||||
|
||||
#ifndef RESOURCE_H
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
|
||||
#include "Window.h"
|
||||
|
||||
#define WM_PICKUP_COLOR (COLOURPOPUP_USER + 1)
|
||||
#define WM_PICKUP_COLOR (COLOURPOPUP_USER + 1)
|
||||
#define WM_PICKUP_CANCEL (COLOURPOPUP_USER + 2)
|
||||
|
||||
|
||||
|
||||
class ColourPopup : public Window
|
||||
{
|
||||
public :
|
||||
ColourPopup() : Window()/*, isColourChooserLaunched(false)*/ {};
|
||||
ColourPopup(COLORREF defaultColor) : Window(), /* isColourChooserLaunched(false), */ _colour(defaultColor) {};
|
||||
~ColourPopup(){};
|
||||
|
||||
bool isCreated() const {
|
||||
ColourPopup() = default;
|
||||
explicit ColourPopup(COLORREF defaultColor) : _colour(defaultColor) {}
|
||||
virtual ~ColourPopup() {}
|
||||
|
||||
bool isCreated() const
|
||||
{
|
||||
return (_hSelf != NULL);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
void create(int dialogID);
|
||||
|
||||
void doDialog(POINT p) {
|
||||
if (!isCreated())
|
||||
create(IDD_COLOUR_POPUP);
|
||||
::SetWindowPos(_hSelf, HWND_TOP, p.x, p.y, _rc.right - _rc.left, _rc.bottom - _rc.top, SWP_SHOWWINDOW);
|
||||
};
|
||||
void doDialog(POINT p)
|
||||
{
|
||||
if (!isCreated())
|
||||
create(IDD_COLOUR_POPUP);
|
||||
::SetWindowPos(_hSelf, HWND_TOP, p.x, p.y, _rc.right - _rc.left, _rc.bottom - _rc.top, SWP_SHOWWINDOW);
|
||||
}
|
||||
|
||||
virtual void destroy() {
|
||||
::DestroyWindow(_hSelf);
|
||||
};
|
||||
virtual void destroy()
|
||||
{
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
void setColour(COLORREF c) {
|
||||
_colour = c;
|
||||
};
|
||||
void setColour(COLORREF c)
|
||||
{
|
||||
_colour = c;
|
||||
}
|
||||
|
||||
COLORREF getSelColour(){return _colour;};
|
||||
COLORREF getSelColour(){return _colour;};
|
||||
|
||||
private :
|
||||
RECT _rc;
|
||||
COLORREF _colour;
|
||||
//bool isColourChooserLaunched;
|
||||
COLORREF _colour;
|
||||
//bool isColourChooserLaunched = false;
|
||||
|
||||
static INT_PTR CALLBACK dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
};
|
||||
|
||||
#endif //COLOUR_POPUP_H
|
||||
|
||||
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,11 +24,7 @@
|
||||
// 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.
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifndef COLOUR_POPUP_RESOURCE_H
|
||||
|
||||
#define IDD_COLOUR_POPUP 2100
|
||||
#define IDC_COLOUR_LIST (IDD_COLOUR_POPUP + 1)
|
||||
|
||||
#endif //COLOUR_POPUP_RESOURCE_H
|
||||
#define IDD_COLOUR_POPUP 2100
|
||||
#define IDC_COLOUR_LIST (IDD_COLOUR_POPUP + 1)
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -37,35 +37,35 @@ using namespace std;
|
||||
LRESULT CALLBACK ColourStaticTextHooker::colourStaticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch(Message)
|
||||
{
|
||||
case WM_PAINT:
|
||||
{
|
||||
RECT rect;
|
||||
::GetClientRect(hwnd, &rect);
|
||||
{
|
||||
case WM_PAINT:
|
||||
{
|
||||
RECT rect;
|
||||
::GetClientRect(hwnd, &rect);
|
||||
|
||||
PAINTSTRUCT ps;
|
||||
HDC hdc = ::BeginPaint(hwnd, &ps);
|
||||
|
||||
::SetTextColor(hdc, _colour);
|
||||
PAINTSTRUCT ps;
|
||||
HDC hdc = ::BeginPaint(hwnd, &ps);
|
||||
|
||||
// Get the default GUI font
|
||||
HFONT hf = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
|
||||
::SetTextColor(hdc, _colour);
|
||||
|
||||
// Get the default GUI font
|
||||
HFONT hf = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
|
||||
|
||||
HANDLE hOld = SelectObject(hdc, hf);
|
||||
|
||||
// Draw the text!
|
||||
TCHAR text[MAX_PATH];
|
||||
::GetWindowText(hwnd, text, MAX_PATH);
|
||||
::DrawText(hdc, text, -1, &rect, DT_LEFT);
|
||||
|
||||
::SelectObject(hdc, hOld);
|
||||
// Draw the text!
|
||||
TCHAR text[MAX_PATH];
|
||||
::GetWindowText(hwnd, text, MAX_PATH);
|
||||
::DrawText(hdc, text, -1, &rect, DT_LEFT);
|
||||
|
||||
::EndPaint(hwnd, &ps);
|
||||
::SelectObject(hdc, hOld);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return ::CallWindowProc(_oldProc, hwnd, Message, wParam, lParam);
|
||||
::EndPaint(hwnd, &ps);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return ::CallWindowProc(_oldProc, hwnd, Message, wParam, lParam);
|
||||
}
|
||||
void WordStyleDlg::updateGlobalOverrideCtrls()
|
||||
{
|
||||
@ -87,8 +87,8 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
{
|
||||
NppParameters *nppParamInst = NppParameters::getInstance();
|
||||
|
||||
_hCheckBold = ::GetDlgItem(_hSelf, IDC_BOLD_CHECK);
|
||||
_hCheckItalic = ::GetDlgItem(_hSelf, IDC_ITALIC_CHECK);
|
||||
_hCheckBold = ::GetDlgItem(_hSelf, IDC_BOLD_CHECK);
|
||||
_hCheckItalic = ::GetDlgItem(_hSelf, IDC_ITALIC_CHECK);
|
||||
_hCheckUnderline = ::GetDlgItem(_hSelf, IDC_UNDERLINE_CHECK);
|
||||
_hFontNameCombo = ::GetDlgItem(_hSelf, IDC_FONT_COMBO);
|
||||
_hFontSizeCombo = ::GetDlgItem(_hSelf, IDC_FONTSIZE_COMBO);
|
||||
@ -110,12 +110,12 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
{
|
||||
pair<generic_string, generic_string> & themeInfo = themeSwitcher.getElementFromIndex(i);
|
||||
int j = ::SendMessage(_hSwitch2ThemeCombo, CB_ADDSTRING, 0, (LPARAM)themeInfo.first.c_str());
|
||||
if (! themeInfo.second.compare( nppParamInst->getNppGUI()._themeName ) )
|
||||
if (! themeInfo.second.compare( nppParamInst->getNppGUI()._themeName ) )
|
||||
{
|
||||
_currentThemeIndex = j;
|
||||
_themeName.assign(themeInfo.second);
|
||||
}
|
||||
if (! themeInfo.first.compare(TEXT("Default")) )
|
||||
if (! themeInfo.first.compare(TEXT("Default")) )
|
||||
{
|
||||
defaultThemeIndex = j;
|
||||
}
|
||||
@ -141,16 +141,15 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
_pFgColour->init(_hInst, _hSelf);
|
||||
_pBgColour->init(_hInst, _hSelf);
|
||||
|
||||
POINT p1, p2;
|
||||
POINT p1, p2;
|
||||
alignWith(_hFgColourStaticText, _pFgColour->getHSelf(), PosAlign::right, p1);
|
||||
alignWith(_hBgColourStaticText, _pBgColour->getHSelf(), PosAlign::right, p2);
|
||||
|
||||
alignWith(_hFgColourStaticText, _pFgColour->getHSelf(), ALIGNPOS_RIGHT, p1);
|
||||
alignWith(_hBgColourStaticText, _pBgColour->getHSelf(), ALIGNPOS_RIGHT, p2);
|
||||
p1.x = p2.x = ((p1.x > p2.x)?p1.x:p2.x) + 10;
|
||||
p1.y -= 4; p2.y -= 4;
|
||||
|
||||
p1.x = p2.x = ((p1.x > p2.x)?p1.x:p2.x) + 10;
|
||||
p1.y -= 4; p2.y -= 4;
|
||||
|
||||
::MoveWindow((HWND)_pFgColour->getHSelf(), p1.x, p1.y, 25, 25, TRUE);
|
||||
::MoveWindow((HWND)_pBgColour->getHSelf(), p2.x, p2.y, 25, 25, TRUE);
|
||||
::MoveWindow((HWND)_pFgColour->getHSelf(), p1.x, p1.y, 25, 25, TRUE);
|
||||
::MoveWindow((HWND)_pBgColour->getHSelf(), p2.x, p2.y, 25, 25, TRUE);
|
||||
_pFgColour->display();
|
||||
_pBgColour->display();
|
||||
|
||||
@ -170,7 +169,6 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
goToCenter();
|
||||
|
||||
loadLangListFromNppParam();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -193,10 +191,10 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND :
|
||||
case WM_COMMAND :
|
||||
{
|
||||
if (HIWORD(wParam) == EN_CHANGE)
|
||||
{
|
||||
{
|
||||
int editID = LOWORD(wParam);
|
||||
if (editID == IDC_USER_KEYWORDS_EDIT)
|
||||
{
|
||||
@ -237,21 +235,21 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
if (_isDirty)
|
||||
{
|
||||
NppParameters *nppParamInst = NppParameters::getInstance();
|
||||
if (_restoreInvalid)
|
||||
{
|
||||
if (_restoreInvalid)
|
||||
{
|
||||
generic_string str( nppParamInst->getNppGUI()._themeName );
|
||||
nppParamInst->reloadStylers( &str[0] );
|
||||
}
|
||||
|
||||
LexerStylerArray & lsArray = nppParamInst->getLStylerArray();
|
||||
StyleArray & globalStyles = nppParamInst->getGlobalStylers();
|
||||
|
||||
if (_restoreInvalid)
|
||||
|
||||
if (_restoreInvalid)
|
||||
{
|
||||
_lsArray = _styles2restored = lsArray;
|
||||
_globalStyles = _gstyles2restored = globalStyles;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
globalStyles = _globalStyles = _gstyles2restored;
|
||||
lsArray = _lsArray = _styles2restored;
|
||||
@ -264,7 +262,7 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
_isThemeDirty = false;
|
||||
setVisualFromStyleList();
|
||||
|
||||
|
||||
|
||||
//(nppParamInst->getNppGUI())._themeName
|
||||
::SendMessage(_hSwitch2ThemeCombo, CB_SETCURSEL, _currentThemeIndex, 0);
|
||||
::SendMessage(_hParent, WM_UPDATESCINTILLAS, 0, 0);
|
||||
@ -297,7 +295,7 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
::SendMessage(_hParent, WM_UPDATESCINTILLAS, 0, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
case IDC_SC_TRANSPARENT_CHECK :
|
||||
{
|
||||
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_SC_TRANSPARENT_CHECK, BM_GETCHECK, 0, 0));
|
||||
@ -355,7 +353,7 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
apply();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
case IDC_GLOBAL_ITALIC_CHECK :
|
||||
{
|
||||
GlobalOverride & glo = (NppParameters::getInstance())->getGlobalOverrideStyle();
|
||||
@ -416,7 +414,7 @@ INT_PTR CALLBACK WordStyleDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM l
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case CPN_COLOURPICKED:
|
||||
case CPN_COLOURPICKED:
|
||||
{
|
||||
if ((HWND)lParam == _pFgColour->getHSelf())
|
||||
{
|
||||
@ -467,17 +465,17 @@ void WordStyleDlg::loadLangListFromNppParam()
|
||||
{
|
||||
NppParameters *nppParamInst = NppParameters::getInstance();
|
||||
_lsArray = nppParamInst->getLStylerArray();
|
||||
_globalStyles = nppParamInst->getGlobalStylers();
|
||||
_globalStyles = nppParamInst->getGlobalStylers();
|
||||
|
||||
// Clean up Language List
|
||||
::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_RESETCONTENT, 0, 0);
|
||||
|
||||
::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_ADDSTRING, 0, (LPARAM)TEXT("Global Styles"));
|
||||
// All the lexers
|
||||
for (int i = 0, nb = _lsArray.getNbLexer() ; i < nb ; ++i)
|
||||
{
|
||||
for (int i = 0, nb = _lsArray.getNbLexer() ; i < nb ; ++i)
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_ADDSTRING, 0, (LPARAM)_lsArray.getLexerDescFromIndex(i));
|
||||
}
|
||||
}
|
||||
|
||||
const int index2Begin = 0;
|
||||
::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_SETCURSEL, 0, index2Begin);
|
||||
@ -491,7 +489,7 @@ void WordStyleDlg::updateThemeName(generic_string themeName)
|
||||
nppGUI._themeName.assign( themeName );
|
||||
}
|
||||
|
||||
int WordStyleDlg::whichTabColourIndex()
|
||||
int WordStyleDlg::whichTabColourIndex()
|
||||
{
|
||||
int i = ::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_GETCURSEL, 0, 0);
|
||||
if (i == LB_ERR)
|
||||
@ -582,7 +580,7 @@ void WordStyleDlg::updateUserKeywords()
|
||||
|
||||
void WordStyleDlg::updateFontName()
|
||||
{
|
||||
Style & style = getCurrentStyler();
|
||||
Style & style = getCurrentStyler();
|
||||
int iFontSel = ::SendMessage(_hFontNameCombo, CB_GETCURSEL, 0, 0);
|
||||
TCHAR *fnStr = (TCHAR *)::SendMessage(_hFontNameCombo, CB_GETITEMDATA, iFontSel, 0);
|
||||
style._fontName = fnStr;
|
||||
@ -590,7 +588,7 @@ void WordStyleDlg::updateFontName()
|
||||
|
||||
void WordStyleDlg::updateFontStyleStatus(fontStyleType whitchStyle)
|
||||
{
|
||||
Style & style = getCurrentStyler();
|
||||
Style & style = getCurrentStyler();
|
||||
if (style._fontStyle == STYLE_NOT_USED)
|
||||
style._fontStyle = FONTSTYLE_NONE;
|
||||
|
||||
@ -624,11 +622,11 @@ void WordStyleDlg::switchToTheme()
|
||||
|
||||
generic_string prevThemeName(_themeName);
|
||||
_themeName.clear();
|
||||
|
||||
|
||||
NppParameters *nppParamInst = NppParameters::getInstance();
|
||||
ThemeSwitcher & themeSwitcher = nppParamInst->getThemeSwitcher();
|
||||
ThemeSwitcher & themeSwitcher = nppParamInst->getThemeSwitcher();
|
||||
pair<generic_string, generic_string> & themeInfo = themeSwitcher.getElementFromIndex(iSel);
|
||||
_themeName = themeInfo.second;
|
||||
_themeName = themeInfo.second;
|
||||
|
||||
if (_isThemeDirty)
|
||||
{
|
||||
@ -638,7 +636,7 @@ void WordStyleDlg::switchToTheme()
|
||||
PathRemoveExtension(themeFileName);
|
||||
int mb_response =
|
||||
::MessageBox( _hSelf,
|
||||
TEXT(" Unsaved changes are about to be discarded!\n")
|
||||
TEXT(" Unsaved changes are about to be discarded!\n")
|
||||
TEXT(" Do you want to save your changes before switching themes?"),
|
||||
themeFileName,
|
||||
MB_ICONWARNING | MB_YESNO | MB_APPLMODAL | MB_SETFOREGROUND );
|
||||
@ -654,10 +652,10 @@ void WordStyleDlg::switchToTheme()
|
||||
|
||||
void WordStyleDlg::setStyleListFromLexer(int index)
|
||||
{
|
||||
_currentLexerIndex = index;
|
||||
_currentLexerIndex = index;
|
||||
|
||||
// Fill out Styles listbox
|
||||
// Before filling out, we clean it
|
||||
// Fill out Styles listbox
|
||||
// Before filling out, we clean it
|
||||
::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_RESETCONTENT, 0, 0);
|
||||
|
||||
if (index)
|
||||
@ -667,39 +665,39 @@ void WordStyleDlg::setStyleListFromLexer(int index)
|
||||
const TCHAR *userExt = (_lsArray.getLexerStylerByName(langName))->getLexerUserExt();
|
||||
::SendDlgItemMessage(_hSelf, IDC_DEF_EXT_EDIT, WM_SETTEXT, 0, (LPARAM)(ext));
|
||||
|
||||
// WM_SETTEXT cause sending WM_COMMAND message with EN_CHANGE.
|
||||
// That makes status dirty, even it shouldn't in this case.
|
||||
// The walk around solution is get the current status before sending WM_SETTEXT,
|
||||
// then restore the status after sending this message.
|
||||
bool isDirty = _isDirty;
|
||||
// WM_SETTEXT cause sending WM_COMMAND message with EN_CHANGE.
|
||||
// That makes status dirty, even it shouldn't in this case.
|
||||
// The walk around solution is get the current status before sending WM_SETTEXT,
|
||||
// then restore the status after sending this message.
|
||||
bool isDirty = _isDirty;
|
||||
bool isThemeDirty = _isThemeDirty;
|
||||
::SendDlgItemMessage(_hSelf, IDC_USER_EXT_EDIT, WM_SETTEXT, 0, (LPARAM)(userExt));
|
||||
_isDirty = isDirty;
|
||||
_isThemeDirty = isThemeDirty;
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_SAVECLOSE_BUTTON), isDirty || isThemeDirty);
|
||||
_isDirty = isDirty;
|
||||
_isThemeDirty = isThemeDirty;
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_SAVECLOSE_BUTTON), isDirty || isThemeDirty);
|
||||
}
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_EDIT), index?SW_SHOW:SW_HIDE);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_STATIC), index?SW_SHOW:SW_HIDE);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_EXT_STATIC), index?SW_SHOW:SW_HIDE);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_USER_EXT_EDIT), index?SW_SHOW:SW_HIDE);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_USER_EXT_STATIC), index?SW_SHOW:SW_HIDE);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_USER_EXT_STATIC), index?SW_SHOW:SW_HIDE);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_PLUSSYMBOL2_STATIC), index?SW_SHOW:SW_HIDE);
|
||||
|
||||
StyleArray & lexerStyler = index?_lsArray.getLexerFromIndex(index-1):_globalStyles;
|
||||
|
||||
for (int i = 0, nb = lexerStyler.getNbStyler(); i < nb ; ++i)
|
||||
{
|
||||
Style & style = lexerStyler.getStyler(i);
|
||||
for (int i = 0, nb = lexerStyler.getNbStyler(); i < nb ; ++i)
|
||||
{
|
||||
Style & style = lexerStyler.getStyler(i);
|
||||
::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_ADDSTRING, 0, (LPARAM)style._styleDesc);
|
||||
}
|
||||
}
|
||||
::SendDlgItemMessage(_hSelf, IDC_STYLES_LIST, LB_SETCURSEL, 0, 0);
|
||||
setVisualFromStyleList();
|
||||
setVisualFromStyleList();
|
||||
}
|
||||
|
||||
void WordStyleDlg::setVisualFromStyleList()
|
||||
void WordStyleDlg::setVisualFromStyleList()
|
||||
{
|
||||
showGlobalOverrideCtrls(false);
|
||||
|
||||
Style & style = getCurrentStyler();
|
||||
Style & style = getCurrentStyler();
|
||||
|
||||
// Global override style
|
||||
if (style._styleDesc && lstrcmp(style._styleDesc, TEXT("Global override")) == 0)
|
||||
@ -707,14 +705,14 @@ void WordStyleDlg::setVisualFromStyleList()
|
||||
showGlobalOverrideCtrls(true);
|
||||
}
|
||||
|
||||
//--Warning text
|
||||
//bool showWarning = ((_currentLexerIndex == 0) && (style._styleID == STYLE_DEFAULT));//?SW_SHOW:SW_HIDE;
|
||||
//--Warning text
|
||||
//bool showWarning = ((_currentLexerIndex == 0) && (style._styleID == STYLE_DEFAULT));//?SW_SHOW:SW_HIDE;
|
||||
|
||||
COLORREF c = RGB(0x00, 0x00, 0xFF);
|
||||
TCHAR str[256];
|
||||
|
||||
str[0] = '\0';
|
||||
|
||||
|
||||
int i = ::SendDlgItemMessage(_hSelf, IDC_LANGUAGES_LIST, LB_GETCURSEL, 0, 0);
|
||||
if (i == LB_ERR)
|
||||
return;
|
||||
@ -802,7 +800,7 @@ void WordStyleDlg::setVisualFromStyleList()
|
||||
::SendMessage(_hCheckUnderline, BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
}
|
||||
|
||||
enableFontStyle(isEnable);
|
||||
enableFontStyle(isEnable);
|
||||
|
||||
|
||||
//-- Default Keywords
|
||||
@ -827,6 +825,7 @@ void WordStyleDlg::setVisualFromStyleList()
|
||||
const TCHAR *ckwStr = (style._keywords)?style._keywords->c_str():TEXT("");
|
||||
::SendDlgItemMessage(_hSelf, IDC_USER_KEYWORDS_EDIT, WM_SETTEXT, 0, (LPARAM)(ckwStr));
|
||||
}
|
||||
|
||||
int showOption = shouldBeDisplayed?SW_SHOW:SW_HIDE;
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_DEF_KEYWORDS_EDIT), showOption);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_USER_KEYWORDS_EDIT),showOption);
|
||||
@ -834,9 +833,10 @@ void WordStyleDlg::setVisualFromStyleList()
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_USER_KEYWORDS_STATIC),showOption);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_PLUSSYMBOL_STATIC),showOption);
|
||||
|
||||
redraw();
|
||||
redraw();
|
||||
}
|
||||
|
||||
|
||||
void WordStyleDlg::create(int dialogID, bool isRTL)
|
||||
{
|
||||
StaticDialog::create(dialogID, isRTL);
|
||||
@ -845,7 +845,7 @@ void WordStyleDlg::create(int dialogID, bool isRTL)
|
||||
{
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_SC_TRANSPARENT_CHECK), SW_SHOW);
|
||||
::ShowWindow(::GetDlgItem(_hSelf, IDC_SC_PERCENTAGE_SLIDER), SW_SHOW);
|
||||
|
||||
|
||||
::SendDlgItemMessage(_hSelf, IDC_SC_PERCENTAGE_SLIDER, TBM_SETRANGE, FALSE, MAKELONG(20, 200));
|
||||
::SendDlgItemMessage(_hSelf, IDC_SC_PERCENTAGE_SLIDER, TBM_SETPOS, TRUE, 150);
|
||||
if (!(BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDC_SC_PERCENTAGE_SLIDER, BM_GETCHECK, 0, 0)))
|
||||
@ -853,6 +853,7 @@ void WordStyleDlg::create(int dialogID, bool isRTL)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void WordStyleDlg::apply()
|
||||
{
|
||||
LexerStylerArray & lsa = (NppParameters::getInstance())->getLStylerArray();
|
||||
|
@ -24,8 +24,6 @@
|
||||
// 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 <iostream>
|
||||
#include <windows.h>
|
||||
#include "Splitter.h"
|
||||
@ -38,28 +36,24 @@ bool Splitter::_isVerticalFixedRegistered = false;
|
||||
|
||||
#define SPLITTER_SIZE 8
|
||||
|
||||
Splitter::Splitter() : Window()
|
||||
|
||||
|
||||
Splitter::Splitter()
|
||||
{
|
||||
//hInstance = GetModuleHandle(NULL);
|
||||
_rect.left = 0; // x axis
|
||||
_rect.top = 0; // y axis
|
||||
_rect.right = 0; // Width of the spliter.
|
||||
_rect.bottom = 0; // Height of the spliter
|
||||
_isFixed = false;
|
||||
}
|
||||
|
||||
|
||||
void Splitter::init( HINSTANCE hInst, HWND hPere, int splitterSize,
|
||||
double iSplitRatio, DWORD dwFlags)
|
||||
void Splitter::init( HINSTANCE hInst, HWND hPere, int splitterSize, double iSplitRatio, DWORD dwFlags)
|
||||
{
|
||||
if (hPere == NULL)
|
||||
{
|
||||
throw std::runtime_error("Splitter::init : Parameter hPere is null");
|
||||
}
|
||||
|
||||
if (iSplitRatio < 0)
|
||||
{
|
||||
throw std::runtime_error("Splitter::init : Parameter iSplitRatio shoulds be 0 < ratio < 100");
|
||||
}
|
||||
|
||||
Window::init(hInst, hPere);
|
||||
_spiltterSize = splitterSize;
|
||||
@ -183,61 +177,61 @@ void Splitter::init( HINSTANCE hInst, HWND hPere, int splitterSize,
|
||||
_isVerticalFixedRegistered = true;
|
||||
}
|
||||
|
||||
_hSelf = CreateWindowEx(
|
||||
dwExStyle,
|
||||
wcex.lpszClassName,
|
||||
TEXT(""),
|
||||
dwStyle,
|
||||
_rect.left,
|
||||
_rect.top,
|
||||
_rect.right,
|
||||
_rect.bottom,
|
||||
_hParent,
|
||||
NULL,
|
||||
_hInst,
|
||||
(LPVOID)this);
|
||||
_hSelf = CreateWindowEx(dwExStyle, wcex.lpszClassName,
|
||||
TEXT(""),
|
||||
dwStyle,
|
||||
_rect.left, _rect.top, _rect.right, _rect.bottom,
|
||||
_hParent, NULL, _hInst, this);
|
||||
|
||||
if (!_hSelf)
|
||||
{
|
||||
throw std::runtime_error("Splitter::init : CreateWindowEx() function return null");
|
||||
}
|
||||
|
||||
RECT rc;
|
||||
getClientRect(rc);
|
||||
//::GetClientRect(_hParent,&rc);
|
||||
|
||||
_clickZone2TL.left = rc.left;
|
||||
_clickZone2TL.top = rc.top;
|
||||
_clickZone2TL.left = rc.left;
|
||||
_clickZone2TL.top = rc.top;
|
||||
|
||||
int clickZoneWidth = getClickZone(WIDTH);
|
||||
int clickZoneHeight = getClickZone(HEIGHT);
|
||||
_clickZone2TL.right = clickZoneWidth;
|
||||
int clickZoneWidth = getClickZone(WH::width);
|
||||
int clickZoneHeight = getClickZone(WH::height);
|
||||
_clickZone2TL.right = clickZoneWidth;
|
||||
_clickZone2TL.bottom = clickZoneHeight;
|
||||
|
||||
_clickZone2BR.left = rc.right - clickZoneWidth;
|
||||
_clickZone2BR.top = rc.bottom - clickZoneHeight;
|
||||
_clickZone2BR.right = clickZoneWidth;
|
||||
_clickZone2BR.left = rc.right - clickZoneWidth;
|
||||
_clickZone2BR.top = rc.bottom - clickZoneHeight;
|
||||
_clickZone2BR.right = clickZoneWidth;
|
||||
_clickZone2BR.bottom = clickZoneHeight;
|
||||
|
||||
display();
|
||||
::SendMessage(_hParent, WM_RESIZE_CONTAINER, _rect.left, _rect.top);
|
||||
|
||||
}
|
||||
// determinated by (_dwFlags & SV_VERTICAL) && _splitterSize
|
||||
|
||||
|
||||
void Splitter::destroy()
|
||||
{
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
|
||||
int Splitter::getClickZone(WH which)
|
||||
{
|
||||
// determinated by (_dwFlags & SV_VERTICAL) && _splitterSize
|
||||
if (_spiltterSize <= 8)
|
||||
{
|
||||
return isVertical()?(which==WIDTH?_spiltterSize:HIEGHT_MINIMAL)
|
||||
:(which==WIDTH?HIEGHT_MINIMAL:_spiltterSize);
|
||||
return isVertical()
|
||||
? (which == WH::width ? _spiltterSize : HIEGHT_MINIMAL)
|
||||
: (which == WH::width ? HIEGHT_MINIMAL : _spiltterSize);
|
||||
}
|
||||
else // (_spiltterSize > 8)
|
||||
{
|
||||
return isVertical()?(which==WIDTH? 8:15)
|
||||
:(which==WIDTH?15:8);
|
||||
return isVertical()
|
||||
? ((which == WH::width) ? 8 : 15)
|
||||
: ((which == WH::width) ? 15 : 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LRESULT CALLBACK Splitter::staticWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch(uMsg)
|
||||
@ -260,24 +254,12 @@ LRESULT CALLBACK Splitter::staticWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LP
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
/*
|
||||
case WM_LBUTTONDBLCLK:
|
||||
{
|
||||
::MessageBox(NULL, TEXT(""), TEXT(""), MB_OK);
|
||||
}
|
||||
return 0;
|
||||
|
||||
case WM_RBUTTONDBLCLK:
|
||||
{
|
||||
|
||||
}
|
||||
return 0;
|
||||
*/
|
||||
case WM_LBUTTONDOWN:
|
||||
case WM_LBUTTONDOWN:
|
||||
{
|
||||
POINT p;
|
||||
p.x = LOWORD(lParam);
|
||||
@ -300,14 +282,17 @@ LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||
::SetCapture(_hSelf);
|
||||
_isDraged = true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
|
||||
case WM_RBUTTONDOWN :
|
||||
::SendMessage(_hParent, WM_DOPOPUPMENU, wParam, lParam);
|
||||
return TRUE;
|
||||
case WM_RBUTTONDOWN:
|
||||
{
|
||||
::SendMessage(_hParent, WM_DOPOPUPMENU, wParam, lParam);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
POINT p;
|
||||
p.x = LOWORD(lParam);
|
||||
@ -378,7 +363,7 @@ LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_LBUTTONUP:
|
||||
case WM_LBUTTONUP:
|
||||
{
|
||||
if (!_isFixed)
|
||||
{
|
||||
@ -386,7 +371,8 @@ LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
case WM_CAPTURECHANGED:
|
||||
|
||||
case WM_CAPTURECHANGED:
|
||||
{
|
||||
if (_isDraged)
|
||||
{
|
||||
@ -397,17 +383,23 @@ LRESULT CALLBACK Splitter::spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_PAINT :
|
||||
drawSplitter();
|
||||
return 0;
|
||||
case WM_PAINT:
|
||||
{
|
||||
drawSplitter();
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_CLOSE:
|
||||
destroy();
|
||||
return 0;
|
||||
case WM_CLOSE:
|
||||
{
|
||||
destroy();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return ::DefWindowProc(_hSelf, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
|
||||
void Splitter::resizeSpliter(RECT *pRect)
|
||||
{
|
||||
RECT rect;
|
||||
@ -437,10 +429,10 @@ void Splitter::resizeSpliter(RECT *pRect)
|
||||
|
||||
//if resizeing should be done proportionately.
|
||||
if (_dwFlags & SV_RESIZEWTHPERCNT)
|
||||
{
|
||||
{
|
||||
_rect.left = (LONG)((rect.right * _splitPercent)/100);
|
||||
}
|
||||
else // soit la fenetre gauche soit la fenetre droit qui est fixee
|
||||
}
|
||||
else // soit la fenetre gauche soit la fenetre droit qui est fixee
|
||||
_rect.left = getSplitterFixPosX();
|
||||
|
||||
}
|
||||
@ -449,8 +441,8 @@ void Splitter::resizeSpliter(RECT *pRect)
|
||||
|
||||
RECT rc;
|
||||
getClientRect(rc);
|
||||
_clickZone2BR.right = getClickZone(WIDTH);
|
||||
_clickZone2BR.bottom = getClickZone(HEIGHT);
|
||||
_clickZone2BR.right = getClickZone(WH::width);
|
||||
_clickZone2BR.bottom = getClickZone(WH::height);
|
||||
_clickZone2BR.left = rc.right - _clickZone2BR.right;
|
||||
_clickZone2BR.top = rc.bottom - _clickZone2BR.bottom;
|
||||
|
||||
@ -460,14 +452,16 @@ void Splitter::resizeSpliter(RECT *pRect)
|
||||
redraw();
|
||||
}
|
||||
|
||||
|
||||
void Splitter::gotoTopLeft()
|
||||
{
|
||||
if ((_dwFlags & SV_ENABLELDBLCLK) && (!_isFixed) && (_splitPercent > 1))
|
||||
{
|
||||
if (_dwFlags & SV_HORIZONTAL)
|
||||
_rect.top = 1;
|
||||
_rect.top = 1;
|
||||
else
|
||||
_rect.left = 1;
|
||||
_rect.left = 1;
|
||||
|
||||
_splitPercent = 1;
|
||||
|
||||
::SendMessage(_hParent, WM_RESIZE_CONTAINER, _rect.left, _rect.top);
|
||||
@ -476,6 +470,7 @@ void Splitter::gotoTopLeft()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Splitter::gotoRightBouuom()
|
||||
{
|
||||
if ((_dwFlags & SV_ENABLERDBLCLK) && (!_isFixed) && (_splitPercent < 99))
|
||||
@ -496,6 +491,7 @@ void Splitter::gotoRightBouuom()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Splitter::drawSplitter()
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
@ -506,25 +502,25 @@ void Splitter::drawSplitter()
|
||||
|
||||
if ((_spiltterSize >= 4) && (_dwFlags & SV_RESIZEWTHPERCNT))
|
||||
{
|
||||
adjustZoneToDraw(TLrc, TOP_LEFT);
|
||||
adjustZoneToDraw(BRrc, BOTTOM_RIGHT);
|
||||
paintArrow(hdc, TLrc, isVertical()?ARROW_LEFT:ARROW_UP);
|
||||
adjustZoneToDraw(TLrc, ZONE_TYPE::topLeft);
|
||||
adjustZoneToDraw(BRrc, ZONE_TYPE::bottomRight);
|
||||
paintArrow(hdc, TLrc, isVertical() ? Arrow::left : Arrow::up);
|
||||
}
|
||||
|
||||
if (isVertical())
|
||||
{
|
||||
rcToDraw2.top = (_dwFlags & SV_RESIZEWTHPERCNT)?_clickZone2TL.bottom:0;
|
||||
rcToDraw2.top = (_dwFlags & SV_RESIZEWTHPERCNT) ? _clickZone2TL.bottom : 0;
|
||||
rcToDraw2.bottom = rcToDraw2.top + 2;
|
||||
|
||||
rcToDraw1.top = rcToDraw2.top + 1;
|
||||
rcToDraw1.top = rcToDraw2.top + 1;
|
||||
rcToDraw1.bottom = rcToDraw1.top + 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
rcToDraw2.top = 1;
|
||||
rcToDraw2.top = 1;
|
||||
rcToDraw2.bottom = 3;
|
||||
|
||||
rcToDraw1.top = 2;
|
||||
rcToDraw1.top = 2;
|
||||
rcToDraw1.bottom = 4;
|
||||
}
|
||||
|
||||
@ -538,10 +534,10 @@ void Splitter::drawSplitter()
|
||||
{
|
||||
if (isVertical())
|
||||
{
|
||||
rcToDraw2.left = 1;
|
||||
rcToDraw2.left = 1;
|
||||
rcToDraw2.right = 3;
|
||||
|
||||
rcToDraw1.left = 2;
|
||||
rcToDraw1.left = 2;
|
||||
rcToDraw1.right = 4;
|
||||
}
|
||||
else
|
||||
@ -563,6 +559,7 @@ void Splitter::drawSplitter()
|
||||
rcToDraw1.left += 4;
|
||||
rcToDraw1.right += 4;
|
||||
}
|
||||
|
||||
rcToDraw2.top += 4;
|
||||
rcToDraw2.bottom += 4;
|
||||
rcToDraw1.top += 4;
|
||||
@ -570,16 +567,18 @@ void Splitter::drawSplitter()
|
||||
}
|
||||
|
||||
if ((_spiltterSize >= 4) && (_dwFlags & SV_RESIZEWTHPERCNT))
|
||||
paintArrow(hdc, BRrc, isVertical()?ARROW_RIGHT:ARROW_DOWN);
|
||||
paintArrow(hdc, BRrc, isVertical() ? Arrow::right : Arrow::down);
|
||||
|
||||
::EndPaint(_hSelf, &ps);
|
||||
}
|
||||
|
||||
|
||||
void Splitter::rotate()
|
||||
{
|
||||
if (!_isFixed)
|
||||
{
|
||||
destroy();
|
||||
|
||||
if (_dwFlags & SV_HORIZONTAL)
|
||||
{
|
||||
_dwFlags ^= SV_HORIZONTAL;
|
||||
@ -590,82 +589,101 @@ void Splitter::rotate()
|
||||
_dwFlags ^= SV_VERTICAL;
|
||||
_dwFlags |= SV_HORIZONTAL;
|
||||
}
|
||||
|
||||
init(_hInst, _hParent, _spiltterSize, _splitPercent, _dwFlags);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Splitter::paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir)
|
||||
{
|
||||
RECT rc;
|
||||
rc.left = rect.left; rc.top = rect.top;
|
||||
rc.right = rect.right; rc.bottom = rect.bottom;
|
||||
if (arrowDir == ARROW_LEFT)
|
||||
{
|
||||
int x = rc.right;
|
||||
int y = rc.top;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (x > rc.left) && (y != rc.bottom) ; x--)
|
||||
switch (arrowDir)
|
||||
{
|
||||
case Arrow::left:
|
||||
{
|
||||
::MoveToEx(hdc, x, y++, NULL);
|
||||
::LineTo(hdc, x, rc.bottom--);
|
||||
int x = rc.right;
|
||||
int y = rc.top;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (x > rc.left) && (y != rc.bottom) ; --x)
|
||||
{
|
||||
::MoveToEx(hdc, x, y++, NULL);
|
||||
::LineTo(hdc, x, rc.bottom--);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (arrowDir == ARROW_RIGHT)
|
||||
{
|
||||
int x = rc.left;
|
||||
int y = rc.top;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (x < rc.right) && (y != rc.bottom) ; ++x)
|
||||
case Arrow::right:
|
||||
{
|
||||
::MoveToEx(hdc, x, y++, NULL);
|
||||
::LineTo(hdc, x, rc.bottom--);
|
||||
int x = rc.left;
|
||||
int y = rc.top;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (x < rc.right) && (y != rc.bottom) ; ++x)
|
||||
{
|
||||
::MoveToEx(hdc, x, y++, NULL);
|
||||
::LineTo(hdc, x, rc.bottom--);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (arrowDir == ARROW_UP)
|
||||
{
|
||||
int x = rc.left;
|
||||
int y = rc.bottom;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (y > rc.top) && (x != rc.right) ; y--)
|
||||
case Arrow::up:
|
||||
{
|
||||
::MoveToEx(hdc, x++, y, NULL);
|
||||
::LineTo(hdc, rc.right--, y);
|
||||
int x = rc.left;
|
||||
int y = rc.bottom;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (y > rc.top) && (x != rc.right) ; --y)
|
||||
{
|
||||
::MoveToEx(hdc, x++, y, NULL);
|
||||
::LineTo(hdc, rc.right--, y);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (arrowDir == ARROW_DOWN)
|
||||
{
|
||||
int x = rc.left;
|
||||
int y = rc.top;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (y < rc.bottom) && (x != rc.right) ; ++y)
|
||||
case Arrow::down:
|
||||
{
|
||||
::MoveToEx(hdc, x++, y, NULL);
|
||||
::LineTo(hdc, rc.right--, y);
|
||||
int x = rc.left;
|
||||
int y = rc.top;
|
||||
|
||||
//::MoveToEx(hdc, x, y, NULL);
|
||||
for (; (y < rc.bottom) && (x != rc.right) ; ++y)
|
||||
{
|
||||
::MoveToEx(hdc, x++, y, NULL);
|
||||
::LineTo(hdc, rc.right--, y);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
void Splitter::adjustZoneToDraw(RECT & rc2def, ZONE_TYPE whichZone)
|
||||
|
||||
|
||||
void Splitter::adjustZoneToDraw(RECT& rc2def, ZONE_TYPE whichZone)
|
||||
{
|
||||
if (_spiltterSize < 4) return;
|
||||
if (_spiltterSize < 4)
|
||||
return;
|
||||
|
||||
int x0, y0, x1, y1, w, h;
|
||||
|
||||
if ((4 <= _spiltterSize) && (_spiltterSize <= 8))
|
||||
{
|
||||
w = (isVertical()?4:7);
|
||||
h = (isVertical()?7:4);
|
||||
w = (isVertical() ? 4 : 7);
|
||||
h = (isVertical() ? 7 : 4);
|
||||
}
|
||||
else // (_spiltterSize > 8)
|
||||
{
|
||||
w = (isVertical()?6:11);
|
||||
h = (isVertical()?11:6);
|
||||
w = (isVertical() ? 6 : 11);
|
||||
h = (isVertical() ? 11 : 6);
|
||||
}
|
||||
|
||||
if (isVertical())
|
||||
{//w=4 h=7
|
||||
if (whichZone == TOP_LEFT)
|
||||
{
|
||||
// w=4 h=7
|
||||
if (whichZone == ZONE_TYPE::topLeft)
|
||||
{
|
||||
x0 = 0;
|
||||
y0 = (_clickZone2TL.bottom - h) / 2;
|
||||
@ -675,12 +693,14 @@ void Splitter::adjustZoneToDraw(RECT & rc2def, ZONE_TYPE whichZone)
|
||||
x0 = _clickZone2BR.left + _clickZone2BR.right - w;
|
||||
y0 = (_clickZone2BR.bottom - h) / 2 + _clickZone2BR.top;
|
||||
}
|
||||
|
||||
x1 = x0 + w;
|
||||
y1 = y0 + h;
|
||||
}
|
||||
else // Horizontal
|
||||
{//w=7 h=4
|
||||
if (whichZone == TOP_LEFT)
|
||||
{
|
||||
//w=7 h=4
|
||||
if (whichZone == ZONE_TYPE::topLeft)
|
||||
{
|
||||
x0 = (_clickZone2TL.right - w) / 2;
|
||||
y0 = 0;
|
||||
@ -690,11 +710,14 @@ void Splitter::adjustZoneToDraw(RECT & rc2def, ZONE_TYPE whichZone)
|
||||
x0 = ((_clickZone2BR.right - w) / 2) + _clickZone2BR.left;
|
||||
y0 = _clickZone2BR.top + _clickZone2BR.bottom - h;
|
||||
}
|
||||
|
||||
x1 = x0 + w;
|
||||
y1 = y0 + h;
|
||||
}
|
||||
|
||||
rc2def.left = x0;
|
||||
rc2def.top = y0;
|
||||
rc2def.right = x1;
|
||||
rc2def.bottom = y1;
|
||||
}
|
||||
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,16 +24,11 @@
|
||||
// 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 SPLITTER_H
|
||||
#define SPLITTER_H
|
||||
|
||||
#ifndef RESOURCE_H
|
||||
#pragma once
|
||||
#include "resource.h"
|
||||
#endif //RESOURCE_H
|
||||
|
||||
#include "Window.h"
|
||||
#include "Common.h"
|
||||
|
||||
|
||||
#define SV_HORIZONTAL 0x00000001
|
||||
#define SV_VERTICAL 0x00000002
|
||||
@ -50,81 +45,90 @@
|
||||
|
||||
const int HIEGHT_MINIMAL = 15;
|
||||
|
||||
enum Arrow {ARROW_LEFT, ARROW_UP, ARROW_RIGHT, ARROW_DOWN};
|
||||
|
||||
typedef bool WH;
|
||||
const bool WIDTH = true;
|
||||
const bool HEIGHT = false;
|
||||
enum class Arrow { left, up, right, down };
|
||||
|
||||
typedef bool ZONE_TYPE;
|
||||
const bool TOP_LEFT = true;
|
||||
const bool BOTTOM_RIGHT = false;
|
||||
enum class WH { height, width };
|
||||
|
||||
enum SplitterMode {
|
||||
enum class ZONE_TYPE { bottomRight, topLeft };
|
||||
|
||||
enum class SplitterMode: std::uint8_t
|
||||
{
|
||||
DYNAMIC, LEFT_FIX, RIGHT_FIX
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class Splitter : public Window
|
||||
{
|
||||
public:
|
||||
public:
|
||||
Splitter();
|
||||
~Splitter(){};
|
||||
void destroy() {
|
||||
::DestroyWindow(_hSelf);
|
||||
};
|
||||
virtual ~Splitter() = default;
|
||||
|
||||
virtual void destroy() override;
|
||||
|
||||
void resizeSpliter(RECT *pRect = NULL);
|
||||
void init(HINSTANCE hInst, HWND hPere, int splitterSize,
|
||||
double iSplitRatio, DWORD dwFlags);
|
||||
void init(HINSTANCE hInst, HWND hPere, int splitterSize, double iSplitRatio, DWORD dwFlags);
|
||||
void rotate();
|
||||
int getPhisicalSize() const {
|
||||
|
||||
int getPhisicalSize() const
|
||||
{
|
||||
return _spiltterSize;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
RECT _rect;
|
||||
double _splitPercent;
|
||||
int _spiltterSize;
|
||||
bool _isDraged;
|
||||
DWORD _dwFlags;
|
||||
bool _isFixed;
|
||||
double _splitPercent = 0.;
|
||||
int _spiltterSize = 0;
|
||||
bool _isDraged = false;
|
||||
DWORD _dwFlags = 0;
|
||||
bool _isFixed = false;
|
||||
static bool _isHorizontalRegistered;
|
||||
static bool _isVerticalRegistered;
|
||||
static bool _isHorizontalFixedRegistered;
|
||||
static bool _isVerticalFixedRegistered;
|
||||
static bool _isHorizontalFixedRegistered;
|
||||
static bool _isVerticalFixedRegistered;
|
||||
|
||||
RECT _clickZone2TL, _clickZone2BR;
|
||||
|
||||
static LRESULT CALLBACK staticWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT CALLBACK spliterWndProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
int getClickZone(WH which);
|
||||
void adjustZoneToDraw(RECT & rc2def, ZONE_TYPE whichZone);
|
||||
int getClickZone(WH which);
|
||||
void adjustZoneToDraw(RECT & rc2def, ZONE_TYPE whichZone);
|
||||
void drawSplitter();
|
||||
bool isVertical() const {return (_dwFlags & SV_VERTICAL) != 0;};
|
||||
void paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir);
|
||||
void gotoTopLeft();
|
||||
void gotoRightBouuom();
|
||||
|
||||
bool isInLeftTopZone(const POINT &p) const {
|
||||
return (((p.x >= _clickZone2TL.left) && (p.x <= _clickZone2TL.left + _clickZone2TL.right)) &&
|
||||
(p.y >= _clickZone2TL.top) && (p.y <= _clickZone2TL.top + _clickZone2TL.bottom));
|
||||
};
|
||||
bool isInLeftTopZone(const POINT& p) const
|
||||
{
|
||||
return ((p.x >= _clickZone2TL.left)
|
||||
and (p.x <= _clickZone2TL.left + _clickZone2TL.right)
|
||||
and (p.y >= _clickZone2TL.top)
|
||||
and (p.y <= _clickZone2TL.top + _clickZone2TL.bottom));
|
||||
}
|
||||
|
||||
bool isInRightBottomZone(const POINT &p) const {
|
||||
return (((p.x >= _clickZone2BR.left) &&
|
||||
(p.x <= _clickZone2BR.left + _clickZone2BR.right)) &&
|
||||
(p.y >= _clickZone2BR.top) &&
|
||||
(p.y <= _clickZone2BR.top + _clickZone2BR.bottom));
|
||||
};
|
||||
|
||||
int getSplitterFixPosX() {
|
||||
bool isInRightBottomZone(const POINT& p) const
|
||||
{
|
||||
return ((p.x >= _clickZone2BR.left)
|
||||
and (p.x <= _clickZone2BR.left + _clickZone2BR.right)
|
||||
and (p.y >= _clickZone2BR.top)
|
||||
and (p.y <= _clickZone2BR.top + _clickZone2BR.bottom));
|
||||
}
|
||||
|
||||
int getSplitterFixPosX() const
|
||||
{
|
||||
long result = long(::SendMessage(_hParent, WM_GETSPLITTER_X, 0, 0));
|
||||
return (LOWORD(result) - ((HIWORD(result) == RIGHT_FIX) ? _spiltterSize : 0));
|
||||
};
|
||||
return (LOWORD(result) - ((HIWORD(result) == static_cast<std::uint8_t>(SplitterMode::RIGHT_FIX)) ? _spiltterSize : 0));
|
||||
}
|
||||
|
||||
int getSplitterFixPosY() {
|
||||
int getSplitterFixPosY() const
|
||||
{
|
||||
long result = long(::SendMessage(_hParent, WM_GETSPLITTER_Y, 0, 0));
|
||||
return (LOWORD(result) - ((HIWORD(result) == RIGHT_FIX) ? _spiltterSize : 0));
|
||||
};
|
||||
return (LOWORD(result) - ((HIWORD(result) == static_cast<std::uint8_t>(SplitterMode::RIGHT_FIX)) ? _spiltterSize : 0));
|
||||
}
|
||||
};
|
||||
#endif //SPLITTER_H
|
||||
|
@ -24,16 +24,18 @@
|
||||
// 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 <iostream>
|
||||
#include <windows.h>
|
||||
#include "SplitterContainer.h"
|
||||
#include <cassert>
|
||||
|
||||
|
||||
|
||||
bool SplitterContainer::_isRegistered = false;
|
||||
|
||||
void SplitterContainer::create(Window *pWin0, Window *pWin1, int splitterSize,
|
||||
SplitterMode mode, int ratio, bool isVertical)
|
||||
|
||||
|
||||
void SplitterContainer::create(Window *pWin0, Window *pWin1, int splitterSize, SplitterMode mode, int ratio, bool isVertical)
|
||||
{
|
||||
//Window::init(hInst, parent);
|
||||
_pWin0 = pWin0;
|
||||
@ -42,9 +44,10 @@ void SplitterContainer::create(Window *pWin0, Window *pWin1, int splitterSize,
|
||||
_splitterMode = mode;
|
||||
_ratio = ratio;
|
||||
_dwSplitterStyle |= isVertical?SV_VERTICAL:SV_HORIZONTAL;
|
||||
if (_splitterMode != DYNAMIC)
|
||||
|
||||
if (_splitterMode != SplitterMode::DYNAMIC)
|
||||
{
|
||||
_dwSplitterStyle |= SV_FIXED;
|
||||
_dwSplitterStyle |= SV_FIXED;
|
||||
_dwSplitterStyle &= ~SV_RESIZEWTHPERCNT;
|
||||
}
|
||||
if (!_isRegistered)
|
||||
@ -66,30 +69,63 @@ void SplitterContainer::create(Window *pWin0, Window *pWin1, int splitterSize,
|
||||
splitterContainerClass.lpszClassName = SPC_CLASS_NAME;
|
||||
|
||||
if (!::RegisterClass(&splitterContainerClass))
|
||||
{
|
||||
throw std::runtime_error(" SplitterContainer::create : RegisterClass() function failed");
|
||||
}
|
||||
|
||||
_isRegistered = true;
|
||||
}
|
||||
|
||||
_hSelf = ::CreateWindowEx(
|
||||
0,
|
||||
SPC_CLASS_NAME,
|
||||
TEXT("a koi sert?"),
|
||||
WS_CHILD | WS_CLIPCHILDREN,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT,
|
||||
_hParent,
|
||||
NULL,
|
||||
_hInst,
|
||||
(LPVOID)this);
|
||||
0, SPC_CLASS_NAME, TEXT("a koi sert?"),
|
||||
WS_CHILD | WS_CLIPCHILDREN,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
|
||||
_hParent, NULL, _hInst, this);
|
||||
|
||||
if (!_hSelf)
|
||||
{
|
||||
throw std::runtime_error(" SplitterContainer::create : CreateWindowEx() function return null");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SplitterContainer::destroy()
|
||||
{
|
||||
if (_hPopupMenu)
|
||||
::DestroyMenu(_hPopupMenu);
|
||||
|
||||
_splitter.destroy();
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
|
||||
void SplitterContainer::reSizeTo(RECT & rc)
|
||||
{
|
||||
_x = rc.left;
|
||||
_y = rc.top;
|
||||
::MoveWindow(_hSelf, _x, _y, rc.right, rc.bottom, FALSE);
|
||||
_splitter.resizeSpliter();
|
||||
}
|
||||
|
||||
|
||||
void SplitterContainer::display(bool toShow) const
|
||||
{
|
||||
Window::display(toShow);
|
||||
|
||||
assert(_pWin0 != nullptr);
|
||||
assert(_pWin1 != nullptr);
|
||||
_pWin0->display(toShow);
|
||||
_pWin1->display(toShow);
|
||||
|
||||
_splitter.display(toShow);
|
||||
}
|
||||
|
||||
|
||||
void SplitterContainer::redraw() const
|
||||
{
|
||||
assert(_pWin0 != nullptr);
|
||||
assert(_pWin1 != nullptr);
|
||||
_pWin0->redraw(true);
|
||||
_pWin1->redraw(true);
|
||||
}
|
||||
|
||||
|
||||
void SplitterContainer::rotateTo(DIRECTION direction)
|
||||
{
|
||||
bool doSwitchWindow = false;
|
||||
@ -97,13 +133,13 @@ void SplitterContainer::rotateTo(DIRECTION direction)
|
||||
{
|
||||
_dwSplitterStyle ^= SV_VERTICAL;
|
||||
_dwSplitterStyle |= SV_HORIZONTAL;
|
||||
doSwitchWindow = (direction == LEFT);
|
||||
doSwitchWindow = (direction == DIRECTION::LEFT);
|
||||
}
|
||||
else
|
||||
{
|
||||
_dwSplitterStyle ^= SV_HORIZONTAL;
|
||||
_dwSplitterStyle |= SV_VERTICAL;
|
||||
doSwitchWindow = (direction == RIGHT);
|
||||
doSwitchWindow = (direction == DIRECTION::RIGHT);
|
||||
}
|
||||
if (doSwitchWindow)
|
||||
{
|
||||
@ -120,42 +156,54 @@ LRESULT CALLBACK SplitterContainer::staticWinProc(HWND hwnd, UINT message, WPARA
|
||||
SplitterContainer *pSplitterContainer = NULL;
|
||||
switch (message)
|
||||
{
|
||||
case WM_NCCREATE :
|
||||
case WM_NCCREATE:
|
||||
{
|
||||
pSplitterContainer = (SplitterContainer *)(((LPCREATESTRUCT)lParam)->lpCreateParams);
|
||||
pSplitterContainer->_hSelf = hwnd;
|
||||
::SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)pSplitterContainer);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default :
|
||||
default:
|
||||
{
|
||||
pSplitterContainer = (SplitterContainer *)::GetWindowLongPtr(hwnd, GWLP_USERDATA);
|
||||
if (!pSplitterContainer)
|
||||
return ::DefWindowProc(hwnd, message, wParam, lParam);
|
||||
return pSplitterContainer->runProc(message, wParam, lParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LRESULT SplitterContainer::runProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case WM_CREATE :
|
||||
case WM_CREATE:
|
||||
{
|
||||
_splitter.init(_hInst, _hSelf, _splitterSize, _ratio, _dwSplitterStyle);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND :
|
||||
case WM_COMMAND:
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case ROTATION_A_GAUCHE:
|
||||
rotateTo(LEFT);
|
||||
return TRUE;
|
||||
{
|
||||
rotateTo(DIRECTION::LEFT);
|
||||
break;
|
||||
}
|
||||
case ROTATION_A_DROITE:
|
||||
rotateTo(RIGHT);
|
||||
return TRUE;
|
||||
{
|
||||
rotateTo(DIRECTION::RIGHT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
case WM_RESIZE_CONTAINER :
|
||||
|
||||
case WM_RESIZE_CONTAINER:
|
||||
{
|
||||
RECT rc0, rc1;
|
||||
getClientRect(rc0);
|
||||
@ -192,9 +240,9 @@ LRESULT SplitterContainer::runProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_DOPOPUPMENU :
|
||||
case WM_DOPOPUPMENU:
|
||||
{
|
||||
if ((_splitterMode != LEFT_FIX) && (_splitterMode != RIGHT_FIX) )
|
||||
if ((_splitterMode != SplitterMode::LEFT_FIX) && (_splitterMode != SplitterMode::RIGHT_FIX) )
|
||||
{
|
||||
POINT p;
|
||||
::GetCursorPos(&p);
|
||||
@ -213,36 +261,48 @@ LRESULT SplitterContainer::runProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_GETSPLITTER_X :
|
||||
{
|
||||
if (_splitterMode == LEFT_FIX)
|
||||
return MAKELONG(_pWin0->getWidth(), LEFT_FIX);
|
||||
else if (_splitterMode == RIGHT_FIX)
|
||||
{
|
||||
int x = getWidth()-_pWin1->getWidth();
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
return MAKELONG(x, RIGHT_FIX);
|
||||
}
|
||||
else
|
||||
return MAKELONG(0, DYNAMIC);
|
||||
case WM_GETSPLITTER_X:
|
||||
{
|
||||
switch (_splitterMode)
|
||||
{
|
||||
case SplitterMode::LEFT_FIX:
|
||||
{
|
||||
return MAKELONG(_pWin0->getWidth(), static_cast<std::uint8_t>(SplitterMode::LEFT_FIX));
|
||||
}
|
||||
|
||||
}
|
||||
case SplitterMode::RIGHT_FIX:
|
||||
{
|
||||
int x = getWidth()-_pWin1->getWidth();
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
return MAKELONG(x, static_cast<std::uint8_t>(SplitterMode::RIGHT_FIX));
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return MAKELONG(0, static_cast<std::uint8_t>(SplitterMode::DYNAMIC));
|
||||
}
|
||||
|
||||
case WM_GETSPLITTER_Y :
|
||||
{
|
||||
if (_splitterMode == LEFT_FIX)
|
||||
return MAKELONG(_pWin0->getHeight(), LEFT_FIX);
|
||||
else if (_splitterMode == RIGHT_FIX)
|
||||
{
|
||||
int y = getHeight()-_pWin1->getHeight();
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
return MAKELONG(y, RIGHT_FIX);
|
||||
}
|
||||
else
|
||||
return MAKELONG(0, DYNAMIC);
|
||||
}
|
||||
case WM_GETSPLITTER_Y:
|
||||
{
|
||||
switch (_splitterMode)
|
||||
{
|
||||
case SplitterMode::LEFT_FIX:
|
||||
{
|
||||
return MAKELONG(_pWin0->getHeight(), static_cast<std::uint8_t>(SplitterMode::LEFT_FIX));
|
||||
}
|
||||
case SplitterMode::RIGHT_FIX:
|
||||
{
|
||||
int y = getHeight()-_pWin1->getHeight();
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
return MAKELONG(y, static_cast<std::uint8_t>(SplitterMode::RIGHT_FIX));
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return MAKELONG(0, static_cast<std::uint8_t>(SplitterMode::DYNAMIC));
|
||||
}
|
||||
|
||||
case WM_LBUTTONDBLCLK:
|
||||
{
|
||||
@ -250,21 +310,18 @@ LRESULT SplitterContainer::runProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
::GetCursorPos(&pt);
|
||||
::ScreenToClient(_splitter.getHSelf(), &pt);
|
||||
|
||||
Window* targetWindow;
|
||||
|
||||
if(this->isVertical())
|
||||
targetWindow = pt.x < 0?_pWin0:_pWin1;
|
||||
else
|
||||
targetWindow = pt.y < 0?_pWin0:_pWin1;
|
||||
|
||||
HWND parent = ::GetParent(getHSelf());
|
||||
|
||||
Window* targetWindow = (this->isVertical())
|
||||
? (pt.x < 0 ? _pWin0 : _pWin1)
|
||||
: (pt.y < 0 ? _pWin0 : _pWin1);
|
||||
|
||||
::SendMessage(parent, NPPM_INTERNAL_SWITCHVIEWFROMHWND, 0, (LPARAM)targetWindow->getHSelf());
|
||||
::SendMessage(parent, WM_COMMAND, IDM_FILE_NEW, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default :
|
||||
default:
|
||||
return ::DefWindowProc(_hSelf, message, wParam, lParam);
|
||||
}
|
||||
}
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,94 +24,74 @@
|
||||
// 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 SPLITTER_CONTAINER_H
|
||||
#define SPLITTER_CONTAINER_H
|
||||
|
||||
#ifndef SPLITTER_H
|
||||
#pragma once
|
||||
#include "Splitter.h"
|
||||
#endif //SPLITTER_H
|
||||
|
||||
#ifndef MENUCMDID_H
|
||||
#include "menuCmdID.h"
|
||||
#endif //MENUCMDID_H
|
||||
|
||||
|
||||
#define SPC_CLASS_NAME TEXT("splitterContainer")
|
||||
|
||||
#define ROTATION_A_GAUCHE 2000
|
||||
#define ROTATION_A_DROITE 2001
|
||||
|
||||
typedef bool DIRECTION;
|
||||
const bool LEFT = true;
|
||||
const bool RIGHT = false;
|
||||
|
||||
enum class DIRECTION
|
||||
{
|
||||
RIGHT,
|
||||
LEFT
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
class SplitterContainer : public Window
|
||||
{
|
||||
public :
|
||||
SplitterContainer(): Window(), _x(0), _y(0), _hPopupMenu(NULL),
|
||||
_dwSplitterStyle(SV_ENABLERDBLCLK | SV_ENABLELDBLCLK | SV_RESIZEWTHPERCNT){
|
||||
};
|
||||
~SplitterContainer(){};
|
||||
virtual ~SplitterContainer() = default;
|
||||
|
||||
void create(Window *pWin0, Window *pWin1, int splitterSize = 4,
|
||||
SplitterMode mode = DYNAMIC, int ratio = 50, bool _isVertical = true);
|
||||
SplitterMode mode = SplitterMode::DYNAMIC, int ratio = 50, bool _isVertical = true);
|
||||
|
||||
void destroy() {
|
||||
if (_hPopupMenu)
|
||||
::DestroyMenu(_hPopupMenu);
|
||||
_splitter.destroy();
|
||||
::DestroyWindow(_hSelf);
|
||||
};
|
||||
void reSizeTo(RECT & rc) {
|
||||
_x = rc.left;
|
||||
_y = rc.top;
|
||||
::MoveWindow(_hSelf, _x, _y, rc.right, rc.bottom, FALSE);
|
||||
_splitter.resizeSpliter();
|
||||
};
|
||||
virtual void display(bool toShow = true) const {
|
||||
Window::display(toShow);
|
||||
|
||||
_pWin0->display(toShow);
|
||||
_pWin1->display(toShow);
|
||||
_splitter.display(toShow);
|
||||
};
|
||||
virtual void redraw() const {
|
||||
_pWin0->redraw(true);
|
||||
_pWin1->redraw(true);
|
||||
};
|
||||
void destroy();
|
||||
|
||||
void setWin0(Window *pWin) {
|
||||
_pWin0 = pWin;
|
||||
void reSizeTo(RECT & rc);
|
||||
|
||||
};
|
||||
virtual void display(bool toShow = true) const;
|
||||
|
||||
void setWin1(Window *pWin) {
|
||||
_pWin1 = pWin;
|
||||
};
|
||||
virtual void redraw() const;
|
||||
|
||||
bool isVertical() const {
|
||||
void setWin0(Window* pWin)
|
||||
{
|
||||
_pWin0 = pWin;
|
||||
}
|
||||
|
||||
void setWin1(Window* pWin)
|
||||
{
|
||||
_pWin1 = pWin;
|
||||
}
|
||||
|
||||
bool isVertical() const
|
||||
{
|
||||
return ((_dwSplitterStyle & SV_VERTICAL) != 0);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private :
|
||||
Window *_pWin0; // left or top window
|
||||
Window *_pWin1; // right or bottom window
|
||||
Window* _pWin0 = nullptr; // left or top window
|
||||
Window* _pWin1 = nullptr; // right or bottom window
|
||||
|
||||
Splitter _splitter;
|
||||
int _splitterSize;
|
||||
int _ratio;
|
||||
int _x, _y;
|
||||
HMENU _hPopupMenu;
|
||||
DWORD _dwSplitterStyle;
|
||||
int _splitterSize = 0;
|
||||
int _ratio = 0;
|
||||
int _x = 0;
|
||||
int _y = 0;
|
||||
HMENU _hPopupMenu = NULL;
|
||||
DWORD _dwSplitterStyle = (SV_ENABLERDBLCLK | SV_ENABLELDBLCLK | SV_RESIZEWTHPERCNT);
|
||||
|
||||
SplitterMode _splitterMode;
|
||||
SplitterMode _splitterMode = SplitterMode::DYNAMIC;
|
||||
static bool _isRegistered;
|
||||
|
||||
static LRESULT CALLBACK staticWinProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT runProc(UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
void rotateTo(DIRECTION direction);
|
||||
|
||||
};
|
||||
|
||||
#endif //SPLITTER_CONTAINER_H
|
||||
|
@ -29,14 +29,51 @@
|
||||
#include <windows.h>
|
||||
#include "StaticDialog.h"
|
||||
|
||||
|
||||
|
||||
StaticDialog::~StaticDialog()
|
||||
{
|
||||
if (isCreated())
|
||||
{
|
||||
// Prevent run_dlgProc from doing anything, since its virtual
|
||||
::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (LONG_PTR) NULL);
|
||||
destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void StaticDialog::destroy()
|
||||
{
|
||||
::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_hSelf);
|
||||
::DestroyWindow(_hSelf);
|
||||
}
|
||||
|
||||
|
||||
POINT StaticDialog::getTopPoint(HWND hwnd, bool isLeft) const
|
||||
{
|
||||
RECT rc;
|
||||
::GetWindowRect(hwnd, &rc);
|
||||
|
||||
POINT p;
|
||||
if (isLeft)
|
||||
p.x = rc.left;
|
||||
else
|
||||
p.x = rc.right;
|
||||
|
||||
p.y = rc.top;
|
||||
::ScreenToClient(_hSelf, &p);
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
void StaticDialog::goToCenter()
|
||||
{
|
||||
RECT rc;
|
||||
::GetClientRect(_hParent, &rc);
|
||||
POINT center;
|
||||
center.x = rc.left + (rc.right - rc.left)/2;
|
||||
center.y = rc.top + (rc.bottom - rc.top)/2;
|
||||
::ClientToScreen(_hParent, ¢er);
|
||||
RECT rc;
|
||||
::GetClientRect(_hParent, &rc);
|
||||
POINT center;
|
||||
center.x = rc.left + (rc.right - rc.left)/2;
|
||||
center.y = rc.top + (rc.bottom - rc.top)/2;
|
||||
::ClientToScreen(_hParent, ¢er);
|
||||
|
||||
int x = center.x - (_rc.right - _rc.left)/2;
|
||||
int y = center.y - (_rc.bottom - _rc.top)/2;
|
||||
@ -47,7 +84,8 @@ void StaticDialog::goToCenter()
|
||||
|
||||
void StaticDialog::display(bool toShow) const
|
||||
{
|
||||
if (toShow) {
|
||||
if (toShow)
|
||||
{
|
||||
// If the user has switched from a dual monitor to a single monitor since we last
|
||||
// displayed the dialog, then ensure that it's still visible on the single monitor.
|
||||
RECT workAreaRect = {0};
|
||||
@ -57,6 +95,7 @@ void StaticDialog::display(bool toShow) const
|
||||
int newLeft = rc.left;
|
||||
int newTop = rc.top;
|
||||
int margin = ::GetSystemMetrics(SM_CYSMCAPTION);
|
||||
|
||||
if (newLeft > ::GetSystemMetrics(SM_CXVIRTUALSCREEN)-margin)
|
||||
newLeft -= rc.right - workAreaRect.right;
|
||||
if (newLeft + (rc.right - rc.left) < ::GetSystemMetrics(SM_XVIRTUALSCREEN)+margin)
|
||||
@ -131,22 +170,23 @@ void StaticDialog::create(int dialogID, bool isRTL, bool msgDestParent)
|
||||
::SendMessage(msgDestParent?_hParent:(::GetParent(_hParent)), NPPM_MODELESSDIALOG, MODELESSDIALOGADD, (WPARAM)_hSelf);
|
||||
}
|
||||
|
||||
|
||||
INT_PTR CALLBACK StaticDialog::dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
StaticDialog *pStaticDlg = (StaticDialog *)(lParam);
|
||||
pStaticDlg->_hSelf = hwnd;
|
||||
::SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)lParam);
|
||||
::GetWindowRect(hwnd, &(pStaticDlg->_rc));
|
||||
pStaticDlg->run_dlgProc(message, wParam, lParam);
|
||||
pStaticDlg->run_dlgProc(message, wParam, lParam);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default :
|
||||
default:
|
||||
{
|
||||
StaticDialog *pStaticDlg = reinterpret_cast<StaticDialog *>(::GetWindowLongPtr(hwnd, GWLP_USERDATA));
|
||||
if (!pStaticDlg)
|
||||
@ -158,34 +198,39 @@ INT_PTR CALLBACK StaticDialog::dlgProc(HWND hwnd, UINT message, WPARAM wParam, L
|
||||
|
||||
void StaticDialog::alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point)
|
||||
{
|
||||
RECT rc, rc2;
|
||||
::GetWindowRect(handle, &rc);
|
||||
RECT rc, rc2;
|
||||
::GetWindowRect(handle, &rc);
|
||||
|
||||
point.x = rc.left;
|
||||
point.y = rc.top;
|
||||
point.x = rc.left;
|
||||
point.y = rc.top;
|
||||
|
||||
switch (pos)
|
||||
{
|
||||
case ALIGNPOS_LEFT :
|
||||
::GetWindowRect(handle2Align, &rc2);
|
||||
point.x -= rc2.right - rc2.left;
|
||||
break;
|
||||
switch (pos)
|
||||
{
|
||||
case PosAlign::left:
|
||||
{
|
||||
::GetWindowRect(handle2Align, &rc2);
|
||||
point.x -= rc2.right - rc2.left;
|
||||
break;
|
||||
}
|
||||
case PosAlign::right:
|
||||
{
|
||||
::GetWindowRect(handle, &rc2);
|
||||
point.x += rc2.right - rc2.left;
|
||||
break;
|
||||
}
|
||||
case PosAlign::top:
|
||||
{
|
||||
::GetWindowRect(handle2Align, &rc2);
|
||||
point.y -= rc2.bottom - rc2.top;
|
||||
break;
|
||||
}
|
||||
case PosAlign::bottom:
|
||||
{
|
||||
::GetWindowRect(handle, &rc2);
|
||||
point.y += rc2.bottom - rc2.top;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case ALIGNPOS_RIGHT :
|
||||
::GetWindowRect(handle, &rc2);
|
||||
point.x += rc2.right - rc2.left;
|
||||
break;
|
||||
|
||||
case ALIGNPOS_TOP :
|
||||
::GetWindowRect(handle2Align, &rc2);
|
||||
point.y -= rc2.bottom - rc2.top;
|
||||
break;
|
||||
|
||||
default : //ALIGNPOS_BOTTOM
|
||||
::GetWindowRect(handle, &rc2);
|
||||
point.y += rc2.bottom - rc2.top;
|
||||
break;
|
||||
}
|
||||
|
||||
::ScreenToClient(_hSelf, &point);
|
||||
::ScreenToClient(_hSelf, &point);
|
||||
}
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,81 +24,64 @@
|
||||
// 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 STATIC_DIALOG_H
|
||||
#define STATIC_DIALOG_H
|
||||
|
||||
#pragma once
|
||||
#include "Notepad_plus_msgs.h"
|
||||
#include "Window.h"
|
||||
|
||||
|
||||
typedef HRESULT (WINAPI * ETDTProc) (HWND, DWORD);
|
||||
|
||||
enum PosAlign{ALIGNPOS_LEFT, ALIGNPOS_RIGHT, ALIGNPOS_TOP, ALIGNPOS_BOTTOM};
|
||||
enum class PosAlign { left, right, top, bottom };
|
||||
|
||||
struct DLGTEMPLATEEX {
|
||||
|
||||
struct DLGTEMPLATEEX
|
||||
{
|
||||
WORD dlgVer;
|
||||
WORD signature;
|
||||
DWORD helpID;
|
||||
DWORD exStyle;
|
||||
DWORD style;
|
||||
DWORD style;
|
||||
WORD cDlgItems;
|
||||
short x;
|
||||
short y;
|
||||
short y;
|
||||
short cx;
|
||||
short cy;
|
||||
// The structure has more fields but are variable length
|
||||
} ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class StaticDialog : public Window
|
||||
{
|
||||
public :
|
||||
StaticDialog() : Window() {};
|
||||
~StaticDialog(){
|
||||
if (isCreated()) {
|
||||
::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (LONG_PTR)NULL); //Prevent run_dlgProc from doing anything, since its virtual
|
||||
destroy();
|
||||
}
|
||||
};
|
||||
virtual ~StaticDialog();
|
||||
|
||||
virtual void create(int dialogID, bool isRTL = false, bool msgDestParent = true);
|
||||
|
||||
virtual bool isCreated() const {
|
||||
virtual bool isCreated() const
|
||||
{
|
||||
return (_hSelf != NULL);
|
||||
};
|
||||
}
|
||||
|
||||
void goToCenter();
|
||||
|
||||
void display(bool toShow = true) const;
|
||||
|
||||
POINT getTopPoint(HWND hwnd, bool isLeft = true) const {
|
||||
RECT rc;
|
||||
::GetWindowRect(hwnd, &rc);
|
||||
POINT p;
|
||||
if (isLeft)
|
||||
p.x = rc.left;
|
||||
else
|
||||
p.x = rc.right;
|
||||
p.y = rc.top;
|
||||
::ScreenToClient(_hSelf, &p);
|
||||
return p;
|
||||
};
|
||||
POINT getTopPoint(HWND hwnd, bool isLeft = true) const;
|
||||
|
||||
bool isCheckedOrNot(int checkControlID) const {
|
||||
bool isCheckedOrNot(int checkControlID) const
|
||||
{
|
||||
return (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, checkControlID), BM_GETCHECK, 0, 0));
|
||||
};
|
||||
}
|
||||
|
||||
void destroy() {
|
||||
::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_hSelf);
|
||||
::DestroyWindow(_hSelf);
|
||||
};
|
||||
virtual void destroy() override;
|
||||
|
||||
protected :
|
||||
|
||||
protected:
|
||||
RECT _rc;
|
||||
static INT_PTR CALLBACK dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) = 0;
|
||||
|
||||
void alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point);
|
||||
HGLOBAL makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate);
|
||||
};
|
||||
|
||||
#endif //STATIC_DIALOG_H
|
||||
};
|
@ -33,7 +33,13 @@
|
||||
class Window
|
||||
{
|
||||
public:
|
||||
//! \name Constructors & Destructor
|
||||
//@{
|
||||
Window() = default;
|
||||
Window(const Window&) = delete;
|
||||
virtual ~Window() = default;
|
||||
//@}
|
||||
|
||||
|
||||
virtual void init(HINSTANCE hInst, HWND parent)
|
||||
{
|
||||
@ -123,6 +129,9 @@ public:
|
||||
}
|
||||
|
||||
|
||||
Window& operator = (const Window&) = delete;
|
||||
|
||||
|
||||
protected:
|
||||
HINSTANCE _hInst = NULL;
|
||||
HWND _hParent = NULL;
|
||||
|
@ -7,10 +7,10 @@
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Note that the GPL places important restrictions on "derived works", yet
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// it does not provide a detailed definition of that term. To avoid
|
||||
// misunderstandings, we consider an application to constitute a
|
||||
// "derivative work" for the purpose of this license if it does any of the
|
||||
// following:
|
||||
// following:
|
||||
// 1. Integrates source code from Notepad++.
|
||||
// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
|
||||
// installer, such as those produced by InstallShield.
|
||||
@ -24,178 +24,176 @@
|
||||
// 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 RESOURCE_H
|
||||
#define RESOURCE_H
|
||||
#pragma once
|
||||
|
||||
#define NOTEPAD_PLUS_VERSION TEXT("Notepad++ v6.8.1")
|
||||
|
||||
// should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
|
||||
|
||||
// should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
|
||||
// ex : #define VERSION_VALUE TEXT("5.63\0")
|
||||
#define VERSION_VALUE TEXT("6.8.1\0")
|
||||
#define VERSION_DIGITALVALUE 6, 8, 1, 0
|
||||
|
||||
#ifndef IDC_STATIC
|
||||
#define IDC_STATIC -1
|
||||
#define IDC_STATIC -1
|
||||
#endif
|
||||
|
||||
#define IDI_M30ICON 100
|
||||
#define IDI_CHAMELEON 101
|
||||
//#define IDI_JESUISCHARLIE 102
|
||||
#define IDI_M30ICON 100
|
||||
#define IDI_CHAMELEON 101
|
||||
//#define IDI_JESUISCHARLIE 102
|
||||
#define IDR_RT_MANIFEST 103
|
||||
|
||||
#define IDI_NEW_OFF_ICON 201
|
||||
#define IDI_OPEN_OFF_ICON 202
|
||||
#define IDI_CLOSE_OFF_ICON 203
|
||||
#define IDI_CLOSEALL_OFF_ICON 204
|
||||
#define IDI_SAVE_OFF_ICON 205
|
||||
#define IDI_SAVEALL_OFF_ICON 206
|
||||
#define IDI_CUT_OFF_ICON 207
|
||||
#define IDI_COPY_OFF_ICON 208
|
||||
#define IDI_PASTE_OFF_ICON 209
|
||||
#define IDI_UNDO_OFF_ICON 210
|
||||
#define IDI_REDO_OFF_ICON 211
|
||||
#define IDI_FIND_OFF_ICON 212
|
||||
#define IDI_REPLACE_OFF_ICON 213
|
||||
#define IDI_ZOOMIN_OFF_ICON 214
|
||||
#define IDI_ZOOMOUT_OFF_ICON 215
|
||||
#define IDI_VIEW_UD_DLG_OFF_ICON 216
|
||||
#define IDI_PRINT_OFF_ICON 217
|
||||
#define IDI_VIEW_ALL_CHAR_ON_ICON 218
|
||||
#define IDI_VIEW_INDENT_ON_ICON 219
|
||||
#define IDI_VIEW_WRAP_ON_ICON 220
|
||||
#define IDI_NEW_OFF_ICON 201
|
||||
#define IDI_OPEN_OFF_ICON 202
|
||||
#define IDI_CLOSE_OFF_ICON 203
|
||||
#define IDI_CLOSEALL_OFF_ICON 204
|
||||
#define IDI_SAVE_OFF_ICON 205
|
||||
#define IDI_SAVEALL_OFF_ICON 206
|
||||
#define IDI_CUT_OFF_ICON 207
|
||||
#define IDI_COPY_OFF_ICON 208
|
||||
#define IDI_PASTE_OFF_ICON 209
|
||||
#define IDI_UNDO_OFF_ICON 210
|
||||
#define IDI_REDO_OFF_ICON 211
|
||||
#define IDI_FIND_OFF_ICON 212
|
||||
#define IDI_REPLACE_OFF_ICON 213
|
||||
#define IDI_ZOOMIN_OFF_ICON 214
|
||||
#define IDI_ZOOMOUT_OFF_ICON 215
|
||||
#define IDI_VIEW_UD_DLG_OFF_ICON 216
|
||||
#define IDI_PRINT_OFF_ICON 217
|
||||
#define IDI_VIEW_ALL_CHAR_ON_ICON 218
|
||||
#define IDI_VIEW_INDENT_ON_ICON 219
|
||||
#define IDI_VIEW_WRAP_ON_ICON 220
|
||||
|
||||
|
||||
#define IDI_STARTRECORD_OFF_ICON 221
|
||||
#define IDI_STARTRECORD_ON_ICON 222
|
||||
#define IDI_STARTRECORD_DISABLE_ICON 223
|
||||
#define IDI_STOPRECORD_OFF_ICON 224
|
||||
#define IDI_STOPRECORD_ON_ICON 225
|
||||
#define IDI_STOPRECORD_DISABLE_ICON 226
|
||||
#define IDI_PLAYRECORD_OFF_ICON 227
|
||||
#define IDI_PLAYRECORD_ON_ICON 228
|
||||
#define IDI_PLAYRECORD_DISABLE_ICON 229
|
||||
#define IDI_SAVERECORD_OFF_ICON 230
|
||||
#define IDI_SAVERECORD_ON_ICON 231
|
||||
#define IDI_SAVERECORD_DISABLE_ICON 232
|
||||
#define IDI_STARTRECORD_OFF_ICON 221
|
||||
#define IDI_STARTRECORD_ON_ICON 222
|
||||
#define IDI_STARTRECORD_DISABLE_ICON 223
|
||||
#define IDI_STOPRECORD_OFF_ICON 224
|
||||
#define IDI_STOPRECORD_ON_ICON 225
|
||||
#define IDI_STOPRECORD_DISABLE_ICON 226
|
||||
#define IDI_PLAYRECORD_OFF_ICON 227
|
||||
#define IDI_PLAYRECORD_ON_ICON 228
|
||||
#define IDI_PLAYRECORD_DISABLE_ICON 229
|
||||
#define IDI_SAVERECORD_OFF_ICON 230
|
||||
#define IDI_SAVERECORD_ON_ICON 231
|
||||
#define IDI_SAVERECORD_DISABLE_ICON 232
|
||||
|
||||
// multi run macro
|
||||
#define IDI_MMPLAY_DIS_ICON 233
|
||||
#define IDI_MMPLAY_OFF_ICON 234
|
||||
#define IDI_MMPLAY_ON_ICON 235
|
||||
#define IDI_MMPLAY_DIS_ICON 233
|
||||
#define IDI_MMPLAY_OFF_ICON 234
|
||||
#define IDI_MMPLAY_ON_ICON 235
|
||||
|
||||
#define IDI_NEW_ON_ICON 301
|
||||
#define IDI_OPEN_ON_ICON 302
|
||||
#define IDI_CLOSE_ON_ICON 303
|
||||
#define IDI_CLOSEALL_ON_ICON 304
|
||||
#define IDI_SAVE_ON_ICON 305
|
||||
#define IDI_SAVEALL_ON_ICON 306
|
||||
#define IDI_CUT_ON_ICON 307
|
||||
#define IDI_COPY_ON_ICON 308
|
||||
#define IDI_PASTE_ON_ICON 309
|
||||
#define IDI_UNDO_ON_ICON 310
|
||||
#define IDI_REDO_ON_ICON 311
|
||||
#define IDI_FIND_ON_ICON 312
|
||||
#define IDI_REPLACE_ON_ICON 313
|
||||
#define IDI_ZOOMIN_ON_ICON 314
|
||||
#define IDI_ZOOMOUT_ON_ICON 315
|
||||
#define IDI_VIEW_UD_DLG_ON_ICON 316
|
||||
#define IDI_PRINT_ON_ICON 317
|
||||
#define IDI_VIEW_ALL_CHAR_OFF_ICON 318
|
||||
#define IDI_VIEW_INDENT_OFF_ICON 319
|
||||
#define IDI_VIEW_WRAP_OFF_ICON 320
|
||||
#define IDI_NEW_ON_ICON 301
|
||||
#define IDI_OPEN_ON_ICON 302
|
||||
#define IDI_CLOSE_ON_ICON 303
|
||||
#define IDI_CLOSEALL_ON_ICON 304
|
||||
#define IDI_SAVE_ON_ICON 305
|
||||
#define IDI_SAVEALL_ON_ICON 306
|
||||
#define IDI_CUT_ON_ICON 307
|
||||
#define IDI_COPY_ON_ICON 308
|
||||
#define IDI_PASTE_ON_ICON 309
|
||||
#define IDI_UNDO_ON_ICON 310
|
||||
#define IDI_REDO_ON_ICON 311
|
||||
#define IDI_FIND_ON_ICON 312
|
||||
#define IDI_REPLACE_ON_ICON 313
|
||||
#define IDI_ZOOMIN_ON_ICON 314
|
||||
#define IDI_ZOOMOUT_ON_ICON 315
|
||||
#define IDI_VIEW_UD_DLG_ON_ICON 316
|
||||
#define IDI_PRINT_ON_ICON 317
|
||||
#define IDI_VIEW_ALL_CHAR_OFF_ICON 318
|
||||
#define IDI_VIEW_INDENT_OFF_ICON 319
|
||||
#define IDI_VIEW_WRAP_OFF_ICON 320
|
||||
|
||||
//#define IDI_NEW_DISABLE_ICON 401
|
||||
//#define IDI_OPEN_ON_ICON 402
|
||||
#define IDI_SAVE_DISABLE_ICON 403
|
||||
#define IDI_SAVEALL_DISABLE_ICON 404
|
||||
//#define IDI_CLOSE_ON_ICON 405
|
||||
//#define IDI_CLOSEALL_ON_ICON 406
|
||||
#define IDI_CUT_DISABLE_ICON 407
|
||||
#define IDI_COPY_DISABLE_ICON 408
|
||||
#define IDI_PASTE_DISABLE_ICON 409
|
||||
#define IDI_UNDO_DISABLE_ICON 410
|
||||
#define IDI_REDO_DISABLE_ICON 411
|
||||
#define IDI_DELETE_ICON 412
|
||||
//#define IDI_NEW_DISABLE_ICON 401
|
||||
//#define IDI_OPEN_ON_ICON 402
|
||||
#define IDI_SAVE_DISABLE_ICON 403
|
||||
#define IDI_SAVEALL_DISABLE_ICON 404
|
||||
//#define IDI_CLOSE_ON_ICON 405
|
||||
//#define IDI_CLOSEALL_ON_ICON 406
|
||||
#define IDI_CUT_DISABLE_ICON 407
|
||||
#define IDI_COPY_DISABLE_ICON 408
|
||||
#define IDI_PASTE_DISABLE_ICON 409
|
||||
#define IDI_UNDO_DISABLE_ICON 410
|
||||
#define IDI_REDO_DISABLE_ICON 411
|
||||
#define IDI_DELETE_ICON 412
|
||||
|
||||
#define IDI_SYNCV_OFF_ICON 413
|
||||
#define IDI_SYNCV_ON_ICON 414
|
||||
#define IDI_SYNCV_DISABLE_ICON 415
|
||||
#define IDI_SYNCV_OFF_ICON 413
|
||||
#define IDI_SYNCV_ON_ICON 414
|
||||
#define IDI_SYNCV_DISABLE_ICON 415
|
||||
|
||||
#define IDI_SYNCH_OFF_ICON 416
|
||||
#define IDI_SYNCH_ON_ICON 417
|
||||
#define IDI_SYNCH_DISABLE_ICON 418
|
||||
#define IDI_SYNCH_OFF_ICON 416
|
||||
#define IDI_SYNCH_ON_ICON 417
|
||||
#define IDI_SYNCH_DISABLE_ICON 418
|
||||
|
||||
#define IDI_SAVED_ICON 501
|
||||
#define IDI_UNSAVED_ICON 502
|
||||
#define IDI_READONLY_ICON 503
|
||||
#define IDI_FIND_RESULT_ICON 504
|
||||
#define IDI_SAVED_ICON 501
|
||||
#define IDI_UNSAVED_ICON 502
|
||||
#define IDI_READONLY_ICON 503
|
||||
#define IDI_FIND_RESULT_ICON 504
|
||||
|
||||
#define IDI_PROJECT_WORKSPACE 601
|
||||
#define IDI_PROJECT_WORKSPACEDIRTY 602
|
||||
#define IDI_PROJECT_PROJECT 603
|
||||
#define IDI_PROJECT_FOLDEROPEN 604
|
||||
#define IDI_PROJECT_FOLDERCLOSE 605
|
||||
#define IDI_PROJECT_FILE 606
|
||||
#define IDI_PROJECT_FILEINVALID 607
|
||||
#define IDI_PROJECT_WORKSPACE 601
|
||||
#define IDI_PROJECT_WORKSPACEDIRTY 602
|
||||
#define IDI_PROJECT_PROJECT 603
|
||||
#define IDI_PROJECT_FOLDEROPEN 604
|
||||
#define IDI_PROJECT_FOLDERCLOSE 605
|
||||
#define IDI_PROJECT_FILE 606
|
||||
#define IDI_PROJECT_FILEINVALID 607
|
||||
|
||||
#define IDI_FUNCLIST_ROOT 620
|
||||
#define IDI_FUNCLIST_NODE 621
|
||||
#define IDI_FUNCLIST_LEAF 622
|
||||
#define IDI_FUNCLIST_ROOT 620
|
||||
#define IDI_FUNCLIST_NODE 621
|
||||
#define IDI_FUNCLIST_LEAF 622
|
||||
|
||||
#define IDI_FUNCLIST_SORTBUTTON 631
|
||||
#define IDI_FUNCLIST_RELOADBUTTON 632
|
||||
#define IDI_FUNCLIST_SORTBUTTON 631
|
||||
#define IDI_FUNCLIST_RELOADBUTTON 632
|
||||
|
||||
#define IDC_MY_CUR 1402
|
||||
#define IDC_UP_ARROW 1403
|
||||
#define IDC_DRAG_TAB 1404
|
||||
#define IDC_DRAG_INTERDIT_TAB 1405
|
||||
#define IDC_DRAG_PLUS_TAB 1406
|
||||
#define IDC_DRAG_OUT_TAB 1407
|
||||
#define IDC_MY_CUR 1402
|
||||
#define IDC_UP_ARROW 1403
|
||||
#define IDC_DRAG_TAB 1404
|
||||
#define IDC_DRAG_INTERDIT_TAB 1405
|
||||
#define IDC_DRAG_PLUS_TAB 1406
|
||||
#define IDC_DRAG_OUT_TAB 1407
|
||||
|
||||
#define IDC_MACRO_RECORDING 1408
|
||||
#define IDC_MACRO_RECORDING 1408
|
||||
|
||||
#define IDR_SAVEALL 1500
|
||||
#define IDR_CLOSEFILE 1501
|
||||
#define IDR_CLOSEALL 1502
|
||||
#define IDR_FIND 1503
|
||||
#define IDR_REPLACE 1504
|
||||
#define IDR_ZOOMIN 1505
|
||||
#define IDR_ZOOMOUT 1506
|
||||
#define IDR_WRAP 1507
|
||||
#define IDR_INVISIBLECHAR 1508
|
||||
#define IDR_INDENTGUIDE 1509
|
||||
#define IDR_SHOWPANNEL 1510
|
||||
#define IDR_STARTRECORD 1511
|
||||
#define IDR_STOPRECORD 1512
|
||||
#define IDR_PLAYRECORD 1513
|
||||
#define IDR_SAVERECORD 1514
|
||||
#define IDR_SYNCV 1515
|
||||
#define IDR_SYNCH 1516
|
||||
#define IDR_FILENEW 1517
|
||||
#define IDR_FILEOPEN 1518
|
||||
#define IDR_FILESAVE 1519
|
||||
#define IDR_PRINT 1520
|
||||
#define IDR_CUT 1521
|
||||
#define IDR_COPY 1522
|
||||
#define IDR_PASTE 1523
|
||||
#define IDR_UNDO 1524
|
||||
#define IDR_REDO 1525
|
||||
#define IDR_M_PLAYRECORD 1526
|
||||
#define IDR_DOCMAP 1527
|
||||
#define IDR_FUNC_LIST 1528
|
||||
#define IDR_CLOSETAB 1530
|
||||
#define IDR_CLOSETAB_INACT 1531
|
||||
#define IDR_CLOSETAB_HOVER 1532
|
||||
#define IDR_CLOSETAB_PUSH 1533
|
||||
#define IDR_SAVEALL 1500
|
||||
#define IDR_CLOSEFILE 1501
|
||||
#define IDR_CLOSEALL 1502
|
||||
#define IDR_FIND 1503
|
||||
#define IDR_REPLACE 1504
|
||||
#define IDR_ZOOMIN 1505
|
||||
#define IDR_ZOOMOUT 1506
|
||||
#define IDR_WRAP 1507
|
||||
#define IDR_INVISIBLECHAR 1508
|
||||
#define IDR_INDENTGUIDE 1509
|
||||
#define IDR_SHOWPANNEL 1510
|
||||
#define IDR_STARTRECORD 1511
|
||||
#define IDR_STOPRECORD 1512
|
||||
#define IDR_PLAYRECORD 1513
|
||||
#define IDR_SAVERECORD 1514
|
||||
#define IDR_SYNCV 1515
|
||||
#define IDR_SYNCH 1516
|
||||
#define IDR_FILENEW 1517
|
||||
#define IDR_FILEOPEN 1518
|
||||
#define IDR_FILESAVE 1519
|
||||
#define IDR_PRINT 1520
|
||||
#define IDR_CUT 1521
|
||||
#define IDR_COPY 1522
|
||||
#define IDR_PASTE 1523
|
||||
#define IDR_UNDO 1524
|
||||
#define IDR_REDO 1525
|
||||
#define IDR_M_PLAYRECORD 1526
|
||||
#define IDR_DOCMAP 1527
|
||||
#define IDR_FUNC_LIST 1528
|
||||
#define IDR_CLOSETAB 1530
|
||||
#define IDR_CLOSETAB_INACT 1531
|
||||
#define IDR_CLOSETAB_HOVER 1532
|
||||
#define IDR_CLOSETAB_PUSH 1533
|
||||
|
||||
#define IDR_FUNC_LIST_ICO 1534
|
||||
#define IDR_DOCMAP_ICO 1535
|
||||
#define IDR_PROJECTPANEL_ICO 1536
|
||||
#define IDR_CLIPBOARDPANEL_ICO 1537
|
||||
#define IDR_ASCIIPANEL_ICO 1538
|
||||
#define IDR_DOCSWITCHER_ICO 1539
|
||||
#define IDR_FUNC_LIST_ICO 1534
|
||||
#define IDR_DOCMAP_ICO 1535
|
||||
#define IDR_PROJECTPANEL_ICO 1536
|
||||
#define IDR_CLIPBOARDPANEL_ICO 1537
|
||||
#define IDR_ASCIIPANEL_ICO 1538
|
||||
#define IDR_DOCSWITCHER_ICO 1539
|
||||
|
||||
#define ID_MACRO 20000
|
||||
#define ID_MACRO_LIMIT 20200
|
||||
@ -207,7 +205,7 @@
|
||||
#define ID_PLUGINS_CMD_LIMIT 22500
|
||||
|
||||
#define ID_PLUGINS_CMD_DYNAMIC 23000
|
||||
#define ID_PLUGINS_CMD_DYNAMIC_LIMIT 24999
|
||||
#define ID_PLUGINS_CMD_DYNAMIC_LIMIT 24999
|
||||
|
||||
#define MARKER_PLUGINS 3
|
||||
#define MARKER_PLUGINS_LIMIT 19
|
||||
@ -220,136 +218,136 @@
|
||||
//#define IDM 40000
|
||||
|
||||
#define IDCMD 50000
|
||||
//#define IDM_EDIT_AUTOCOMPLETE (IDCMD+0)
|
||||
//#define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (IDCMD+1)
|
||||
|
||||
#define IDC_PREV_DOC (IDCMD+3)
|
||||
#define IDC_NEXT_DOC (IDCMD+4)
|
||||
#define IDC_EDIT_TOGGLEMACRORECORDING (IDCMD+5)
|
||||
//#define IDC_KEY_HOME (IDCMD+6)
|
||||
//#define IDC_KEY_END (IDCMD+7)
|
||||
//#define IDC_KEY_SELECT_2_HOME (IDCMD+8)
|
||||
//#define IDC_KEY_SELECT_2_END (IDCMD+9)
|
||||
|
||||
#define IDCMD_LIMIT (IDCMD+20)
|
||||
//#define IDM_EDIT_AUTOCOMPLETE (IDCMD+0)
|
||||
//#define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (IDCMD+1)
|
||||
|
||||
#define IDSCINTILLA 60000
|
||||
#define IDSCINTILLA_KEY_HOME (IDSCINTILLA+0)
|
||||
#define IDSCINTILLA_KEY_HOME_WRAP (IDSCINTILLA+1)
|
||||
#define IDSCINTILLA_KEY_END (IDSCINTILLA+2)
|
||||
#define IDSCINTILLA_KEY_END_WRAP (IDSCINTILLA+3)
|
||||
#define IDSCINTILLA_KEY_LINE_DUP (IDSCINTILLA+4)
|
||||
#define IDSCINTILLA_KEY_LINE_CUT (IDSCINTILLA+5)
|
||||
#define IDSCINTILLA_KEY_LINE_DEL (IDSCINTILLA+6)
|
||||
#define IDSCINTILLA_KEY_LINE_TRANS (IDSCINTILLA+7)
|
||||
#define IDSCINTILLA_KEY_LINE_COPY (IDSCINTILLA+8)
|
||||
#define IDSCINTILLA_KEY_CUT (IDSCINTILLA+9)
|
||||
#define IDSCINTILLA_KEY_COPY (IDSCINTILLA+10)
|
||||
#define IDSCINTILLA_KEY_PASTE (IDSCINTILLA+11)
|
||||
#define IDSCINTILLA_KEY_DEL (IDSCINTILLA+12)
|
||||
#define IDSCINTILLA_KEY_SELECTALL (IDSCINTILLA+13)
|
||||
#define IDSCINTILLA_KEY_OUTDENT (IDSCINTILLA+14)
|
||||
#define IDSCINTILLA_KEY_UNDO (IDSCINTILLA+15)
|
||||
#define IDSCINTILLA_KEY_REDO (IDSCINTILLA+16)
|
||||
#define IDSCINTILLA_LIMIT (IDSCINTILLA+30)
|
||||
#define IDC_PREV_DOC (IDCMD+3)
|
||||
#define IDC_NEXT_DOC (IDCMD+4)
|
||||
#define IDC_EDIT_TOGGLEMACRORECORDING (IDCMD+5)
|
||||
//#define IDC_KEY_HOME (IDCMD+6)
|
||||
//#define IDC_KEY_END (IDCMD+7)
|
||||
//#define IDC_KEY_SELECT_2_HOME (IDCMD+8)
|
||||
//#define IDC_KEY_SELECT_2_END (IDCMD+9)
|
||||
|
||||
#define IDD_FILEVIEW_DIALOG 1000
|
||||
#define IDCMD_LIMIT (IDCMD+20)
|
||||
|
||||
#define IDC_MINIMIZED_TRAY 67001
|
||||
#define IDSCINTILLA 60000
|
||||
#define IDSCINTILLA_KEY_HOME (IDSCINTILLA+0)
|
||||
#define IDSCINTILLA_KEY_HOME_WRAP (IDSCINTILLA+1)
|
||||
#define IDSCINTILLA_KEY_END (IDSCINTILLA+2)
|
||||
#define IDSCINTILLA_KEY_END_WRAP (IDSCINTILLA+3)
|
||||
#define IDSCINTILLA_KEY_LINE_DUP (IDSCINTILLA+4)
|
||||
#define IDSCINTILLA_KEY_LINE_CUT (IDSCINTILLA+5)
|
||||
#define IDSCINTILLA_KEY_LINE_DEL (IDSCINTILLA+6)
|
||||
#define IDSCINTILLA_KEY_LINE_TRANS (IDSCINTILLA+7)
|
||||
#define IDSCINTILLA_KEY_LINE_COPY (IDSCINTILLA+8)
|
||||
#define IDSCINTILLA_KEY_CUT (IDSCINTILLA+9)
|
||||
#define IDSCINTILLA_KEY_COPY (IDSCINTILLA+10)
|
||||
#define IDSCINTILLA_KEY_PASTE (IDSCINTILLA+11)
|
||||
#define IDSCINTILLA_KEY_DEL (IDSCINTILLA+12)
|
||||
#define IDSCINTILLA_KEY_SELECTALL (IDSCINTILLA+13)
|
||||
#define IDSCINTILLA_KEY_OUTDENT (IDSCINTILLA+14)
|
||||
#define IDSCINTILLA_KEY_UNDO (IDSCINTILLA+15)
|
||||
#define IDSCINTILLA_KEY_REDO (IDSCINTILLA+16)
|
||||
#define IDSCINTILLA_LIMIT (IDSCINTILLA+30)
|
||||
|
||||
#define IDD_CREATE_DIRECTORY 1100
|
||||
#define IDD_FILEVIEW_DIALOG 1000
|
||||
|
||||
#define IDC_MINIMIZED_TRAY 67001
|
||||
|
||||
#define IDD_CREATE_DIRECTORY 1100
|
||||
#define IDC_STATIC_CURRENT_FOLDER 1101
|
||||
#define IDC_EDIT_NEW_FOLDER 1102
|
||||
|
||||
#define IDD_INSERT_INPUT_TEXT 1200
|
||||
#define IDC_EDIT_INPUT_VALUE 1201
|
||||
#define IDC_STATIC_INPUT_TITLE 1202
|
||||
#define IDC_ICON_INPUT_ICON 1203
|
||||
#define IDD_INSERT_INPUT_TEXT 1200
|
||||
#define IDC_EDIT_INPUT_VALUE 1201
|
||||
#define IDC_STATIC_INPUT_TITLE 1202
|
||||
#define IDC_ICON_INPUT_ICON 1203
|
||||
|
||||
#define IDR_M30_MENU 1500
|
||||
#define IDR_M30_MENU 1500
|
||||
|
||||
#define IDR_SYSTRAYPOPUP_MENU 1501
|
||||
#define IDR_SYSTRAYPOPUP_MENU 1501
|
||||
|
||||
// #define IDD_FIND_REPLACE_DLG 1600
|
||||
// #define IDD_FIND_REPLACE_DLG 1600
|
||||
|
||||
#define IDD_ABOUTBOX 1700
|
||||
#define IDC_LICENCE_EDIT 1701
|
||||
#define IDC_HOME_ADDR 1702
|
||||
#define IDC_EMAIL_ADDR 1703
|
||||
#define IDC_ONLINEHELP_ADDR 1704
|
||||
#define IDC_AUTHOR_NAME 1705
|
||||
#define IDC_BUILD_DATETIME 1706 //LS: CompileDateInAboutDialog: Automatically insert compile date as additional version info in About-dialog!
|
||||
//#define IDD_USER_DEFINE_BOX 1800
|
||||
#define IDD_ABOUTBOX 1700
|
||||
#define IDC_LICENCE_EDIT 1701
|
||||
#define IDC_HOME_ADDR 1702
|
||||
#define IDC_EMAIL_ADDR 1703
|
||||
#define IDC_ONLINEHELP_ADDR 1704
|
||||
#define IDC_AUTHOR_NAME 1705
|
||||
#define IDC_BUILD_DATETIME 1706 //LS: CompileDateInAboutDialog: Automatically insert compile date as additional version info in About-dialog!
|
||||
//#define IDD_USER_DEFINE_BOX 1800
|
||||
|
||||
//#define IDD_RUN_DLG 1900
|
||||
//#define IDD_RUN_DLG 1900
|
||||
|
||||
#define IDD_GOLINE 2000
|
||||
#define ID_GOLINE_EDIT (IDD_GOLINE + 1)
|
||||
#define ID_CURRLINE (IDD_GOLINE + 2)
|
||||
#define ID_LASTLINE (IDD_GOLINE + 3)
|
||||
#define ID_URHERE_STATIC (IDD_GOLINE + 4)
|
||||
#define ID_UGO_STATIC (IDD_GOLINE + 5)
|
||||
#define ID_NOMORETHAN_STATIC (IDD_GOLINE + 6)
|
||||
#define IDC_RADIO_GOTOLINE (IDD_GOLINE + 7)
|
||||
#define IDC_RADIO_GOTOOFFSET (IDD_GOLINE + 8)
|
||||
#define IDD_GOLINE 2000
|
||||
#define ID_GOLINE_EDIT (IDD_GOLINE + 1)
|
||||
#define ID_CURRLINE (IDD_GOLINE + 2)
|
||||
#define ID_LASTLINE (IDD_GOLINE + 3)
|
||||
#define ID_URHERE_STATIC (IDD_GOLINE + 4)
|
||||
#define ID_UGO_STATIC (IDD_GOLINE + 5)
|
||||
#define ID_NOMORETHAN_STATIC (IDD_GOLINE + 6)
|
||||
#define IDC_RADIO_GOTOLINE (IDD_GOLINE + 7)
|
||||
#define IDC_RADIO_GOTOOFFSET (IDD_GOLINE + 8)
|
||||
|
||||
// voir columnEditor_rc.h
|
||||
//#define IDD_COLUMNEDIT 2020
|
||||
//#define IDD_COLUMNEDIT 2020
|
||||
|
||||
|
||||
//#define IDD_COLOUR_POPUP 2100
|
||||
//#define IDD_COLOUR_POPUP 2100
|
||||
|
||||
// See WordStyleDlgRes.h
|
||||
//#define IDD_STYLER_DLG 2200
|
||||
//#define IDD_GLOBAL_STYLER_DLG 2300
|
||||
//#define IDD_STYLER_DLG 2200
|
||||
//#define IDD_GLOBAL_STYLER_DLG 2300
|
||||
|
||||
#define IDD_VALUE_DLG 2400
|
||||
#define IDC_VALUE_STATIC 2401
|
||||
#define IDC_VALUE_EDIT 2402
|
||||
#define IDD_VALUE_DLG 2400
|
||||
#define IDC_VALUE_STATIC 2401
|
||||
#define IDC_VALUE_EDIT 2402
|
||||
|
||||
#define IDD_BUTTON_DLG 2410
|
||||
#define IDC_RESTORE_BUTTON 2411
|
||||
#define IDD_BUTTON_DLG 2410
|
||||
#define IDC_RESTORE_BUTTON 2411
|
||||
|
||||
// see TaskListDlg_rc.h
|
||||
//#define IDD_TASKLIST_DLG 2450
|
||||
#define IDD_SETTING_DLG 2500
|
||||
//#define IDD_TASKLIST_DLG 2450
|
||||
#define IDD_SETTING_DLG 2500
|
||||
|
||||
|
||||
|
||||
//See ShortcutMapper_rc.h
|
||||
//#define IDD_SHORTCUTMAPPER_DLG 2600
|
||||
//#define IDD_SHORTCUTMAPPER_DLG 2600
|
||||
|
||||
//See ansiCharPanel_rc.h
|
||||
//#define IDD_ANSIASCII_PANEL 2700
|
||||
//#define IDD_ANSIASCII_PANEL 2700
|
||||
|
||||
//See clipboardHistoryPanel_rc.h
|
||||
//#define IDD_CLIPBOARDHISTORY_PANEL 2800
|
||||
//#define IDD_CLIPBOARDHISTORY_PANEL 2800
|
||||
|
||||
//See findCharsInRange_rc.h
|
||||
//#define IDD_FINDCHARACTERS 2900
|
||||
//#define IDD_FINDCHARACTERS 2900
|
||||
|
||||
//See VerticalFileSwitcher_rc.h
|
||||
//#define IDD_FILESWITCHER_PANEL 3000
|
||||
//#define IDD_FILESWITCHER_PANEL 3000
|
||||
|
||||
//See ProjectPanel_rc.h
|
||||
//#define IDD_PROJECTPANEL 3100
|
||||
//#define IDD_FILERELOCALIZER_DIALOG 3200
|
||||
//#define IDD_PROJECTPANEL 3100
|
||||
//#define IDD_FILERELOCALIZER_DIALOG 3200
|
||||
|
||||
//See documentMap_rc.h
|
||||
//#define IDD_DOCUMENTMAP 3300
|
||||
//#define IDD_DOCUMENTMAP 3300
|
||||
|
||||
//See functionListPanel_rc.h
|
||||
//#define IDD_FUNCLIST_PANEL 3400
|
||||
//#define IDD_FUNCLIST_PANEL 3400
|
||||
|
||||
|
||||
// See regExtDlg.h
|
||||
//#define IDD_REGEXT 4000
|
||||
//#define IDD_REGEXT 4000
|
||||
|
||||
// See shortcutRc.h
|
||||
//#define IDD_SHORTCUT_DLG 5000
|
||||
//#define IDD_SHORTCUT_DLG 5000
|
||||
|
||||
// See preference.rc
|
||||
//#define IDD_PREFERENCE_BOX 6000
|
||||
//#define IDD_PREFERENCE_BOX 6000
|
||||
|
||||
#define NOTEPADPLUS_USER_INTERNAL (WM_USER + 0000)
|
||||
#define NPPM_INTERNAL_USERCMDLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 1)
|
||||
@ -357,94 +355,94 @@
|
||||
#define NPPM_INTERNAL_MACROLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 3)
|
||||
#define NPPM_INTERNAL_PLUGINCMDLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 4)
|
||||
#define NPPM_INTERNAL_CLEARSCINTILLAKEY (NOTEPADPLUS_USER_INTERNAL + 5)
|
||||
#define NPPM_INTERNAL_BINDSCINTILLAKEY (NOTEPADPLUS_USER_INTERNAL + 6)
|
||||
#define NPPM_INTERNAL_BINDSCINTILLAKEY (NOTEPADPLUS_USER_INTERNAL + 6)
|
||||
#define NPPM_INTERNAL_SCINTILLAKEYMODIFIED (NOTEPADPLUS_USER_INTERNAL + 7)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFERCOLLAPSE (NOTEPADPLUS_USER_INTERNAL + 8)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFERUNCOLLAPSE (NOTEPADPLUS_USER_INTERNAL + 9)
|
||||
#define NPPM_INTERNAL_DISABLEAUTOUPDATE (NOTEPADPLUS_USER_INTERNAL + 10)
|
||||
#define NPPM_INTERNAL_SETTING_HISTORY_SIZE (NOTEPADPLUS_USER_INTERNAL + 11)
|
||||
#define NPPM_INTERNAL_ISTABBARREDUCED (NOTEPADPLUS_USER_INTERNAL + 12)
|
||||
#define NPPM_INTERNAL_ISFOCUSEDTAB (NOTEPADPLUS_USER_INTERNAL + 13)
|
||||
#define NPPM_INTERNAL_GETMENU (NOTEPADPLUS_USER_INTERNAL + 14)
|
||||
#define NPPM_INTERNAL_CLEARINDICATOR (NOTEPADPLUS_USER_INTERNAL + 15)
|
||||
#define NPPM_INTERNAL_DISABLEAUTOUPDATE (NOTEPADPLUS_USER_INTERNAL + 10)
|
||||
#define NPPM_INTERNAL_SETTING_HISTORY_SIZE (NOTEPADPLUS_USER_INTERNAL + 11)
|
||||
#define NPPM_INTERNAL_ISTABBARREDUCED (NOTEPADPLUS_USER_INTERNAL + 12)
|
||||
#define NPPM_INTERNAL_ISFOCUSEDTAB (NOTEPADPLUS_USER_INTERNAL + 13)
|
||||
#define NPPM_INTERNAL_GETMENU (NOTEPADPLUS_USER_INTERNAL + 14)
|
||||
#define NPPM_INTERNAL_CLEARINDICATOR (NOTEPADPLUS_USER_INTERNAL + 15)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFERCOPY (NOTEPADPLUS_USER_INTERNAL + 16)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFERSELECTALL (NOTEPADPLUS_USER_INTERNAL + 17)
|
||||
#define NPPM_INTERNAL_SETCARETWIDTH (NOTEPADPLUS_USER_INTERNAL + 18)
|
||||
#define NPPM_INTERNAL_SETCARETBLINKRATE (NOTEPADPLUS_USER_INTERNAL + 19)
|
||||
#define NPPM_INTERNAL_CLEARINDICATORTAGMATCH (NOTEPADPLUS_USER_INTERNAL + 20)
|
||||
#define NPPM_INTERNAL_CLEARINDICATORTAGATTR (NOTEPADPLUS_USER_INTERNAL + 21)
|
||||
#define NPPM_INTERNAL_SWITCHVIEWFROMHWND (NOTEPADPLUS_USER_INTERNAL + 22)
|
||||
#define NPPM_INTERNAL_UPDATETITLEBAR (NOTEPADPLUS_USER_INTERNAL + 23)
|
||||
#define NPPM_INTERNAL_CANCEL_FIND_IN_FILES (NOTEPADPLUS_USER_INTERNAL + 24)
|
||||
#define NPPM_INTERNAL_RELOADNATIVELANG (NOTEPADPLUS_USER_INTERNAL + 25)
|
||||
#define NPPM_INTERNAL_PLUGINSHORTCUTMOTIFIED (NOTEPADPLUS_USER_INTERNAL + 26)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFERCLEARALL (NOTEPADPLUS_USER_INTERNAL + 27)
|
||||
#define NPPM_INTERNAL_SETTING_EDGE_SIZE (NOTEPADPLUS_USER_INTERNAL + 28)
|
||||
#define NPPM_INTERNAL_SETTING_TAB_REPLCESPACE (NOTEPADPLUS_USER_INTERNAL + 29)
|
||||
#define NPPM_INTERNAL_SETTING_TAB_SIZE (NOTEPADPLUS_USER_INTERNAL + 30)
|
||||
#define NPPM_INTERNAL_RELOADSTYLERS (NOTEPADPLUS_USER_INTERNAL + 31)
|
||||
#define NPPM_INTERNAL_DOCORDERCHANGED (NOTEPADPLUS_USER_INTERNAL + 32)
|
||||
#define NPPM_INTERNAL_CLEARINDICATORTAGMATCH (NOTEPADPLUS_USER_INTERNAL + 20)
|
||||
#define NPPM_INTERNAL_CLEARINDICATORTAGATTR (NOTEPADPLUS_USER_INTERNAL + 21)
|
||||
#define NPPM_INTERNAL_SWITCHVIEWFROMHWND (NOTEPADPLUS_USER_INTERNAL + 22)
|
||||
#define NPPM_INTERNAL_UPDATETITLEBAR (NOTEPADPLUS_USER_INTERNAL + 23)
|
||||
#define NPPM_INTERNAL_CANCEL_FIND_IN_FILES (NOTEPADPLUS_USER_INTERNAL + 24)
|
||||
#define NPPM_INTERNAL_RELOADNATIVELANG (NOTEPADPLUS_USER_INTERNAL + 25)
|
||||
#define NPPM_INTERNAL_PLUGINSHORTCUTMOTIFIED (NOTEPADPLUS_USER_INTERNAL + 26)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFERCLEARALL (NOTEPADPLUS_USER_INTERNAL + 27)
|
||||
#define NPPM_INTERNAL_SETTING_EDGE_SIZE (NOTEPADPLUS_USER_INTERNAL + 28)
|
||||
#define NPPM_INTERNAL_SETTING_TAB_REPLCESPACE (NOTEPADPLUS_USER_INTERNAL + 29)
|
||||
#define NPPM_INTERNAL_SETTING_TAB_SIZE (NOTEPADPLUS_USER_INTERNAL + 30)
|
||||
#define NPPM_INTERNAL_RELOADSTYLERS (NOTEPADPLUS_USER_INTERNAL + 31)
|
||||
#define NPPM_INTERNAL_DOCORDERCHANGED (NOTEPADPLUS_USER_INTERNAL + 32)
|
||||
#define NPPM_INTERNAL_SETMULTISELCTION (NOTEPADPLUS_USER_INTERNAL + 33)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFEROPENALL (NOTEPADPLUS_USER_INTERNAL + 34)
|
||||
#define NPPM_INTERNAL_RECENTFILELIST_UPDATE (NOTEPADPLUS_USER_INTERNAL + 35)
|
||||
#define NPPM_INTERNAL_RECENTFILELIST_SWITCH (NOTEPADPLUS_USER_INTERNAL + 36)
|
||||
#define NPPM_INTERNAL_GETSCINTEDTVIEW (NOTEPADPLUS_USER_INTERNAL + 37)
|
||||
#define NPPM_INTERNAL_ENABLESNAPSHOT (NOTEPADPLUS_USER_INTERNAL + 38)
|
||||
#define NPPM_INTERNAL_SAVECURRENTSESSION (NOTEPADPLUS_USER_INTERNAL + 39)
|
||||
#define NPPM_INTERNAL_SCINTILLAFINFEROPENALL (NOTEPADPLUS_USER_INTERNAL + 34)
|
||||
#define NPPM_INTERNAL_RECENTFILELIST_UPDATE (NOTEPADPLUS_USER_INTERNAL + 35)
|
||||
#define NPPM_INTERNAL_RECENTFILELIST_SWITCH (NOTEPADPLUS_USER_INTERNAL + 36)
|
||||
#define NPPM_INTERNAL_GETSCINTEDTVIEW (NOTEPADPLUS_USER_INTERNAL + 37)
|
||||
#define NPPM_INTERNAL_ENABLESNAPSHOT (NOTEPADPLUS_USER_INTERNAL + 38)
|
||||
#define NPPM_INTERNAL_SAVECURRENTSESSION (NOTEPADPLUS_USER_INTERNAL + 39)
|
||||
|
||||
|
||||
//wParam: 0
|
||||
//lParam: document new index
|
||||
//wParam: 0
|
||||
//lParam: document new index
|
||||
// See Notepad_plus_msgs.h
|
||||
//#define NOTEPADPLUS_USER (WM_USER + 1000)
|
||||
|
||||
//
|
||||
// Used by Doc Monitor plugin
|
||||
//
|
||||
//
|
||||
// Used by Doc Monitor plugin
|
||||
//
|
||||
#define NPPM_INTERNAL_CHECKDOCSTATUS (NPPMSG + 53)
|
||||
// VOID NPPM_CHECKDOCSTATUS(BOOL, 0)
|
||||
// check all opened documents status.
|
||||
// If files are modified, then reloaod (with or without prompt, it depends on settings).
|
||||
// if files are deleted, then prompt user to close the documents
|
||||
// VOID NPPM_CHECKDOCSTATUS(BOOL, 0)
|
||||
// check all opened documents status.
|
||||
// If files are modified, then reloaod (with or without prompt, it depends on settings).
|
||||
// if files are deleted, then prompt user to close the documents
|
||||
|
||||
#define NPPM_INTERNAL_ENABLECHECKDOCOPT (NPPMSG + 54)
|
||||
// VOID NPPM_ENABLECHECKDOCOPT(OPT, 0)
|
||||
// where OPT is :
|
||||
#define CHECKDOCOPT_NONE 0
|
||||
#define CHECKDOCOPT_UPDATESILENTLY 1
|
||||
#define CHECKDOCOPT_UPDATEGO2END 2
|
||||
// VOID NPPM_ENABLECHECKDOCOPT(OPT, 0)
|
||||
// where OPT is :
|
||||
#define CHECKDOCOPT_NONE 0
|
||||
#define CHECKDOCOPT_UPDATESILENTLY 1
|
||||
#define CHECKDOCOPT_UPDATEGO2END 2
|
||||
|
||||
#define NPPM_INTERNAL_GETCHECKDOCOPT (NPPMSG + 55)
|
||||
// INT NPPM_GETCHECKDOCOPT(0, 0)
|
||||
// INT NPPM_GETCHECKDOCOPT(0, 0)
|
||||
#define NPPM_INTERNAL_SETCHECKDOCOPT (NPPMSG + 56)
|
||||
// INT NPPM_SETCHECKDOCOPT(OPT, 0)
|
||||
// INT NPPM_SETCHECKDOCOPT(OPT, 0)
|
||||
|
||||
//
|
||||
// Used by netnote plugin
|
||||
//
|
||||
//
|
||||
// Used by netnote plugin
|
||||
//
|
||||
#define NPPM_INTERNAL_SETFILENAME (NPPMSG + 63)
|
||||
//wParam: BufferID to rename
|
||||
//lParam: name to set (TCHAR*)
|
||||
//Buffer must have been previously unnamed (eg "new 1" document types)
|
||||
//wParam: BufferID to rename
|
||||
//lParam: name to set (TCHAR*)
|
||||
//Buffer must have been previously unnamed (eg "new 1" document types)
|
||||
|
||||
|
||||
|
||||
#define SCINTILLA_USER (WM_USER + 2000)
|
||||
|
||||
|
||||
#define MACRO_USER (WM_USER + 4000)
|
||||
#define MACRO_USER (WM_USER + 4000)
|
||||
#define WM_GETCURRENTMACROSTATUS (MACRO_USER + 01)
|
||||
#define WM_MACRODLGRUNMACRO (MACRO_USER + 02)
|
||||
|
||||
|
||||
// See Notepad_plus_msgs.h
|
||||
//#define RUNCOMMAND_USER (WM_USER + 3000)
|
||||
//#define RUNCOMMAND_USER (WM_USER + 3000)
|
||||
#define SPLITTER_USER (WM_USER + 4000)
|
||||
#define WORDSTYLE_USER (WM_USER + 5000)
|
||||
#define COLOURPOPUP_USER (WM_USER + 6000)
|
||||
#define BABYGRID_USER (WM_USER + 7000)
|
||||
|
||||
//#define IDD_DOCKING_MNG (IDM + 7000)
|
||||
//#define IDD_DOCKING_MNG (IDM + 7000)
|
||||
|
||||
#define MENUINDEX_FILE 0
|
||||
#define MENUINDEX_EDIT 1
|
||||
@ -455,8 +453,4 @@
|
||||
#define MENUINDEX_SETTINGS 6
|
||||
#define MENUINDEX_MACRO 7
|
||||
#define MENUINDEX_RUN 8
|
||||
#define MENUINDEX_PLUGINS 9
|
||||
|
||||
#endif // RESOURCE_H
|
||||
|
||||
|
||||
#define MENUINDEX_PLUGINS 9
|
||||
|
@ -78,7 +78,7 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Debug|x64'">
|
||||
<OutDir>x64\$(Configuration)\</OutDir>
|
||||
<IntDir>x64\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unicode Release|Win32'">
|
||||
<OutDir>..\bin\</OutDir>
|
||||
@ -97,12 +97,13 @@
|
||||
<AdditionalIncludeDirectories>..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher;..\src\WinControls\ProjectPanel;..\src\WinControls\DocumentMap;..\src\WinControls\FunctionList;..\src\uchardet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<BasicRuntimeChecks>UninitializedLocalUsageCheck</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<SmallerTypeCheck>true</SmallerTypeCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>/fixed:no %(AdditionalOptions)</AdditionalOptions>
|
||||
@ -131,12 +132,13 @@
|
||||
<AdditionalIncludeDirectories>..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel;..\src\WinControls\ClipboardHistory;..\src\WinControls\FindCharsInRange;..\src\WinControls\VerticalFileSwitcher;..\src\WinControls\ProjectPanel;..\src\WinControls\DocumentMap;..\src\WinControls\FunctionList;..\src\uchardet;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WIN32_WINNT=0x0501;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<BasicRuntimeChecks>UninitializedLocalUsageCheck</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<SmallerTypeCheck>true</SmallerTypeCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>/fixed:no %(AdditionalOptions)</AdditionalOptions>
|
||||
|
Loading…
Reference in New Issue
Block a user