From df73a675bc33b79755d3795d1a44a96a2e54f252 Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Wed, 16 Feb 2022 21:29:31 -0500 Subject: [PATCH 1/8] Notepad++ >=8.3 updates, headers and docking files --- DockingFeature/Docking.h | 39 +- DockingFeature/DockingDlgInterface.h | 124 +- DockingFeature/GitPanelDlg.cpp | 178 +- DockingFeature/GitPanelDlg.h | 39 +- DockingFeature/SettingsDlg.cpp | 16 - DockingFeature/StaticDialog.cpp | 408 ++-- DockingFeature/StaticDialog.h | 80 +- DockingFeature/Window.h | 132 +- DockingFeature/dockingResource.h | 42 +- DockingFeature/gitPanel.rc | 18 +- DockingFeature/resource.h | 14 +- GitSCM.cpp | 2 +- Notepad_plus_msgs.h | 1250 ++++++------ PluginDefinition.cpp | 50 +- PluginInterface.h | 69 +- Scintilla.h | 2632 +++++++++++++------------- menuCmdID.h | 886 ++++++--- 17 files changed, 3249 insertions(+), 2730 deletions(-) diff --git a/DockingFeature/Docking.h b/DockingFeature/Docking.h index 334b496..b466852 100644 --- a/DockingFeature/Docking.h +++ b/DockingFeature/Docking.h @@ -1,24 +1,23 @@ -/* -this file is part of Function List Plugin for Notepad++ -Copyright (C)2005 Jens Lorenz +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ +#pragma once -#ifndef DOCKING_H -#define DOCKING_H +#include // ATTENTION : It's a part of interface header, so don't include the others header here @@ -49,13 +48,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. typedef struct { HWND hClient; // client Window Handle - TCHAR *pszName; // name of plugin (shown in window) + const TCHAR *pszName; // name of plugin (shown in window) int dlgID; // a funcItem provides the function pointer to start a dialog. Please parse here these ID // user modifications UINT uMask; // mask params: look to above defines HICON hIconTab; // icon for tabs - TCHAR *pszAddInfo; // for plugin to display additional informations + const TCHAR *pszAddInfo; // for plugin to display additional informations // internal data, do not use !!! RECT rcFloat; // floating position @@ -73,5 +72,3 @@ typedef struct { #define HIT_TEST_THICKNESS 20 #define SPLITTER_WIDTH 4 - -#endif // DOCKING_H diff --git a/DockingFeature/DockingDlgInterface.h b/DockingFeature/DockingDlgInterface.h index 894aa8e..5970b1c 100644 --- a/DockingFeature/DockingDlgInterface.h +++ b/DockingFeature/DockingDlgInterface.h @@ -1,85 +1,102 @@ -/* -this file is part of Function List Plugin for Notepad++ -Copyright (C)2005 Jens Lorenz +// This file is part of Notepad++ project +// Copyright (C)2006 Jens Lorenz -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ +#pragma once -#ifndef DOCKINGDLGINTERFACE_H -#define DOCKINGDLGINTERFACE_H - -#include "StaticDialog.h" #include "dockingResource.h" #include "Docking.h" + +#include #include +#include +#include "StaticDialog.h" + class DockingDlgInterface : public StaticDialog { public: - DockingDlgInterface(): StaticDialog() {}; - DockingDlgInterface(int dlgID): StaticDialog(), _dlgID(dlgID) {}; - - virtual void init(HINSTANCE hInst, HWND parent) - { + DockingDlgInterface() = default; + explicit DockingDlgInterface(int dlgID): _dlgID(dlgID) {} + + virtual void init(HINSTANCE hInst, HWND parent) { StaticDialog::init(hInst, parent); - ::GetModuleFileName((HMODULE)hInst, _moduleName, MAX_PATH); - lstrcpy(_moduleName, PathFindFileName(_moduleName)); + TCHAR temp[MAX_PATH]; + ::GetModuleFileName(reinterpret_cast(hInst), temp, MAX_PATH); + _moduleName = ::PathFindFileName(temp); } - void create(tTbData * data, bool isRTL = false){ + void create(tTbData* data, bool isRTL = false) { + assert(data != nullptr); StaticDialog::create(_dlgID, isRTL); - ::GetWindowText(_hSelf, _pluginName, sizeof(_pluginName)); + TCHAR temp[MAX_PATH]; + ::GetWindowText(_hSelf, temp, MAX_PATH); + _pluginName = temp; // user information - data->hClient = _hSelf; - data->pszName = _pluginName; + data->hClient = _hSelf; + data->pszName = _pluginName.c_str(); // supported features by plugin - data->uMask = 0; + data->uMask = 0; // additional info - data->pszAddInfo = NULL; - _data = data; - - }; + data->pszAddInfo = NULL; + } - virtual void updateDockingDlg(void) { - ::SendMessage(_hParent, NPPM_DMMUPDATEDISPINFO, 0, (LPARAM)_hSelf); + virtual void updateDockingDlg() { + ::SendMessage(_hParent, NPPM_DMMUPDATEDISPINFO, 0, reinterpret_cast(_hSelf)); } - virtual void destroy() { - }; + virtual void destroy() {} + + virtual void setBackgroundColor(COLORREF) {} + virtual void setForegroundColor(COLORREF) {} virtual void display(bool toShow = true) const { - ::SendMessage(_hParent, toShow?NPPM_DMMSHOW:NPPM_DMMHIDE, 0, (LPARAM)_hSelf); - }; + ::SendMessage(_hParent, toShow ? NPPM_DMMSHOW : NPPM_DMMHIDE, 0, reinterpret_cast(_hSelf)); + } + + bool isClosed() const { + return _isClosed; + } + + void setClosed(bool toClose) { + _isClosed = toClose; + } const TCHAR * getPluginFileName() const { - return _moduleName; - }; + return _moduleName.c_str(); + } protected : - virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM /*wParam*/, LPARAM lParam) - { - switch (message) + int _dlgID = -1; + bool _isFloating = true; + int _iDockedPos = 0; + std::wstring _moduleName; + std::wstring _pluginName; + bool _isClosed = false; + + virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM, LPARAM lParam) { + switch (message) { - case WM_NOTIFY: { - LPNMHDR pnmh = (LPNMHDR)lParam; + LPNMHDR pnmh = reinterpret_cast(lParam); if (pnmh->hwndFrom == _hParent) { @@ -96,6 +113,7 @@ protected : } case DMN_DOCK: { + _iDockedPos = HIWORD(pnmh->code); _isFloating = false; break; } @@ -110,14 +128,4 @@ protected : } return FALSE; }; - - // Handles - HWND _HSource; - tTbData* _data; - int _dlgID; - bool _isFloating; - TCHAR _moduleName[MAX_PATH]; - TCHAR _pluginName[MAX_PATH]; }; - -#endif // DOCKINGDLGINTERFACE_H diff --git a/DockingFeature/GitPanelDlg.cpp b/DockingFeature/GitPanelDlg.cpp index f9770b3..b6f2b91 100644 --- a/DockingFeature/GitPanelDlg.cpp +++ b/DockingFeature/GitPanelDlg.cpp @@ -32,12 +32,12 @@ #include extern NppData nppData; -extern HWND hDialog; extern TCHAR g_GitPath[MAX_PATH]; extern TCHAR g_GitPrompt[MAX_PATH]; extern bool g_useTortoise; extern bool g_NppReady; extern bool g_useNppColors; +extern bool g_RaisePanel; extern bool g_Debug; LVITEM LvItem; @@ -51,7 +51,7 @@ COLORREF colorFg; #define COL_FILE 2 #define TIMER_ID 1 -#define LSV1_REFRESH_DELAY 2500 +#define LSV1_REFRESH_DELAY 1500 const int WS_TOOLBARSTYLE = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS |TBSTYLE_FLAT | CCS_TOP | BTNS_AUTOSIZE | CCS_NOPARENTALIGN | CCS_NORESIZE | CCS_NODIVIDER; /* WS_CHILD | WS_VISIBLE | CCS_NORESIZE | CCS_ADJUSTABLE */ @@ -125,13 +125,13 @@ void imageToolbar( HINSTANCE hInst, HWND hWndToolbar, UINT ToolbarID, const int SendMessage( hWndToolbar, TB_SETIMAGELIST, 0, ( LPARAM )himlToolBar1 ); } -void doRefreshTimer() +void DemoDlg::doRefreshTimer() { - KillTimer( hDialog, TIMER_ID ); - SetTimer( hDialog, TIMER_ID, LSV1_REFRESH_DELAY, NULL ); + KillTimer( _hSelf, TIMER_ID ); + SetTimer( _hSelf, TIMER_ID, LSV1_REFRESH_DELAY, NULL ); } -std::vector split( std::wstring stringToBeSplitted, +std::vector DemoDlg::split( std::wstring stringToBeSplitted, std::wstring delimeter ) { std::vector splittedString; @@ -156,7 +156,7 @@ std::vector split( std::wstring stringToBeSplitted, return splittedString; } -void convertProcessText2Wide( std::wstring outputW, std::wstring &wide ) +void DemoDlg::convertProcessText2Wide( std::wstring outputW, std::wstring &wide ) { std::string output(outputW.begin(), outputW.end()); output.assign(outputW.begin(), outputW.end()); @@ -165,22 +165,22 @@ void convertProcessText2Wide( std::wstring outputW, std::wstring &wide ) wide = converter.from_bytes(output.c_str()); } -void clearList() +void DemoDlg::clearList() { - SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_DELETEALLITEMS, 0, 0 ); + SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_DELETEALLITEMS, 0, 0 ); } -bool updateLoc( std::wstring &loc ) +bool DemoDlg::updateLoc( std::wstring &loc ) { TCHAR pathName[MAX_PATH] = {0}; SendMessage( nppData._nppHandle, NPPM_GETCURRENTDIRECTORY, MAX_PATH, ( LPARAM )pathName ); - SendMessage( GetDlgItem( hDialog, IDC_EDT_DIR ), WM_SETTEXT, 0, ( LPARAM )pathName ); + SendMessage( GetDlgItem( _hSelf, IDC_EDT_DIR ), WM_SETTEXT, 0, ( LPARAM )pathName ); loc = pathName; return true; } -void setListColumns( unsigned int uItem, std::wstring strI, std::wstring strW, +void DemoDlg::setListColumns( unsigned int uItem, std::wstring strI, std::wstring strW, std::wstring strFile ) { // https://www.codeproject.com/Articles/2890/Using-ListView-control-under-Win32-API @@ -191,26 +191,26 @@ void setListColumns( unsigned int uItem, std::wstring strI, std::wstring strW, // LvItem.iSubItem = COL_CHK; // Put in first coluom // LvItem.pszText = TEXT( "" ); - // SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_INSERTITEM, 0, ( LPARAM )&LvItem ); + // SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_INSERTITEM, 0, ( LPARAM )&LvItem ); LvItem.iSubItem = COL_I; // Put in second coluom LvItem.pszText = const_cast( strI.c_str() ); - SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_INSERTITEM, 0, ( LPARAM )&LvItem ); + SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_INSERTITEM, 0, ( LPARAM )&LvItem ); LvItem.iSubItem = COL_W; // Put in third coluom LvItem.pszText = const_cast( strW.c_str() ); - SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_SETITEM, 0, ( LPARAM )&LvItem ); + SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_SETITEM, 0, ( LPARAM )&LvItem ); LvItem.iSubItem = COL_FILE; // Put in fourth coluom LvItem.pszText = const_cast( strFile.c_str() ); - SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_SETITEM, 0, ( LPARAM )&LvItem ); + SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_SETITEM, 0, ( LPARAM )&LvItem ); } -std::vector getListSelected(void) +std::vector DemoDlg::getListSelected(void) { std::vector selectedItems; int itemInt = -1; - itemInt = ( int )::SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_GETNEXTITEM, itemInt, LVNI_SELECTED ); + itemInt = ( int )::SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_GETNEXTITEM, itemInt, LVNI_SELECTED ); if ( itemInt == -1 ) return selectedItems; @@ -219,7 +219,7 @@ std::vector getListSelected(void) { wide.erase(std::remove(wide.begin(), wide.end(), '\n'), wide.end()); - for (itemInt = -1; ( itemInt = ( int )::SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_GETNEXTITEM, itemInt, LVNI_SELECTED ) ) != -1; ) + for (itemInt = -1; ( itemInt = ( int )::SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_GETNEXTITEM, itemInt, LVNI_SELECTED ) ) != -1; ) { TCHAR file[MAX_PATH] = {0}; @@ -230,7 +230,7 @@ std::vector getListSelected(void) LvItem.cchTextMax = MAX_PATH; LvItem.iItem = itemInt; - SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_GETITEMTEXT, itemInt, (LPARAM)&LvItem ); + SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_GETITEMTEXT, itemInt, (LPARAM)&LvItem ); std::wstring tempPath = wide; tempPath += TEXT( "\\" ); @@ -255,7 +255,7 @@ std::vector getListSelected(void) return selectedItems; } -bool execCommand( std::wstring command, std::wstring &wide ) +bool DemoDlg::execCommand( std::wstring command, std::wstring &wide ) { wide = TEXT( "" ); @@ -346,7 +346,7 @@ bool execCommand( std::wstring command, std::wstring &wide ) return false; } -void updateListWithDelay() +void DemoDlg::updateListWithDelay() { if ( ! g_NppReady ) return; @@ -354,9 +354,9 @@ void updateListWithDelay() doRefreshTimer(); } -void updateList() +void DemoDlg::updateList() { - KillTimer( hDialog, TIMER_ID ); + KillTimer( _hSelf, TIMER_ID ); if ( ! g_NppReady ) return; @@ -369,7 +369,7 @@ void updateList() std::vector splittedStrings = split( wide, TEXT( "\n" ) ); std::wstring strBranch = splittedStrings[0].erase(0, 3); - SendMessage( GetDlgItem( hDialog, IDC_EDT_BRANCH ), WM_SETTEXT, 0, ( LPARAM )strBranch.c_str() ); + SendMessage( GetDlgItem( _hSelf, IDC_EDT_BRANCH ), WM_SETTEXT, 0, ( LPARAM )strBranch.c_str() ); for ( unsigned int i = 1; i < splittedStrings.size() ; i++ ) { std::wstring strI = splittedStrings[i].substr(0, 1); @@ -382,21 +382,21 @@ void updateList() setListColumns( 0, TEXT( "" ), TEXT( "" ), wide ); } -void SetNppColors() +void DemoDlg::SetNppColors() { colorBg = ( COLORREF )::SendMessage( getCurScintilla(), SCI_STYLEGETBACK, 0, 0 ); colorFg = ( COLORREF )::SendMessage( getCurScintilla(), SCI_STYLEGETFORE, 0, 0 ); } -void SetSysColors() +void DemoDlg::SetSysColors() { colorBg = GetSysColor( COLOR_WINDOW ); colorFg = GetSysColor( COLOR_WINDOWTEXT ); } -void ChangeColors() +void DemoDlg::ChangeColors() { - HWND hList = GetDlgItem( hDialog, IDC_LSV1 ); + HWND hList = GetDlgItem( _hSelf, IDC_LSV1 ); ::SendMessage(hList, WM_SETREDRAW, FALSE, 0); @@ -408,7 +408,17 @@ void ChangeColors() ::RedrawWindow(hList, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); } -void initDialog() +void DemoDlg::refreshDialog() +{ + SendMessage( GetDlgItem( _hSelf, IDC_CHK_TORTOISE ), BM_SETCHECK, + ( WPARAM )( g_useTortoise ? 1 : 0 ), 0 ); + SendMessage( GetDlgItem( _hSelf, IDC_CHK_NPPCOLOR ), BM_SETCHECK, + ( WPARAM )( g_useNppColors ? 1 : 0 ), 0 ); + SendMessage( GetDlgItem( _hSelf, IDC_CHK_PANELTOGGLE ), BM_SETCHECK, + ( WPARAM )( g_RaisePanel ? 1 : 0 ), 0 ); +} + +void DemoDlg::initDialog() { INITCOMMONCONTROLSEX ic; @@ -417,14 +427,15 @@ void initDialog() InitCommonControlsEx( &ic ); HWND hWndToolbar1, hWndToolbar2, hWndPager1, hWndPager2; + HMODULE module_name = GetModuleHandle( _moduleName.c_str() ); // TOOLBAR1 // Create pager. The parent window is the parent. hWndPager1 = CreateWindow( WC_PAGESCROLLER, NULL, WS_VISIBLE | WS_CHILD | PGS_HORZ, - 0, 0, 200, 32, hDialog, (HMENU) IDB_PAGER1, GetModuleHandle( TEXT("GitSCM.dll" ) ), NULL ); + 0, 0, 200, 32, _hSelf, (HMENU) IDB_PAGER1, module_name, NULL ); // Create Toolbar. The parent window is the Pager. hWndToolbar1 = CreateWindowEx( 0, TOOLBARCLASSNAME, NULL, WS_TOOLBARSTYLE, - 0, 0, 200, 32, hWndPager1, ( HMENU ) IDB_TOOLBAR1, GetModuleHandle( TEXT("GitSCM.dll" ) ), NULL ); + 0, 0, 200, 32, hWndPager1, ( HMENU ) IDB_TOOLBAR1, module_name, NULL ); SendMessage( hWndToolbar1, TB_BUTTONSTRUCTSIZE, sizeof( TBBUTTON ), 0 ); SendMessage( hWndToolbar1, TB_SETEXTENDEDSTYLE, 0, ( LPARAM ) TBSTYLE_EX_HIDECLIPPEDBUTTONS | TBSTYLE_EX_DRAWDDARROWS ); @@ -433,15 +444,15 @@ void initDialog() // Notify the pager that it contains the toolbar SendMessage(hWndPager1, PGM_SETCHILD, 0, (LPARAM) hWndToolbar1); - imageToolbar( GetModuleHandle( TEXT("GitSCM.dll" ) ), hWndToolbar1, IDB_TOOLBAR1, numButtons1 ); + imageToolbar( module_name, hWndToolbar1, IDB_TOOLBAR1, numButtons1 ); // TOOLBAR2 // Create pager. The parent window is the parent. hWndPager2 = CreateWindow( WC_PAGESCROLLER, NULL, WS_VISIBLE | WS_CHILD | PGS_HORZ, - 0, 32, 200, 32, hDialog, (HMENU) IDB_PAGER2, GetModuleHandle( TEXT("GitSCM.dll" ) ), NULL ); + 0, 32, 200, 32, _hSelf, (HMENU) IDB_PAGER2, module_name, NULL ); // Create Toolbar. The parent window is the Pager. hWndToolbar2 = CreateWindowEx( 0, TOOLBARCLASSNAME, NULL, WS_TOOLBARSTYLE, - 0, 0, 200, 32, hWndPager2, ( HMENU ) IDB_TOOLBAR2, GetModuleHandle( TEXT("GitSCM.dll" ) ), NULL ); + 0, 0, 200, 32, hWndPager2, ( HMENU ) IDB_TOOLBAR2, module_name, NULL ); SendMessage( hWndToolbar2, TB_BUTTONSTRUCTSIZE, sizeof( TBBUTTON ), 0 ); SendMessage( hWndToolbar1, TB_SETEXTENDEDSTYLE, 0, ( LPARAM ) TBSTYLE_EX_HIDECLIPPEDBUTTONS | TBSTYLE_EX_DRAWDDARROWS ); @@ -450,17 +461,17 @@ void initDialog() // in CreateWindowEx() SendMessage(hWndPager2, PGM_SETCHILD, 0, (LPARAM) hWndToolbar2); - imageToolbar( GetModuleHandle( TEXT("GitSCM.dll" ) ), hWndToolbar2, IDB_TOOLBAR2, numButtons2 ); + imageToolbar( module_name, hWndToolbar2, IDB_TOOLBAR2, numButtons2 ); // Edit and List controls - if ( g_useNppColors ) SetNppColors(); else SetSysColors(); ChangeColors(); + refreshDialog(); - HWND hList = GetDlgItem( hDialog, IDC_LSV1 ); + HWND hList = GetDlgItem( _hSelf, IDC_LSV1 ); // https://www.codeproject.com/Articles/2890/Using-ListView-control-under-Win32-API SendMessage( hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ( LVS_EX_FULLROWSELECT /*| LVS_EX_CHECKBOXES*/ ) ); @@ -490,7 +501,7 @@ void initDialog() updateList(); } -void gotoFile() +void DemoDlg::gotoFile() { std::vector files = getListSelected(); if ( files.size() == 0 ) @@ -506,7 +517,7 @@ void gotoFile() std::wstring err; err += files[i]; err += TEXT( "\n\nIs a directory. Continue to open all files?" ); - int ret = ( int )::MessageBox( hDialog, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); + int ret = ( int )::MessageBox( _hSelf, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); if ( ret == IDYES ) SendMessage( nppData._nppHandle, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); } @@ -517,10 +528,6 @@ void gotoFile() INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lParam ) { - - ::SendMessage( GetDlgItem( hDialog, IDC_CHK_TORTOISE ), BM_SETCHECK, - ( LPARAM )( g_useTortoise ? 1 : 0 ), 0 ); - switch ( message ) { case WM_COMMAND : @@ -547,12 +554,6 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara return TRUE; } - case IDC_CHK_TORTOISE : - { - doTortoise(); - return TRUE; - } - case IDC_BTN_DIFF : { std::vector files = getListSelected(); @@ -649,6 +650,45 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara return TRUE; } + case IDC_CHK_TORTOISE : + { + doTortoise(); + return TRUE; + } + + case IDC_CHK_NPPCOLOR: + { + int check = ( int )::SendMessage( GetDlgItem( _hSelf, IDC_CHK_NPPCOLOR ), + BM_GETCHECK, 0, 0 ); + + if ( check & BST_CHECKED ) + { + SetNppColors(); + g_useNppColors = true; + } + else + { + SetSysColors(); + g_useNppColors = false; + } + + ChangeColors(); + refreshDialog(); + return TRUE; + } + + case IDC_CHK_PANELTOGGLE: + { + int check = ( int )::SendMessage( GetDlgItem( _hSelf, IDC_CHK_PANELTOGGLE ), + BM_GETCHECK, 0, 0 ); + + if ( check & BST_CHECKED ) + g_RaisePanel = true; + else + g_RaisePanel = false; + return TRUE; + } + case MAKELONG( IDC_EDT_BRANCH, EN_SETFOCUS ) : case MAKELONG( IDC_EDT_DIR, EN_SETFOCUS ) : { @@ -660,7 +700,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara case IDOK : { HWND hWndCtrl = GetFocus(); - if ( hWndCtrl == GetDlgItem( hDialog, IDC_LSV1 ) ) + if ( hWndCtrl == GetDlgItem( _hSelf, IDC_LSV1 ) ) gotoFile(); return TRUE; } @@ -676,7 +716,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara case WM_TIMER: { - KillTimer( hDialog, TIMER_ID ); + KillTimer( _hSelf, TIMER_ID ); updateList(); return FALSE; } @@ -689,7 +729,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara { case NM_DBLCLK: { - if ( nmhdr->hwndFrom == GetDlgItem( hDialog, IDC_LSV1 ) ) + if ( nmhdr->hwndFrom == GetDlgItem( _hSelf, IDC_LSV1 ) ) { POINT pt = {0}; LVHITTESTINFO ht = {0}; @@ -699,9 +739,9 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara pt.y = GET_Y_LPARAM(dwpos); ht.pt = pt; - ::ScreenToClient( GetDlgItem( hDialog, IDC_LSV1 ), &ht.pt); + ::ScreenToClient( GetDlgItem( _hSelf, IDC_LSV1 ), &ht.pt); - ListView_SubItemHitTest( GetDlgItem( hDialog, IDC_LSV1 ), &ht); + ListView_SubItemHitTest( GetDlgItem( _hSelf, IDC_LSV1 ), &ht); if ( ht.iItem == -1 ) break; @@ -731,7 +771,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara std::wstring err; err += files[i]; err += TEXT( "\n\nIs a directory. Continue to open all files?" ); - int ret = ( int )::MessageBox( hDialog, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); + int ret = ( int )::MessageBox( _hSelf, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); if ( ret == IDYES ) SendMessage( nppData._nppHandle, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); } @@ -745,7 +785,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara case NM_RCLICK: { - if ( nmhdr->hwndFrom == GetDlgItem( hDialog, IDC_LSV1 ) ) + if ( nmhdr->hwndFrom == GetDlgItem( _hSelf, IDC_LSV1 ) ) { POINT pt = {0}; LVHITTESTINFO ht = {0}; @@ -779,7 +819,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara case LVN_KEYDOWN: { LPNMLVKEYDOWN pnkd = (LPNMLVKEYDOWN) lParam; - if ( ( nmhdr->hwndFrom == GetDlgItem( hDialog, IDC_LSV1 ) ) && + if ( ( nmhdr->hwndFrom == GetDlgItem( _hSelf, IDC_LSV1 ) ) && ( ( pnkd->wVKey == VK_RETURN ) || ( pnkd->wVKey == VK_SPACE ) ) ) @@ -798,20 +838,20 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara RECT rc = {0}; getClientRect( rc ); - ::SetWindowPos( GetDlgItem( hDialog, IDC_EDT_BRANCH ), NULL, - rc.left + 15, rc.top + 110, rc.right - 90, 20, + ::SetWindowPos( GetDlgItem( _hSelf, IDC_EDT_BRANCH ), NULL, + rc.left + 15, rc.top + 120, rc.right - 90, 20, SWP_NOZORDER | SWP_SHOWWINDOW ); - ::SetWindowPos( GetDlgItem( hDialog, IDB_BTN_BRANCH ), NULL, - rc.right - 70, rc.top + 110, 60, 20, + ::SetWindowPos( GetDlgItem( _hSelf, IDB_BTN_BRANCH ), NULL, + rc.right - 70, rc.top + 120, 60, 20, SWP_NOZORDER | SWP_SHOWWINDOW ); - ::SetWindowPos( GetDlgItem( hDialog, IDC_EDT_DIR ), NULL, - rc.left + 15, rc.top + 140, rc.right - 25, 20, + ::SetWindowPos( GetDlgItem( _hSelf, IDC_EDT_DIR ), NULL, + rc.left + 15, rc.top + 150, rc.right - 25, 20, SWP_NOZORDER | SWP_SHOWWINDOW ); - ::SetWindowPos( GetDlgItem( hDialog, IDC_LSV1 ), NULL, - rc.left + 15, rc.top + 170, rc.right - 25, rc.bottom - 180, + ::SetWindowPos( GetDlgItem( _hSelf, IDC_LSV1 ), NULL, + rc.left + 15, rc.top + 180, rc.right - 25, rc.bottom - 190, SWP_NOZORDER | SWP_SHOWWINDOW ); - SendMessage( GetDlgItem( hDialog, IDC_LSV1 ), LVM_SETCOLUMNWIDTH, COL_FILE, LVSCW_AUTOSIZE_USEHEADER ); + SendMessage( GetDlgItem( _hSelf, IDC_LSV1 ), LVM_SETCOLUMNWIDTH, COL_FILE, LVSCW_AUTOSIZE_USEHEADER ); // redraw(); return FALSE; @@ -819,7 +859,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara case WM_PAINT: { - ::RedrawWindow( hDialog, NULL, NULL, TRUE); + ::RedrawWindow( _hSelf, NULL, NULL, TRUE); return FALSE; } @@ -833,5 +873,5 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara return DockingDlgInterface::run_dlgProc( message, wParam, lParam ); } - return FALSE; + // return FALSE; } diff --git a/DockingFeature/GitPanelDlg.h b/DockingFeature/GitPanelDlg.h index e85f582..9bf842e 100644 --- a/DockingFeature/GitPanelDlg.h +++ b/DockingFeature/GitPanelDlg.h @@ -27,34 +27,41 @@ typedef std::basic_string generic_string; -std::vector getListSelected(); -bool updateLoc( std::wstring & ); -void updateListWithDelay(); -void updateList(); -void clearList(); -bool execCommand( std::wstring, std::wstring & ); -void SetNppColors(); -void SetSysColors(); -void ChangeColors(); - class DemoDlg : public DockingDlgInterface { public : DemoDlg() : DockingDlgInterface( IDD_PLUGINGITPANEL ) {}; - virtual void display( bool toShow = true ) const - { - DockingDlgInterface::display( toShow ); + virtual void display(bool toShow = true) const { + DockingDlgInterface::display(toShow); }; - - void setParent( HWND parent2set ) - { + + void setParent(HWND parent2set){ _hParent = parent2set; }; + bool updateLoc( std::wstring &loc ); + void updateListWithDelay(); + void updateList(); + protected : virtual INT_PTR CALLBACK run_dlgProc( UINT message, WPARAM wParam, LPARAM lParam ); + + private : + void doRefreshTimer(); + std::vector split( std::wstring stringToBeSplitted, std::wstring delimeter ); + void convertProcessText2Wide( std::wstring outputW, std::wstring &wide ); + void clearList(); + void setListColumns( unsigned int uItem, std::wstring strI, std::wstring strW, std::wstring strFile ); + std::vector getListSelected(); + bool execCommand( std::wstring, std::wstring &wide ); + void SetNppColors(); + void SetSysColors(); + void ChangeColors(); + void refreshDialog(); + void initDialog(); + void gotoFile(); }; #endif //GITPANEL_DLG_H diff --git a/DockingFeature/SettingsDlg.cpp b/DockingFeature/SettingsDlg.cpp index ceb5408..91eb152 100644 --- a/DockingFeature/SettingsDlg.cpp +++ b/DockingFeature/SettingsDlg.cpp @@ -85,22 +85,6 @@ INT_PTR CALLBACK SettingsDlg( HWND hWndDlg, UINT msg, WPARAM wParam, PostMessage(hWndDlg, WM_CLOSE, 0, 0); return TRUE; - case IDC_CHK_NPPCOLOR : - { - if ( SendMessage( GetDlgItem( hWndDlg, IDC_CHK_NPPCOLOR ), BM_GETCHECK, 0, 0 ) == BST_CHECKED ) - { - SetSysColors(); - g_useNppColors = false; - } - else - { - SetNppColors(); - g_useNppColors = true; - } - ChangeColors(); - return TRUE; - } - case IDC_BTN_GITPATH : { // From: diff --git a/DockingFeature/StaticDialog.cpp b/DockingFeature/StaticDialog.cpp index 837b303..e117ac8 100644 --- a/DockingFeature/StaticDialog.cpp +++ b/DockingFeature/StaticDialog.cpp @@ -1,167 +1,313 @@ -//this file is part of notepad++ -//Copyright (C)2003 Don HO ( donho@altern.org ) -// -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU General Public License -//as published by the Free Software Foundation; either -//version 2 of the License, or (at your option) any later version. +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. // -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . #include +#include +#include #include "StaticDialog.h" -#include "resource.h" -extern bool g_useTortoise; -HWND hDialog; +StaticDialog::~StaticDialog() +{ + if (isCreated()) + { + // Prevent run_dlgProc from doing anything, since its virtual + ::SetWindowLongPtr(_hSelf, GWLP_USERDATA, NULL); + destroy(); + } +} + +void StaticDialog::destroy() +{ + ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, reinterpret_cast(_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; + + ::SetWindowPos(_hSelf, HWND_TOP, x, y, _rc.right - _rc.left, _rc.bottom - _rc.top, SWP_SHOWWINDOW); +} + +void StaticDialog::display(bool toShow, bool enhancedPositioningCheckWhenShowing) const +{ + if (toShow) + { + if (enhancedPositioningCheckWhenShowing) + { + RECT testPositionRc, candidateRc; + + getWindowRect(testPositionRc); + + candidateRc = getViewablePositionRect(testPositionRc); + + if ((testPositionRc.left != candidateRc.left) || (testPositionRc.top != candidateRc.top)) + { + ::MoveWindow(_hSelf, candidateRc.left, candidateRc.top, + candidateRc.right - candidateRc.left, candidateRc.bottom - candidateRc.top, TRUE); + } + } + else + { + // 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 }; + RECT rc = { 0 }; + ::SystemParametersInfo(SPI_GETWORKAREA, 0, &workAreaRect, 0); + ::GetWindowRect(_hSelf, &rc); + 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) + newLeft = workAreaRect.left; + if (newTop > ::GetSystemMetrics(SM_CYVIRTUALSCREEN) - margin) + newTop -= rc.bottom - workAreaRect.bottom; + if (newTop + (rc.bottom - rc.top) < ::GetSystemMetrics(SM_YVIRTUALSCREEN) + margin) + newTop = workAreaRect.top; + + if ((newLeft != rc.left) || (newTop != rc.top)) // then the virtual screen size has shrunk + // Remember that MoveWindow wants width/height. + ::MoveWindow(_hSelf, newLeft, newTop, rc.right - rc.left, rc.bottom - rc.top, TRUE); + } + } + + Window::display(toShow); +} + +RECT StaticDialog::getViewablePositionRect(RECT testPositionRc) const +{ + HMONITOR hMon = ::MonitorFromRect(&testPositionRc, MONITOR_DEFAULTTONULL); + + MONITORINFO mi; + mi.cbSize = sizeof(MONITORINFO); + + bool rectPosViewableWithoutChange = false; + + if (hMon != NULL) + { + // rect would be at least partially visible on a monitor + + ::GetMonitorInfo(hMon, &mi); + + int margin = ::GetSystemMetrics(SM_CYBORDER) + ::GetSystemMetrics(SM_CYSIZEFRAME) + ::GetSystemMetrics(SM_CYCAPTION); + + // require that the title bar of the window be in a viewable place so the user can see it to grab it with the mouse + if ((testPositionRc.top >= mi.rcWork.top) && (testPositionRc.top + margin <= mi.rcWork.bottom) && + // require that some reasonable amount of width of the title bar be in the viewable area: + (testPositionRc.right - (margin * 2) > mi.rcWork.left) && (testPositionRc.left + (margin * 2) < mi.rcWork.right)) + { + rectPosViewableWithoutChange = true; + } + } + else + { + // rect would not have been visible on a monitor; get info about the nearest monitor to it + + hMon = ::MonitorFromRect(&testPositionRc, MONITOR_DEFAULTTONEAREST); + + ::GetMonitorInfo(hMon, &mi); + } + + RECT returnRc = testPositionRc; + + if (!rectPosViewableWithoutChange) + { + // reposition rect so that it would be viewable on current/nearest monitor, centering if reasonable + + LONG testRectWidth = testPositionRc.right - testPositionRc.left; + LONG testRectHeight = testPositionRc.bottom - testPositionRc.top; + LONG monWidth = mi.rcWork.right - mi.rcWork.left; + LONG monHeight = mi.rcWork.bottom - mi.rcWork.top; + + returnRc.left = mi.rcWork.left; + if (testRectWidth < monWidth) returnRc.left += (monWidth - testRectWidth) / 2; + returnRc.right = returnRc.left + testRectWidth; - int x = center.x - (_rc.right - _rc.left)/2; - int y = center.y - (_rc.bottom - _rc.top)/2; + returnRc.top = mi.rcWork.top; + if (testRectHeight < monHeight) returnRc.top += (monHeight - testRectHeight) / 2; + returnRc.bottom = returnRc.top + testRectHeight; + } - ::SetWindowPos(_hSelf, HWND_TOP, x, y, _rc.right - _rc.left, _rc.bottom - _rc.top, SWP_SHOWWINDOW); + return returnRc; } HGLOBAL StaticDialog::makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate) { - // Get Dlg Template resource - HRSRC hDialogRC = ::FindResource(_hInst, MAKEINTRESOURCE(dialogID), RT_DIALOG); - if (!hDialogRC) - return NULL; + // Get Dlg Template resource + HRSRC hDialogRC = ::FindResource(_hInst, MAKEINTRESOURCE(dialogID), RT_DIALOG); + if (!hDialogRC) + return NULL; - HGLOBAL hDlgTemplate = ::LoadResource(_hInst, hDialogRC); - if (!hDlgTemplate) - return NULL; + HGLOBAL hDlgTemplate = ::LoadResource(_hInst, hDialogRC); + if (!hDlgTemplate) + return NULL; - DLGTEMPLATE *pDlgTemplate = reinterpret_cast(::LockResource(hDlgTemplate)); - if (!pDlgTemplate) - return NULL; + DLGTEMPLATE *pDlgTemplate = static_cast(::LockResource(hDlgTemplate)); + if (!pDlgTemplate) + return NULL; - // Duplicate Dlg Template resource - unsigned long sizeDlg = ::SizeofResource(_hInst, hDialogRC); - HGLOBAL hMyDlgTemplate = ::GlobalAlloc(GPTR, sizeDlg); - *ppMyDlgTemplate = reinterpret_cast(::GlobalLock(hMyDlgTemplate)); + // Duplicate Dlg Template resource + unsigned long sizeDlg = ::SizeofResource(_hInst, hDialogRC); + HGLOBAL hMyDlgTemplate = ::GlobalAlloc(GPTR, sizeDlg); + *ppMyDlgTemplate = static_cast(::GlobalLock(hMyDlgTemplate)); - ::memcpy(*ppMyDlgTemplate, pDlgTemplate, sizeDlg); + ::memcpy(*ppMyDlgTemplate, pDlgTemplate, sizeDlg); - DLGTEMPLATEEX *pMyDlgTemplateEx = reinterpret_cast(*ppMyDlgTemplate); - if (pMyDlgTemplateEx->signature == 0xFFFF) - pMyDlgTemplateEx->exStyle |= WS_EX_LAYOUTRTL; - else - (*ppMyDlgTemplate)->dwExtendedStyle |= WS_EX_LAYOUTRTL; + DLGTEMPLATEEX *pMyDlgTemplateEx = reinterpret_cast(*ppMyDlgTemplate); + if (pMyDlgTemplateEx->signature == 0xFFFF) + pMyDlgTemplateEx->exStyle |= WS_EX_LAYOUTRTL; + else + (*ppMyDlgTemplate)->dwExtendedStyle |= WS_EX_LAYOUTRTL; - return hMyDlgTemplate; + return hMyDlgTemplate; } -void StaticDialog::create(int dialogID, bool isRTL) +std::wstring GetLastErrorAsString(DWORD errorCode) { - if (isRTL) - { - DLGTEMPLATE *pMyDlgTemplate = NULL; - HGLOBAL hMyDlgTemplate = makeRTLResource(dialogID, &pMyDlgTemplate); - _hSelf = ::CreateDialogIndirectParam(_hInst, pMyDlgTemplate, _hParent, dlgProc, reinterpret_cast(this)); - ::GlobalFree(hMyDlgTemplate); - } - else - _hSelf = ::CreateDialogParam(_hInst, MAKEINTRESOURCE(dialogID), _hParent, dlgProc, reinterpret_cast(this)); - - if (!_hSelf) - { - DWORD err = ::GetLastError(); - char errMsg[256]; - sprintf(errMsg, "CreateDialogParam() return NULL.\rGetLastError() == %lu\rHandle = %p\rResourceID = %i", err,(void*)GetModuleHandle(TEXT("GitSCM.dll")),dialogID); - ::MessageBoxA(NULL, errMsg, "In StaticDialog::create()", MB_OK); - return; - } - - // if the destination of message NPPM_MODELESSDIALOG is not its parent, then it's the grand-parent - ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGADD, reinterpret_cast(_hSelf)); + std::wstring errorMsg(_T("")); + // Get the error message, if any. + // If both error codes (passed error n GetLastError) are 0, then return empty + if (errorCode == 0) + errorCode = GetLastError(); + if (errorCode == 0) + return errorMsg; //No error message has been recorded + + LPWSTR messageBuffer = nullptr; + FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&messageBuffer, 0, nullptr); + + errorMsg += messageBuffer; + + //Free the buffer. + LocalFree(messageBuffer); + + return errorMsg; } -BOOL StaticDialog::isWindowVisible() +void StaticDialog::create(int dialogID, bool isRTL, bool msgDestParent) { - return ::IsWindowVisible(_hSelf); + if (isRTL) + { + DLGTEMPLATE *pMyDlgTemplate = NULL; + HGLOBAL hMyDlgTemplate = makeRTLResource(dialogID, &pMyDlgTemplate); + _hSelf = ::CreateDialogIndirectParam(_hInst, pMyDlgTemplate, _hParent, dlgProc, reinterpret_cast(this)); + ::GlobalFree(hMyDlgTemplate); + } + else + _hSelf = ::CreateDialogParam(_hInst, MAKEINTRESOURCE(dialogID), _hParent, dlgProc, reinterpret_cast(this)); + + if (!_hSelf) + { + std::wstring errMsg = TEXT("CreateDialogParam() return NULL.\rGetLastError(): "); + errMsg += GetLastErrorAsString(0); + ::MessageBox(NULL, errMsg.c_str(), TEXT("In StaticDialog::create()"), MB_OK); + return; + } + + // if the destination of message NPPM_MODELESSDIALOG is not its parent, then it's the grand-parent + ::SendMessage(msgDestParent ? _hParent : (::GetParent(_hParent)), NPPM_MODELESSDIALOG, MODELESSDIALOGADD, reinterpret_cast(_hSelf)); } INT_PTR CALLBACK StaticDialog::dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { - hDialog = hwnd; - switch (message) - { - case WM_INITDIALOG: - { - StaticDialog *pStaticDlg = reinterpret_cast(lParam); - pStaticDlg->_hSelf = hwnd; - ::SetWindowLongPtr(hwnd, GWLP_USERDATA, static_cast(lParam)); - ::GetWindowRect(hwnd, &(pStaticDlg->_rc)); - pStaticDlg->run_dlgProc(message, wParam, lParam); - - ::SendMessage( GetDlgItem( hwnd, IDC_CHK_TORTOISE ), BM_SETCHECK, ( LPARAM )( g_useTortoise ? 1 : 0 ), 0 ); - - return TRUE; - } - - default: - { - StaticDialog *pStaticDlg = reinterpret_cast(::GetWindowLongPtr(hwnd, GWLP_USERDATA)); - if (!pStaticDlg) - return FALSE; - return pStaticDlg->run_dlgProc(message, wParam, lParam); - } - } + switch (message) + { + case WM_INITDIALOG: + { + StaticDialog *pStaticDlg = reinterpret_cast(lParam); + pStaticDlg->_hSelf = hwnd; + ::SetWindowLongPtr(hwnd, GWLP_USERDATA, static_cast(lParam)); + ::GetWindowRect(hwnd, &(pStaticDlg->_rc)); + pStaticDlg->run_dlgProc(message, wParam, lParam); + + return TRUE; + } + + default: + { + StaticDialog *pStaticDlg = reinterpret_cast(::GetWindowLongPtr(hwnd, GWLP_USERDATA)); + if (!pStaticDlg) + return FALSE; + return pStaticDlg->run_dlgProc(message, wParam, lParam); + } + } } void StaticDialog::alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point) { - RECT rc, rc2; - ::GetWindowRect(handle, &rc); - - point.x = rc.left; - point.y = rc.top; - - 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; - } - } - - ::ScreenToClient(_hSelf, &point); -} + RECT rc, rc2; + ::GetWindowRect(handle, &rc); + point.x = rc.left; + point.y = rc.top; + + 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; + } + } + + ::ScreenToClient(_hSelf, &point); +} diff --git a/DockingFeature/StaticDialog.h b/DockingFeature/StaticDialog.h index 53d5947..9d83ac6 100644 --- a/DockingFeature/StaticDialog.h +++ b/DockingFeature/StaticDialog.h @@ -1,66 +1,73 @@ -//this file is part of notepad++ -//Copyright (C)2003 Don HO ( donho@altern.org ) -// -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU General Public License -//as published by the Free Software Foundation; either -//version 2 of the License, or (at your option) any later version. +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. // -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . #pragma once - -#include "Window.h" #include "..\Notepad_plus_msgs.h" +#include "Window.h" + +typedef HRESULT (WINAPI * ETDTProc) (HWND, DWORD); 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)NULL); //Prevent run_dlgProc from doing anything, since its virtual - destroy(); - } - }; - virtual void create(int dialogID, bool isRTL = false); + virtual ~StaticDialog(); - BOOL isWindowVisible(); + virtual void create(int dialogID, bool isRTL = false, bool msgDestParent = true); virtual bool isCreated() const { return (_hSelf != NULL); - }; + } void goToCenter(); - void destroy() { - ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_hSelf); - ::DestroyWindow(_hSelf); - }; -protected : + void display(bool toShow = true, bool enhancedPositioningCheckWhenShowing = false) const; + + RECT getViewablePositionRect(RECT testRc) const; + + POINT getTopPoint(HWND hwnd, bool isLeft = true) const; + + bool isCheckedOrNot(int checkControlID) const + { + return (BST_CHECKED == ::SendMessage(::GetDlgItem(_hSelf, checkControlID), BM_GETCHECK, 0, 0)); + } + + void setChecked(int checkControlID, bool checkOrNot = true) const + { + ::SendDlgItemMessage(_hSelf, checkControlID, BM_SETCHECK, checkOrNot ? BST_CHECKED : BST_UNCHECKED, 0); + } + + virtual void destroy() override; + +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; @@ -68,4 +75,3 @@ protected : void alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point); HGLOBAL makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate); }; - diff --git a/DockingFeature/Window.h b/DockingFeature/Window.h index e3dd14e..57a45c7 100644 --- a/DockingFeature/Window.h +++ b/DockingFeature/Window.h @@ -1,30 +1,33 @@ -//this file is part of notepad++ -//Copyright (C)2003 Don HO -// -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU General Public License -//as published by the Free Software Foundation; either -//version 2 of the License, or (at your option) any later version. +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. // -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . -#ifndef WINDOW_CONTROL_H -#define WINDOW_CONTROL_H +#pragma once #include class Window { public: - Window(): _hInst(NULL), _hParent(NULL), _hSelf(NULL){}; - virtual ~Window() {}; + //! \name Constructors & Destructor + //@{ + Window() = default; + Window(const Window&) = delete; + virtual ~Window() = default; + //@} + virtual void init(HINSTANCE hInst, HWND parent) { @@ -34,81 +37,90 @@ class Window virtual void destroy() = 0; - virtual void display(bool toShow = true) const { - ::ShowWindow(_hSelf, toShow?SW_SHOW:SW_HIDE); - }; - + virtual void display(bool toShow = true) const + { + ::ShowWindow(_hSelf, toShow ? SW_SHOW : SW_HIDE); + } + + virtual void reSizeTo(RECT & rc) // should NEVER be const !!! - { + { ::MoveWindow(_hSelf, rc.left, rc.top, rc.right, rc.bottom, TRUE); redraw(); - }; + } + - virtual void reSizeToWH(RECT & rc) // should NEVER be const !!! - { + virtual void reSizeToWH(RECT& rc) // should NEVER be const !!! + { ::MoveWindow(_hSelf, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE); redraw(); - }; + } + - virtual void redraw(bool forceUpdate = false) const { - ::InvalidateRect(_hSelf, NULL, TRUE); + virtual void redraw(bool forceUpdate = false) const + { + ::InvalidateRect(_hSelf, nullptr, TRUE); if (forceUpdate) ::UpdateWindow(_hSelf); - }; - - virtual void getClientRect(RECT & rc) const { + } + + + virtual void getClientRect(RECT & rc) const + { ::GetClientRect(_hSelf, &rc); - }; + } - virtual void getWindowRect(RECT & rc) const { + virtual void getWindowRect(RECT & rc) const + { ::GetWindowRect(_hSelf, &rc); - }; + } - virtual int getWidth() const { + virtual int getWidth() const + { RECT rc; ::GetClientRect(_hSelf, &rc); return (rc.right - rc.left); - }; + } - virtual int getHeight() const { + virtual int getHeight() const + { RECT rc; ::GetClientRect(_hSelf, &rc); if (::IsWindowVisible(_hSelf) == TRUE) return (rc.bottom - rc.top); return 0; - }; + } - virtual bool isVisible() const { + virtual bool isVisible() const + { return (::IsWindowVisible(_hSelf)?true:false); - }; + } - HWND getHSelf() const { - //assert(_hSelf); + HWND getHSelf() const + { return _hSelf; - }; + } HWND getHParent() const { return _hParent; - }; + } void getFocus() const { ::SetFocus(_hSelf); - }; - - HINSTANCE getHinst() const { - if (!_hInst) - { - ::MessageBox(NULL, TEXT("_hInst == NULL"), TEXT("class Window"), MB_OK); - throw int(1999); - } + } + + HINSTANCE getHinst() const + { + //assert(_hInst != 0); return _hInst; - }; -protected: - HINSTANCE _hInst; - HWND _hParent; - HWND _hSelf; -}; + } -#endif //WINDOW_CONTROL_H + Window& operator = (const Window&) = delete; + +protected: + HINSTANCE _hInst = NULL; + HWND _hParent = NULL; + HWND _hSelf = NULL; +}; \ No newline at end of file diff --git a/DockingFeature/dockingResource.h b/DockingFeature/dockingResource.h index 3d6831b..cbb279b 100644 --- a/DockingFeature/dockingResource.h +++ b/DockingFeature/dockingResource.h @@ -1,22 +1,23 @@ -//this file is part of docking functionality for Notepad++ -//Copyright (C)2006 Jens Lorenz -// -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU General Public License -//as published by the Free Software Foundation; either -//version 2 of the License, or (at your option) any later version. +// This file is part of Notepad++ project +// Copyright (C)2006 Jens Lorenz + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. // -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + -#ifndef DOCKING_RESOURCE_H -#define DOCKING_RESOURCE_H +#pragma once + +#define DM_NOFOCUSWHILECLICKINGCAPTION TEXT("NOFOCUSWHILECLICKINGCAPTION") #define IDD_PLUGIN_DLG 103 #define IDC_EDIT1 1000 @@ -57,7 +58,10 @@ //nmhdr.hwndFrom = hwndNpp; //nmhdr.idFrom = ctrlIdNpp; - - -#endif //DOCKING_RESOURCE_H + #define DMN_SWITCHIN (DMN_FIRST + 4) + #define DMN_SWITCHOFF (DMN_FIRST + 5) + #define DMN_FLOATDROPPED (DMN_FIRST + 6) + //nmhdr.code = DWORD(DMN_XXX, 0); + //nmhdr.hwndFrom = DockingCont::_hself; + //nmhdr.idFrom = 0; diff --git a/DockingFeature/gitPanel.rc b/DockingFeature/gitPanel.rc index 8cf1d5e..458653f 100644 --- a/DockingFeature/gitPanel.rc +++ b/DockingFeature/gitPanel.rc @@ -7,12 +7,16 @@ FONT 8,"MS Sans Serif",0,0,0 STYLE WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU|DS_SHELLFONT EXSTYLE WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW BEGIN - CONTROL "",IDC_EDT_BRANCH,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_READONLY|ES_AUTOHSCROLL,10,170,130,15,WS_EX_CLIENTEDGE - CONTROL "Branch",IDB_BTN_BRANCH,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP,140,170,40,15 - CONTROL "",IDC_EDT_DIR,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_READONLY|ES_AUTOHSCROLL,10,190,170,15,WS_EX_CLIENTEDGE - CONTROL "",IDC_LSV1,"SysListView32",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|LVS_SHOWSELALWAYS|LVS_REPORT,10,210,170,110,WS_EX_CLIENTEDGE - CONTROL "Use TortoiseGit",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP,24,48,55,9 - CONTROL "",IDC_CHK_TORTOISE,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX,10,48,10,9 + CONTROL "",IDC_EDT_BRANCH,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_READONLY|ES_AUTOHSCROLL,10,180,130,15,WS_EX_CLIENTEDGE + CONTROL "Branch",IDB_BTN_BRANCH,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP,140,180,40,15 + CONTROL "",IDC_EDT_DIR,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_READONLY|ES_AUTOHSCROLL,10,200,170,15,WS_EX_CLIENTEDGE + CONTROL "",IDC_LSV1,"SysListView32",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|LVS_SHOWSELALWAYS|LVS_REPORT,10,220,170,100,WS_EX_CLIENTEDGE + CONTROL "Use TortoiseGit",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP,24,43,55,9 + CONTROL "",IDC_CHK_TORTOISE,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX,10,43,10,9 + CONTROL "Use N++ Colors",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP,104,43,55,9 + CONTROL "",IDC_CHK_NPPCOLOR,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX,90,43,10,9 + CONTROL "Panel Raise (or Toggle)",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP,104,58,80,8 + CONTROL "",IDC_CHK_PANELTOGGLE,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX,90,58,10,9 END IDD_SETTINGS DIALOGEX 26,41,291,150 @@ -27,8 +31,6 @@ BEGIN CONTROL "",IDC_EDT_GITPATH,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP,70,54,200,15,WS_EX_CLIENTEDGE CONTROL "Git Prompt",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE,9,90,39,9 CONTROL "",IDC_EDT_GITPROMPT,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP,70,87,200,15,WS_EX_CLIENTEDGE - CONTROL "Use N++ Colors",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE|WS_GROUP,9,111,55,9 - CONTROL "",IDC_CHK_NPPCOLOR,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX,70,111,10,9 CONTROL "Version",IDC_STATIC,"Static",WS_CHILDWINDOW|WS_VISIBLE|WS_DISABLED|WS_GROUP,10,126,30,11 CONTROL "",IDC_STC_VER,"SysLink",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|LWS_TRANSPARENT,40,126,40,11 END diff --git a/DockingFeature/resource.h b/DockingFeature/resource.h index 9d50aba..5b7ee33 100644 --- a/DockingFeature/resource.h +++ b/DockingFeature/resource.h @@ -48,11 +48,14 @@ #define IDC_BTN_LOG (IDB_TOOLBAR1 + 12) #define IDC_BTN_BLAME (IDB_TOOLBAR1 + 13) #define IDC_BTN_SETTINGS (IDB_TOOLBAR1 + 14) -#define IDC_CHK_TORTOISE (IDD_PLUGINGITPANEL + 11) -#define IDC_EDT_DIR (IDD_PLUGINGITPANEL + 12) -#define IDC_EDT_BRANCH (IDD_PLUGINGITPANEL + 13) -#define IDB_BTN_BRANCH (IDD_PLUGINGITPANEL + 14) -#define IDC_LSV1 (IDD_PLUGINGITPANEL + 15) + +#define IDC_CHK_TORTOISE (IDD_PLUGINGITPANEL + 11) +#define IDC_CHK_NPPCOLOR (IDD_PLUGINGITPANEL + 12) +#define IDC_CHK_PANELTOGGLE (IDD_PLUGINGITPANEL + 13) +#define IDC_EDT_DIR (IDD_PLUGINGITPANEL + 14) +#define IDC_EDT_BRANCH (IDD_PLUGINGITPANEL + 15) +#define IDB_BTN_BRANCH (IDD_PLUGINGITPANEL + 16) +#define IDC_LSV1 (IDD_PLUGINGITPANEL + 17) // Settings #define IDD_SETTINGS 2600 @@ -62,7 +65,6 @@ #define IDC_BTN_GITPATH (IDD_SETTINGS + 3) #define IDC_EDT_GITPATH (IDD_SETTINGS + 4) #define IDC_EDT_GITPROMPT (IDD_SETTINGS + 5) -#define IDC_CHK_NPPCOLOR (IDD_SETTINGS + 6) #define IDC_STC_VER (IDD_SETTINGS + 7) diff --git a/GitSCM.cpp b/GitSCM.cpp index c1646d5..2bcf86d 100644 --- a/GitSCM.cpp +++ b/GitSCM.cpp @@ -73,7 +73,7 @@ extern "C" __declspec( dllexport ) void beNotified( SCNotification *notifyCode ) { case NPPN_TBMODIFICATION: g_TBGit.hToolbarBmp = (HBITMAP)::LoadImage((HINSTANCE)g_hInst, MAKEINTRESOURCE(IDB_TB_GIT), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE); - ::SendMessage(nppData._nppHandle, NPPM_ADDTOOLBARICON, (WPARAM)funcItem[DOCKABLE_INDEX]._cmdID, (LPARAM)&g_TBGit); + ::SendMessage(nppData._nppHandle, NPPM_ADDTOOLBARICON_DEPRECATED, (WPARAM)funcItem[DOCKABLE_INDEX]._cmdID, (LPARAM)&g_TBGit); break; case NPPN_READY: diff --git a/Notepad_plus_msgs.h b/Notepad_plus_msgs.h index f2924b3..b5ba7fe 100644 --- a/Notepad_plus_msgs.h +++ b/Notepad_plus_msgs.h @@ -1,612 +1,638 @@ -// This file is part of Notepad++ project -// Copyright (C)2020 Don HO -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// 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 -// "derivative work" for the purpose of this license if it does any of the -// following: -// 1. Integrates source code from Notepad++. -// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable -// installer, such as those produced by InstallShield. -// 3. Links to a library or executes a program that does any of the above. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - -#pragma once - -#include -#include - -enum LangType {L_TEXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\ - L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_ASCII, L_USER,\ - L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA, \ - L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,\ - L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,\ - L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT,\ - L_CMAKE, L_YAML, L_COBOL, L_GUI4CLI, L_D, L_POWERSHELL, L_R, L_JSP,\ - L_COFFEESCRIPT, L_JSON, L_JAVASCRIPT, L_FORTRAN_77, L_BAANC, L_SREC,\ - L_IHEX, L_TEHEX, L_SWIFT,\ - L_ASN1, L_AVS, L_BLITZBASIC, L_PUREBASIC, L_FREEBASIC, \ - L_CSOUND, L_ERLANG, L_ESCRIPT, L_FORTH, L_LATEX, \ - L_MMIXAL, L_NIMROD, L_NNCRONTAB, L_OSCRIPT, L_REBOL, \ - L_REGISTRY, L_RUST, L_SPICE, L_TXT2TAGS, L_VISUALPROLOG,\ - // Don't use L_JS, use L_JAVASCRIPT instead - // The end of enumated language type, so it should be always at the end - L_EXTERNAL}; - -enum winVer{ WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV_S2003, WV_XPX64, WV_VISTA, WV_WIN7, WV_WIN8, WV_WIN81, WV_WIN10}; -enum Platform { PF_UNKNOWN, PF_X86, PF_X64, PF_IA64 }; - - - -#define NPPMSG (WM_USER + 1000) - - #define NPPM_GETCURRENTSCINTILLA (NPPMSG + 4) - #define NPPM_GETCURRENTLANGTYPE (NPPMSG + 5) - #define NPPM_SETCURRENTLANGTYPE (NPPMSG + 6) - - #define NPPM_GETNBOPENFILES (NPPMSG + 7) - #define ALL_OPEN_FILES 0 - #define PRIMARY_VIEW 1 - #define SECOND_VIEW 2 - - #define NPPM_GETOPENFILENAMES (NPPMSG + 8) - - - #define NPPM_MODELESSDIALOG (NPPMSG + 12) - #define MODELESSDIALOGADD 0 - #define MODELESSDIALOGREMOVE 1 - - #define NPPM_GETNBSESSIONFILES (NPPMSG + 13) - #define NPPM_GETSESSIONFILES (NPPMSG + 14) - #define NPPM_SAVESESSION (NPPMSG + 15) - #define NPPM_SAVECURRENTSESSION (NPPMSG + 16) - - struct sessionInfo { - TCHAR* sessionFilePathName; - int nbFile; - TCHAR** files; - }; - - #define NPPM_GETOPENFILENAMESPRIMARY (NPPMSG + 17) - #define NPPM_GETOPENFILENAMESSECOND (NPPMSG + 18) - - #define NPPM_CREATESCINTILLAHANDLE (NPPMSG + 20) - #define NPPM_DESTROYSCINTILLAHANDLE (NPPMSG + 21) - #define NPPM_GETNBUSERLANG (NPPMSG + 22) - - #define NPPM_GETCURRENTDOCINDEX (NPPMSG + 23) - #define MAIN_VIEW 0 - #define SUB_VIEW 1 - - #define NPPM_SETSTATUSBAR (NPPMSG + 24) - #define STATUSBAR_DOC_TYPE 0 - #define STATUSBAR_DOC_SIZE 1 - #define STATUSBAR_CUR_POS 2 - #define STATUSBAR_EOF_FORMAT 3 - #define STATUSBAR_UNICODE_TYPE 4 - #define STATUSBAR_TYPING_MODE 5 - - #define NPPM_GETMENUHANDLE (NPPMSG + 25) - #define NPPPLUGINMENU 0 - #define NPPMAINMENU 1 - // INT NPPM_GETMENUHANDLE(INT menuChoice, 0) - // Return: menu handle (HMENU) of choice (plugin menu handle or Notepad++ main menu handle) - - #define NPPM_ENCODESCI (NPPMSG + 26) - //ascii file to unicode - //int NPPM_ENCODESCI(MAIN_VIEW/SUB_VIEW, 0) - //return new unicodeMode - - #define NPPM_DECODESCI (NPPMSG + 27) - //unicode file to ascii - //int NPPM_DECODESCI(MAIN_VIEW/SUB_VIEW, 0) - //return old unicodeMode - - #define NPPM_ACTIVATEDOC (NPPMSG + 28) - //void NPPM_ACTIVATEDOC(int view, int index2Activate) - - #define NPPM_LAUNCHFINDINFILESDLG (NPPMSG + 29) - //void NPPM_LAUNCHFINDINFILESDLG(TCHAR * dir2Search, TCHAR * filtre) - - #define NPPM_DMMSHOW (NPPMSG + 30) - //void NPPM_DMMSHOW(0, tTbData->hClient) - - #define NPPM_DMMHIDE (NPPMSG + 31) - //void NPPM_DMMHIDE(0, tTbData->hClient) - - #define NPPM_DMMUPDATEDISPINFO (NPPMSG + 32) - //void NPPM_DMMUPDATEDISPINFO(0, tTbData->hClient) - - #define NPPM_DMMREGASDCKDLG (NPPMSG + 33) - //void NPPM_DMMREGASDCKDLG(0, &tTbData) - - #define NPPM_LOADSESSION (NPPMSG + 34) - //void NPPM_LOADSESSION(0, const TCHAR* file name) - - #define NPPM_DMMVIEWOTHERTAB (NPPMSG + 35) - //void WM_DMM_VIEWOTHERTAB(0, tTbData->pszName) - - #define NPPM_RELOADFILE (NPPMSG + 36) - //BOOL NPPM_RELOADFILE(BOOL withAlert, TCHAR *filePathName2Reload) - - #define NPPM_SWITCHTOFILE (NPPMSG + 37) - //BOOL NPPM_SWITCHTOFILE(0, TCHAR *filePathName2switch) - - #define NPPM_SAVECURRENTFILE (NPPMSG + 38) - //BOOL NPPM_SAVECURRENTFILE(0, 0) - - #define NPPM_SAVEALLFILES (NPPMSG + 39) - //BOOL NPPM_SAVEALLFILES(0, 0) - - #define NPPM_SETMENUITEMCHECK (NPPMSG + 40) - //void WM_PIMENU_CHECK(UINT funcItem[X]._cmdID, TRUE/FALSE) - - #define NPPM_ADDTOOLBARICON (NPPMSG + 41) - //void WM_ADDTOOLBARICON(UINT funcItem[X]._cmdID, toolbarIcons icon) - struct toolbarIcons { - HBITMAP hToolbarBmp; - HICON hToolbarIcon; - }; - - #define NPPM_GETWINDOWSVERSION (NPPMSG + 42) - //winVer NPPM_GETWINDOWSVERSION(0, 0) - - #define NPPM_DMMGETPLUGINHWNDBYNAME (NPPMSG + 43) - //HWND WM_DMM_GETPLUGINHWNDBYNAME(const TCHAR *windowName, const TCHAR *moduleName) - // if moduleName is NULL, then return value is NULL - // if windowName is NULL, then the first found window handle which matches with the moduleName will be returned - - #define NPPM_MAKECURRENTBUFFERDIRTY (NPPMSG + 44) - //BOOL NPPM_MAKECURRENTBUFFERDIRTY(0, 0) - - #define NPPM_GETENABLETHEMETEXTUREFUNC (NPPMSG + 45) - //BOOL NPPM_GETENABLETHEMETEXTUREFUNC(0, 0) - - #define NPPM_GETPLUGINSCONFIGDIR (NPPMSG + 46) - //INT NPPM_GETPLUGINSCONFIGDIR(int strLen, TCHAR *str) - // Get user's plugin config directory path. It's useful if plugins want to save/load parameters for the current user - // Returns the number of TCHAR copied/to copy. - // Users should call it with "str" be NULL to get the required number of TCHAR (not including the terminating nul character), - // allocate "str" buffer with the return value + 1, then call it again to get the path. - - #define NPPM_MSGTOPLUGIN (NPPMSG + 47) - //BOOL NPPM_MSGTOPLUGIN(TCHAR *destModuleName, CommunicationInfo *info) - // return value is TRUE when the message arrive to the destination plugins. - // if destModule or info is NULL, then return value is FALSE - struct CommunicationInfo { - long internalMsg; - const TCHAR * srcModuleName; - void * info; // defined by plugin - }; - - #define NPPM_MENUCOMMAND (NPPMSG + 48) - //void NPPM_MENUCOMMAND(0, int cmdID) - // uncomment //#include "menuCmdID.h" - // in the beginning of this file then use the command symbols defined in "menuCmdID.h" file - // to access all the Notepad++ menu command items - - #define NPPM_TRIGGERTABBARCONTEXTMENU (NPPMSG + 49) - //void NPPM_TRIGGERTABBARCONTEXTMENU(int view, int index2Activate) - - #define NPPM_GETNPPVERSION (NPPMSG + 50) - // int NPPM_GETNPPVERSION(0, 0) - // return version - // ex : v4.6 - // HIWORD(version) == 4 - // LOWORD(version) == 6 - - #define NPPM_HIDETABBAR (NPPMSG + 51) - // BOOL NPPM_HIDETABBAR(0, BOOL hideOrNot) - // if hideOrNot is set as TRUE then tab bar will be hidden - // otherwise it'll be shown. - // return value : the old status value - - #define NPPM_ISTABBARHIDDEN (NPPMSG + 52) - // BOOL NPPM_ISTABBARHIDDEN(0, 0) - // returned value : TRUE if tab bar is hidden, otherwise FALSE - - #define NPPM_GETPOSFROMBUFFERID (NPPMSG + 57) - // INT NPPM_GETPOSFROMBUFFERID(UINT_PTR bufferID, INT priorityView) - // Return VIEW|INDEX from a buffer ID. -1 if the bufferID non existing - // if priorityView set to SUB_VIEW, then SUB_VIEW will be search firstly - // - // VIEW takes 2 highest bits and INDEX (0 based) takes the rest (30 bits) - // Here's the values for the view : - // MAIN_VIEW 0 - // SUB_VIEW 1 - - #define NPPM_GETFULLPATHFROMBUFFERID (NPPMSG + 58) - // INT NPPM_GETFULLPATHFROMBUFFERID(UINT_PTR bufferID, TCHAR *fullFilePath) - // Get full path file name from a bufferID. - // Return -1 if the bufferID non existing, otherwise the number of TCHAR copied/to copy - // User should call it with fullFilePath be NULL to get the number of TCHAR (not including the nul character), - // allocate fullFilePath with the return values + 1, then call it again to get full path file name - - #define NPPM_GETBUFFERIDFROMPOS (NPPMSG + 59) - // LRESULT NPPM_GETBUFFERIDFROMPOS(INT index, INT iView) - // wParam: Position of document - // lParam: View to use, 0 = Main, 1 = Secondary - // Returns 0 if invalid - - #define NPPM_GETCURRENTBUFFERID (NPPMSG + 60) - // LRESULT NPPM_GETCURRENTBUFFERID(0, 0) - // Returns active Buffer - - #define NPPM_RELOADBUFFERID (NPPMSG + 61) - // VOID NPPM_RELOADBUFFERID(UINT_PTR bufferID, BOOL alert) - // Reloads Buffer - // wParam: Buffer to reload - // lParam: 0 if no alert, else alert - - - #define NPPM_GETBUFFERLANGTYPE (NPPMSG + 64) - // INT NPPM_GETBUFFERLANGTYPE(UINT_PTR bufferID, 0) - // wParam: BufferID to get LangType from - // lParam: 0 - // Returns as int, see LangType. -1 on error - - #define NPPM_SETBUFFERLANGTYPE (NPPMSG + 65) - // BOOL NPPM_SETBUFFERLANGTYPE(UINT_PTR bufferID, INT langType) - // wParam: BufferID to set LangType of - // lParam: LangType - // Returns TRUE on success, FALSE otherwise - // use int, see LangType for possible values - // L_USER and L_EXTERNAL are not supported - - #define NPPM_GETBUFFERENCODING (NPPMSG + 66) - // INT NPPM_GETBUFFERENCODING(UINT_PTR bufferID, 0) - // wParam: BufferID to get encoding from - // lParam: 0 - // returns as int, see UniMode. -1 on error - - #define NPPM_SETBUFFERENCODING (NPPMSG + 67) - // BOOL NPPM_SETBUFFERENCODING(UINT_PTR bufferID, INT encoding) - // wParam: BufferID to set encoding of - // lParam: encoding - // Returns TRUE on success, FALSE otherwise - // use int, see UniMode - // Can only be done on new, unedited files - - #define NPPM_GETBUFFERFORMAT (NPPMSG + 68) - // INT NPPM_GETBUFFERFORMAT(UINT_PTR bufferID, 0) - // wParam: BufferID to get EolType format from - // lParam: 0 - // returns as int, see EolType format. -1 on error - - #define NPPM_SETBUFFERFORMAT (NPPMSG + 69) - // BOOL NPPM_SETBUFFERFORMAT(UINT_PTR bufferID, INT format) - // wParam: BufferID to set EolType format of - // lParam: format - // Returns TRUE on success, FALSE otherwise - // use int, see EolType format - - - #define NPPM_HIDETOOLBAR (NPPMSG + 70) - // BOOL NPPM_HIDETOOLBAR(0, BOOL hideOrNot) - // if hideOrNot is set as TRUE then tool bar will be hidden - // otherwise it'll be shown. - // return value : the old status value - - #define NPPM_ISTOOLBARHIDDEN (NPPMSG + 71) - // BOOL NPPM_ISTOOLBARHIDDEN(0, 0) - // returned value : TRUE if tool bar is hidden, otherwise FALSE - - #define NPPM_HIDEMENU (NPPMSG + 72) - // BOOL NPPM_HIDEMENU(0, BOOL hideOrNot) - // if hideOrNot is set as TRUE then menu will be hidden - // otherwise it'll be shown. - // return value : the old status value - - #define NPPM_ISMENUHIDDEN (NPPMSG + 73) - // BOOL NPPM_ISMENUHIDDEN(0, 0) - // returned value : TRUE if menu is hidden, otherwise FALSE - - #define NPPM_HIDESTATUSBAR (NPPMSG + 74) - // BOOL NPPM_HIDESTATUSBAR(0, BOOL hideOrNot) - // if hideOrNot is set as TRUE then STATUSBAR will be hidden - // otherwise it'll be shown. - // return value : the old status value - - #define NPPM_ISSTATUSBARHIDDEN (NPPMSG + 75) - // BOOL NPPM_ISSTATUSBARHIDDEN(0, 0) - // returned value : TRUE if STATUSBAR is hidden, otherwise FALSE - - #define NPPM_GETSHORTCUTBYCMDID (NPPMSG + 76) - // BOOL NPPM_GETSHORTCUTBYCMDID(int cmdID, ShortcutKey *sk) - // get your plugin command current mapped shortcut into sk via cmdID - // You may need it after getting NPPN_READY notification - // returned value : TRUE if this function call is successful and shortcut is enable, otherwise FALSE - - #define NPPM_DOOPEN (NPPMSG + 77) - // BOOL NPPM_DOOPEN(0, const TCHAR *fullPathName2Open) - // fullPathName2Open indicates the full file path name to be opened. - // The return value is TRUE (1) if the operation is successful, otherwise FALSE (0). - - #define NPPM_SAVECURRENTFILEAS (NPPMSG + 78) - // BOOL NPPM_SAVECURRENTFILEAS (BOOL asCopy, const TCHAR* filename) - - #define NPPM_GETCURRENTNATIVELANGENCODING (NPPMSG + 79) - // INT NPPM_GETCURRENTNATIVELANGENCODING(0, 0) - // returned value : the current native language encoding - - #define NPPM_ALLOCATESUPPORTED (NPPMSG + 80) - // returns TRUE if NPPM_ALLOCATECMDID is supported - // Use to identify if subclassing is necessary - - #define NPPM_ALLOCATECMDID (NPPMSG + 81) - // BOOL NPPM_ALLOCATECMDID(int numberRequested, int* startNumber) - // sets startNumber to the initial command ID if successful - // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful - - #define NPPM_ALLOCATEMARKER (NPPMSG + 82) - // BOOL NPPM_ALLOCATEMARKER(int numberRequested, int* startNumber) - // sets startNumber to the initial command ID if successful - // Allocates a marker number to a plugin - // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful - - #define NPPM_GETLANGUAGENAME (NPPMSG + 83) - // INT NPPM_GETLANGUAGENAME(int langType, TCHAR *langName) - // Get programming language name from the given language type (LangType) - // Return value is the number of copied character / number of character to copy (\0 is not included) - // You should call this function 2 times - the first time you pass langName as NULL to get the number of characters to copy. - // You allocate a buffer of the length of (the number of characters + 1) then call NPPM_GETLANGUAGENAME function the 2nd time - // by passing allocated buffer as argument langName - - #define NPPM_GETLANGUAGEDESC (NPPMSG + 84) - // INT NPPM_GETLANGUAGEDESC(int langType, TCHAR *langDesc) - // Get programming language short description from the given language type (LangType) - // Return value is the number of copied character / number of character to copy (\0 is not included) - // You should call this function 2 times - the first time you pass langDesc as NULL to get the number of characters to copy. - // You allocate a buffer of the length of (the number of characters + 1) then call NPPM_GETLANGUAGEDESC function the 2nd time - // by passing allocated buffer as argument langDesc - - #define NPPM_SHOWDOCSWITCHER (NPPMSG + 85) - // VOID NPPM_SHOWDOCSWITCHER(0, BOOL toShowOrNot) - // Send this message to show or hide doc switcher. - // if toShowOrNot is TRUE then show doc switcher, otherwise hide it. - - #define NPPM_ISDOCSWITCHERSHOWN (NPPMSG + 86) - // BOOL NPPM_ISDOCSWITCHERSHOWN(0, 0) - // Check to see if doc switcher is shown. - - #define NPPM_GETAPPDATAPLUGINSALLOWED (NPPMSG + 87) - // BOOL NPPM_GETAPPDATAPLUGINSALLOWED(0, 0) - // Check to see if loading plugins from "%APPDATA%\..\Local\Notepad++\plugins" is allowed. - - #define NPPM_GETCURRENTVIEW (NPPMSG + 88) - // INT NPPM_GETCURRENTVIEW(0, 0) - // Return: current edit view of Notepad++. Only 2 possible values: 0 = Main, 1 = Secondary - - #define NPPM_DOCSWITCHERDISABLECOLUMN (NPPMSG + 89) - // VOID NPPM_DOCSWITCHERDISABLECOLUMN(0, BOOL disableOrNot) - // Disable or enable extension column of doc switcher - - #define NPPM_GETEDITORDEFAULTFOREGROUNDCOLOR (NPPMSG + 90) - // INT NPPM_GETEDITORDEFAULTFOREGROUNDCOLOR(0, 0) - // Return: current editor default foreground color. You should convert the returned value in COLORREF - - #define NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR (NPPMSG + 91) - // INT NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR(0, 0) - // Return: current editor default background color. You should convert the returned value in COLORREF - - #define NPPM_SETSMOOTHFONT (NPPMSG + 92) - // VOID NPPM_SETSMOOTHFONT(0, BOOL setSmoothFontOrNot) - - #define NPPM_SETEDITORBORDEREDGE (NPPMSG + 93) - // VOID NPPM_SETEDITORBORDEREDGE(0, BOOL withEditorBorderEdgeOrNot) - - #define NPPM_SAVEFILE (NPPMSG + 94) - // VOID NPPM_SAVEFILE(0, const TCHAR *fileNameToSave) - - #define NPPM_DISABLEAUTOUPDATE (NPPMSG + 95) // 2119 in decimal - // VOID NPPM_DISABLEAUTOUPDATE(0, 0) - - #define NPPM_REMOVESHORTCUTBYCMDID (NPPMSG + 96) // 2120 in decimal - // BOOL NPPM_REMOVESHORTCUTASSIGNMENT(int cmdID) - // removes the assigned shortcut mapped to cmdID - // returned value : TRUE if function call is successful, otherwise FALSE - - #define NPPM_GETPLUGINHOMEPATH (NPPMSG + 97) - // INT NPPM_GETPLUGINHOMEPATH(size_t strLen, TCHAR *pluginRootPath) - // Get plugin home root path. It's useful if plugins want to get its own path - // by appending which is the name of plugin without extension part. - // Returns the number of TCHAR copied/to copy. - // Users should call it with pluginRootPath be NULL to get the required number of TCHAR (not including the terminating nul character), - // allocate pluginRootPath buffer with the return value + 1, then call it again to get the path. - -#define RUNCOMMAND_USER (WM_USER + 3000) - #define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH) - #define NPPM_GETCURRENTDIRECTORY (RUNCOMMAND_USER + CURRENT_DIRECTORY) - #define NPPM_GETFILENAME (RUNCOMMAND_USER + FILE_NAME) - #define NPPM_GETNAMEPART (RUNCOMMAND_USER + NAME_PART) - #define NPPM_GETEXTPART (RUNCOMMAND_USER + EXT_PART) - #define NPPM_GETCURRENTWORD (RUNCOMMAND_USER + CURRENT_WORD) - #define NPPM_GETNPPDIRECTORY (RUNCOMMAND_USER + NPP_DIRECTORY) - #define NPPM_GETFILENAMEATCURSOR (RUNCOMMAND_USER + GETFILENAMEATCURSOR) - // BOOL NPPM_GETXXXXXXXXXXXXXXXX(size_t strLen, TCHAR *str) - // where str is the allocated TCHAR array, - // strLen is the allocated array size - // The return value is TRUE when get generic_string operation success - // Otherwise (allocated array size is too small) FALSE - - #define NPPM_GETCURRENTLINE (RUNCOMMAND_USER + CURRENT_LINE) - // INT NPPM_GETCURRENTLINE(0, 0) - // return the caret current position line - #define NPPM_GETCURRENTCOLUMN (RUNCOMMAND_USER + CURRENT_COLUMN) - // INT NPPM_GETCURRENTCOLUMN(0, 0) - // return the caret current position column - - #define NPPM_GETNPPFULLFILEPATH (RUNCOMMAND_USER + NPP_FULL_FILE_PATH) - - #define VAR_NOT_RECOGNIZED 0 - #define FULL_CURRENT_PATH 1 - #define CURRENT_DIRECTORY 2 - #define FILE_NAME 3 - #define NAME_PART 4 - #define EXT_PART 5 - #define CURRENT_WORD 6 - #define NPP_DIRECTORY 7 - #define CURRENT_LINE 8 - #define CURRENT_COLUMN 9 - #define NPP_FULL_FILE_PATH 10 - #define GETFILENAMEATCURSOR 11 - - -// Notification code -#define NPPN_FIRST 1000 - #define NPPN_READY (NPPN_FIRST + 1) // To notify plugins that all the procedures of launchment of notepad++ are done. - //scnNotification->nmhdr.code = NPPN_READY; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = 0; - - #define NPPN_TBMODIFICATION (NPPN_FIRST + 2) // To notify plugins that toolbar icons can be registered - //scnNotification->nmhdr.code = NPPN_TB_MODIFICATION; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = 0; - - #define NPPN_FILEBEFORECLOSE (NPPN_FIRST + 3) // To notify plugins that the current file is about to be closed - //scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILEOPENED (NPPN_FIRST + 4) // To notify plugins that the current file is just opened - //scnNotification->nmhdr.code = NPPN_FILEOPENED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILECLOSED (NPPN_FIRST + 5) // To notify plugins that the current file is just closed - //scnNotification->nmhdr.code = NPPN_FILECLOSED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILEBEFOREOPEN (NPPN_FIRST + 6) // To notify plugins that the current file is about to be opened - //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILEBEFORESAVE (NPPN_FIRST + 7) // To notify plugins that the current file is about to be saved - //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILESAVED (NPPN_FIRST + 8) // To notify plugins that the current file is just saved - //scnNotification->nmhdr.code = NPPN_FILESAVED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_SHUTDOWN (NPPN_FIRST + 9) // To notify plugins that Notepad++ is about to be shutdowned. - //scnNotification->nmhdr.code = NPPN_SHUTDOWN; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = 0; - - #define NPPN_BUFFERACTIVATED (NPPN_FIRST + 10) // To notify plugins that a buffer was activated (put to foreground). - //scnNotification->nmhdr.code = NPPN_BUFFERACTIVATED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = activatedBufferID; - - #define NPPN_LANGCHANGED (NPPN_FIRST + 11) // To notify plugins that the language in the current doc is just changed. - //scnNotification->nmhdr.code = NPPN_LANGCHANGED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = currentBufferID; - - #define NPPN_WORDSTYLESUPDATED (NPPN_FIRST + 12) // To notify plugins that user initiated a WordStyleDlg change. - //scnNotification->nmhdr.code = NPPN_WORDSTYLESUPDATED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = currentBufferID; - - #define NPPN_SHORTCUTREMAPPED (NPPN_FIRST + 13) // To notify plugins that plugin command shortcut is remapped. - //scnNotification->nmhdr.code = NPPN_SHORTCUTSREMAPPED; - //scnNotification->nmhdr.hwndFrom = ShortcutKeyStructurePointer; - //scnNotification->nmhdr.idFrom = cmdID; - //where ShortcutKeyStructurePointer is pointer of struct ShortcutKey: - //struct ShortcutKey { - // bool _isCtrl; - // bool _isAlt; - // bool _isShift; - // UCHAR _key; - //}; - - #define NPPN_FILEBEFORELOAD (NPPN_FIRST + 14) // To notify plugins that the current file is about to be loaded - //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = NULL; - - #define NPPN_FILELOADFAILED (NPPN_FIRST + 15) // To notify plugins that file open operation failed - //scnNotification->nmhdr.code = NPPN_FILEOPENFAILED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_READONLYCHANGED (NPPN_FIRST + 16) // To notify plugins that current document change the readonly status, - //scnNotification->nmhdr.code = NPPN_READONLYCHANGED; - //scnNotification->nmhdr.hwndFrom = bufferID; - //scnNotification->nmhdr.idFrom = docStatus; - // where bufferID is BufferID - // docStatus can be combined by DOCSTATUS_READONLY and DOCSTATUS_BUFFERDIRTY - - #define DOCSTATUS_READONLY 1 - #define DOCSTATUS_BUFFERDIRTY 2 - - #define NPPN_DOCORDERCHANGED (NPPN_FIRST + 17) // To notify plugins that document order is changed - //scnNotification->nmhdr.code = NPPN_DOCORDERCHANGED; - //scnNotification->nmhdr.hwndFrom = newIndex; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_SNAPSHOTDIRTYFILELOADED (NPPN_FIRST + 18) // To notify plugins that a snapshot dirty file is loaded on startup - //scnNotification->nmhdr.code = NPPN_SNAPSHOTDIRTYFILELOADED; - //scnNotification->nmhdr.hwndFrom = NULL; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_BEFORESHUTDOWN (NPPN_FIRST + 19) // To notify plugins that Npp shutdown has been triggered, files have not been closed yet - //scnNotification->nmhdr.code = NPPN_BEFORESHUTDOWN; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = 0; - - #define NPPN_CANCELSHUTDOWN (NPPN_FIRST + 20) // To notify plugins that Npp shutdown has been cancelled - //scnNotification->nmhdr.code = NPPN_CANCELSHUTDOWN; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = 0; - - #define NPPN_FILEBEFORERENAME (NPPN_FIRST + 21) // To notify plugins that file is to be renamed - //scnNotification->nmhdr.code = NPPN_FILEBEFORERENAME; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILERENAMECANCEL (NPPN_FIRST + 22) // To notify plugins that file rename has been cancelled - //scnNotification->nmhdr.code = NPPN_FILERENAMECANCEL; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILERENAMED (NPPN_FIRST + 23) // To notify plugins that file has been renamed - //scnNotification->nmhdr.code = NPPN_FILERENAMED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILEBEFOREDELETE (NPPN_FIRST + 24) // To notify plugins that file is to be deleted - //scnNotification->nmhdr.code = NPPN_FILEBEFOREDELETE; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILEDELETEFAILED (NPPN_FIRST + 25) // To notify plugins that file deletion has failed - //scnNotification->nmhdr.code = NPPN_FILEDELETEFAILED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; - - #define NPPN_FILEDELETED (NPPN_FIRST + 26) // To notify plugins that file has been deleted - //scnNotification->nmhdr.code = NPPN_FILEDELETED; - //scnNotification->nmhdr.hwndFrom = hwndNpp; - //scnNotification->nmhdr.idFrom = BufferID; +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + + +#pragma once + +#include +#include + +enum LangType {L_TEXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\ + L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_ASCII, L_USER,\ + L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA, \ + L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,\ + L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,\ + L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT,\ + L_CMAKE, L_YAML, L_COBOL, L_GUI4CLI, L_D, L_POWERSHELL, L_R, L_JSP,\ + L_COFFEESCRIPT, L_JSON, L_JAVASCRIPT, L_FORTRAN_77, L_BAANC, L_SREC,\ + L_IHEX, L_TEHEX, L_SWIFT,\ + L_ASN1, L_AVS, L_BLITZBASIC, L_PUREBASIC, L_FREEBASIC, \ + L_CSOUND, L_ERLANG, L_ESCRIPT, L_FORTH, L_LATEX, \ + L_MMIXAL, L_NIM, L_NNCRONTAB, L_OSCRIPT, L_REBOL, \ + L_REGISTRY, L_RUST, L_SPICE, L_TXT2TAGS, L_VISUALPROLOG, L_TYPESCRIPT,\ + // Don't use L_JS, use L_JAVASCRIPT instead + // The end of enumated language type, so it should be always at the end + L_EXTERNAL}; + +enum winVer{ WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV_S2003, WV_XPX64, WV_VISTA, WV_WIN7, WV_WIN8, WV_WIN81, WV_WIN10 }; +enum Platform { PF_UNKNOWN, PF_X86, PF_X64, PF_IA64, PF_ARM64 }; + + + +#define NPPMSG (WM_USER + 1000) + + #define NPPM_GETCURRENTSCINTILLA (NPPMSG + 4) + #define NPPM_GETCURRENTLANGTYPE (NPPMSG + 5) + #define NPPM_SETCURRENTLANGTYPE (NPPMSG + 6) + + #define NPPM_GETNBOPENFILES (NPPMSG + 7) + #define ALL_OPEN_FILES 0 + #define PRIMARY_VIEW 1 + #define SECOND_VIEW 2 + + #define NPPM_GETOPENFILENAMES (NPPMSG + 8) + + + #define NPPM_MODELESSDIALOG (NPPMSG + 12) + #define MODELESSDIALOGADD 0 + #define MODELESSDIALOGREMOVE 1 + + #define NPPM_GETNBSESSIONFILES (NPPMSG + 13) + #define NPPM_GETSESSIONFILES (NPPMSG + 14) + #define NPPM_SAVESESSION (NPPMSG + 15) + #define NPPM_SAVECURRENTSESSION (NPPMSG + 16) + + struct sessionInfo { + TCHAR* sessionFilePathName; + int nbFile; + TCHAR** files; + }; + + #define NPPM_GETOPENFILENAMESPRIMARY (NPPMSG + 17) + #define NPPM_GETOPENFILENAMESSECOND (NPPMSG + 18) + + #define NPPM_CREATESCINTILLAHANDLE (NPPMSG + 20) + #define NPPM_DESTROYSCINTILLAHANDLE (NPPMSG + 21) + #define NPPM_GETNBUSERLANG (NPPMSG + 22) + + #define NPPM_GETCURRENTDOCINDEX (NPPMSG + 23) + #define MAIN_VIEW 0 + #define SUB_VIEW 1 + + #define NPPM_SETSTATUSBAR (NPPMSG + 24) + #define STATUSBAR_DOC_TYPE 0 + #define STATUSBAR_DOC_SIZE 1 + #define STATUSBAR_CUR_POS 2 + #define STATUSBAR_EOF_FORMAT 3 + #define STATUSBAR_UNICODE_TYPE 4 + #define STATUSBAR_TYPING_MODE 5 + + #define NPPM_GETMENUHANDLE (NPPMSG + 25) + #define NPPPLUGINMENU 0 + #define NPPMAINMENU 1 + // INT NPPM_GETMENUHANDLE(INT menuChoice, 0) + // Return: menu handle (HMENU) of choice (plugin menu handle or Notepad++ main menu handle) + + #define NPPM_ENCODESCI (NPPMSG + 26) + //ascii file to unicode + //int NPPM_ENCODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return new unicodeMode + + #define NPPM_DECODESCI (NPPMSG + 27) + //unicode file to ascii + //int NPPM_DECODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return old unicodeMode + + #define NPPM_ACTIVATEDOC (NPPMSG + 28) + //void NPPM_ACTIVATEDOC(int view, int index2Activate) + + #define NPPM_LAUNCHFINDINFILESDLG (NPPMSG + 29) + //void NPPM_LAUNCHFINDINFILESDLG(TCHAR * dir2Search, TCHAR * filtre) + + #define NPPM_DMMSHOW (NPPMSG + 30) + //void NPPM_DMMSHOW(0, tTbData->hClient) + + #define NPPM_DMMHIDE (NPPMSG + 31) + //void NPPM_DMMHIDE(0, tTbData->hClient) + + #define NPPM_DMMUPDATEDISPINFO (NPPMSG + 32) + //void NPPM_DMMUPDATEDISPINFO(0, tTbData->hClient) + + #define NPPM_DMMREGASDCKDLG (NPPMSG + 33) + //void NPPM_DMMREGASDCKDLG(0, &tTbData) + + #define NPPM_LOADSESSION (NPPMSG + 34) + //void NPPM_LOADSESSION(0, const TCHAR* file name) + + #define NPPM_DMMVIEWOTHERTAB (NPPMSG + 35) + //void WM_DMM_VIEWOTHERTAB(0, tTbData->pszName) + + #define NPPM_RELOADFILE (NPPMSG + 36) + //BOOL NPPM_RELOADFILE(BOOL withAlert, TCHAR *filePathName2Reload) + + #define NPPM_SWITCHTOFILE (NPPMSG + 37) + //BOOL NPPM_SWITCHTOFILE(0, TCHAR *filePathName2switch) + + #define NPPM_SAVECURRENTFILE (NPPMSG + 38) + //BOOL NPPM_SAVECURRENTFILE(0, 0) + + #define NPPM_SAVEALLFILES (NPPMSG + 39) + //BOOL NPPM_SAVEALLFILES(0, 0) + + #define NPPM_SETMENUITEMCHECK (NPPMSG + 40) + //void WM_PIMENU_CHECK(UINT funcItem[X]._cmdID, TRUE/FALSE) + + #define NPPM_ADDTOOLBARICON_DEPRECATED (NPPMSG + 41) + //void NPPM_ADDTOOLBARICON(UINT funcItem[X]._cmdID, toolbarIcons iconHandles) -- DEPRECATED : use NPPM_ADDTOOLBARICON_FORDARKMODE instead + //2 formats of icon are needed: .ico & .bmp + //Both handles below should be set so the icon will be displayed correctly if toolbar icon sets are changed by users + struct toolbarIcons { + HBITMAP hToolbarBmp; + HICON hToolbarIcon; + }; + + #define NPPM_GETWINDOWSVERSION (NPPMSG + 42) + //winVer NPPM_GETWINDOWSVERSION(0, 0) + + #define NPPM_DMMGETPLUGINHWNDBYNAME (NPPMSG + 43) + //HWND WM_DMM_GETPLUGINHWNDBYNAME(const TCHAR *windowName, const TCHAR *moduleName) + // if moduleName is NULL, then return value is NULL + // if windowName is NULL, then the first found window handle which matches with the moduleName will be returned + + #define NPPM_MAKECURRENTBUFFERDIRTY (NPPMSG + 44) + //BOOL NPPM_MAKECURRENTBUFFERDIRTY(0, 0) + + #define NPPM_GETENABLETHEMETEXTUREFUNC (NPPMSG + 45) + //BOOL NPPM_GETENABLETHEMETEXTUREFUNC(0, 0) + + #define NPPM_GETPLUGINSCONFIGDIR (NPPMSG + 46) + //INT NPPM_GETPLUGINSCONFIGDIR(int strLen, TCHAR *str) + // Get user's plugin config directory path. It's useful if plugins want to save/load parameters for the current user + // Returns the number of TCHAR copied/to copy. + // Users should call it with "str" be NULL to get the required number of TCHAR (not including the terminating nul character), + // allocate "str" buffer with the return value + 1, then call it again to get the path. + + #define NPPM_MSGTOPLUGIN (NPPMSG + 47) + //BOOL NPPM_MSGTOPLUGIN(TCHAR *destModuleName, CommunicationInfo *info) + // return value is TRUE when the message arrive to the destination plugins. + // if destModule or info is NULL, then return value is FALSE + struct CommunicationInfo { + long internalMsg; + const TCHAR * srcModuleName; + void * info; // defined by plugin + }; + + #define NPPM_MENUCOMMAND (NPPMSG + 48) + //void NPPM_MENUCOMMAND(0, int cmdID) + // uncomment //#include "menuCmdID.h" + // in the beginning of this file then use the command symbols defined in "menuCmdID.h" file + // to access all the Notepad++ menu command items + + #define NPPM_TRIGGERTABBARCONTEXTMENU (NPPMSG + 49) + //void NPPM_TRIGGERTABBARCONTEXTMENU(int view, int index2Activate) + + #define NPPM_GETNPPVERSION (NPPMSG + 50) + // int NPPM_GETNPPVERSION(0, 0) + // return version + // ex : v4.6 + // HIWORD(version) == 4 + // LOWORD(version) == 6 + + #define NPPM_HIDETABBAR (NPPMSG + 51) + // BOOL NPPM_HIDETABBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then tab bar will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISTABBARHIDDEN (NPPMSG + 52) + // BOOL NPPM_ISTABBARHIDDEN(0, 0) + // returned value : TRUE if tab bar is hidden, otherwise FALSE + + #define NPPM_GETPOSFROMBUFFERID (NPPMSG + 57) + // INT NPPM_GETPOSFROMBUFFERID(UINT_PTR bufferID, INT priorityView) + // Return VIEW|INDEX from a buffer ID. -1 if the bufferID non existing + // if priorityView set to SUB_VIEW, then SUB_VIEW will be search firstly + // + // VIEW takes 2 highest bits and INDEX (0 based) takes the rest (30 bits) + // Here's the values for the view : + // MAIN_VIEW 0 + // SUB_VIEW 1 + + #define NPPM_GETFULLPATHFROMBUFFERID (NPPMSG + 58) + // INT NPPM_GETFULLPATHFROMBUFFERID(UINT_PTR bufferID, TCHAR *fullFilePath) + // Get full path file name from a bufferID. + // Return -1 if the bufferID non existing, otherwise the number of TCHAR copied/to copy + // User should call it with fullFilePath be NULL to get the number of TCHAR (not including the nul character), + // allocate fullFilePath with the return values + 1, then call it again to get full path file name + + #define NPPM_GETBUFFERIDFROMPOS (NPPMSG + 59) + // LRESULT NPPM_GETBUFFERIDFROMPOS(INT index, INT iView) + // wParam: Position of document + // lParam: View to use, 0 = Main, 1 = Secondary + // Returns 0 if invalid + + #define NPPM_GETCURRENTBUFFERID (NPPMSG + 60) + // LRESULT NPPM_GETCURRENTBUFFERID(0, 0) + // Returns active Buffer + + #define NPPM_RELOADBUFFERID (NPPMSG + 61) + // VOID NPPM_RELOADBUFFERID(UINT_PTR bufferID, BOOL alert) + // Reloads Buffer + // wParam: Buffer to reload + // lParam: 0 if no alert, else alert + + #define NPPM_GETBUFFERLANGTYPE (NPPMSG + 64) + // INT NPPM_GETBUFFERLANGTYPE(UINT_PTR bufferID, 0) + // wParam: BufferID to get LangType from + // lParam: 0 + // Returns as int, see LangType. -1 on error + + #define NPPM_SETBUFFERLANGTYPE (NPPMSG + 65) + // BOOL NPPM_SETBUFFERLANGTYPE(UINT_PTR bufferID, INT langType) + // wParam: BufferID to set LangType of + // lParam: LangType + // Returns TRUE on success, FALSE otherwise + // use int, see LangType for possible values + // L_USER and L_EXTERNAL are not supported + + #define NPPM_GETBUFFERENCODING (NPPMSG + 66) + // INT NPPM_GETBUFFERENCODING(UINT_PTR bufferID, 0) + // wParam: BufferID to get encoding from + // lParam: 0 + // returns as int, see UniMode. -1 on error + + #define NPPM_SETBUFFERENCODING (NPPMSG + 67) + // BOOL NPPM_SETBUFFERENCODING(UINT_PTR bufferID, INT encoding) + // wParam: BufferID to set encoding of + // lParam: encoding + // Returns TRUE on success, FALSE otherwise + // use int, see UniMode + // Can only be done on new, unedited files + + #define NPPM_GETBUFFERFORMAT (NPPMSG + 68) + // INT NPPM_GETBUFFERFORMAT(UINT_PTR bufferID, 0) + // wParam: BufferID to get EolType format from + // lParam: 0 + // returns as int, see EolType format. -1 on error + + #define NPPM_SETBUFFERFORMAT (NPPMSG + 69) + // BOOL NPPM_SETBUFFERFORMAT(UINT_PTR bufferID, INT format) + // wParam: BufferID to set EolType format of + // lParam: format + // Returns TRUE on success, FALSE otherwise + // use int, see EolType format + + + #define NPPM_HIDETOOLBAR (NPPMSG + 70) + // BOOL NPPM_HIDETOOLBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then tool bar will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISTOOLBARHIDDEN (NPPMSG + 71) + // BOOL NPPM_ISTOOLBARHIDDEN(0, 0) + // returned value : TRUE if tool bar is hidden, otherwise FALSE + + #define NPPM_HIDEMENU (NPPMSG + 72) + // BOOL NPPM_HIDEMENU(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then menu will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISMENUHIDDEN (NPPMSG + 73) + // BOOL NPPM_ISMENUHIDDEN(0, 0) + // returned value : TRUE if menu is hidden, otherwise FALSE + + #define NPPM_HIDESTATUSBAR (NPPMSG + 74) + // BOOL NPPM_HIDESTATUSBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then STATUSBAR will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISSTATUSBARHIDDEN (NPPMSG + 75) + // BOOL NPPM_ISSTATUSBARHIDDEN(0, 0) + // returned value : TRUE if STATUSBAR is hidden, otherwise FALSE + + #define NPPM_GETSHORTCUTBYCMDID (NPPMSG + 76) + // BOOL NPPM_GETSHORTCUTBYCMDID(int cmdID, ShortcutKey *sk) + // get your plugin command current mapped shortcut into sk via cmdID + // You may need it after getting NPPN_READY notification + // returned value : TRUE if this function call is successful and shortcut is enable, otherwise FALSE + + #define NPPM_DOOPEN (NPPMSG + 77) + // BOOL NPPM_DOOPEN(0, const TCHAR *fullPathName2Open) + // fullPathName2Open indicates the full file path name to be opened. + // The return value is TRUE (1) if the operation is successful, otherwise FALSE (0). + + #define NPPM_SAVECURRENTFILEAS (NPPMSG + 78) + // BOOL NPPM_SAVECURRENTFILEAS (BOOL asCopy, const TCHAR* filename) + + #define NPPM_GETCURRENTNATIVELANGENCODING (NPPMSG + 79) + // INT NPPM_GETCURRENTNATIVELANGENCODING(0, 0) + // returned value : the current native language encoding + + #define NPPM_ALLOCATESUPPORTED (NPPMSG + 80) + // returns TRUE if NPPM_ALLOCATECMDID is supported + // Use to identify if subclassing is necessary + + #define NPPM_ALLOCATECMDID (NPPMSG + 81) + // BOOL NPPM_ALLOCATECMDID(int numberRequested, int* startNumber) + // sets startNumber to the initial command ID if successful + // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful + + #define NPPM_ALLOCATEMARKER (NPPMSG + 82) + // BOOL NPPM_ALLOCATEMARKER(int numberRequested, int* startNumber) + // sets startNumber to the initial command ID if successful + // Allocates a marker number to a plugin: if a plugin need to add a marker on Notepad++'s Scintilla marker margin, + // it has to use this message to get marker number, in order to prevent from the conflict with the other plugins. + // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful + + #define NPPM_GETLANGUAGENAME (NPPMSG + 83) + // INT NPPM_GETLANGUAGENAME(int langType, TCHAR *langName) + // Get programming language name from the given language type (LangType) + // Return value is the number of copied character / number of character to copy (\0 is not included) + // You should call this function 2 times - the first time you pass langName as NULL to get the number of characters to copy. + // You allocate a buffer of the length of (the number of characters + 1) then call NPPM_GETLANGUAGENAME function the 2nd time + // by passing allocated buffer as argument langName + + #define NPPM_GETLANGUAGEDESC (NPPMSG + 84) + // INT NPPM_GETLANGUAGEDESC(int langType, TCHAR *langDesc) + // Get programming language short description from the given language type (LangType) + // Return value is the number of copied character / number of character to copy (\0 is not included) + // You should call this function 2 times - the first time you pass langDesc as NULL to get the number of characters to copy. + // You allocate a buffer of the length of (the number of characters + 1) then call NPPM_GETLANGUAGEDESC function the 2nd time + // by passing allocated buffer as argument langDesc + + #define NPPM_SHOWDOCLIST (NPPMSG + 85) + // VOID NPPM_SHOWDOCLIST(0, BOOL toShowOrNot) + // Send this message to show or hide Document List. + // if toShowOrNot is TRUE then show Document List, otherwise hide it. + + #define NPPM_ISDOCLISTSHOWN (NPPMSG + 86) + // BOOL NPPM_ISDOCLISTSHOWN(0, 0) + // Check to see if Document List is shown. + + #define NPPM_GETAPPDATAPLUGINSALLOWED (NPPMSG + 87) + // BOOL NPPM_GETAPPDATAPLUGINSALLOWED(0, 0) + // Check to see if loading plugins from "%APPDATA%\..\Local\Notepad++\plugins" is allowed. + + #define NPPM_GETCURRENTVIEW (NPPMSG + 88) + // INT NPPM_GETCURRENTVIEW(0, 0) + // Return: current edit view of Notepad++. Only 2 possible values: 0 = Main, 1 = Secondary + + #define NPPM_DOCLISTDISABLEEXTCOLUMN (NPPMSG + 89) + // VOID NPPM_DOCLISTDISABLEEXTCOLUMN(0, BOOL disableOrNot) + // Disable or enable extension column of Document List + + #define NPPM_DOCLISTDISABLEPATHCOLUMN (NPPMSG + 102) + // VOID NPPM_DOCLISTDISABLEPATHCOLUMN(0, BOOL disableOrNot) + // Disable or enable path column of Document List + + #define NPPM_GETEDITORDEFAULTFOREGROUNDCOLOR (NPPMSG + 90) + // INT NPPM_GETEDITORDEFAULTFOREGROUNDCOLOR(0, 0) + // Return: current editor default foreground color. You should convert the returned value in COLORREF + + #define NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR (NPPMSG + 91) + // INT NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR(0, 0) + // Return: current editor default background color. You should convert the returned value in COLORREF + + #define NPPM_SETSMOOTHFONT (NPPMSG + 92) + // VOID NPPM_SETSMOOTHFONT(0, BOOL setSmoothFontOrNot) + + #define NPPM_SETEDITORBORDEREDGE (NPPMSG + 93) + // VOID NPPM_SETEDITORBORDEREDGE(0, BOOL withEditorBorderEdgeOrNot) + + #define NPPM_SAVEFILE (NPPMSG + 94) + // VOID NPPM_SAVEFILE(0, const TCHAR *fileNameToSave) + + #define NPPM_DISABLEAUTOUPDATE (NPPMSG + 95) // 2119 in decimal + // VOID NPPM_DISABLEAUTOUPDATE(0, 0) + + #define NPPM_REMOVESHORTCUTBYCMDID (NPPMSG + 96) // 2120 in decimal + // BOOL NPPM_REMOVESHORTCUTASSIGNMENT(int cmdID) + // removes the assigned shortcut mapped to cmdID + // returned value : TRUE if function call is successful, otherwise FALSE + + #define NPPM_GETPLUGINHOMEPATH (NPPMSG + 97) + // INT NPPM_GETPLUGINHOMEPATH(size_t strLen, TCHAR *pluginRootPath) + // Get plugin home root path. It's useful if plugins want to get its own path + // by appending which is the name of plugin without extension part. + // Returns the number of TCHAR copied/to copy. + // Users should call it with pluginRootPath be NULL to get the required number of TCHAR (not including the terminating nul character), + // allocate pluginRootPath buffer with the return value + 1, then call it again to get the path. + + #define NPPM_GETSETTINGSONCLOUDPATH (NPPMSG + 98) + // INT NPPM_GETSETTINGSCLOUDPATH(size_t strLen, TCHAR *settingsOnCloudPath) + // Get settings on cloud path. It's useful if plugins want to store its settings on Cloud, if this path is set. + // Returns the number of TCHAR copied/to copy. If the return value is 0, then this path is not set, or the "strLen" is not enough to copy the path. + // Users should call it with settingsCloudPath be NULL to get the required number of TCHAR (not including the terminating nul character), + // allocate settingsCloudPath buffer with the return value + 1, then call it again to get the path. + + #define NPPM_SETLINENUMBERWIDTHMODE (NPPMSG + 99) + #define LINENUMWIDTH_DYNAMIC 0 + #define LINENUMWIDTH_CONSTANT 1 + // BOOL NPPM_SETLINENUMBERWIDTHMODE(0, INT widthMode) + // Set line number margin width in dynamic width mode (LINENUMWIDTH_DYNAMIC) or constant width mode (LINENUMWIDTH_CONSTANT) + // It may help some plugins to disable non-dynamic line number margins width to have a smoothly visual effect while vertical scrolling the content in Notepad++ + // If calling is successful return TRUE, otherwise return FALSE. + + #define NPPM_GETLINENUMBERWIDTHMODE (NPPMSG + 100) + // INT NPPM_GETLINENUMBERWIDTHMODE(0, 0) + // Get line number margin width in dynamic width mode (LINENUMWIDTH_DYNAMIC) or constant width mode (LINENUMWIDTH_CONSTANT) + + #define NPPM_ADDTOOLBARICON_FORDARKMODE (NPPMSG + 101) + // VOID NPPM_ADDTOOLBARICON_FORDARKMODE(UINT funcItem[X]._cmdID, toolbarIconsWithDarkMode iconHandles) + // Use NPPM_ADDTOOLBARICON_FORDARKMODE instead obsolete NPPM_ADDTOOLBARICON which doesn't support the dark mode + // 2 formats / 3 icons are needed: 1 * BMP + 2 * ICO + // All 3 handles below should be set so the icon will be displayed correctly if toolbar icon sets are changed by users, also in dark mode + struct toolbarIconsWithDarkMode { + HBITMAP hToolbarBmp; + HICON hToolbarIcon; + HICON hToolbarIconDarkMode; + }; + +#define VAR_NOT_RECOGNIZED 0 +#define FULL_CURRENT_PATH 1 +#define CURRENT_DIRECTORY 2 +#define FILE_NAME 3 +#define NAME_PART 4 +#define EXT_PART 5 +#define CURRENT_WORD 6 +#define NPP_DIRECTORY 7 +#define CURRENT_LINE 8 +#define CURRENT_COLUMN 9 +#define NPP_FULL_FILE_PATH 10 +#define GETFILENAMEATCURSOR 11 + +#define RUNCOMMAND_USER (WM_USER + 3000) + #define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH) + #define NPPM_GETCURRENTDIRECTORY (RUNCOMMAND_USER + CURRENT_DIRECTORY) + #define NPPM_GETFILENAME (RUNCOMMAND_USER + FILE_NAME) + #define NPPM_GETNAMEPART (RUNCOMMAND_USER + NAME_PART) + #define NPPM_GETEXTPART (RUNCOMMAND_USER + EXT_PART) + #define NPPM_GETCURRENTWORD (RUNCOMMAND_USER + CURRENT_WORD) + #define NPPM_GETNPPDIRECTORY (RUNCOMMAND_USER + NPP_DIRECTORY) + #define NPPM_GETFILENAMEATCURSOR (RUNCOMMAND_USER + GETFILENAMEATCURSOR) + // BOOL NPPM_GETXXXXXXXXXXXXXXXX(size_t strLen, TCHAR *str) + // where str is the allocated TCHAR array, + // strLen is the allocated array size + // The return value is TRUE when get generic_string operation success + // Otherwise (allocated array size is too small) FALSE + + #define NPPM_GETCURRENTLINE (RUNCOMMAND_USER + CURRENT_LINE) + // INT NPPM_GETCURRENTLINE(0, 0) + // return the caret current position line + #define NPPM_GETCURRENTCOLUMN (RUNCOMMAND_USER + CURRENT_COLUMN) + // INT NPPM_GETCURRENTCOLUMN(0, 0) + // return the caret current position column + + #define NPPM_GETNPPFULLFILEPATH (RUNCOMMAND_USER + NPP_FULL_FILE_PATH) + + + +// Notification code +#define NPPN_FIRST 1000 + #define NPPN_READY (NPPN_FIRST + 1) // To notify plugins that all the procedures of launchment of notepad++ are done. + //scnNotification->nmhdr.code = NPPN_READY; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_TBMODIFICATION (NPPN_FIRST + 2) // To notify plugins that toolbar icons can be registered + //scnNotification->nmhdr.code = NPPN_TBMODIFICATION; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_FILEBEFORECLOSE (NPPN_FIRST + 3) // To notify plugins that the current file is about to be closed + //scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEOPENED (NPPN_FIRST + 4) // To notify plugins that the current file is just opened + //scnNotification->nmhdr.code = NPPN_FILEOPENED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILECLOSED (NPPN_FIRST + 5) // To notify plugins that the current file is just closed + //scnNotification->nmhdr.code = NPPN_FILECLOSED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEBEFOREOPEN (NPPN_FIRST + 6) // To notify plugins that the current file is about to be opened + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEBEFORESAVE (NPPN_FIRST + 7) // To notify plugins that the current file is about to be saved + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILESAVED (NPPN_FIRST + 8) // To notify plugins that the current file is just saved + //scnNotification->nmhdr.code = NPPN_FILESAVED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_SHUTDOWN (NPPN_FIRST + 9) // To notify plugins that Notepad++ is about to be shutdowned. + //scnNotification->nmhdr.code = NPPN_SHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_BUFFERACTIVATED (NPPN_FIRST + 10) // To notify plugins that a buffer was activated (put to foreground). + //scnNotification->nmhdr.code = NPPN_BUFFERACTIVATED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = activatedBufferID; + + #define NPPN_LANGCHANGED (NPPN_FIRST + 11) // To notify plugins that the language in the current doc is just changed. + //scnNotification->nmhdr.code = NPPN_LANGCHANGED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = currentBufferID; + + #define NPPN_WORDSTYLESUPDATED (NPPN_FIRST + 12) // To notify plugins that user initiated a WordStyleDlg change. + //scnNotification->nmhdr.code = NPPN_WORDSTYLESUPDATED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = currentBufferID; + + #define NPPN_SHORTCUTREMAPPED (NPPN_FIRST + 13) // To notify plugins that plugin command shortcut is remapped. + //scnNotification->nmhdr.code = NPPN_SHORTCUTSREMAPPED; + //scnNotification->nmhdr.hwndFrom = ShortcutKeyStructurePointer; + //scnNotification->nmhdr.idFrom = cmdID; + //where ShortcutKeyStructurePointer is pointer of struct ShortcutKey: + //struct ShortcutKey { + // bool _isCtrl; + // bool _isAlt; + // bool _isShift; + // UCHAR _key; + //}; + + #define NPPN_FILEBEFORELOAD (NPPN_FIRST + 14) // To notify plugins that the current file is about to be loaded + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = NULL; + + #define NPPN_FILELOADFAILED (NPPN_FIRST + 15) // To notify plugins that file open operation failed + //scnNotification->nmhdr.code = NPPN_FILEOPENFAILED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_READONLYCHANGED (NPPN_FIRST + 16) // To notify plugins that current document change the readonly status, + //scnNotification->nmhdr.code = NPPN_READONLYCHANGED; + //scnNotification->nmhdr.hwndFrom = bufferID; + //scnNotification->nmhdr.idFrom = docStatus; + // where bufferID is BufferID + // docStatus can be combined by DOCSTATUS_READONLY and DOCSTATUS_BUFFERDIRTY + + #define DOCSTATUS_READONLY 1 + #define DOCSTATUS_BUFFERDIRTY 2 + + #define NPPN_DOCORDERCHANGED (NPPN_FIRST + 17) // To notify plugins that document order is changed + //scnNotification->nmhdr.code = NPPN_DOCORDERCHANGED; + //scnNotification->nmhdr.hwndFrom = newIndex; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_SNAPSHOTDIRTYFILELOADED (NPPN_FIRST + 18) // To notify plugins that a snapshot dirty file is loaded on startup + //scnNotification->nmhdr.code = NPPN_SNAPSHOTDIRTYFILELOADED; + //scnNotification->nmhdr.hwndFrom = NULL; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_BEFORESHUTDOWN (NPPN_FIRST + 19) // To notify plugins that Npp shutdown has been triggered, files have not been closed yet + //scnNotification->nmhdr.code = NPPN_BEFORESHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_CANCELSHUTDOWN (NPPN_FIRST + 20) // To notify plugins that Npp shutdown has been cancelled + //scnNotification->nmhdr.code = NPPN_CANCELSHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_FILEBEFORERENAME (NPPN_FIRST + 21) // To notify plugins that file is to be renamed + //scnNotification->nmhdr.code = NPPN_FILEBEFORERENAME; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILERENAMECANCEL (NPPN_FIRST + 22) // To notify plugins that file rename has been cancelled + //scnNotification->nmhdr.code = NPPN_FILERENAMECANCEL; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILERENAMED (NPPN_FIRST + 23) // To notify plugins that file has been renamed + //scnNotification->nmhdr.code = NPPN_FILERENAMED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEBEFOREDELETE (NPPN_FIRST + 24) // To notify plugins that file is to be deleted + //scnNotification->nmhdr.code = NPPN_FILEBEFOREDELETE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEDELETEFAILED (NPPN_FIRST + 25) // To notify plugins that file deletion has failed + //scnNotification->nmhdr.code = NPPN_FILEDELETEFAILED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEDELETED (NPPN_FIRST + 26) // To notify plugins that file has been deleted + //scnNotification->nmhdr.code = NPPN_FILEDELETED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; diff --git a/PluginDefinition.cpp b/PluginDefinition.cpp index b7dc2e1..aab3bf9 100644 --- a/PluginDefinition.cpp +++ b/PluginDefinition.cpp @@ -26,13 +26,14 @@ #include #include -const TCHAR configFileName[] = TEXT( "GitSCM.ini" ); -const TCHAR sectionName[] = TEXT( "Git" ); -const TCHAR iniKeyTortoise[] = TEXT( "Tortoise" ); -const TCHAR iniKeyGitPath[] = TEXT( "GitPath" ); -const TCHAR iniKeyGitPrompt[] = TEXT( "GitPrompt" ); -const TCHAR iniUseNppColors[] = TEXT( "UseNppColors" ); -const TCHAR iniDebug[] = TEXT( "Debug" ); +const TCHAR configFileName[] = TEXT( "GitSCM.ini" ); +const TCHAR sectionName[] = TEXT( "Git" ); +const TCHAR iniKeyTortoise[] = TEXT( "Tortoise" ); +const TCHAR iniKeyGitPath[] = TEXT( "GitPath" ); +const TCHAR iniKeyGitPrompt[] = TEXT( "GitPrompt" ); +const TCHAR iniKeyUseNppColors[] = TEXT( "UseNppColors" ); +const TCHAR iniKeyRaisePanel[] = TEXT( "RaisePanelorToggle" ); +const TCHAR iniKeyDebug[] = TEXT( "Debug" ); DemoDlg _gitPanel; @@ -55,6 +56,7 @@ TCHAR g_GitPrompt[MAX_PATH]; bool g_useTortoise = false; bool g_NppReady = false; bool g_useNppColors = false; +bool g_RaisePanel = false; bool g_Debug = false; std::wstring g_tortoiseLoc; @@ -79,8 +81,10 @@ void pluginCleanUp() g_GitPath, iniFilePath); ::WritePrivateProfileString( sectionName, iniKeyGitPrompt, g_GitPrompt, iniFilePath); - ::WritePrivateProfileString( sectionName, iniUseNppColors, + ::WritePrivateProfileString( sectionName, iniKeyUseNppColors, g_useNppColors ? TEXT( "1" ) : TEXT( "0" ), iniFilePath ); + ::WritePrivateProfileString( sectionName, iniKeyRaisePanel, + g_RaisePanel ? TEXT( "1" ) : TEXT( "0" ), iniFilePath ); if (g_TBGit.hToolbarBmp) { ::DeleteObject(g_TBGit.hToolbarBmp); @@ -119,10 +123,12 @@ void commandMenuInit() g_GitPath, MAX_PATH, iniFilePath ); ::GetPrivateProfileString( sectionName, iniKeyGitPrompt, TEXT("powershell.exe"), g_GitPrompt, MAX_PATH, iniFilePath ); - g_useNppColors = ::GetPrivateProfileInt( sectionName, iniUseNppColors, + g_useNppColors = ::GetPrivateProfileInt( sectionName, iniKeyUseNppColors, 0, iniFilePath ); - g_Debug = ::GetPrivateProfileInt( sectionName, iniDebug, + g_Debug = ::GetPrivateProfileInt( sectionName, iniKeyDebug, 0, iniFilePath ); + g_RaisePanel = ::GetPrivateProfileInt( sectionName, iniKeyRaisePanel, + 0, iniFilePath ); if ( g_useTortoise ) { @@ -405,22 +411,22 @@ void updatePanelLoc() if ( _gitPanel.isVisible() ) { std::wstring temp; - updateLoc( temp ); - updateListWithDelay(); + _gitPanel.updateLoc( temp ); + _gitPanel.updateListWithDelay(); } } void updatePanel() { if ( _gitPanel.isVisible() ) - updateList(); + _gitPanel.updateList(); } void gitPrompt() { std::wstring pathName; if ( _gitPanel.isVisible() ) - updateLoc( pathName ); + _gitPanel.updateLoc( pathName ); else pathName = getCurrentFileDirectory(); @@ -674,21 +680,21 @@ void DockableDlg() ::SendMessage( nppData._nppHandle, NPPM_DMMREGASDCKDLG, 0, ( LPARAM )&data ); - ::SendMessage( nppData._nppHandle, NPPM_SETMENUITEMCHECK, - funcItem[DOCKABLE_INDEX]._cmdID, MF_CHECKED ); - return; + _gitPanel.setClosed(true); } - if ( _gitPanel.isWindowVisible() ) + if ( _gitPanel.isClosed() || g_RaisePanel ) { - _gitPanel.display( false ); + _gitPanel.display(); + _gitPanel.setClosed(false); ::SendMessage( nppData._nppHandle, NPPM_SETMENUITEMCHECK, - funcItem[DOCKABLE_INDEX]._cmdID, MF_UNCHECKED ); + funcItem[DOCKABLE_INDEX]._cmdID, MF_CHECKED ); } else { - _gitPanel.display(); + _gitPanel.display( false ); + _gitPanel.setClosed(true); ::SendMessage( nppData._nppHandle, NPPM_SETMENUITEMCHECK, - funcItem[DOCKABLE_INDEX]._cmdID, MF_CHECKED ); + funcItem[DOCKABLE_INDEX]._cmdID, MF_UNCHECKED ); } } diff --git a/PluginInterface.h b/PluginInterface.h index 0c133f8..e280bc4 100644 --- a/PluginInterface.h +++ b/PluginInterface.h @@ -1,24 +1,22 @@ -//this file is part of notepad++ -//Copyright (C)2003 Don HO -// -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU General Public License -//as published by the Free Software Foundation; either -//version 2 of the License, or (at your option) any later version. +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. // -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + -#ifndef PLUGININTERFACE_H -#define PLUGININTERFACE_H +#pragma once -#include #include "Scintilla.h" #include "Notepad_plus_msgs.h" @@ -26,10 +24,11 @@ const int nbChar = 64; typedef const TCHAR * (__cdecl * PFUNCGETNAME)(); -struct NppData { - HWND _nppHandle; - HWND _scintillaMainHandle; - HWND _scintillaSecondHandle; +struct NppData +{ + HWND _nppHandle = nullptr; + HWND _scintillaMainHandle = nullptr; + HWND _scintillaSecondHandle = nullptr; }; typedef void (__cdecl * PFUNCSETINFO)(NppData); @@ -38,19 +37,21 @@ typedef void (__cdecl * PBENOTIFIED)(SCNotification *); typedef LRESULT (__cdecl * PMESSAGEPROC)(UINT Message, WPARAM wParam, LPARAM lParam); -struct ShortcutKey { - bool _isCtrl; - bool _isAlt; - bool _isShift; - UCHAR _key; +struct ShortcutKey +{ + bool _isCtrl = false; + bool _isAlt = false; + bool _isShift = false; + UCHAR _key = 0; }; -struct FuncItem { - TCHAR _itemName[nbChar]; - PFUNCPLUGINCMD _pFunc; - int _cmdID; - bool _init2Check; - ShortcutKey *_pShKey; +struct FuncItem +{ + TCHAR _itemName[nbChar] = { '\0' }; + PFUNCPLUGINCMD _pFunc = nullptr; + int _cmdID = 0; + bool _init2Check = false; + ShortcutKey *_pShKey = nullptr; }; typedef FuncItem * (__cdecl * PFUNCGETFUNCSARRAY)(int *); @@ -62,8 +63,6 @@ extern "C" __declspec(dllexport) FuncItem * getFuncsArray(int *); extern "C" __declspec(dllexport) void beNotified(SCNotification *); extern "C" __declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam); -#ifdef UNICODE +// This API return always true now, since Notepad++ isn't compiled in ANSI mode anymore extern "C" __declspec(dllexport) BOOL isUnicode(); -#endif //UNICODE -#endif //PLUGININTERFACE_H \ No newline at end of file diff --git a/Scintilla.h b/Scintilla.h index 201d49e..44ba7ad 100644 --- a/Scintilla.h +++ b/Scintilla.h @@ -1,1316 +1,1316 @@ -/* Scintilla source code edit control */ -/** @file Scintilla.h - ** Interface to the edit control. - **/ -/* Copyright 1998-2003 by Neil Hodgson - * The License.txt file describes the conditions under which this software may be distributed. */ - -/* Most of this file is automatically generated from the Scintilla.iface interface definition - * file which contains any comments about the definitions. HFacer.py does the generation. */ - -#ifndef SCINTILLA_H -#define SCINTILLA_H - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_WIN32) -/* Return false on failure: */ -int Scintilla_RegisterClasses(void *hInstance); -int Scintilla_ReleaseResources(void); -#endif -int Scintilla_LinkLexers(void); - -#ifdef __cplusplus -} -#endif - -// Include header that defines basic numeric types. -#include - -// Define uptr_t, an unsigned integer type large enough to hold a pointer. -typedef uintptr_t uptr_t; -// Define sptr_t, a signed integer large enough to hold a pointer. -typedef intptr_t sptr_t; - -#include "Sci_Position.h" - -typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); - -#ifndef SCI_DISABLE_AUTOGENERATED - -/* ++Autogenerated -- start of section automatically generated from Scintilla.iface */ -#define INVALID_POSITION -1 -#define SCI_START 2000 -#define SCI_OPTIONAL_START 3000 -#define SCI_LEXER_START 4000 -#define SCI_ADDTEXT 2001 -#define SCI_ADDSTYLEDTEXT 2002 -#define SCI_INSERTTEXT 2003 -#define SCI_CHANGEINSERTION 2672 -#define SCI_CLEARALL 2004 -#define SCI_DELETERANGE 2645 -#define SCI_CLEARDOCUMENTSTYLE 2005 -#define SCI_GETLENGTH 2006 -#define SCI_GETCHARAT 2007 -#define SCI_GETCURRENTPOS 2008 -#define SCI_GETANCHOR 2009 -#define SCI_GETSTYLEAT 2010 -#define SCI_REDO 2011 -#define SCI_SETUNDOCOLLECTION 2012 -#define SCI_SELECTALL 2013 -#define SCI_SETSAVEPOINT 2014 -#define SCI_GETSTYLEDTEXT 2015 -#define SCI_CANREDO 2016 -#define SCI_MARKERLINEFROMHANDLE 2017 -#define SCI_MARKERDELETEHANDLE 2018 -#define SCI_MARKERHANDLEFROMLINE 2732 -#define SCI_MARKERNUMBERFROMLINE 2733 -#define SCI_GETUNDOCOLLECTION 2019 -#define SCWS_INVISIBLE 0 -#define SCWS_VISIBLEALWAYS 1 -#define SCWS_VISIBLEAFTERINDENT 2 -#define SCWS_VISIBLEONLYININDENT 3 -#define SCI_GETVIEWWS 2020 -#define SCI_SETVIEWWS 2021 -#define SCTD_LONGARROW 0 -#define SCTD_STRIKEOUT 1 -#define SCI_GETTABDRAWMODE 2698 -#define SCI_SETTABDRAWMODE 2699 -#define SCI_POSITIONFROMPOINT 2022 -#define SCI_POSITIONFROMPOINTCLOSE 2023 -#define SCI_GOTOLINE 2024 -#define SCI_GOTOPOS 2025 -#define SCI_SETANCHOR 2026 -#define SCI_GETCURLINE 2027 -#define SCI_GETENDSTYLED 2028 -#define SC_EOL_CRLF 0 -#define SC_EOL_CR 1 -#define SC_EOL_LF 2 -#define SCI_CONVERTEOLS 2029 -#define SCI_GETEOLMODE 2030 -#define SCI_SETEOLMODE 2031 -#define SCI_STARTSTYLING 2032 -#define SCI_SETSTYLING 2033 -#define SCI_GETBUFFEREDDRAW 2034 -#define SCI_SETBUFFEREDDRAW 2035 -#define SCI_SETTABWIDTH 2036 -#define SCI_GETTABWIDTH 2121 -#define SCI_SETTABMINIMUMWIDTH 2724 -#define SCI_GETTABMINIMUMWIDTH 2725 -#define SCI_CLEARTABSTOPS 2675 -#define SCI_ADDTABSTOP 2676 -#define SCI_GETNEXTTABSTOP 2677 -#define SC_CP_UTF8 65001 -#define SCI_SETCODEPAGE 2037 -#define SC_IME_WINDOWED 0 -#define SC_IME_INLINE 1 -#define SCI_GETIMEINTERACTION 2678 -#define SCI_SETIMEINTERACTION 2679 -#define SC_ALPHA_TRANSPARENT 0 -#define SC_ALPHA_OPAQUE 255 -#define SC_ALPHA_NOALPHA 256 -#define SC_CURSORNORMAL -1 -#define SC_CURSORARROW 2 -#define SC_CURSORWAIT 4 -#define SC_CURSORREVERSEARROW 7 -#define MARKER_MAX 31 -#define SC_MARK_CIRCLE 0 -#define SC_MARK_ROUNDRECT 1 -#define SC_MARK_ARROW 2 -#define SC_MARK_SMALLRECT 3 -#define SC_MARK_SHORTARROW 4 -#define SC_MARK_EMPTY 5 -#define SC_MARK_ARROWDOWN 6 -#define SC_MARK_MINUS 7 -#define SC_MARK_PLUS 8 -#define SC_MARK_VLINE 9 -#define SC_MARK_LCORNER 10 -#define SC_MARK_TCORNER 11 -#define SC_MARK_BOXPLUS 12 -#define SC_MARK_BOXPLUSCONNECTED 13 -#define SC_MARK_BOXMINUS 14 -#define SC_MARK_BOXMINUSCONNECTED 15 -#define SC_MARK_LCORNERCURVE 16 -#define SC_MARK_TCORNERCURVE 17 -#define SC_MARK_CIRCLEPLUS 18 -#define SC_MARK_CIRCLEPLUSCONNECTED 19 -#define SC_MARK_CIRCLEMINUS 20 -#define SC_MARK_CIRCLEMINUSCONNECTED 21 -#define SC_MARK_BACKGROUND 22 -#define SC_MARK_DOTDOTDOT 23 -#define SC_MARK_ARROWS 24 -#define SC_MARK_PIXMAP 25 -#define SC_MARK_FULLRECT 26 -#define SC_MARK_LEFTRECT 27 -#define SC_MARK_AVAILABLE 28 -#define SC_MARK_UNDERLINE 29 -#define SC_MARK_RGBAIMAGE 30 -#define SC_MARK_BOOKMARK 31 -#define SC_MARK_VERTICALBOOKMARK 32 -#define SC_MARK_CHARACTER 10000 -#define SC_MARKNUM_FOLDEREND 25 -#define SC_MARKNUM_FOLDEROPENMID 26 -#define SC_MARKNUM_FOLDERMIDTAIL 27 -#define SC_MARKNUM_FOLDERTAIL 28 -#define SC_MARKNUM_FOLDERSUB 29 -#define SC_MARKNUM_FOLDER 30 -#define SC_MARKNUM_FOLDEROPEN 31 -#define SC_MASK_FOLDERS 0xFE000000 -#define SCI_MARKERDEFINE 2040 -#define SCI_MARKERSETFORE 2041 -#define SCI_MARKERSETBACK 2042 -#define SCI_MARKERSETBACKSELECTED 2292 -#define SCI_MARKERENABLEHIGHLIGHT 2293 -#define SCI_MARKERADD 2043 -#define SCI_MARKERDELETE 2044 -#define SCI_MARKERDELETEALL 2045 -#define SCI_MARKERGET 2046 -#define SCI_MARKERNEXT 2047 -#define SCI_MARKERPREVIOUS 2048 -#define SCI_MARKERDEFINEPIXMAP 2049 -#define SCI_MARKERADDSET 2466 -#define SCI_MARKERSETALPHA 2476 -#define SC_MAX_MARGIN 4 -#define SC_MARGIN_SYMBOL 0 -#define SC_MARGIN_NUMBER 1 -#define SC_MARGIN_BACK 2 -#define SC_MARGIN_FORE 3 -#define SC_MARGIN_TEXT 4 -#define SC_MARGIN_RTEXT 5 -#define SC_MARGIN_COLOUR 6 -#define SCI_SETMARGINTYPEN 2240 -#define SCI_GETMARGINTYPEN 2241 -#define SCI_SETMARGINWIDTHN 2242 -#define SCI_GETMARGINWIDTHN 2243 -#define SCI_SETMARGINMASKN 2244 -#define SCI_GETMARGINMASKN 2245 -#define SCI_SETMARGINSENSITIVEN 2246 -#define SCI_GETMARGINSENSITIVEN 2247 -#define SCI_SETMARGINCURSORN 2248 -#define SCI_GETMARGINCURSORN 2249 -#define SCI_SETMARGINBACKN 2250 -#define SCI_GETMARGINBACKN 2251 -#define SCI_SETMARGINS 2252 -#define SCI_GETMARGINS 2253 -#define STYLE_DEFAULT 32 -#define STYLE_LINENUMBER 33 -#define STYLE_BRACELIGHT 34 -#define STYLE_BRACEBAD 35 -#define STYLE_CONTROLCHAR 36 -#define STYLE_INDENTGUIDE 37 -#define STYLE_CALLTIP 38 -#define STYLE_FOLDDISPLAYTEXT 39 -#define STYLE_LASTPREDEFINED 39 -#define STYLE_MAX 255 -#define SC_CHARSET_ANSI 0 -#define SC_CHARSET_DEFAULT 1 -#define SC_CHARSET_BALTIC 186 -#define SC_CHARSET_CHINESEBIG5 136 -#define SC_CHARSET_EASTEUROPE 238 -#define SC_CHARSET_GB2312 134 -#define SC_CHARSET_GREEK 161 -#define SC_CHARSET_HANGUL 129 -#define SC_CHARSET_MAC 77 -#define SC_CHARSET_OEM 255 -#define SC_CHARSET_RUSSIAN 204 -#define SC_CHARSET_OEM866 866 -#define SC_CHARSET_CYRILLIC 1251 -#define SC_CHARSET_SHIFTJIS 128 -#define SC_CHARSET_SYMBOL 2 -#define SC_CHARSET_TURKISH 162 -#define SC_CHARSET_JOHAB 130 -#define SC_CHARSET_HEBREW 177 -#define SC_CHARSET_ARABIC 178 -#define SC_CHARSET_VIETNAMESE 163 -#define SC_CHARSET_THAI 222 -#define SC_CHARSET_8859_15 1000 -#define SCI_STYLECLEARALL 2050 -#define SCI_STYLESETFORE 2051 -#define SCI_STYLESETBACK 2052 -#define SCI_STYLESETBOLD 2053 -#define SCI_STYLESETITALIC 2054 -#define SCI_STYLESETSIZE 2055 -#define SCI_STYLESETFONT 2056 -#define SCI_STYLESETEOLFILLED 2057 -#define SCI_STYLERESETDEFAULT 2058 -#define SCI_STYLESETUNDERLINE 2059 -#define SC_CASE_MIXED 0 -#define SC_CASE_UPPER 1 -#define SC_CASE_LOWER 2 -#define SC_CASE_CAMEL 3 -#define SCI_STYLEGETFORE 2481 -#define SCI_STYLEGETBACK 2482 -#define SCI_STYLEGETBOLD 2483 -#define SCI_STYLEGETITALIC 2484 -#define SCI_STYLEGETSIZE 2485 -#define SCI_STYLEGETFONT 2486 -#define SCI_STYLEGETEOLFILLED 2487 -#define SCI_STYLEGETUNDERLINE 2488 -#define SCI_STYLEGETCASE 2489 -#define SCI_STYLEGETCHARACTERSET 2490 -#define SCI_STYLEGETVISIBLE 2491 -#define SCI_STYLEGETCHANGEABLE 2492 -#define SCI_STYLEGETHOTSPOT 2493 -#define SCI_STYLESETCASE 2060 -#define SC_FONT_SIZE_MULTIPLIER 100 -#define SCI_STYLESETSIZEFRACTIONAL 2061 -#define SCI_STYLEGETSIZEFRACTIONAL 2062 -#define SC_WEIGHT_NORMAL 400 -#define SC_WEIGHT_SEMIBOLD 600 -#define SC_WEIGHT_BOLD 700 -#define SCI_STYLESETWEIGHT 2063 -#define SCI_STYLEGETWEIGHT 2064 -#define SCI_STYLESETCHARACTERSET 2066 -#define SCI_STYLESETHOTSPOT 2409 -#define SCI_SETSELFORE 2067 -#define SCI_SETSELBACK 2068 -#define SCI_GETSELALPHA 2477 -#define SCI_SETSELALPHA 2478 -#define SCI_GETSELEOLFILLED 2479 -#define SCI_SETSELEOLFILLED 2480 -#define SCI_SETCARETFORE 2069 -#define SCI_ASSIGNCMDKEY 2070 -#define SCI_CLEARCMDKEY 2071 -#define SCI_CLEARALLCMDKEYS 2072 -#define SCI_SETSTYLINGEX 2073 -#define SCI_STYLESETVISIBLE 2074 -#define SCI_GETCARETPERIOD 2075 -#define SCI_SETCARETPERIOD 2076 -#define SCI_SETWORDCHARS 2077 -#define SCI_GETWORDCHARS 2646 -#define SCI_SETCHARACTERCATEGORYOPTIMIZATION 2720 -#define SCI_GETCHARACTERCATEGORYOPTIMIZATION 2721 -#define SCI_BEGINUNDOACTION 2078 -#define SCI_ENDUNDOACTION 2079 -#define INDIC_PLAIN 0 -#define INDIC_SQUIGGLE 1 -#define INDIC_TT 2 -#define INDIC_DIAGONAL 3 -#define INDIC_STRIKE 4 -#define INDIC_HIDDEN 5 -#define INDIC_BOX 6 -#define INDIC_ROUNDBOX 7 -#define INDIC_STRAIGHTBOX 8 -#define INDIC_DASH 9 -#define INDIC_DOTS 10 -#define INDIC_SQUIGGLELOW 11 -#define INDIC_DOTBOX 12 -#define INDIC_SQUIGGLEPIXMAP 13 -#define INDIC_COMPOSITIONTHICK 14 -#define INDIC_COMPOSITIONTHIN 15 -#define INDIC_FULLBOX 16 -#define INDIC_TEXTFORE 17 -#define INDIC_POINT 18 -#define INDIC_POINTCHARACTER 19 -#define INDIC_GRADIENT 20 -#define INDIC_GRADIENTCENTRE 21 -#define INDIC_EXPLORERLINK 22 -#define INDIC_CONTAINER 8 -#define INDIC_IME 32 -#define INDIC_IME_MAX 35 -#define INDIC_MAX 35 -#define INDICATOR_CONTAINER 8 -#define INDICATOR_IME 32 -#define INDICATOR_IME_MAX 35 -#define INDICATOR_MAX 35 -#define SCI_INDICSETSTYLE 2080 -#define SCI_INDICGETSTYLE 2081 -#define SCI_INDICSETFORE 2082 -#define SCI_INDICGETFORE 2083 -#define SCI_INDICSETUNDER 2510 -#define SCI_INDICGETUNDER 2511 -#define SCI_INDICSETHOVERSTYLE 2680 -#define SCI_INDICGETHOVERSTYLE 2681 -#define SCI_INDICSETHOVERFORE 2682 -#define SCI_INDICGETHOVERFORE 2683 -#define SC_INDICVALUEBIT 0x1000000 -#define SC_INDICVALUEMASK 0xFFFFFF -#define SC_INDICFLAG_VALUEFORE 1 -#define SCI_INDICSETFLAGS 2684 -#define SCI_INDICGETFLAGS 2685 -#define SCI_SETWHITESPACEFORE 2084 -#define SCI_SETWHITESPACEBACK 2085 -#define SCI_SETWHITESPACESIZE 2086 -#define SCI_GETWHITESPACESIZE 2087 -#define SCI_SETLINESTATE 2092 -#define SCI_GETLINESTATE 2093 -#define SCI_GETMAXLINESTATE 2094 -#define SCI_GETCARETLINEVISIBLE 2095 -#define SCI_SETCARETLINEVISIBLE 2096 -#define SCI_GETCARETLINEBACK 2097 -#define SCI_SETCARETLINEBACK 2098 -#define SCI_GETCARETLINEFRAME 2704 -#define SCI_SETCARETLINEFRAME 2705 -#define SCI_STYLESETCHANGEABLE 2099 -#define SCI_AUTOCSHOW 2100 -#define SCI_AUTOCCANCEL 2101 -#define SCI_AUTOCACTIVE 2102 -#define SCI_AUTOCPOSSTART 2103 -#define SCI_AUTOCCOMPLETE 2104 -#define SCI_AUTOCSTOPS 2105 -#define SCI_AUTOCSETSEPARATOR 2106 -#define SCI_AUTOCGETSEPARATOR 2107 -#define SCI_AUTOCSELECT 2108 -#define SCI_AUTOCSETCANCELATSTART 2110 -#define SCI_AUTOCGETCANCELATSTART 2111 -#define SCI_AUTOCSETFILLUPS 2112 -#define SCI_AUTOCSETCHOOSESINGLE 2113 -#define SCI_AUTOCGETCHOOSESINGLE 2114 -#define SCI_AUTOCSETIGNORECASE 2115 -#define SCI_AUTOCGETIGNORECASE 2116 -#define SCI_USERLISTSHOW 2117 -#define SCI_AUTOCSETAUTOHIDE 2118 -#define SCI_AUTOCGETAUTOHIDE 2119 -#define SCI_AUTOCSETDROPRESTOFWORD 2270 -#define SCI_AUTOCGETDROPRESTOFWORD 2271 -#define SCI_REGISTERIMAGE 2405 -#define SCI_CLEARREGISTEREDIMAGES 2408 -#define SCI_AUTOCGETTYPESEPARATOR 2285 -#define SCI_AUTOCSETTYPESEPARATOR 2286 -#define SCI_AUTOCSETMAXWIDTH 2208 -#define SCI_AUTOCGETMAXWIDTH 2209 -#define SCI_AUTOCSETMAXHEIGHT 2210 -#define SCI_AUTOCGETMAXHEIGHT 2211 -#define SCI_SETINDENT 2122 -#define SCI_GETINDENT 2123 -#define SCI_SETUSETABS 2124 -#define SCI_GETUSETABS 2125 -#define SCI_SETLINEINDENTATION 2126 -#define SCI_GETLINEINDENTATION 2127 -#define SCI_GETLINEINDENTPOSITION 2128 -#define SCI_GETCOLUMN 2129 -#define SCI_COUNTCHARACTERS 2633 -#define SCI_COUNTCODEUNITS 2715 -#define SCI_SETHSCROLLBAR 2130 -#define SCI_GETHSCROLLBAR 2131 -#define SC_IV_NONE 0 -#define SC_IV_REAL 1 -#define SC_IV_LOOKFORWARD 2 -#define SC_IV_LOOKBOTH 3 -#define SCI_SETINDENTATIONGUIDES 2132 -#define SCI_GETINDENTATIONGUIDES 2133 -#define SCI_SETHIGHLIGHTGUIDE 2134 -#define SCI_GETHIGHLIGHTGUIDE 2135 -#define SCI_GETLINEENDPOSITION 2136 -#define SCI_GETCODEPAGE 2137 -#define SCI_GETCARETFORE 2138 -#define SCI_GETREADONLY 2140 -#define SCI_SETCURRENTPOS 2141 -#define SCI_SETSELECTIONSTART 2142 -#define SCI_GETSELECTIONSTART 2143 -#define SCI_SETSELECTIONEND 2144 -#define SCI_GETSELECTIONEND 2145 -#define SCI_SETEMPTYSELECTION 2556 -#define SCI_SETPRINTMAGNIFICATION 2146 -#define SCI_GETPRINTMAGNIFICATION 2147 -#define SC_PRINT_NORMAL 0 -#define SC_PRINT_INVERTLIGHT 1 -#define SC_PRINT_BLACKONWHITE 2 -#define SC_PRINT_COLOURONWHITE 3 -#define SC_PRINT_COLOURONWHITEDEFAULTBG 4 -#define SC_PRINT_SCREENCOLOURS 5 -#define SCI_SETPRINTCOLOURMODE 2148 -#define SCI_GETPRINTCOLOURMODE 2149 -#define SCFIND_NONE 0x0 -#define SCFIND_WHOLEWORD 0x2 -#define SCFIND_MATCHCASE 0x4 -#define SCFIND_WORDSTART 0x00100000 -#define SCFIND_REGEXP 0x00200000 -#define SCFIND_POSIX 0x00400000 -#define SCFIND_CXX11REGEX 0x00800000 -#define SCI_FINDTEXT 2150 -#define SCI_FORMATRANGE 2151 -#define SCI_GETFIRSTVISIBLELINE 2152 -#define SCI_GETLINE 2153 -#define SCI_GETLINECOUNT 2154 -#define SCI_SETMARGINLEFT 2155 -#define SCI_GETMARGINLEFT 2156 -#define SCI_SETMARGINRIGHT 2157 -#define SCI_GETMARGINRIGHT 2158 -#define SCI_GETMODIFY 2159 -#define SCI_SETSEL 2160 -#define SCI_GETSELTEXT 2161 -#define SCI_GETTEXTRANGE 2162 -#define SCI_HIDESELECTION 2163 -#define SCI_POINTXFROMPOSITION 2164 -#define SCI_POINTYFROMPOSITION 2165 -#define SCI_LINEFROMPOSITION 2166 -#define SCI_POSITIONFROMLINE 2167 -#define SCI_LINESCROLL 2168 -#define SCI_SCROLLCARET 2169 -#define SCI_SCROLLRANGE 2569 -#define SCI_REPLACESEL 2170 -#define SCI_SETREADONLY 2171 -#define SCI_NULL 2172 -#define SCI_CANPASTE 2173 -#define SCI_CANUNDO 2174 -#define SCI_EMPTYUNDOBUFFER 2175 -#define SCI_UNDO 2176 -#define SCI_CUT 2177 -#define SCI_COPY 2178 -#define SCI_PASTE 2179 -#define SCI_CLEAR 2180 -#define SCI_SETTEXT 2181 -#define SCI_GETTEXT 2182 -#define SCI_GETTEXTLENGTH 2183 -#define SCI_GETDIRECTFUNCTION 2184 -#define SCI_GETDIRECTPOINTER 2185 -#define SCI_SETOVERTYPE 2186 -#define SCI_GETOVERTYPE 2187 -#define SCI_SETCARETWIDTH 2188 -#define SCI_GETCARETWIDTH 2189 -#define SCI_SETTARGETSTART 2190 -#define SCI_GETTARGETSTART 2191 -#define SCI_SETTARGETSTARTVIRTUALSPACE 2728 -#define SCI_GETTARGETSTARTVIRTUALSPACE 2729 -#define SCI_SETTARGETEND 2192 -#define SCI_GETTARGETEND 2193 -#define SCI_SETTARGETENDVIRTUALSPACE 2730 -#define SCI_GETTARGETENDVIRTUALSPACE 2731 -#define SCI_SETTARGETRANGE 2686 -#define SCI_GETTARGETTEXT 2687 -#define SCI_TARGETFROMSELECTION 2287 -#define SCI_TARGETWHOLEDOCUMENT 2690 -#define SCI_REPLACETARGET 2194 -#define SCI_REPLACETARGETRE 2195 -#define SCI_SEARCHINTARGET 2197 -#define SCI_SETSEARCHFLAGS 2198 -#define SCI_GETSEARCHFLAGS 2199 -#define SCI_CALLTIPSHOW 2200 -#define SCI_CALLTIPCANCEL 2201 -#define SCI_CALLTIPACTIVE 2202 -#define SCI_CALLTIPPOSSTART 2203 -#define SCI_CALLTIPSETPOSSTART 2214 -#define SCI_CALLTIPSETHLT 2204 -#define SCI_CALLTIPSETBACK 2205 -#define SCI_CALLTIPSETFORE 2206 -#define SCI_CALLTIPSETFOREHLT 2207 -#define SCI_CALLTIPUSESTYLE 2212 -#define SCI_CALLTIPSETPOSITION 2213 -#define SCI_VISIBLEFROMDOCLINE 2220 -#define SCI_DOCLINEFROMVISIBLE 2221 -#define SCI_WRAPCOUNT 2235 -#define SC_FOLDLEVELBASE 0x400 -#define SC_FOLDLEVELWHITEFLAG 0x1000 -#define SC_FOLDLEVELHEADERFLAG 0x2000 -#define SC_FOLDLEVELNUMBERMASK 0x0FFF -#define SCI_SETFOLDLEVEL 2222 -#define SCI_GETFOLDLEVEL 2223 -#define SCI_GETLASTCHILD 2224 -#define SCI_GETFOLDPARENT 2225 -#define SCI_SHOWLINES 2226 -#define SCI_HIDELINES 2227 -#define SCI_GETLINEVISIBLE 2228 -#define SCI_GETALLLINESVISIBLE 2236 -#define SCI_SETFOLDEXPANDED 2229 -#define SCI_GETFOLDEXPANDED 2230 -#define SCI_TOGGLEFOLD 2231 -#define SCI_TOGGLEFOLDSHOWTEXT 2700 -#define SC_FOLDDISPLAYTEXT_HIDDEN 0 -#define SC_FOLDDISPLAYTEXT_STANDARD 1 -#define SC_FOLDDISPLAYTEXT_BOXED 2 -#define SCI_FOLDDISPLAYTEXTSETSTYLE 2701 -#define SCI_FOLDDISPLAYTEXTGETSTYLE 2707 -#define SCI_SETDEFAULTFOLDDISPLAYTEXT 2722 -#define SCI_GETDEFAULTFOLDDISPLAYTEXT 2723 -#define SC_FOLDACTION_CONTRACT 0 -#define SC_FOLDACTION_EXPAND 1 -#define SC_FOLDACTION_TOGGLE 2 -#define SCI_FOLDLINE 2237 -#define SCI_FOLDCHILDREN 2238 -#define SCI_EXPANDCHILDREN 2239 -#define SCI_FOLDALL 2662 -#define SCI_ENSUREVISIBLE 2232 -#define SC_AUTOMATICFOLD_SHOW 0x0001 -#define SC_AUTOMATICFOLD_CLICK 0x0002 -#define SC_AUTOMATICFOLD_CHANGE 0x0004 -#define SCI_SETAUTOMATICFOLD 2663 -#define SCI_GETAUTOMATICFOLD 2664 -#define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 -#define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 -#define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 -#define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 -#define SC_FOLDFLAG_LEVELNUMBERS 0x0040 -#define SC_FOLDFLAG_LINESTATE 0x0080 -#define SCI_SETFOLDFLAGS 2233 -#define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 -#define SCI_SETTABINDENTS 2260 -#define SCI_GETTABINDENTS 2261 -#define SCI_SETBACKSPACEUNINDENTS 2262 -#define SCI_GETBACKSPACEUNINDENTS 2263 -#define SC_TIME_FOREVER 10000000 -#define SCI_SETMOUSEDWELLTIME 2264 -#define SCI_GETMOUSEDWELLTIME 2265 -#define SCI_WORDSTARTPOSITION 2266 -#define SCI_WORDENDPOSITION 2267 -#define SCI_ISRANGEWORD 2691 -#define SC_IDLESTYLING_NONE 0 -#define SC_IDLESTYLING_TOVISIBLE 1 -#define SC_IDLESTYLING_AFTERVISIBLE 2 -#define SC_IDLESTYLING_ALL 3 -#define SCI_SETIDLESTYLING 2692 -#define SCI_GETIDLESTYLING 2693 -#define SC_WRAP_NONE 0 -#define SC_WRAP_WORD 1 -#define SC_WRAP_CHAR 2 -#define SC_WRAP_WHITESPACE 3 -#define SCI_SETWRAPMODE 2268 -#define SCI_GETWRAPMODE 2269 -#define SC_WRAPVISUALFLAG_NONE 0x0000 -#define SC_WRAPVISUALFLAG_END 0x0001 -#define SC_WRAPVISUALFLAG_START 0x0002 -#define SC_WRAPVISUALFLAG_MARGIN 0x0004 -#define SCI_SETWRAPVISUALFLAGS 2460 -#define SCI_GETWRAPVISUALFLAGS 2461 -#define SC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 -#define SC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 -#define SC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 -#define SCI_SETWRAPVISUALFLAGSLOCATION 2462 -#define SCI_GETWRAPVISUALFLAGSLOCATION 2463 -#define SCI_SETWRAPSTARTINDENT 2464 -#define SCI_GETWRAPSTARTINDENT 2465 -#define SC_WRAPINDENT_FIXED 0 -#define SC_WRAPINDENT_SAME 1 -#define SC_WRAPINDENT_INDENT 2 -#define SC_WRAPINDENT_DEEPINDENT 3 -#define SCI_SETWRAPINDENTMODE 2472 -#define SCI_GETWRAPINDENTMODE 2473 -#define SC_CACHE_NONE 0 -#define SC_CACHE_CARET 1 -#define SC_CACHE_PAGE 2 -#define SC_CACHE_DOCUMENT 3 -#define SCI_SETLAYOUTCACHE 2272 -#define SCI_GETLAYOUTCACHE 2273 -#define SCI_SETSCROLLWIDTH 2274 -#define SCI_GETSCROLLWIDTH 2275 -#define SCI_SETSCROLLWIDTHTRACKING 2516 -#define SCI_GETSCROLLWIDTHTRACKING 2517 -#define SCI_TEXTWIDTH 2276 -#define SCI_SETENDATLASTLINE 2277 -#define SCI_GETENDATLASTLINE 2278 -#define SCI_TEXTHEIGHT 2279 -#define SCI_SETVSCROLLBAR 2280 -#define SCI_GETVSCROLLBAR 2281 -#define SCI_APPENDTEXT 2282 -#define SC_PHASES_ONE 0 -#define SC_PHASES_TWO 1 -#define SC_PHASES_MULTIPLE 2 -#define SCI_GETPHASESDRAW 2673 -#define SCI_SETPHASESDRAW 2674 -#define SC_EFF_QUALITY_MASK 0xF -#define SC_EFF_QUALITY_DEFAULT 0 -#define SC_EFF_QUALITY_NON_ANTIALIASED 1 -#define SC_EFF_QUALITY_ANTIALIASED 2 -#define SC_EFF_QUALITY_LCD_OPTIMIZED 3 -#define SCI_SETFONTQUALITY 2611 -#define SCI_GETFONTQUALITY 2612 -#define SCI_SETFIRSTVISIBLELINE 2613 -#define SC_MULTIPASTE_ONCE 0 -#define SC_MULTIPASTE_EACH 1 -#define SCI_SETMULTIPASTE 2614 -#define SCI_GETMULTIPASTE 2615 -#define SCI_GETTAG 2616 -#define SCI_LINESJOIN 2288 -#define SCI_LINESSPLIT 2289 -#define SCI_SETFOLDMARGINCOLOUR 2290 -#define SCI_SETFOLDMARGINHICOLOUR 2291 -#define SC_ACCESSIBILITY_DISABLED 0 -#define SC_ACCESSIBILITY_ENABLED 1 -#define SCI_SETACCESSIBILITY 2702 -#define SCI_GETACCESSIBILITY 2703 -#define SCI_LINEDOWN 2300 -#define SCI_LINEDOWNEXTEND 2301 -#define SCI_LINEUP 2302 -#define SCI_LINEUPEXTEND 2303 -#define SCI_CHARLEFT 2304 -#define SCI_CHARLEFTEXTEND 2305 -#define SCI_CHARRIGHT 2306 -#define SCI_CHARRIGHTEXTEND 2307 -#define SCI_WORDLEFT 2308 -#define SCI_WORDLEFTEXTEND 2309 -#define SCI_WORDRIGHT 2310 -#define SCI_WORDRIGHTEXTEND 2311 -#define SCI_HOME 2312 -#define SCI_HOMEEXTEND 2313 -#define SCI_LINEEND 2314 -#define SCI_LINEENDEXTEND 2315 -#define SCI_DOCUMENTSTART 2316 -#define SCI_DOCUMENTSTARTEXTEND 2317 -#define SCI_DOCUMENTEND 2318 -#define SCI_DOCUMENTENDEXTEND 2319 -#define SCI_PAGEUP 2320 -#define SCI_PAGEUPEXTEND 2321 -#define SCI_PAGEDOWN 2322 -#define SCI_PAGEDOWNEXTEND 2323 -#define SCI_EDITTOGGLEOVERTYPE 2324 -#define SCI_CANCEL 2325 -#define SCI_DELETEBACK 2326 -#define SCI_TAB 2327 -#define SCI_BACKTAB 2328 -#define SCI_NEWLINE 2329 -#define SCI_FORMFEED 2330 -#define SCI_VCHOME 2331 -#define SCI_VCHOMEEXTEND 2332 -#define SCI_ZOOMIN 2333 -#define SCI_ZOOMOUT 2334 -#define SCI_DELWORDLEFT 2335 -#define SCI_DELWORDRIGHT 2336 -#define SCI_DELWORDRIGHTEND 2518 -#define SCI_LINECUT 2337 -#define SCI_LINEDELETE 2338 -#define SCI_LINETRANSPOSE 2339 -#define SCI_LINEREVERSE 2354 -#define SCI_LINEDUPLICATE 2404 -#define SCI_LOWERCASE 2340 -#define SCI_UPPERCASE 2341 -#define SCI_LINESCROLLDOWN 2342 -#define SCI_LINESCROLLUP 2343 -#define SCI_DELETEBACKNOTLINE 2344 -#define SCI_HOMEDISPLAY 2345 -#define SCI_HOMEDISPLAYEXTEND 2346 -#define SCI_LINEENDDISPLAY 2347 -#define SCI_LINEENDDISPLAYEXTEND 2348 -#define SCI_HOMEWRAP 2349 -#define SCI_HOMEWRAPEXTEND 2450 -#define SCI_LINEENDWRAP 2451 -#define SCI_LINEENDWRAPEXTEND 2452 -#define SCI_VCHOMEWRAP 2453 -#define SCI_VCHOMEWRAPEXTEND 2454 -#define SCI_LINECOPY 2455 -#define SCI_MOVECARETINSIDEVIEW 2401 -#define SCI_LINELENGTH 2350 -#define SCI_BRACEHIGHLIGHT 2351 -#define SCI_BRACEHIGHLIGHTINDICATOR 2498 -#define SCI_BRACEBADLIGHT 2352 -#define SCI_BRACEBADLIGHTINDICATOR 2499 -#define SCI_BRACEMATCH 2353 -#define SCI_BRACEMATCHNEXT 2369 -#define SCI_GETVIEWEOL 2355 -#define SCI_SETVIEWEOL 2356 -#define SCI_GETDOCPOINTER 2357 -#define SCI_SETDOCPOINTER 2358 -#define SCI_SETMODEVENTMASK 2359 -#define EDGE_NONE 0 -#define EDGE_LINE 1 -#define EDGE_BACKGROUND 2 -#define EDGE_MULTILINE 3 -#define SCI_GETEDGECOLUMN 2360 -#define SCI_SETEDGECOLUMN 2361 -#define SCI_GETEDGEMODE 2362 -#define SCI_SETEDGEMODE 2363 -#define SCI_GETEDGECOLOUR 2364 -#define SCI_SETEDGECOLOUR 2365 -#define SCI_MULTIEDGEADDLINE 2694 -#define SCI_MULTIEDGECLEARALL 2695 -#define SCI_GETMULTIEDGECOLUMN 2749 -#define SCI_SEARCHANCHOR 2366 -#define SCI_SEARCHNEXT 2367 -#define SCI_SEARCHPREV 2368 -#define SCI_LINESONSCREEN 2370 -#define SC_POPUP_NEVER 0 -#define SC_POPUP_ALL 1 -#define SC_POPUP_TEXT 2 -#define SCI_USEPOPUP 2371 -#define SCI_SELECTIONISRECTANGLE 2372 -#define SCI_SETZOOM 2373 -#define SCI_GETZOOM 2374 -#define SC_DOCUMENTOPTION_DEFAULT 0 -#define SC_DOCUMENTOPTION_STYLES_NONE 0x1 -#define SC_DOCUMENTOPTION_TEXT_LARGE 0x100 -#define SCI_CREATEDOCUMENT 2375 -#define SCI_ADDREFDOCUMENT 2376 -#define SCI_RELEASEDOCUMENT 2377 -#define SCI_GETDOCUMENTOPTIONS 2379 -#define SCI_GETMODEVENTMASK 2378 -#define SCI_SETCOMMANDEVENTS 2717 -#define SCI_GETCOMMANDEVENTS 2718 -#define SCI_SETFOCUS 2380 -#define SCI_GETFOCUS 2381 -#define SC_STATUS_OK 0 -#define SC_STATUS_FAILURE 1 -#define SC_STATUS_BADALLOC 2 -#define SC_STATUS_WARN_START 1000 -#define SC_STATUS_WARN_REGEX 1001 -#define SCI_SETSTATUS 2382 -#define SCI_GETSTATUS 2383 -#define SCI_SETMOUSEDOWNCAPTURES 2384 -#define SCI_GETMOUSEDOWNCAPTURES 2385 -#define SCI_SETMOUSEWHEELCAPTURES 2696 -#define SCI_GETMOUSEWHEELCAPTURES 2697 -#define SCI_SETCURSOR 2386 -#define SCI_GETCURSOR 2387 -#define SCI_SETCONTROLCHARSYMBOL 2388 -#define SCI_GETCONTROLCHARSYMBOL 2389 -#define SCI_WORDPARTLEFT 2390 -#define SCI_WORDPARTLEFTEXTEND 2391 -#define SCI_WORDPARTRIGHT 2392 -#define SCI_WORDPARTRIGHTEXTEND 2393 -#define VISIBLE_SLOP 0x01 -#define VISIBLE_STRICT 0x04 -#define SCI_SETVISIBLEPOLICY 2394 -#define SCI_DELLINELEFT 2395 -#define SCI_DELLINERIGHT 2396 -#define SCI_SETXOFFSET 2397 -#define SCI_GETXOFFSET 2398 -#define SCI_CHOOSECARETX 2399 -#define SCI_GRABFOCUS 2400 -#define CARET_SLOP 0x01 -#define CARET_STRICT 0x04 -#define CARET_JUMPS 0x10 -#define CARET_EVEN 0x08 -#define SCI_SETXCARETPOLICY 2402 -#define SCI_SETYCARETPOLICY 2403 -#define SCI_SETPRINTWRAPMODE 2406 -#define SCI_GETPRINTWRAPMODE 2407 -#define SCI_SETHOTSPOTACTIVEFORE 2410 -#define SCI_GETHOTSPOTACTIVEFORE 2494 -#define SCI_SETHOTSPOTACTIVEBACK 2411 -#define SCI_GETHOTSPOTACTIVEBACK 2495 -#define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 -#define SCI_GETHOTSPOTACTIVEUNDERLINE 2496 -#define SCI_SETHOTSPOTSINGLELINE 2421 -#define SCI_GETHOTSPOTSINGLELINE 2497 -#define SCI_PARADOWN 2413 -#define SCI_PARADOWNEXTEND 2414 -#define SCI_PARAUP 2415 -#define SCI_PARAUPEXTEND 2416 -#define SCI_POSITIONBEFORE 2417 -#define SCI_POSITIONAFTER 2418 -#define SCI_POSITIONRELATIVE 2670 -#define SCI_POSITIONRELATIVECODEUNITS 2716 -#define SCI_COPYRANGE 2419 -#define SCI_COPYTEXT 2420 -#define SC_SEL_STREAM 0 -#define SC_SEL_RECTANGLE 1 -#define SC_SEL_LINES 2 -#define SC_SEL_THIN 3 -#define SCI_SETSELECTIONMODE 2422 -#define SCI_GETSELECTIONMODE 2423 -#define SCI_GETMOVEEXTENDSSELECTION 2706 -#define SCI_GETLINESELSTARTPOSITION 2424 -#define SCI_GETLINESELENDPOSITION 2425 -#define SCI_LINEDOWNRECTEXTEND 2426 -#define SCI_LINEUPRECTEXTEND 2427 -#define SCI_CHARLEFTRECTEXTEND 2428 -#define SCI_CHARRIGHTRECTEXTEND 2429 -#define SCI_HOMERECTEXTEND 2430 -#define SCI_VCHOMERECTEXTEND 2431 -#define SCI_LINEENDRECTEXTEND 2432 -#define SCI_PAGEUPRECTEXTEND 2433 -#define SCI_PAGEDOWNRECTEXTEND 2434 -#define SCI_STUTTEREDPAGEUP 2435 -#define SCI_STUTTEREDPAGEUPEXTEND 2436 -#define SCI_STUTTEREDPAGEDOWN 2437 -#define SCI_STUTTEREDPAGEDOWNEXTEND 2438 -#define SCI_WORDLEFTEND 2439 -#define SCI_WORDLEFTENDEXTEND 2440 -#define SCI_WORDRIGHTEND 2441 -#define SCI_WORDRIGHTENDEXTEND 2442 -#define SCI_SETWHITESPACECHARS 2443 -#define SCI_GETWHITESPACECHARS 2647 -#define SCI_SETPUNCTUATIONCHARS 2648 -#define SCI_GETPUNCTUATIONCHARS 2649 -#define SCI_SETCHARSDEFAULT 2444 -#define SCI_AUTOCGETCURRENT 2445 -#define SCI_AUTOCGETCURRENTTEXT 2610 -#define SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE 0 -#define SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1 -#define SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR 2634 -#define SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR 2635 -#define SC_MULTIAUTOC_ONCE 0 -#define SC_MULTIAUTOC_EACH 1 -#define SCI_AUTOCSETMULTI 2636 -#define SCI_AUTOCGETMULTI 2637 -#define SC_ORDER_PRESORTED 0 -#define SC_ORDER_PERFORMSORT 1 -#define SC_ORDER_CUSTOM 2 -#define SCI_AUTOCSETORDER 2660 -#define SCI_AUTOCGETORDER 2661 -#define SCI_ALLOCATE 2446 -#define SCI_TARGETASUTF8 2447 -#define SCI_SETLENGTHFORENCODE 2448 -#define SCI_ENCODEDFROMUTF8 2449 -#define SCI_FINDCOLUMN 2456 -#define SC_CARETSTICKY_OFF 0 -#define SC_CARETSTICKY_ON 1 -#define SC_CARETSTICKY_WHITESPACE 2 -#define SCI_GETCARETSTICKY 2457 -#define SCI_SETCARETSTICKY 2458 -#define SCI_TOGGLECARETSTICKY 2459 -#define SCI_SETPASTECONVERTENDINGS 2467 -#define SCI_GETPASTECONVERTENDINGS 2468 -#define SCI_SELECTIONDUPLICATE 2469 -#define SCI_SETCARETLINEBACKALPHA 2470 -#define SCI_GETCARETLINEBACKALPHA 2471 -#define CARETSTYLE_INVISIBLE 0 -#define CARETSTYLE_LINE 1 -#define CARETSTYLE_BLOCK 2 -#define CARETSTYLE_OVERSTRIKE_BAR 0 -#define CARETSTYLE_OVERSTRIKE_BLOCK 0x10 -#define CARETSTYLE_INS_MASK 0xF -#define CARETSTYLE_BLOCK_AFTER 0x100 -#define SCI_SETCARETSTYLE 2512 -#define SCI_GETCARETSTYLE 2513 -#define SCI_SETINDICATORCURRENT 2500 -#define SCI_GETINDICATORCURRENT 2501 -#define SCI_SETINDICATORVALUE 2502 -#define SCI_GETINDICATORVALUE 2503 -#define SCI_INDICATORFILLRANGE 2504 -#define SCI_INDICATORCLEARRANGE 2505 -#define SCI_INDICATORALLONFOR 2506 -#define SCI_INDICATORVALUEAT 2507 -#define SCI_INDICATORSTART 2508 -#define SCI_INDICATOREND 2509 -#define SCI_SETPOSITIONCACHE 2514 -#define SCI_GETPOSITIONCACHE 2515 -#define SCI_COPYALLOWLINE 2519 -#define SCI_GETCHARACTERPOINTER 2520 -#define SCI_GETRANGEPOINTER 2643 -#define SCI_GETGAPPOSITION 2644 -#define SCI_INDICSETALPHA 2523 -#define SCI_INDICGETALPHA 2524 -#define SCI_INDICSETOUTLINEALPHA 2558 -#define SCI_INDICGETOUTLINEALPHA 2559 -#define SCI_SETEXTRAASCENT 2525 -#define SCI_GETEXTRAASCENT 2526 -#define SCI_SETEXTRADESCENT 2527 -#define SCI_GETEXTRADESCENT 2528 -#define SCI_MARKERSYMBOLDEFINED 2529 -#define SCI_MARGINSETTEXT 2530 -#define SCI_MARGINGETTEXT 2531 -#define SCI_MARGINSETSTYLE 2532 -#define SCI_MARGINGETSTYLE 2533 -#define SCI_MARGINSETSTYLES 2534 -#define SCI_MARGINGETSTYLES 2535 -#define SCI_MARGINTEXTCLEARALL 2536 -#define SCI_MARGINSETSTYLEOFFSET 2537 -#define SCI_MARGINGETSTYLEOFFSET 2538 -#define SC_MARGINOPTION_NONE 0 -#define SC_MARGINOPTION_SUBLINESELECT 1 -#define SCI_SETMARGINOPTIONS 2539 -#define SCI_GETMARGINOPTIONS 2557 -#define SCI_ANNOTATIONSETTEXT 2540 -#define SCI_ANNOTATIONGETTEXT 2541 -#define SCI_ANNOTATIONSETSTYLE 2542 -#define SCI_ANNOTATIONGETSTYLE 2543 -#define SCI_ANNOTATIONSETSTYLES 2544 -#define SCI_ANNOTATIONGETSTYLES 2545 -#define SCI_ANNOTATIONGETLINES 2546 -#define SCI_ANNOTATIONCLEARALL 2547 -#define ANNOTATION_HIDDEN 0 -#define ANNOTATION_STANDARD 1 -#define ANNOTATION_BOXED 2 -#define ANNOTATION_INDENTED 3 -#define SCI_ANNOTATIONSETVISIBLE 2548 -#define SCI_ANNOTATIONGETVISIBLE 2549 -#define SCI_ANNOTATIONSETSTYLEOFFSET 2550 -#define SCI_ANNOTATIONGETSTYLEOFFSET 2551 -#define SCI_RELEASEALLEXTENDEDSTYLES 2552 -#define SCI_ALLOCATEEXTENDEDSTYLES 2553 -#define UNDO_NONE 0 -#define UNDO_MAY_COALESCE 1 -#define SCI_ADDUNDOACTION 2560 -#define SCI_CHARPOSITIONFROMPOINT 2561 -#define SCI_CHARPOSITIONFROMPOINTCLOSE 2562 -#define SCI_SETMOUSESELECTIONRECTANGULARSWITCH 2668 -#define SCI_GETMOUSESELECTIONRECTANGULARSWITCH 2669 -#define SCI_SETMULTIPLESELECTION 2563 -#define SCI_GETMULTIPLESELECTION 2564 -#define SCI_SETADDITIONALSELECTIONTYPING 2565 -#define SCI_GETADDITIONALSELECTIONTYPING 2566 -#define SCI_SETADDITIONALCARETSBLINK 2567 -#define SCI_GETADDITIONALCARETSBLINK 2568 -#define SCI_SETADDITIONALCARETSVISIBLE 2608 -#define SCI_GETADDITIONALCARETSVISIBLE 2609 -#define SCI_GETSELECTIONS 2570 -#define SCI_GETSELECTIONEMPTY 2650 -#define SCI_CLEARSELECTIONS 2571 -#define SCI_SETSELECTION 2572 -#define SCI_ADDSELECTION 2573 -#define SCI_DROPSELECTIONN 2671 -#define SCI_SETMAINSELECTION 2574 -#define SCI_GETMAINSELECTION 2575 -#define SCI_SETSELECTIONNCARET 2576 -#define SCI_GETSELECTIONNCARET 2577 -#define SCI_SETSELECTIONNANCHOR 2578 -#define SCI_GETSELECTIONNANCHOR 2579 -#define SCI_SETSELECTIONNCARETVIRTUALSPACE 2580 -#define SCI_GETSELECTIONNCARETVIRTUALSPACE 2581 -#define SCI_SETSELECTIONNANCHORVIRTUALSPACE 2582 -#define SCI_GETSELECTIONNANCHORVIRTUALSPACE 2583 -#define SCI_SETSELECTIONNSTART 2584 -#define SCI_GETSELECTIONNSTART 2585 -#define SCI_GETSELECTIONNSTARTVIRTUALSPACE 2726 -#define SCI_SETSELECTIONNEND 2586 -#define SCI_GETSELECTIONNENDVIRTUALSPACE 2727 -#define SCI_GETSELECTIONNEND 2587 -#define SCI_SETRECTANGULARSELECTIONCARET 2588 -#define SCI_GETRECTANGULARSELECTIONCARET 2589 -#define SCI_SETRECTANGULARSELECTIONANCHOR 2590 -#define SCI_GETRECTANGULARSELECTIONANCHOR 2591 -#define SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE 2592 -#define SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE 2593 -#define SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2594 -#define SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2595 -#define SCVS_NONE 0 -#define SCVS_RECTANGULARSELECTION 1 -#define SCVS_USERACCESSIBLE 2 -#define SCVS_NOWRAPLINESTART 4 -#define SCI_SETVIRTUALSPACEOPTIONS 2596 -#define SCI_GETVIRTUALSPACEOPTIONS 2597 -#define SCI_SETRECTANGULARSELECTIONMODIFIER 2598 -#define SCI_GETRECTANGULARSELECTIONMODIFIER 2599 -#define SCI_SETADDITIONALSELFORE 2600 -#define SCI_SETADDITIONALSELBACK 2601 -#define SCI_SETADDITIONALSELALPHA 2602 -#define SCI_GETADDITIONALSELALPHA 2603 -#define SCI_SETADDITIONALCARETFORE 2604 -#define SCI_GETADDITIONALCARETFORE 2605 -#define SCI_ROTATESELECTION 2606 -#define SCI_SWAPMAINANCHORCARET 2607 -#define SCI_MULTIPLESELECTADDNEXT 2688 -#define SCI_MULTIPLESELECTADDEACH 2689 -#define SCI_CHANGELEXERSTATE 2617 -#define SCI_CONTRACTEDFOLDNEXT 2618 -#define SCI_VERTICALCENTRECARET 2619 -#define SCI_MOVESELECTEDLINESUP 2620 -#define SCI_MOVESELECTEDLINESDOWN 2621 -#define SCI_SETIDENTIFIER 2622 -#define SCI_GETIDENTIFIER 2623 -#define SCI_RGBAIMAGESETWIDTH 2624 -#define SCI_RGBAIMAGESETHEIGHT 2625 -#define SCI_RGBAIMAGESETSCALE 2651 -#define SCI_MARKERDEFINERGBAIMAGE 2626 -#define SCI_REGISTERRGBAIMAGE 2627 -#define SCI_SCROLLTOSTART 2628 -#define SCI_SCROLLTOEND 2629 -#define SC_TECHNOLOGY_DEFAULT 0 -#define SC_TECHNOLOGY_DIRECTWRITE 1 -#define SC_TECHNOLOGY_DIRECTWRITERETAIN 2 -#define SC_TECHNOLOGY_DIRECTWRITEDC 3 -#define SCI_SETTECHNOLOGY 2630 -#define SCI_GETTECHNOLOGY 2631 -#define SCI_CREATELOADER 2632 -#define SCI_FINDINDICATORSHOW 2640 -#define SCI_FINDINDICATORFLASH 2641 -#define SCI_FINDINDICATORHIDE 2642 -#define SCI_VCHOMEDISPLAY 2652 -#define SCI_VCHOMEDISPLAYEXTEND 2653 -#define SCI_GETCARETLINEVISIBLEALWAYS 2654 -#define SCI_SETCARETLINEVISIBLEALWAYS 2655 -#define SC_LINE_END_TYPE_DEFAULT 0 -#define SC_LINE_END_TYPE_UNICODE 1 -#define SCI_SETLINEENDTYPESALLOWED 2656 -#define SCI_GETLINEENDTYPESALLOWED 2657 -#define SCI_GETLINEENDTYPESACTIVE 2658 -#define SCI_SETREPRESENTATION 2665 -#define SCI_GETREPRESENTATION 2666 -#define SCI_CLEARREPRESENTATION 2667 -#define SCI_EOLANNOTATIONSETTEXT 2740 -#define SCI_EOLANNOTATIONGETTEXT 2741 -#define SCI_EOLANNOTATIONSETSTYLE 2742 -#define SCI_EOLANNOTATIONGETSTYLE 2743 -#define SCI_EOLANNOTATIONCLEARALL 2744 -#define EOLANNOTATION_HIDDEN 0 -#define EOLANNOTATION_STANDARD 1 -#define EOLANNOTATION_BOXED 2 -#define SCI_EOLANNOTATIONSETVISIBLE 2745 -#define SCI_EOLANNOTATIONGETVISIBLE 2746 -#define SCI_EOLANNOTATIONSETSTYLEOFFSET 2747 -#define SCI_EOLANNOTATIONGETSTYLEOFFSET 2748 -#define SCI_STARTRECORD 3001 -#define SCI_STOPRECORD 3002 -#define SCI_SETLEXER 4001 -#define SCI_GETLEXER 4002 -#define SCI_COLOURISE 4003 -#define SCI_SETPROPERTY 4004 -// #define KEYWORDSET_MAX 8 -#define KEYWORDSET_MAX 30 -#define SCI_SETKEYWORDS 4005 -#define SCI_SETLEXERLANGUAGE 4006 -#define SCI_LOADLEXERLIBRARY 4007 -#define SCI_GETPROPERTY 4008 -#define SCI_GETPROPERTYEXPANDED 4009 -#define SCI_GETPROPERTYINT 4010 -#define SCI_GETLEXERLANGUAGE 4012 -#define SCI_PRIVATELEXERCALL 4013 -#define SCI_PROPERTYNAMES 4014 -#define SC_TYPE_BOOLEAN 0 -#define SC_TYPE_INTEGER 1 -#define SC_TYPE_STRING 2 -#define SCI_PROPERTYTYPE 4015 -#define SCI_DESCRIBEPROPERTY 4016 -#define SCI_DESCRIBEKEYWORDSETS 4017 -#define SCI_GETLINEENDTYPESSUPPORTED 4018 -#define SCI_ALLOCATESUBSTYLES 4020 -#define SCI_GETSUBSTYLESSTART 4021 -#define SCI_GETSUBSTYLESLENGTH 4022 -#define SCI_GETSTYLEFROMSUBSTYLE 4027 -#define SCI_GETPRIMARYSTYLEFROMSTYLE 4028 -#define SCI_FREESUBSTYLES 4023 -#define SCI_SETIDENTIFIERS 4024 -#define SCI_DISTANCETOSECONDARYSTYLES 4025 -#define SCI_GETSUBSTYLEBASES 4026 -#define SCI_GETNAMEDSTYLES 4029 -#define SCI_NAMEOFSTYLE 4030 -#define SCI_TAGSOFSTYLE 4031 -#define SCI_DESCRIPTIONOFSTYLE 4032 -#define SCI_SETILEXER 4033 -#define SC_MOD_NONE 0x0 -#define SC_MOD_INSERTTEXT 0x1 -#define SC_MOD_DELETETEXT 0x2 -#define SC_MOD_CHANGESTYLE 0x4 -#define SC_MOD_CHANGEFOLD 0x8 -#define SC_PERFORMED_USER 0x10 -#define SC_PERFORMED_UNDO 0x20 -#define SC_PERFORMED_REDO 0x40 -#define SC_MULTISTEPUNDOREDO 0x80 -#define SC_LASTSTEPINUNDOREDO 0x100 -#define SC_MOD_CHANGEMARKER 0x200 -#define SC_MOD_BEFOREINSERT 0x400 -#define SC_MOD_BEFOREDELETE 0x800 -#define SC_MULTILINEUNDOREDO 0x1000 -#define SC_STARTACTION 0x2000 -#define SC_MOD_CHANGEINDICATOR 0x4000 -#define SC_MOD_CHANGELINESTATE 0x8000 -#define SC_MOD_CHANGEMARGIN 0x10000 -#define SC_MOD_CHANGEANNOTATION 0x20000 -#define SC_MOD_CONTAINER 0x40000 -#define SC_MOD_LEXERSTATE 0x80000 -#define SC_MOD_INSERTCHECK 0x100000 -#define SC_MOD_CHANGETABSTOPS 0x200000 -#define SC_MOD_CHANGEEOLANNOTATION 0x400000 -#define SC_MODEVENTMASKALL 0x7FFFFF -#define SC_SEARCHRESULT_LINEBUFFERMAXLENGTH 2048 -#define SC_UPDATE_CONTENT 0x1 -#define SC_UPDATE_SELECTION 0x2 -#define SC_UPDATE_V_SCROLL 0x4 -#define SC_UPDATE_H_SCROLL 0x8 -#define SCEN_CHANGE 768 -#define SCEN_SETFOCUS 512 -#define SCEN_KILLFOCUS 256 -#define SCK_DOWN 300 -#define SCK_UP 301 -#define SCK_LEFT 302 -#define SCK_RIGHT 303 -#define SCK_HOME 304 -#define SCK_END 305 -#define SCK_PRIOR 306 -#define SCK_NEXT 307 -#define SCK_DELETE 308 -#define SCK_INSERT 309 -#define SCK_ESCAPE 7 -#define SCK_BACK 8 -#define SCK_TAB 9 -#define SCK_RETURN 13 -#define SCK_ADD 310 -#define SCK_SUBTRACT 311 -#define SCK_DIVIDE 312 -#define SCK_WIN 313 -#define SCK_RWIN 314 -#define SCK_MENU 315 -#define SCMOD_NORM 0 -#define SCMOD_SHIFT 1 -#define SCMOD_CTRL 2 -#define SCMOD_ALT 4 -#define SCMOD_SUPER 8 -#define SCMOD_META 16 -#define SC_AC_FILLUP 1 -#define SC_AC_DOUBLECLICK 2 -#define SC_AC_TAB 3 -#define SC_AC_NEWLINE 4 -#define SC_AC_COMMAND 5 -#define SC_CHARACTERSOURCE_DIRECT_INPUT 0 -#define SC_CHARACTERSOURCE_TENTATIVE_INPUT 1 -#define SC_CHARACTERSOURCE_IME_RESULT 2 -#define SCN_STYLENEEDED 2000 -#define SCN_CHARADDED 2001 -#define SCN_SAVEPOINTREACHED 2002 -#define SCN_SAVEPOINTLEFT 2003 -#define SCN_MODIFYATTEMPTRO 2004 -#define SCN_KEY 2005 -#define SCN_DOUBLECLICK 2006 -#define SCN_UPDATEUI 2007 -#define SCN_MODIFIED 2008 -#define SCN_MACRORECORD 2009 -#define SCN_MARGINCLICK 2010 -#define SCN_NEEDSHOWN 2011 -#define SCN_PAINTED 2013 -#define SCN_USERLISTSELECTION 2014 -#define SCN_URIDROPPED 2015 -#define SCN_DWELLSTART 2016 -#define SCN_DWELLEND 2017 -#define SCN_ZOOM 2018 -#define SCN_HOTSPOTCLICK 2019 -#define SCN_HOTSPOTDOUBLECLICK 2020 -#define SCN_CALLTIPCLICK 2021 -#define SCN_AUTOCSELECTION 2022 -#define SCN_INDICATORCLICK 2023 -#define SCN_INDICATORRELEASE 2024 -#define SCN_AUTOCCANCELLED 2025 -#define SCN_AUTOCCHARDELETED 2026 -#define SCN_HOTSPOTRELEASECLICK 2027 -#define SCN_FOCUSIN 2028 -#define SCN_FOCUSOUT 2029 -#define SCN_AUTOCCOMPLETED 2030 -#define SCN_MARGINRIGHTCLICK 2031 -#define SCN_AUTOCSELECTIONCHANGE 2032 -#ifndef SCI_DISABLE_PROVISIONAL -#define SC_BIDIRECTIONAL_DISABLED 0 -#define SC_BIDIRECTIONAL_L2R 1 -#define SC_BIDIRECTIONAL_R2L 2 -#define SCI_GETBIDIRECTIONAL 2708 -#define SCI_SETBIDIRECTIONAL 2709 -#define SC_LINECHARACTERINDEX_NONE 0 -#define SC_LINECHARACTERINDEX_UTF32 1 -#define SC_LINECHARACTERINDEX_UTF16 2 -#define SCI_GETLINECHARACTERINDEX 2710 -#define SCI_ALLOCATELINECHARACTERINDEX 2711 -#define SCI_RELEASELINECHARACTERINDEX 2712 -#define SCI_LINEFROMINDEXPOSITION 2713 -#define SCI_INDEXPOSITIONFROMLINE 2714 -#endif - -#define SCI_GETBOOSTREGEXERRMSG 5000 - -#define SCN_SCROLLED 2080 -#define SCN_FOLDINGSTATECHANGED 2081 - -/* --Autogenerated -- end of section automatically generated from Scintilla.iface */ - -#endif - -/* These structures are defined to be exactly the same shape as the Win32 - * CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs. - * So older code that treats Scintilla as a RichEdit will work. */ - -struct Sci_CharacterRange { - Sci_PositionCR cpMin; - Sci_PositionCR cpMax; -}; - -struct Sci_TextRange { - struct Sci_CharacterRange chrg; - char *lpstrText; -}; - -struct Sci_TextToFind { - struct Sci_CharacterRange chrg; - const char *lpstrText; - struct Sci_CharacterRange chrgText; -}; - -typedef void *Sci_SurfaceID; - -struct Sci_Rectangle { - int left; - int top; - int right; - int bottom; -}; - -/* This structure is used in printing and requires some of the graphics types - * from Platform.h. Not needed by most client code. */ - -struct Sci_RangeToFormat { - Sci_SurfaceID hdc; - Sci_SurfaceID hdcTarget; - struct Sci_Rectangle rc; - struct Sci_Rectangle rcPage; - struct Sci_CharacterRange chrg; -}; - -#ifndef __cplusplus -/* For the GTK+ platform, g-ir-scanner needs to have these typedefs. This - * is not required in C++ code and actually seems to break ScintillaEditPy */ -typedef struct Sci_NotifyHeader Sci_NotifyHeader; -typedef struct SCNotification SCNotification; -#endif - -struct Sci_NotifyHeader { - /* Compatible with Windows NMHDR. - * hwndFrom is really an environment specific window handle or pointer - * but most clients of Scintilla.h do not have this type visible. */ - void *hwndFrom; - uptr_t idFrom; - unsigned int code; -}; - -struct SCNotification { - Sci_NotifyHeader nmhdr; - Sci_Position position; - /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */ - /* SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, */ - /* SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, */ - /* SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ - /* SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */ - - int ch; - /* SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, */ - /* SCN_USERLISTSELECTION */ - int modifiers; - /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, */ - /* SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ - - int modificationType; /* SCN_MODIFIED */ - const char *text; - /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED */ - - Sci_Position length; /* SCN_MODIFIED */ - Sci_Position linesAdded; /* SCN_MODIFIED */ - int message; /* SCN_MACRORECORD */ - uptr_t wParam; /* SCN_MACRORECORD */ - sptr_t lParam; /* SCN_MACRORECORD */ - Sci_Position line; /* SCN_MODIFIED */ - int foldLevelNow; /* SCN_MODIFIED */ - int foldLevelPrev; /* SCN_MODIFIED */ - int margin; /* SCN_MARGINCLICK */ - int listType; /* SCN_USERLISTSELECTION */ - int x; /* SCN_DWELLSTART, SCN_DWELLEND */ - int y; /* SCN_DWELLSTART, SCN_DWELLEND */ - int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ - Sci_Position annotationLinesAdded; /* SCN_MODIFIED with SC_MOD_CHANGEANNOTATION */ - int updated; /* SCN_UPDATEUI */ - int listCompletionMethod; - /* SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION, */ - int characterSource; /* SCN_CHARADDED */ -}; - -struct SearchResultMarking { - intptr_t _start; - intptr_t _end; -}; - -struct SearchResultMarkings { - intptr_t _length; - SearchResultMarking *_markings; -}; - -#ifdef INCLUDE_DEPRECATED_FEATURES - -#define SCI_SETKEYSUNICODE 2521 -#define SCI_GETKEYSUNICODE 2522 - -#define SCI_GETTWOPHASEDRAW 2283 -#define SCI_SETTWOPHASEDRAW 2284 - -#define CharacterRange Sci_CharacterRange -#define TextRange Sci_TextRange -#define TextToFind Sci_TextToFind -#define RangeToFormat Sci_RangeToFormat -#define NotifyHeader Sci_NotifyHeader - -#define SCI_SETSTYLEBITS 2090 -#define SCI_GETSTYLEBITS 2091 -#define SCI_GETSTYLEBITSNEEDED 4011 - -#define INDIC0_MASK 0x20 -#define INDIC1_MASK 0x40 -#define INDIC2_MASK 0x80 -#define INDICS_MASK 0xE0 - -#endif - -#endif +/* Scintilla source code edit control */ +/** @file Scintilla.h + ** Interface to the edit control. + **/ +/* Copyright 1998-2003 by Neil Hodgson + * The License.txt file describes the conditions under which this software may be distributed. */ + +/* Most of this file is automatically generated from the Scintilla.iface interface definition + * file which contains any comments about the definitions. HFacer.py does the generation. */ + +#ifndef SCINTILLA_H +#define SCINTILLA_H + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) +/* Return false on failure: */ +int Scintilla_RegisterClasses(void *hInstance); +int Scintilla_ReleaseResources(void); +#endif +int Scintilla_LinkLexers(void); + +#ifdef __cplusplus +} +#endif + +// Include header that defines basic numeric types. +#include + +// Define uptr_t, an unsigned integer type large enough to hold a pointer. +typedef uintptr_t uptr_t; +// Define sptr_t, a signed integer large enough to hold a pointer. +typedef intptr_t sptr_t; + +#include "Sci_Position.h" + +typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); + +#ifndef SCI_DISABLE_AUTOGENERATED + +/* ++Autogenerated -- start of section automatically generated from Scintilla.iface */ +#define INVALID_POSITION -1 +#define SCI_START 2000 +#define SCI_OPTIONAL_START 3000 +#define SCI_LEXER_START 4000 +#define SCI_ADDTEXT 2001 +#define SCI_ADDSTYLEDTEXT 2002 +#define SCI_INSERTTEXT 2003 +#define SCI_CHANGEINSERTION 2672 +#define SCI_CLEARALL 2004 +#define SCI_DELETERANGE 2645 +#define SCI_CLEARDOCUMENTSTYLE 2005 +#define SCI_GETLENGTH 2006 +#define SCI_GETCHARAT 2007 +#define SCI_GETCURRENTPOS 2008 +#define SCI_GETANCHOR 2009 +#define SCI_GETSTYLEAT 2010 +#define SCI_REDO 2011 +#define SCI_SETUNDOCOLLECTION 2012 +#define SCI_SELECTALL 2013 +#define SCI_SETSAVEPOINT 2014 +#define SCI_GETSTYLEDTEXT 2015 +#define SCI_CANREDO 2016 +#define SCI_MARKERLINEFROMHANDLE 2017 +#define SCI_MARKERDELETEHANDLE 2018 +#define SCI_MARKERHANDLEFROMLINE 2732 +#define SCI_MARKERNUMBERFROMLINE 2733 +#define SCI_GETUNDOCOLLECTION 2019 +#define SCWS_INVISIBLE 0 +#define SCWS_VISIBLEALWAYS 1 +#define SCWS_VISIBLEAFTERINDENT 2 +#define SCWS_VISIBLEONLYININDENT 3 +#define SCI_GETVIEWWS 2020 +#define SCI_SETVIEWWS 2021 +#define SCTD_LONGARROW 0 +#define SCTD_STRIKEOUT 1 +#define SCI_GETTABDRAWMODE 2698 +#define SCI_SETTABDRAWMODE 2699 +#define SCI_POSITIONFROMPOINT 2022 +#define SCI_POSITIONFROMPOINTCLOSE 2023 +#define SCI_GOTOLINE 2024 +#define SCI_GOTOPOS 2025 +#define SCI_SETANCHOR 2026 +#define SCI_GETCURLINE 2027 +#define SCI_GETENDSTYLED 2028 +#define SC_EOL_CRLF 0 +#define SC_EOL_CR 1 +#define SC_EOL_LF 2 +#define SCI_CONVERTEOLS 2029 +#define SCI_GETEOLMODE 2030 +#define SCI_SETEOLMODE 2031 +#define SCI_STARTSTYLING 2032 +#define SCI_SETSTYLING 2033 +#define SCI_GETBUFFEREDDRAW 2034 +#define SCI_SETBUFFEREDDRAW 2035 +#define SCI_SETTABWIDTH 2036 +#define SCI_GETTABWIDTH 2121 +#define SCI_SETTABMINIMUMWIDTH 2724 +#define SCI_GETTABMINIMUMWIDTH 2725 +#define SCI_CLEARTABSTOPS 2675 +#define SCI_ADDTABSTOP 2676 +#define SCI_GETNEXTTABSTOP 2677 +#define SC_CP_UTF8 65001 +#define SCI_SETCODEPAGE 2037 +#define SC_IME_WINDOWED 0 +#define SC_IME_INLINE 1 +#define SCI_GETIMEINTERACTION 2678 +#define SCI_SETIMEINTERACTION 2679 +#define SC_ALPHA_TRANSPARENT 0 +#define SC_ALPHA_OPAQUE 255 +#define SC_ALPHA_NOALPHA 256 +#define SC_CURSORNORMAL -1 +#define SC_CURSORARROW 2 +#define SC_CURSORWAIT 4 +#define SC_CURSORREVERSEARROW 7 +#define MARKER_MAX 31 +#define SC_MARK_CIRCLE 0 +#define SC_MARK_ROUNDRECT 1 +#define SC_MARK_ARROW 2 +#define SC_MARK_SMALLRECT 3 +#define SC_MARK_SHORTARROW 4 +#define SC_MARK_EMPTY 5 +#define SC_MARK_ARROWDOWN 6 +#define SC_MARK_MINUS 7 +#define SC_MARK_PLUS 8 +#define SC_MARK_VLINE 9 +#define SC_MARK_LCORNER 10 +#define SC_MARK_TCORNER 11 +#define SC_MARK_BOXPLUS 12 +#define SC_MARK_BOXPLUSCONNECTED 13 +#define SC_MARK_BOXMINUS 14 +#define SC_MARK_BOXMINUSCONNECTED 15 +#define SC_MARK_LCORNERCURVE 16 +#define SC_MARK_TCORNERCURVE 17 +#define SC_MARK_CIRCLEPLUS 18 +#define SC_MARK_CIRCLEPLUSCONNECTED 19 +#define SC_MARK_CIRCLEMINUS 20 +#define SC_MARK_CIRCLEMINUSCONNECTED 21 +#define SC_MARK_BACKGROUND 22 +#define SC_MARK_DOTDOTDOT 23 +#define SC_MARK_ARROWS 24 +#define SC_MARK_PIXMAP 25 +#define SC_MARK_FULLRECT 26 +#define SC_MARK_LEFTRECT 27 +#define SC_MARK_AVAILABLE 28 +#define SC_MARK_UNDERLINE 29 +#define SC_MARK_RGBAIMAGE 30 +#define SC_MARK_BOOKMARK 31 +#define SC_MARK_VERTICALBOOKMARK 32 +#define SC_MARK_CHARACTER 10000 +#define SC_MARKNUM_FOLDEREND 25 +#define SC_MARKNUM_FOLDEROPENMID 26 +#define SC_MARKNUM_FOLDERMIDTAIL 27 +#define SC_MARKNUM_FOLDERTAIL 28 +#define SC_MARKNUM_FOLDERSUB 29 +#define SC_MARKNUM_FOLDER 30 +#define SC_MARKNUM_FOLDEROPEN 31 +#define SC_MASK_FOLDERS 0xFE000000 +#define SCI_MARKERDEFINE 2040 +#define SCI_MARKERSETFORE 2041 +#define SCI_MARKERSETBACK 2042 +#define SCI_MARKERSETBACKSELECTED 2292 +#define SCI_MARKERENABLEHIGHLIGHT 2293 +#define SCI_MARKERADD 2043 +#define SCI_MARKERDELETE 2044 +#define SCI_MARKERDELETEALL 2045 +#define SCI_MARKERGET 2046 +#define SCI_MARKERNEXT 2047 +#define SCI_MARKERPREVIOUS 2048 +#define SCI_MARKERDEFINEPIXMAP 2049 +#define SCI_MARKERADDSET 2466 +#define SCI_MARKERSETALPHA 2476 +#define SC_MAX_MARGIN 4 +#define SC_MARGIN_SYMBOL 0 +#define SC_MARGIN_NUMBER 1 +#define SC_MARGIN_BACK 2 +#define SC_MARGIN_FORE 3 +#define SC_MARGIN_TEXT 4 +#define SC_MARGIN_RTEXT 5 +#define SC_MARGIN_COLOUR 6 +#define SCI_SETMARGINTYPEN 2240 +#define SCI_GETMARGINTYPEN 2241 +#define SCI_SETMARGINWIDTHN 2242 +#define SCI_GETMARGINWIDTHN 2243 +#define SCI_SETMARGINMASKN 2244 +#define SCI_GETMARGINMASKN 2245 +#define SCI_SETMARGINSENSITIVEN 2246 +#define SCI_GETMARGINSENSITIVEN 2247 +#define SCI_SETMARGINCURSORN 2248 +#define SCI_GETMARGINCURSORN 2249 +#define SCI_SETMARGINBACKN 2250 +#define SCI_GETMARGINBACKN 2251 +#define SCI_SETMARGINS 2252 +#define SCI_GETMARGINS 2253 +#define STYLE_DEFAULT 32 +#define STYLE_LINENUMBER 33 +#define STYLE_BRACELIGHT 34 +#define STYLE_BRACEBAD 35 +#define STYLE_CONTROLCHAR 36 +#define STYLE_INDENTGUIDE 37 +#define STYLE_CALLTIP 38 +#define STYLE_FOLDDISPLAYTEXT 39 +#define STYLE_LASTPREDEFINED 39 +#define STYLE_MAX 255 +#define SC_CHARSET_ANSI 0 +#define SC_CHARSET_DEFAULT 1 +#define SC_CHARSET_BALTIC 186 +#define SC_CHARSET_CHINESEBIG5 136 +#define SC_CHARSET_EASTEUROPE 238 +#define SC_CHARSET_GB2312 134 +#define SC_CHARSET_GREEK 161 +#define SC_CHARSET_HANGUL 129 +#define SC_CHARSET_MAC 77 +#define SC_CHARSET_OEM 255 +#define SC_CHARSET_RUSSIAN 204 +#define SC_CHARSET_OEM866 866 +#define SC_CHARSET_CYRILLIC 1251 +#define SC_CHARSET_SHIFTJIS 128 +#define SC_CHARSET_SYMBOL 2 +#define SC_CHARSET_TURKISH 162 +#define SC_CHARSET_JOHAB 130 +#define SC_CHARSET_HEBREW 177 +#define SC_CHARSET_ARABIC 178 +#define SC_CHARSET_VIETNAMESE 163 +#define SC_CHARSET_THAI 222 +#define SC_CHARSET_8859_15 1000 +#define SCI_STYLECLEARALL 2050 +#define SCI_STYLESETFORE 2051 +#define SCI_STYLESETBACK 2052 +#define SCI_STYLESETBOLD 2053 +#define SCI_STYLESETITALIC 2054 +#define SCI_STYLESETSIZE 2055 +#define SCI_STYLESETFONT 2056 +#define SCI_STYLESETEOLFILLED 2057 +#define SCI_STYLERESETDEFAULT 2058 +#define SCI_STYLESETUNDERLINE 2059 +#define SC_CASE_MIXED 0 +#define SC_CASE_UPPER 1 +#define SC_CASE_LOWER 2 +#define SC_CASE_CAMEL 3 +#define SCI_STYLEGETFORE 2481 +#define SCI_STYLEGETBACK 2482 +#define SCI_STYLEGETBOLD 2483 +#define SCI_STYLEGETITALIC 2484 +#define SCI_STYLEGETSIZE 2485 +#define SCI_STYLEGETFONT 2486 +#define SCI_STYLEGETEOLFILLED 2487 +#define SCI_STYLEGETUNDERLINE 2488 +#define SCI_STYLEGETCASE 2489 +#define SCI_STYLEGETCHARACTERSET 2490 +#define SCI_STYLEGETVISIBLE 2491 +#define SCI_STYLEGETCHANGEABLE 2492 +#define SCI_STYLEGETHOTSPOT 2493 +#define SCI_STYLESETCASE 2060 +#define SC_FONT_SIZE_MULTIPLIER 100 +#define SCI_STYLESETSIZEFRACTIONAL 2061 +#define SCI_STYLEGETSIZEFRACTIONAL 2062 +#define SC_WEIGHT_NORMAL 400 +#define SC_WEIGHT_SEMIBOLD 600 +#define SC_WEIGHT_BOLD 700 +#define SCI_STYLESETWEIGHT 2063 +#define SCI_STYLEGETWEIGHT 2064 +#define SCI_STYLESETCHARACTERSET 2066 +#define SCI_STYLESETHOTSPOT 2409 +#define SCI_SETSELFORE 2067 +#define SCI_SETSELBACK 2068 +#define SCI_GETSELALPHA 2477 +#define SCI_SETSELALPHA 2478 +#define SCI_GETSELEOLFILLED 2479 +#define SCI_SETSELEOLFILLED 2480 +#define SCI_SETCARETFORE 2069 +#define SCI_ASSIGNCMDKEY 2070 +#define SCI_CLEARCMDKEY 2071 +#define SCI_CLEARALLCMDKEYS 2072 +#define SCI_SETSTYLINGEX 2073 +#define SCI_STYLESETVISIBLE 2074 +#define SCI_GETCARETPERIOD 2075 +#define SCI_SETCARETPERIOD 2076 +#define SCI_SETWORDCHARS 2077 +#define SCI_GETWORDCHARS 2646 +#define SCI_SETCHARACTERCATEGORYOPTIMIZATION 2720 +#define SCI_GETCHARACTERCATEGORYOPTIMIZATION 2721 +#define SCI_BEGINUNDOACTION 2078 +#define SCI_ENDUNDOACTION 2079 +#define INDIC_PLAIN 0 +#define INDIC_SQUIGGLE 1 +#define INDIC_TT 2 +#define INDIC_DIAGONAL 3 +#define INDIC_STRIKE 4 +#define INDIC_HIDDEN 5 +#define INDIC_BOX 6 +#define INDIC_ROUNDBOX 7 +#define INDIC_STRAIGHTBOX 8 +#define INDIC_DASH 9 +#define INDIC_DOTS 10 +#define INDIC_SQUIGGLELOW 11 +#define INDIC_DOTBOX 12 +#define INDIC_SQUIGGLEPIXMAP 13 +#define INDIC_COMPOSITIONTHICK 14 +#define INDIC_COMPOSITIONTHIN 15 +#define INDIC_FULLBOX 16 +#define INDIC_TEXTFORE 17 +#define INDIC_POINT 18 +#define INDIC_POINTCHARACTER 19 +#define INDIC_GRADIENT 20 +#define INDIC_GRADIENTCENTRE 21 +#define INDIC_EXPLORERLINK 22 +#define INDIC_CONTAINER 8 +#define INDIC_IME 32 +#define INDIC_IME_MAX 35 +#define INDIC_MAX 35 +#define INDICATOR_CONTAINER 8 +#define INDICATOR_IME 32 +#define INDICATOR_IME_MAX 35 +#define INDICATOR_MAX 35 +#define SCI_INDICSETSTYLE 2080 +#define SCI_INDICGETSTYLE 2081 +#define SCI_INDICSETFORE 2082 +#define SCI_INDICGETFORE 2083 +#define SCI_INDICSETUNDER 2510 +#define SCI_INDICGETUNDER 2511 +#define SCI_INDICSETHOVERSTYLE 2680 +#define SCI_INDICGETHOVERSTYLE 2681 +#define SCI_INDICSETHOVERFORE 2682 +#define SCI_INDICGETHOVERFORE 2683 +#define SC_INDICVALUEBIT 0x1000000 +#define SC_INDICVALUEMASK 0xFFFFFF +#define SC_INDICFLAG_VALUEFORE 1 +#define SCI_INDICSETFLAGS 2684 +#define SCI_INDICGETFLAGS 2685 +#define SCI_SETWHITESPACEFORE 2084 +#define SCI_SETWHITESPACEBACK 2085 +#define SCI_SETWHITESPACESIZE 2086 +#define SCI_GETWHITESPACESIZE 2087 +#define SCI_SETLINESTATE 2092 +#define SCI_GETLINESTATE 2093 +#define SCI_GETMAXLINESTATE 2094 +#define SCI_GETCARETLINEVISIBLE 2095 +#define SCI_SETCARETLINEVISIBLE 2096 +#define SCI_GETCARETLINEBACK 2097 +#define SCI_SETCARETLINEBACK 2098 +#define SCI_GETCARETLINEFRAME 2704 +#define SCI_SETCARETLINEFRAME 2705 +#define SCI_STYLESETCHANGEABLE 2099 +#define SCI_AUTOCSHOW 2100 +#define SCI_AUTOCCANCEL 2101 +#define SCI_AUTOCACTIVE 2102 +#define SCI_AUTOCPOSSTART 2103 +#define SCI_AUTOCCOMPLETE 2104 +#define SCI_AUTOCSTOPS 2105 +#define SCI_AUTOCSETSEPARATOR 2106 +#define SCI_AUTOCGETSEPARATOR 2107 +#define SCI_AUTOCSELECT 2108 +#define SCI_AUTOCSETCANCELATSTART 2110 +#define SCI_AUTOCGETCANCELATSTART 2111 +#define SCI_AUTOCSETFILLUPS 2112 +#define SCI_AUTOCSETCHOOSESINGLE 2113 +#define SCI_AUTOCGETCHOOSESINGLE 2114 +#define SCI_AUTOCSETIGNORECASE 2115 +#define SCI_AUTOCGETIGNORECASE 2116 +#define SCI_USERLISTSHOW 2117 +#define SCI_AUTOCSETAUTOHIDE 2118 +#define SCI_AUTOCGETAUTOHIDE 2119 +#define SCI_AUTOCSETDROPRESTOFWORD 2270 +#define SCI_AUTOCGETDROPRESTOFWORD 2271 +#define SCI_REGISTERIMAGE 2405 +#define SCI_CLEARREGISTEREDIMAGES 2408 +#define SCI_AUTOCGETTYPESEPARATOR 2285 +#define SCI_AUTOCSETTYPESEPARATOR 2286 +#define SCI_AUTOCSETMAXWIDTH 2208 +#define SCI_AUTOCGETMAXWIDTH 2209 +#define SCI_AUTOCSETMAXHEIGHT 2210 +#define SCI_AUTOCGETMAXHEIGHT 2211 +#define SCI_SETINDENT 2122 +#define SCI_GETINDENT 2123 +#define SCI_SETUSETABS 2124 +#define SCI_GETUSETABS 2125 +#define SCI_SETLINEINDENTATION 2126 +#define SCI_GETLINEINDENTATION 2127 +#define SCI_GETLINEINDENTPOSITION 2128 +#define SCI_GETCOLUMN 2129 +#define SCI_COUNTCHARACTERS 2633 +#define SCI_COUNTCODEUNITS 2715 +#define SCI_SETHSCROLLBAR 2130 +#define SCI_GETHSCROLLBAR 2131 +#define SC_IV_NONE 0 +#define SC_IV_REAL 1 +#define SC_IV_LOOKFORWARD 2 +#define SC_IV_LOOKBOTH 3 +#define SCI_SETINDENTATIONGUIDES 2132 +#define SCI_GETINDENTATIONGUIDES 2133 +#define SCI_SETHIGHLIGHTGUIDE 2134 +#define SCI_GETHIGHLIGHTGUIDE 2135 +#define SCI_GETLINEENDPOSITION 2136 +#define SCI_GETCODEPAGE 2137 +#define SCI_GETCARETFORE 2138 +#define SCI_GETREADONLY 2140 +#define SCI_SETCURRENTPOS 2141 +#define SCI_SETSELECTIONSTART 2142 +#define SCI_GETSELECTIONSTART 2143 +#define SCI_SETSELECTIONEND 2144 +#define SCI_GETSELECTIONEND 2145 +#define SCI_SETEMPTYSELECTION 2556 +#define SCI_SETPRINTMAGNIFICATION 2146 +#define SCI_GETPRINTMAGNIFICATION 2147 +#define SC_PRINT_NORMAL 0 +#define SC_PRINT_INVERTLIGHT 1 +#define SC_PRINT_BLACKONWHITE 2 +#define SC_PRINT_COLOURONWHITE 3 +#define SC_PRINT_COLOURONWHITEDEFAULTBG 4 +#define SC_PRINT_SCREENCOLOURS 5 +#define SCI_SETPRINTCOLOURMODE 2148 +#define SCI_GETPRINTCOLOURMODE 2149 +#define SCFIND_NONE 0x0 +#define SCFIND_WHOLEWORD 0x2 +#define SCFIND_MATCHCASE 0x4 +#define SCFIND_WORDSTART 0x00100000 +#define SCFIND_REGEXP 0x00200000 +#define SCFIND_POSIX 0x00400000 +#define SCFIND_CXX11REGEX 0x00800000 +#define SCI_FINDTEXT 2150 +#define SCI_FORMATRANGE 2151 +#define SCI_GETFIRSTVISIBLELINE 2152 +#define SCI_GETLINE 2153 +#define SCI_GETLINECOUNT 2154 +#define SCI_SETMARGINLEFT 2155 +#define SCI_GETMARGINLEFT 2156 +#define SCI_SETMARGINRIGHT 2157 +#define SCI_GETMARGINRIGHT 2158 +#define SCI_GETMODIFY 2159 +#define SCI_SETSEL 2160 +#define SCI_GETSELTEXT 2161 +#define SCI_GETTEXTRANGE 2162 +#define SCI_HIDESELECTION 2163 +#define SCI_POINTXFROMPOSITION 2164 +#define SCI_POINTYFROMPOSITION 2165 +#define SCI_LINEFROMPOSITION 2166 +#define SCI_POSITIONFROMLINE 2167 +#define SCI_LINESCROLL 2168 +#define SCI_SCROLLCARET 2169 +#define SCI_SCROLLRANGE 2569 +#define SCI_REPLACESEL 2170 +#define SCI_SETREADONLY 2171 +#define SCI_NULL 2172 +#define SCI_CANPASTE 2173 +#define SCI_CANUNDO 2174 +#define SCI_EMPTYUNDOBUFFER 2175 +#define SCI_UNDO 2176 +#define SCI_CUT 2177 +#define SCI_COPY 2178 +#define SCI_PASTE 2179 +#define SCI_CLEAR 2180 +#define SCI_SETTEXT 2181 +#define SCI_GETTEXT 2182 +#define SCI_GETTEXTLENGTH 2183 +#define SCI_GETDIRECTFUNCTION 2184 +#define SCI_GETDIRECTPOINTER 2185 +#define SCI_SETOVERTYPE 2186 +#define SCI_GETOVERTYPE 2187 +#define SCI_SETCARETWIDTH 2188 +#define SCI_GETCARETWIDTH 2189 +#define SCI_SETTARGETSTART 2190 +#define SCI_GETTARGETSTART 2191 +#define SCI_SETTARGETSTARTVIRTUALSPACE 2728 +#define SCI_GETTARGETSTARTVIRTUALSPACE 2729 +#define SCI_SETTARGETEND 2192 +#define SCI_GETTARGETEND 2193 +#define SCI_SETTARGETENDVIRTUALSPACE 2730 +#define SCI_GETTARGETENDVIRTUALSPACE 2731 +#define SCI_SETTARGETRANGE 2686 +#define SCI_GETTARGETTEXT 2687 +#define SCI_TARGETFROMSELECTION 2287 +#define SCI_TARGETWHOLEDOCUMENT 2690 +#define SCI_REPLACETARGET 2194 +#define SCI_REPLACETARGETRE 2195 +#define SCI_SEARCHINTARGET 2197 +#define SCI_SETSEARCHFLAGS 2198 +#define SCI_GETSEARCHFLAGS 2199 +#define SCI_CALLTIPSHOW 2200 +#define SCI_CALLTIPCANCEL 2201 +#define SCI_CALLTIPACTIVE 2202 +#define SCI_CALLTIPPOSSTART 2203 +#define SCI_CALLTIPSETPOSSTART 2214 +#define SCI_CALLTIPSETHLT 2204 +#define SCI_CALLTIPSETBACK 2205 +#define SCI_CALLTIPSETFORE 2206 +#define SCI_CALLTIPSETFOREHLT 2207 +#define SCI_CALLTIPUSESTYLE 2212 +#define SCI_CALLTIPSETPOSITION 2213 +#define SCI_VISIBLEFROMDOCLINE 2220 +#define SCI_DOCLINEFROMVISIBLE 2221 +#define SCI_WRAPCOUNT 2235 +#define SC_FOLDLEVELBASE 0x400 +#define SC_FOLDLEVELWHITEFLAG 0x1000 +#define SC_FOLDLEVELHEADERFLAG 0x2000 +#define SC_FOLDLEVELNUMBERMASK 0x0FFF +#define SCI_SETFOLDLEVEL 2222 +#define SCI_GETFOLDLEVEL 2223 +#define SCI_GETLASTCHILD 2224 +#define SCI_GETFOLDPARENT 2225 +#define SCI_SHOWLINES 2226 +#define SCI_HIDELINES 2227 +#define SCI_GETLINEVISIBLE 2228 +#define SCI_GETALLLINESVISIBLE 2236 +#define SCI_SETFOLDEXPANDED 2229 +#define SCI_GETFOLDEXPANDED 2230 +#define SCI_TOGGLEFOLD 2231 +#define SCI_TOGGLEFOLDSHOWTEXT 2700 +#define SC_FOLDDISPLAYTEXT_HIDDEN 0 +#define SC_FOLDDISPLAYTEXT_STANDARD 1 +#define SC_FOLDDISPLAYTEXT_BOXED 2 +#define SCI_FOLDDISPLAYTEXTSETSTYLE 2701 +#define SCI_FOLDDISPLAYTEXTGETSTYLE 2707 +#define SCI_SETDEFAULTFOLDDISPLAYTEXT 2722 +#define SCI_GETDEFAULTFOLDDISPLAYTEXT 2723 +#define SC_FOLDACTION_CONTRACT 0 +#define SC_FOLDACTION_EXPAND 1 +#define SC_FOLDACTION_TOGGLE 2 +#define SCI_FOLDLINE 2237 +#define SCI_FOLDCHILDREN 2238 +#define SCI_EXPANDCHILDREN 2239 +#define SCI_FOLDALL 2662 +#define SCI_ENSUREVISIBLE 2232 +#define SC_AUTOMATICFOLD_SHOW 0x0001 +#define SC_AUTOMATICFOLD_CLICK 0x0002 +#define SC_AUTOMATICFOLD_CHANGE 0x0004 +#define SCI_SETAUTOMATICFOLD 2663 +#define SCI_GETAUTOMATICFOLD 2664 +#define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 +#define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 +#define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 +#define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 +#define SC_FOLDFLAG_LEVELNUMBERS 0x0040 +#define SC_FOLDFLAG_LINESTATE 0x0080 +#define SCI_SETFOLDFLAGS 2233 +#define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 +#define SCI_SETTABINDENTS 2260 +#define SCI_GETTABINDENTS 2261 +#define SCI_SETBACKSPACEUNINDENTS 2262 +#define SCI_GETBACKSPACEUNINDENTS 2263 +#define SC_TIME_FOREVER 10000000 +#define SCI_SETMOUSEDWELLTIME 2264 +#define SCI_GETMOUSEDWELLTIME 2265 +#define SCI_WORDSTARTPOSITION 2266 +#define SCI_WORDENDPOSITION 2267 +#define SCI_ISRANGEWORD 2691 +#define SC_IDLESTYLING_NONE 0 +#define SC_IDLESTYLING_TOVISIBLE 1 +#define SC_IDLESTYLING_AFTERVISIBLE 2 +#define SC_IDLESTYLING_ALL 3 +#define SCI_SETIDLESTYLING 2692 +#define SCI_GETIDLESTYLING 2693 +#define SC_WRAP_NONE 0 +#define SC_WRAP_WORD 1 +#define SC_WRAP_CHAR 2 +#define SC_WRAP_WHITESPACE 3 +#define SCI_SETWRAPMODE 2268 +#define SCI_GETWRAPMODE 2269 +#define SC_WRAPVISUALFLAG_NONE 0x0000 +#define SC_WRAPVISUALFLAG_END 0x0001 +#define SC_WRAPVISUALFLAG_START 0x0002 +#define SC_WRAPVISUALFLAG_MARGIN 0x0004 +#define SCI_SETWRAPVISUALFLAGS 2460 +#define SCI_GETWRAPVISUALFLAGS 2461 +#define SC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 +#define SC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 +#define SC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 +#define SCI_SETWRAPVISUALFLAGSLOCATION 2462 +#define SCI_GETWRAPVISUALFLAGSLOCATION 2463 +#define SCI_SETWRAPSTARTINDENT 2464 +#define SCI_GETWRAPSTARTINDENT 2465 +#define SC_WRAPINDENT_FIXED 0 +#define SC_WRAPINDENT_SAME 1 +#define SC_WRAPINDENT_INDENT 2 +#define SC_WRAPINDENT_DEEPINDENT 3 +#define SCI_SETWRAPINDENTMODE 2472 +#define SCI_GETWRAPINDENTMODE 2473 +#define SC_CACHE_NONE 0 +#define SC_CACHE_CARET 1 +#define SC_CACHE_PAGE 2 +#define SC_CACHE_DOCUMENT 3 +#define SCI_SETLAYOUTCACHE 2272 +#define SCI_GETLAYOUTCACHE 2273 +#define SCI_SETSCROLLWIDTH 2274 +#define SCI_GETSCROLLWIDTH 2275 +#define SCI_SETSCROLLWIDTHTRACKING 2516 +#define SCI_GETSCROLLWIDTHTRACKING 2517 +#define SCI_TEXTWIDTH 2276 +#define SCI_SETENDATLASTLINE 2277 +#define SCI_GETENDATLASTLINE 2278 +#define SCI_TEXTHEIGHT 2279 +#define SCI_SETVSCROLLBAR 2280 +#define SCI_GETVSCROLLBAR 2281 +#define SCI_APPENDTEXT 2282 +#define SC_PHASES_ONE 0 +#define SC_PHASES_TWO 1 +#define SC_PHASES_MULTIPLE 2 +#define SCI_GETPHASESDRAW 2673 +#define SCI_SETPHASESDRAW 2674 +#define SC_EFF_QUALITY_MASK 0xF +#define SC_EFF_QUALITY_DEFAULT 0 +#define SC_EFF_QUALITY_NON_ANTIALIASED 1 +#define SC_EFF_QUALITY_ANTIALIASED 2 +#define SC_EFF_QUALITY_LCD_OPTIMIZED 3 +#define SCI_SETFONTQUALITY 2611 +#define SCI_GETFONTQUALITY 2612 +#define SCI_SETFIRSTVISIBLELINE 2613 +#define SC_MULTIPASTE_ONCE 0 +#define SC_MULTIPASTE_EACH 1 +#define SCI_SETMULTIPASTE 2614 +#define SCI_GETMULTIPASTE 2615 +#define SCI_GETTAG 2616 +#define SCI_LINESJOIN 2288 +#define SCI_LINESSPLIT 2289 +#define SCI_SETFOLDMARGINCOLOUR 2290 +#define SCI_SETFOLDMARGINHICOLOUR 2291 +#define SC_ACCESSIBILITY_DISABLED 0 +#define SC_ACCESSIBILITY_ENABLED 1 +#define SCI_SETACCESSIBILITY 2702 +#define SCI_GETACCESSIBILITY 2703 +#define SCI_LINEDOWN 2300 +#define SCI_LINEDOWNEXTEND 2301 +#define SCI_LINEUP 2302 +#define SCI_LINEUPEXTEND 2303 +#define SCI_CHARLEFT 2304 +#define SCI_CHARLEFTEXTEND 2305 +#define SCI_CHARRIGHT 2306 +#define SCI_CHARRIGHTEXTEND 2307 +#define SCI_WORDLEFT 2308 +#define SCI_WORDLEFTEXTEND 2309 +#define SCI_WORDRIGHT 2310 +#define SCI_WORDRIGHTEXTEND 2311 +#define SCI_HOME 2312 +#define SCI_HOMEEXTEND 2313 +#define SCI_LINEEND 2314 +#define SCI_LINEENDEXTEND 2315 +#define SCI_DOCUMENTSTART 2316 +#define SCI_DOCUMENTSTARTEXTEND 2317 +#define SCI_DOCUMENTEND 2318 +#define SCI_DOCUMENTENDEXTEND 2319 +#define SCI_PAGEUP 2320 +#define SCI_PAGEUPEXTEND 2321 +#define SCI_PAGEDOWN 2322 +#define SCI_PAGEDOWNEXTEND 2323 +#define SCI_EDITTOGGLEOVERTYPE 2324 +#define SCI_CANCEL 2325 +#define SCI_DELETEBACK 2326 +#define SCI_TAB 2327 +#define SCI_BACKTAB 2328 +#define SCI_NEWLINE 2329 +#define SCI_FORMFEED 2330 +#define SCI_VCHOME 2331 +#define SCI_VCHOMEEXTEND 2332 +#define SCI_ZOOMIN 2333 +#define SCI_ZOOMOUT 2334 +#define SCI_DELWORDLEFT 2335 +#define SCI_DELWORDRIGHT 2336 +#define SCI_DELWORDRIGHTEND 2518 +#define SCI_LINECUT 2337 +#define SCI_LINEDELETE 2338 +#define SCI_LINETRANSPOSE 2339 +#define SCI_LINEREVERSE 2354 +#define SCI_LINEDUPLICATE 2404 +#define SCI_LOWERCASE 2340 +#define SCI_UPPERCASE 2341 +#define SCI_LINESCROLLDOWN 2342 +#define SCI_LINESCROLLUP 2343 +#define SCI_DELETEBACKNOTLINE 2344 +#define SCI_HOMEDISPLAY 2345 +#define SCI_HOMEDISPLAYEXTEND 2346 +#define SCI_LINEENDDISPLAY 2347 +#define SCI_LINEENDDISPLAYEXTEND 2348 +#define SCI_HOMEWRAP 2349 +#define SCI_HOMEWRAPEXTEND 2450 +#define SCI_LINEENDWRAP 2451 +#define SCI_LINEENDWRAPEXTEND 2452 +#define SCI_VCHOMEWRAP 2453 +#define SCI_VCHOMEWRAPEXTEND 2454 +#define SCI_LINECOPY 2455 +#define SCI_MOVECARETINSIDEVIEW 2401 +#define SCI_LINELENGTH 2350 +#define SCI_BRACEHIGHLIGHT 2351 +#define SCI_BRACEHIGHLIGHTINDICATOR 2498 +#define SCI_BRACEBADLIGHT 2352 +#define SCI_BRACEBADLIGHTINDICATOR 2499 +#define SCI_BRACEMATCH 2353 +#define SCI_BRACEMATCHNEXT 2369 +#define SCI_GETVIEWEOL 2355 +#define SCI_SETVIEWEOL 2356 +#define SCI_GETDOCPOINTER 2357 +#define SCI_SETDOCPOINTER 2358 +#define SCI_SETMODEVENTMASK 2359 +#define EDGE_NONE 0 +#define EDGE_LINE 1 +#define EDGE_BACKGROUND 2 +#define EDGE_MULTILINE 3 +#define SCI_GETEDGECOLUMN 2360 +#define SCI_SETEDGECOLUMN 2361 +#define SCI_GETEDGEMODE 2362 +#define SCI_SETEDGEMODE 2363 +#define SCI_GETEDGECOLOUR 2364 +#define SCI_SETEDGECOLOUR 2365 +#define SCI_MULTIEDGEADDLINE 2694 +#define SCI_MULTIEDGECLEARALL 2695 +#define SCI_GETMULTIEDGECOLUMN 2749 +#define SCI_SEARCHANCHOR 2366 +#define SCI_SEARCHNEXT 2367 +#define SCI_SEARCHPREV 2368 +#define SCI_LINESONSCREEN 2370 +#define SC_POPUP_NEVER 0 +#define SC_POPUP_ALL 1 +#define SC_POPUP_TEXT 2 +#define SCI_USEPOPUP 2371 +#define SCI_SELECTIONISRECTANGLE 2372 +#define SCI_SETZOOM 2373 +#define SCI_GETZOOM 2374 +#define SC_DOCUMENTOPTION_DEFAULT 0 +#define SC_DOCUMENTOPTION_STYLES_NONE 0x1 +#define SC_DOCUMENTOPTION_TEXT_LARGE 0x100 +#define SCI_CREATEDOCUMENT 2375 +#define SCI_ADDREFDOCUMENT 2376 +#define SCI_RELEASEDOCUMENT 2377 +#define SCI_GETDOCUMENTOPTIONS 2379 +#define SCI_GETMODEVENTMASK 2378 +#define SCI_SETCOMMANDEVENTS 2717 +#define SCI_GETCOMMANDEVENTS 2718 +#define SCI_SETFOCUS 2380 +#define SCI_GETFOCUS 2381 +#define SC_STATUS_OK 0 +#define SC_STATUS_FAILURE 1 +#define SC_STATUS_BADALLOC 2 +#define SC_STATUS_WARN_START 1000 +#define SC_STATUS_WARN_REGEX 1001 +#define SCI_SETSTATUS 2382 +#define SCI_GETSTATUS 2383 +#define SCI_SETMOUSEDOWNCAPTURES 2384 +#define SCI_GETMOUSEDOWNCAPTURES 2385 +#define SCI_SETMOUSEWHEELCAPTURES 2696 +#define SCI_GETMOUSEWHEELCAPTURES 2697 +#define SCI_SETCURSOR 2386 +#define SCI_GETCURSOR 2387 +#define SCI_SETCONTROLCHARSYMBOL 2388 +#define SCI_GETCONTROLCHARSYMBOL 2389 +#define SCI_WORDPARTLEFT 2390 +#define SCI_WORDPARTLEFTEXTEND 2391 +#define SCI_WORDPARTRIGHT 2392 +#define SCI_WORDPARTRIGHTEXTEND 2393 +#define VISIBLE_SLOP 0x01 +#define VISIBLE_STRICT 0x04 +#define SCI_SETVISIBLEPOLICY 2394 +#define SCI_DELLINELEFT 2395 +#define SCI_DELLINERIGHT 2396 +#define SCI_SETXOFFSET 2397 +#define SCI_GETXOFFSET 2398 +#define SCI_CHOOSECARETX 2399 +#define SCI_GRABFOCUS 2400 +#define CARET_SLOP 0x01 +#define CARET_STRICT 0x04 +#define CARET_JUMPS 0x10 +#define CARET_EVEN 0x08 +#define SCI_SETXCARETPOLICY 2402 +#define SCI_SETYCARETPOLICY 2403 +#define SCI_SETPRINTWRAPMODE 2406 +#define SCI_GETPRINTWRAPMODE 2407 +#define SCI_SETHOTSPOTACTIVEFORE 2410 +#define SCI_GETHOTSPOTACTIVEFORE 2494 +#define SCI_SETHOTSPOTACTIVEBACK 2411 +#define SCI_GETHOTSPOTACTIVEBACK 2495 +#define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 +#define SCI_GETHOTSPOTACTIVEUNDERLINE 2496 +#define SCI_SETHOTSPOTSINGLELINE 2421 +#define SCI_GETHOTSPOTSINGLELINE 2497 +#define SCI_PARADOWN 2413 +#define SCI_PARADOWNEXTEND 2414 +#define SCI_PARAUP 2415 +#define SCI_PARAUPEXTEND 2416 +#define SCI_POSITIONBEFORE 2417 +#define SCI_POSITIONAFTER 2418 +#define SCI_POSITIONRELATIVE 2670 +#define SCI_POSITIONRELATIVECODEUNITS 2716 +#define SCI_COPYRANGE 2419 +#define SCI_COPYTEXT 2420 +#define SC_SEL_STREAM 0 +#define SC_SEL_RECTANGLE 1 +#define SC_SEL_LINES 2 +#define SC_SEL_THIN 3 +#define SCI_SETSELECTIONMODE 2422 +#define SCI_GETSELECTIONMODE 2423 +#define SCI_GETMOVEEXTENDSSELECTION 2706 +#define SCI_GETLINESELSTARTPOSITION 2424 +#define SCI_GETLINESELENDPOSITION 2425 +#define SCI_LINEDOWNRECTEXTEND 2426 +#define SCI_LINEUPRECTEXTEND 2427 +#define SCI_CHARLEFTRECTEXTEND 2428 +#define SCI_CHARRIGHTRECTEXTEND 2429 +#define SCI_HOMERECTEXTEND 2430 +#define SCI_VCHOMERECTEXTEND 2431 +#define SCI_LINEENDRECTEXTEND 2432 +#define SCI_PAGEUPRECTEXTEND 2433 +#define SCI_PAGEDOWNRECTEXTEND 2434 +#define SCI_STUTTEREDPAGEUP 2435 +#define SCI_STUTTEREDPAGEUPEXTEND 2436 +#define SCI_STUTTEREDPAGEDOWN 2437 +#define SCI_STUTTEREDPAGEDOWNEXTEND 2438 +#define SCI_WORDLEFTEND 2439 +#define SCI_WORDLEFTENDEXTEND 2440 +#define SCI_WORDRIGHTEND 2441 +#define SCI_WORDRIGHTENDEXTEND 2442 +#define SCI_SETWHITESPACECHARS 2443 +#define SCI_GETWHITESPACECHARS 2647 +#define SCI_SETPUNCTUATIONCHARS 2648 +#define SCI_GETPUNCTUATIONCHARS 2649 +#define SCI_SETCHARSDEFAULT 2444 +#define SCI_AUTOCGETCURRENT 2445 +#define SCI_AUTOCGETCURRENTTEXT 2610 +#define SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE 0 +#define SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1 +#define SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR 2634 +#define SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR 2635 +#define SC_MULTIAUTOC_ONCE 0 +#define SC_MULTIAUTOC_EACH 1 +#define SCI_AUTOCSETMULTI 2636 +#define SCI_AUTOCGETMULTI 2637 +#define SC_ORDER_PRESORTED 0 +#define SC_ORDER_PERFORMSORT 1 +#define SC_ORDER_CUSTOM 2 +#define SCI_AUTOCSETORDER 2660 +#define SCI_AUTOCGETORDER 2661 +#define SCI_ALLOCATE 2446 +#define SCI_TARGETASUTF8 2447 +#define SCI_SETLENGTHFORENCODE 2448 +#define SCI_ENCODEDFROMUTF8 2449 +#define SCI_FINDCOLUMN 2456 +#define SC_CARETSTICKY_OFF 0 +#define SC_CARETSTICKY_ON 1 +#define SC_CARETSTICKY_WHITESPACE 2 +#define SCI_GETCARETSTICKY 2457 +#define SCI_SETCARETSTICKY 2458 +#define SCI_TOGGLECARETSTICKY 2459 +#define SCI_SETPASTECONVERTENDINGS 2467 +#define SCI_GETPASTECONVERTENDINGS 2468 +#define SCI_SELECTIONDUPLICATE 2469 +#define SCI_SETCARETLINEBACKALPHA 2470 +#define SCI_GETCARETLINEBACKALPHA 2471 +#define CARETSTYLE_INVISIBLE 0 +#define CARETSTYLE_LINE 1 +#define CARETSTYLE_BLOCK 2 +#define CARETSTYLE_OVERSTRIKE_BAR 0 +#define CARETSTYLE_OVERSTRIKE_BLOCK 0x10 +#define CARETSTYLE_INS_MASK 0xF +#define CARETSTYLE_BLOCK_AFTER 0x100 +#define SCI_SETCARETSTYLE 2512 +#define SCI_GETCARETSTYLE 2513 +#define SCI_SETINDICATORCURRENT 2500 +#define SCI_GETINDICATORCURRENT 2501 +#define SCI_SETINDICATORVALUE 2502 +#define SCI_GETINDICATORVALUE 2503 +#define SCI_INDICATORFILLRANGE 2504 +#define SCI_INDICATORCLEARRANGE 2505 +#define SCI_INDICATORALLONFOR 2506 +#define SCI_INDICATORVALUEAT 2507 +#define SCI_INDICATORSTART 2508 +#define SCI_INDICATOREND 2509 +#define SCI_SETPOSITIONCACHE 2514 +#define SCI_GETPOSITIONCACHE 2515 +#define SCI_COPYALLOWLINE 2519 +#define SCI_GETCHARACTERPOINTER 2520 +#define SCI_GETRANGEPOINTER 2643 +#define SCI_GETGAPPOSITION 2644 +#define SCI_INDICSETALPHA 2523 +#define SCI_INDICGETALPHA 2524 +#define SCI_INDICSETOUTLINEALPHA 2558 +#define SCI_INDICGETOUTLINEALPHA 2559 +#define SCI_SETEXTRAASCENT 2525 +#define SCI_GETEXTRAASCENT 2526 +#define SCI_SETEXTRADESCENT 2527 +#define SCI_GETEXTRADESCENT 2528 +#define SCI_MARKERSYMBOLDEFINED 2529 +#define SCI_MARGINSETTEXT 2530 +#define SCI_MARGINGETTEXT 2531 +#define SCI_MARGINSETSTYLE 2532 +#define SCI_MARGINGETSTYLE 2533 +#define SCI_MARGINSETSTYLES 2534 +#define SCI_MARGINGETSTYLES 2535 +#define SCI_MARGINTEXTCLEARALL 2536 +#define SCI_MARGINSETSTYLEOFFSET 2537 +#define SCI_MARGINGETSTYLEOFFSET 2538 +#define SC_MARGINOPTION_NONE 0 +#define SC_MARGINOPTION_SUBLINESELECT 1 +#define SCI_SETMARGINOPTIONS 2539 +#define SCI_GETMARGINOPTIONS 2557 +#define SCI_ANNOTATIONSETTEXT 2540 +#define SCI_ANNOTATIONGETTEXT 2541 +#define SCI_ANNOTATIONSETSTYLE 2542 +#define SCI_ANNOTATIONGETSTYLE 2543 +#define SCI_ANNOTATIONSETSTYLES 2544 +#define SCI_ANNOTATIONGETSTYLES 2545 +#define SCI_ANNOTATIONGETLINES 2546 +#define SCI_ANNOTATIONCLEARALL 2547 +#define ANNOTATION_HIDDEN 0 +#define ANNOTATION_STANDARD 1 +#define ANNOTATION_BOXED 2 +#define ANNOTATION_INDENTED 3 +#define SCI_ANNOTATIONSETVISIBLE 2548 +#define SCI_ANNOTATIONGETVISIBLE 2549 +#define SCI_ANNOTATIONSETSTYLEOFFSET 2550 +#define SCI_ANNOTATIONGETSTYLEOFFSET 2551 +#define SCI_RELEASEALLEXTENDEDSTYLES 2552 +#define SCI_ALLOCATEEXTENDEDSTYLES 2553 +#define UNDO_NONE 0 +#define UNDO_MAY_COALESCE 1 +#define SCI_ADDUNDOACTION 2560 +#define SCI_CHARPOSITIONFROMPOINT 2561 +#define SCI_CHARPOSITIONFROMPOINTCLOSE 2562 +#define SCI_SETMOUSESELECTIONRECTANGULARSWITCH 2668 +#define SCI_GETMOUSESELECTIONRECTANGULARSWITCH 2669 +#define SCI_SETMULTIPLESELECTION 2563 +#define SCI_GETMULTIPLESELECTION 2564 +#define SCI_SETADDITIONALSELECTIONTYPING 2565 +#define SCI_GETADDITIONALSELECTIONTYPING 2566 +#define SCI_SETADDITIONALCARETSBLINK 2567 +#define SCI_GETADDITIONALCARETSBLINK 2568 +#define SCI_SETADDITIONALCARETSVISIBLE 2608 +#define SCI_GETADDITIONALCARETSVISIBLE 2609 +#define SCI_GETSELECTIONS 2570 +#define SCI_GETSELECTIONEMPTY 2650 +#define SCI_CLEARSELECTIONS 2571 +#define SCI_SETSELECTION 2572 +#define SCI_ADDSELECTION 2573 +#define SCI_DROPSELECTIONN 2671 +#define SCI_SETMAINSELECTION 2574 +#define SCI_GETMAINSELECTION 2575 +#define SCI_SETSELECTIONNCARET 2576 +#define SCI_GETSELECTIONNCARET 2577 +#define SCI_SETSELECTIONNANCHOR 2578 +#define SCI_GETSELECTIONNANCHOR 2579 +#define SCI_SETSELECTIONNCARETVIRTUALSPACE 2580 +#define SCI_GETSELECTIONNCARETVIRTUALSPACE 2581 +#define SCI_SETSELECTIONNANCHORVIRTUALSPACE 2582 +#define SCI_GETSELECTIONNANCHORVIRTUALSPACE 2583 +#define SCI_SETSELECTIONNSTART 2584 +#define SCI_GETSELECTIONNSTART 2585 +#define SCI_GETSELECTIONNSTARTVIRTUALSPACE 2726 +#define SCI_SETSELECTIONNEND 2586 +#define SCI_GETSELECTIONNENDVIRTUALSPACE 2727 +#define SCI_GETSELECTIONNEND 2587 +#define SCI_SETRECTANGULARSELECTIONCARET 2588 +#define SCI_GETRECTANGULARSELECTIONCARET 2589 +#define SCI_SETRECTANGULARSELECTIONANCHOR 2590 +#define SCI_GETRECTANGULARSELECTIONANCHOR 2591 +#define SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE 2592 +#define SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE 2593 +#define SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2594 +#define SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2595 +#define SCVS_NONE 0 +#define SCVS_RECTANGULARSELECTION 1 +#define SCVS_USERACCESSIBLE 2 +#define SCVS_NOWRAPLINESTART 4 +#define SCI_SETVIRTUALSPACEOPTIONS 2596 +#define SCI_GETVIRTUALSPACEOPTIONS 2597 +#define SCI_SETRECTANGULARSELECTIONMODIFIER 2598 +#define SCI_GETRECTANGULARSELECTIONMODIFIER 2599 +#define SCI_SETADDITIONALSELFORE 2600 +#define SCI_SETADDITIONALSELBACK 2601 +#define SCI_SETADDITIONALSELALPHA 2602 +#define SCI_GETADDITIONALSELALPHA 2603 +#define SCI_SETADDITIONALCARETFORE 2604 +#define SCI_GETADDITIONALCARETFORE 2605 +#define SCI_ROTATESELECTION 2606 +#define SCI_SWAPMAINANCHORCARET 2607 +#define SCI_MULTIPLESELECTADDNEXT 2688 +#define SCI_MULTIPLESELECTADDEACH 2689 +#define SCI_CHANGELEXERSTATE 2617 +#define SCI_CONTRACTEDFOLDNEXT 2618 +#define SCI_VERTICALCENTRECARET 2619 +#define SCI_MOVESELECTEDLINESUP 2620 +#define SCI_MOVESELECTEDLINESDOWN 2621 +#define SCI_SETIDENTIFIER 2622 +#define SCI_GETIDENTIFIER 2623 +#define SCI_RGBAIMAGESETWIDTH 2624 +#define SCI_RGBAIMAGESETHEIGHT 2625 +#define SCI_RGBAIMAGESETSCALE 2651 +#define SCI_MARKERDEFINERGBAIMAGE 2626 +#define SCI_REGISTERRGBAIMAGE 2627 +#define SCI_SCROLLTOSTART 2628 +#define SCI_SCROLLTOEND 2629 +#define SC_TECHNOLOGY_DEFAULT 0 +#define SC_TECHNOLOGY_DIRECTWRITE 1 +#define SC_TECHNOLOGY_DIRECTWRITERETAIN 2 +#define SC_TECHNOLOGY_DIRECTWRITEDC 3 +#define SCI_SETTECHNOLOGY 2630 +#define SCI_GETTECHNOLOGY 2631 +#define SCI_CREATELOADER 2632 +#define SCI_FINDINDICATORSHOW 2640 +#define SCI_FINDINDICATORFLASH 2641 +#define SCI_FINDINDICATORHIDE 2642 +#define SCI_VCHOMEDISPLAY 2652 +#define SCI_VCHOMEDISPLAYEXTEND 2653 +#define SCI_GETCARETLINEVISIBLEALWAYS 2654 +#define SCI_SETCARETLINEVISIBLEALWAYS 2655 +#define SC_LINE_END_TYPE_DEFAULT 0 +#define SC_LINE_END_TYPE_UNICODE 1 +#define SCI_SETLINEENDTYPESALLOWED 2656 +#define SCI_GETLINEENDTYPESALLOWED 2657 +#define SCI_GETLINEENDTYPESACTIVE 2658 +#define SCI_SETREPRESENTATION 2665 +#define SCI_GETREPRESENTATION 2666 +#define SCI_CLEARREPRESENTATION 2667 +#define SCI_EOLANNOTATIONSETTEXT 2740 +#define SCI_EOLANNOTATIONGETTEXT 2741 +#define SCI_EOLANNOTATIONSETSTYLE 2742 +#define SCI_EOLANNOTATIONGETSTYLE 2743 +#define SCI_EOLANNOTATIONCLEARALL 2744 +#define EOLANNOTATION_HIDDEN 0 +#define EOLANNOTATION_STANDARD 1 +#define EOLANNOTATION_BOXED 2 +#define SCI_EOLANNOTATIONSETVISIBLE 2745 +#define SCI_EOLANNOTATIONGETVISIBLE 2746 +#define SCI_EOLANNOTATIONSETSTYLEOFFSET 2747 +#define SCI_EOLANNOTATIONGETSTYLEOFFSET 2748 +#define SCI_STARTRECORD 3001 +#define SCI_STOPRECORD 3002 +#define SCI_SETLEXER 4001 +#define SCI_GETLEXER 4002 +#define SCI_COLOURISE 4003 +#define SCI_SETPROPERTY 4004 +// #define KEYWORDSET_MAX 8 +#define KEYWORDSET_MAX 30 +#define SCI_SETKEYWORDS 4005 +#define SCI_SETLEXERLANGUAGE 4006 +#define SCI_LOADLEXERLIBRARY 4007 +#define SCI_GETPROPERTY 4008 +#define SCI_GETPROPERTYEXPANDED 4009 +#define SCI_GETPROPERTYINT 4010 +#define SCI_GETLEXERLANGUAGE 4012 +#define SCI_PRIVATELEXERCALL 4013 +#define SCI_PROPERTYNAMES 4014 +#define SC_TYPE_BOOLEAN 0 +#define SC_TYPE_INTEGER 1 +#define SC_TYPE_STRING 2 +#define SCI_PROPERTYTYPE 4015 +#define SCI_DESCRIBEPROPERTY 4016 +#define SCI_DESCRIBEKEYWORDSETS 4017 +#define SCI_GETLINEENDTYPESSUPPORTED 4018 +#define SCI_ALLOCATESUBSTYLES 4020 +#define SCI_GETSUBSTYLESSTART 4021 +#define SCI_GETSUBSTYLESLENGTH 4022 +#define SCI_GETSTYLEFROMSUBSTYLE 4027 +#define SCI_GETPRIMARYSTYLEFROMSTYLE 4028 +#define SCI_FREESUBSTYLES 4023 +#define SCI_SETIDENTIFIERS 4024 +#define SCI_DISTANCETOSECONDARYSTYLES 4025 +#define SCI_GETSUBSTYLEBASES 4026 +#define SCI_GETNAMEDSTYLES 4029 +#define SCI_NAMEOFSTYLE 4030 +#define SCI_TAGSOFSTYLE 4031 +#define SCI_DESCRIPTIONOFSTYLE 4032 +#define SCI_SETILEXER 4033 +#define SC_MOD_NONE 0x0 +#define SC_MOD_INSERTTEXT 0x1 +#define SC_MOD_DELETETEXT 0x2 +#define SC_MOD_CHANGESTYLE 0x4 +#define SC_MOD_CHANGEFOLD 0x8 +#define SC_PERFORMED_USER 0x10 +#define SC_PERFORMED_UNDO 0x20 +#define SC_PERFORMED_REDO 0x40 +#define SC_MULTISTEPUNDOREDO 0x80 +#define SC_LASTSTEPINUNDOREDO 0x100 +#define SC_MOD_CHANGEMARKER 0x200 +#define SC_MOD_BEFOREINSERT 0x400 +#define SC_MOD_BEFOREDELETE 0x800 +#define SC_MULTILINEUNDOREDO 0x1000 +#define SC_STARTACTION 0x2000 +#define SC_MOD_CHANGEINDICATOR 0x4000 +#define SC_MOD_CHANGELINESTATE 0x8000 +#define SC_MOD_CHANGEMARGIN 0x10000 +#define SC_MOD_CHANGEANNOTATION 0x20000 +#define SC_MOD_CONTAINER 0x40000 +#define SC_MOD_LEXERSTATE 0x80000 +#define SC_MOD_INSERTCHECK 0x100000 +#define SC_MOD_CHANGETABSTOPS 0x200000 +#define SC_MOD_CHANGEEOLANNOTATION 0x400000 +#define SC_MODEVENTMASKALL 0x7FFFFF +#define SC_SEARCHRESULT_LINEBUFFERMAXLENGTH 2048 +#define SC_UPDATE_CONTENT 0x1 +#define SC_UPDATE_SELECTION 0x2 +#define SC_UPDATE_V_SCROLL 0x4 +#define SC_UPDATE_H_SCROLL 0x8 +#define SCEN_CHANGE 768 +#define SCEN_SETFOCUS 512 +#define SCEN_KILLFOCUS 256 +#define SCK_DOWN 300 +#define SCK_UP 301 +#define SCK_LEFT 302 +#define SCK_RIGHT 303 +#define SCK_HOME 304 +#define SCK_END 305 +#define SCK_PRIOR 306 +#define SCK_NEXT 307 +#define SCK_DELETE 308 +#define SCK_INSERT 309 +#define SCK_ESCAPE 7 +#define SCK_BACK 8 +#define SCK_TAB 9 +#define SCK_RETURN 13 +#define SCK_ADD 310 +#define SCK_SUBTRACT 311 +#define SCK_DIVIDE 312 +#define SCK_WIN 313 +#define SCK_RWIN 314 +#define SCK_MENU 315 +#define SCMOD_NORM 0 +#define SCMOD_SHIFT 1 +#define SCMOD_CTRL 2 +#define SCMOD_ALT 4 +#define SCMOD_SUPER 8 +#define SCMOD_META 16 +#define SC_AC_FILLUP 1 +#define SC_AC_DOUBLECLICK 2 +#define SC_AC_TAB 3 +#define SC_AC_NEWLINE 4 +#define SC_AC_COMMAND 5 +#define SC_CHARACTERSOURCE_DIRECT_INPUT 0 +#define SC_CHARACTERSOURCE_TENTATIVE_INPUT 1 +#define SC_CHARACTERSOURCE_IME_RESULT 2 +#define SCN_STYLENEEDED 2000 +#define SCN_CHARADDED 2001 +#define SCN_SAVEPOINTREACHED 2002 +#define SCN_SAVEPOINTLEFT 2003 +#define SCN_MODIFYATTEMPTRO 2004 +#define SCN_KEY 2005 +#define SCN_DOUBLECLICK 2006 +#define SCN_UPDATEUI 2007 +#define SCN_MODIFIED 2008 +#define SCN_MACRORECORD 2009 +#define SCN_MARGINCLICK 2010 +#define SCN_NEEDSHOWN 2011 +#define SCN_PAINTED 2013 +#define SCN_USERLISTSELECTION 2014 +#define SCN_URIDROPPED 2015 +#define SCN_DWELLSTART 2016 +#define SCN_DWELLEND 2017 +#define SCN_ZOOM 2018 +#define SCN_HOTSPOTCLICK 2019 +#define SCN_HOTSPOTDOUBLECLICK 2020 +#define SCN_CALLTIPCLICK 2021 +#define SCN_AUTOCSELECTION 2022 +#define SCN_INDICATORCLICK 2023 +#define SCN_INDICATORRELEASE 2024 +#define SCN_AUTOCCANCELLED 2025 +#define SCN_AUTOCCHARDELETED 2026 +#define SCN_HOTSPOTRELEASECLICK 2027 +#define SCN_FOCUSIN 2028 +#define SCN_FOCUSOUT 2029 +#define SCN_AUTOCCOMPLETED 2030 +#define SCN_MARGINRIGHTCLICK 2031 +#define SCN_AUTOCSELECTIONCHANGE 2032 +#ifndef SCI_DISABLE_PROVISIONAL +#define SC_BIDIRECTIONAL_DISABLED 0 +#define SC_BIDIRECTIONAL_L2R 1 +#define SC_BIDIRECTIONAL_R2L 2 +#define SCI_GETBIDIRECTIONAL 2708 +#define SCI_SETBIDIRECTIONAL 2709 +#define SC_LINECHARACTERINDEX_NONE 0 +#define SC_LINECHARACTERINDEX_UTF32 1 +#define SC_LINECHARACTERINDEX_UTF16 2 +#define SCI_GETLINECHARACTERINDEX 2710 +#define SCI_ALLOCATELINECHARACTERINDEX 2711 +#define SCI_RELEASELINECHARACTERINDEX 2712 +#define SCI_LINEFROMINDEXPOSITION 2713 +#define SCI_INDEXPOSITIONFROMLINE 2714 +#endif + +#define SCI_GETBOOSTREGEXERRMSG 5000 + +#define SCN_SCROLLED 2080 +#define SCN_FOLDINGSTATECHANGED 2081 + +/* --Autogenerated -- end of section automatically generated from Scintilla.iface */ + +#endif + +/* These structures are defined to be exactly the same shape as the Win32 + * CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs. + * So older code that treats Scintilla as a RichEdit will work. */ + +struct Sci_CharacterRange { + Sci_PositionCR cpMin; + Sci_PositionCR cpMax; +}; + +struct Sci_TextRange { + struct Sci_CharacterRange chrg; + char *lpstrText; +}; + +struct Sci_TextToFind { + struct Sci_CharacterRange chrg; + const char *lpstrText; + struct Sci_CharacterRange chrgText; +}; + +typedef void *Sci_SurfaceID; + +struct Sci_Rectangle { + int left; + int top; + int right; + int bottom; +}; + +/* This structure is used in printing and requires some of the graphics types + * from Platform.h. Not needed by most client code. */ + +struct Sci_RangeToFormat { + Sci_SurfaceID hdc; + Sci_SurfaceID hdcTarget; + struct Sci_Rectangle rc; + struct Sci_Rectangle rcPage; + struct Sci_CharacterRange chrg; +}; + +#ifndef __cplusplus +/* For the GTK+ platform, g-ir-scanner needs to have these typedefs. This + * is not required in C++ code and actually seems to break ScintillaEditPy */ +typedef struct Sci_NotifyHeader Sci_NotifyHeader; +typedef struct SCNotification SCNotification; +#endif + +struct Sci_NotifyHeader { + /* Compatible with Windows NMHDR. + * hwndFrom is really an environment specific window handle or pointer + * but most clients of Scintilla.h do not have this type visible. */ + void *hwndFrom; + uptr_t idFrom; + unsigned int code; +}; + +struct SCNotification { + Sci_NotifyHeader nmhdr; + Sci_Position position; + /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */ + /* SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, */ + /* SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, */ + /* SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ + /* SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */ + + int ch; + /* SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, */ + /* SCN_USERLISTSELECTION */ + int modifiers; + /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, */ + /* SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ + + int modificationType; /* SCN_MODIFIED */ + const char *text; + /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED */ + + Sci_Position length; /* SCN_MODIFIED */ + Sci_Position linesAdded; /* SCN_MODIFIED */ + int message; /* SCN_MACRORECORD */ + uptr_t wParam; /* SCN_MACRORECORD */ + sptr_t lParam; /* SCN_MACRORECORD */ + Sci_Position line; /* SCN_MODIFIED */ + int foldLevelNow; /* SCN_MODIFIED */ + int foldLevelPrev; /* SCN_MODIFIED */ + int margin; /* SCN_MARGINCLICK */ + int listType; /* SCN_USERLISTSELECTION */ + int x; /* SCN_DWELLSTART, SCN_DWELLEND */ + int y; /* SCN_DWELLSTART, SCN_DWELLEND */ + int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ + Sci_Position annotationLinesAdded; /* SCN_MODIFIED with SC_MOD_CHANGEANNOTATION */ + int updated; /* SCN_UPDATEUI */ + int listCompletionMethod; + /* SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION, */ + int characterSource; /* SCN_CHARADDED */ +}; + +struct SearchResultMarking { + intptr_t _start; + intptr_t _end; +}; + +struct SearchResultMarkings { + intptr_t _length; + SearchResultMarking *_markings; +}; + +#ifdef INCLUDE_DEPRECATED_FEATURES + +#define SCI_SETKEYSUNICODE 2521 +#define SCI_GETKEYSUNICODE 2522 + +#define SCI_GETTWOPHASEDRAW 2283 +#define SCI_SETTWOPHASEDRAW 2284 + +#define CharacterRange Sci_CharacterRange +#define TextRange Sci_TextRange +#define TextToFind Sci_TextToFind +#define RangeToFormat Sci_RangeToFormat +#define NotifyHeader Sci_NotifyHeader + +#define SCI_SETSTYLEBITS 2090 +#define SCI_GETSTYLEBITS 2091 +#define SCI_GETSTYLEBITSNEEDED 4011 + +#define INDIC0_MASK 0x20 +#define INDIC1_MASK 0x40 +#define INDIC2_MASK 0x80 +#define INDICS_MASK 0xE0 + +#endif + +#endif diff --git a/menuCmdID.h b/menuCmdID.h index bc68f3f..2ad7914 100644 --- a/menuCmdID.h +++ b/menuCmdID.h @@ -1,307 +1,587 @@ -//this file is part of notepad++ -//Copyright (C)2003 Don HO -// -//This program is free software; you can redistribute it and/or -//modify it under the terms of the GNU General Public License -//as published by the Free Software Foundation; either -//version 2 of the License, or (at your option) any later version. +// This file is part of Notepad++ project +// Copyright (C)2021 Don HO + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// at your option any later version. // -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -#ifndef MENUCMDID_H -#define MENUCMDID_H - -#define IDM 40000 - -#define IDM_FILE (IDM + 1000) - #define IDM_FILE_NEW (IDM_FILE + 1) - #define IDM_FILE_OPEN (IDM_FILE + 2) - #define IDM_FILE_CLOSE (IDM_FILE + 3) - #define IDM_FILE_CLOSEALL (IDM_FILE + 4) - #define IDM_FILE_CLOSEALL_BUT_CURRENT (IDM_FILE + 5) - #define IDM_FILE_SAVE (IDM_FILE + 6) - #define IDM_FILE_SAVEALL (IDM_FILE + 7) - #define IDM_FILE_SAVEAS (IDM_FILE + 8) - #define IDM_FILE_ASIAN_LANG (IDM_FILE + 9) - #define IDM_FILE_PRINT (IDM_FILE + 10) - #define IDM_FILE_PRINTNOW 1001 - #define IDM_FILE_EXIT (IDM_FILE + 11) - #define IDM_FILE_LOADSESSION (IDM_FILE + 12) - #define IDM_FILE_SAVESESSION (IDM_FILE + 13) - #define IDM_FILE_RELOAD (IDM_FILE + 14) - #define IDM_FILE_SAVECOPYAS (IDM_FILE + 15) - #define IDM_FILE_DELETE (IDM_FILE + 16) - #define IDM_FILE_RENAME (IDM_FILE + 17) - - // A mettre à jour si on ajoute nouveau menu item dans le menu "File" - #define IDM_FILEMENU_LASTONE IDM_FILE_RENAME +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + + +#pragma once + +#define IDM 40000 + +#define IDM_FILE (IDM + 1000) +// IMPORTANT: If list below is modified, you have to change the value of IDM_FILEMENU_LASTONE and IDM_FILEMENU_EXISTCMDPOSITION + #define IDM_FILE_NEW (IDM_FILE + 1) + #define IDM_FILE_OPEN (IDM_FILE + 2) + #define IDM_FILE_CLOSE (IDM_FILE + 3) + #define IDM_FILE_CLOSEALL (IDM_FILE + 4) + #define IDM_FILE_CLOSEALL_BUT_CURRENT (IDM_FILE + 5) + #define IDM_FILE_SAVE (IDM_FILE + 6) + #define IDM_FILE_SAVEALL (IDM_FILE + 7) + #define IDM_FILE_SAVEAS (IDM_FILE + 8) + #define IDM_FILE_CLOSEALL_TOLEFT (IDM_FILE + 9) + #define IDM_FILE_PRINT (IDM_FILE + 10) + #define IDM_FILE_PRINTNOW 1001 + #define IDM_FILE_EXIT (IDM_FILE + 11) + #define IDM_FILE_LOADSESSION (IDM_FILE + 12) + #define IDM_FILE_SAVESESSION (IDM_FILE + 13) + #define IDM_FILE_RELOAD (IDM_FILE + 14) + #define IDM_FILE_SAVECOPYAS (IDM_FILE + 15) + #define IDM_FILE_DELETE (IDM_FILE + 16) + #define IDM_FILE_RENAME (IDM_FILE + 17) + #define IDM_FILE_CLOSEALL_TORIGHT (IDM_FILE + 18) + #define IDM_FILE_OPEN_FOLDER (IDM_FILE + 19) + #define IDM_FILE_OPEN_CMD (IDM_FILE + 20) + #define IDM_FILE_RESTORELASTCLOSEDFILE (IDM_FILE + 21) + #define IDM_FILE_OPENFOLDERASWORSPACE (IDM_FILE + 22) + #define IDM_FILE_OPEN_DEFAULT_VIEWER (IDM_FILE + 23) + #define IDM_FILE_CLOSEALL_UNCHANGED (IDM_FILE + 24) + #define IDM_FILE_CONTAININGFOLDERASWORKSPACE (IDM_FILE + 25) +// IMPORTANT: If list above is modified, you have to change the following values: -#define IDM_EDIT (IDM + 2000) - #define IDM_EDIT_CUT (IDM_EDIT + 1) - #define IDM_EDIT_COPY (IDM_EDIT + 2) - #define IDM_EDIT_UNDO (IDM_EDIT + 3) - #define IDM_EDIT_REDO (IDM_EDIT + 4) - #define IDM_EDIT_PASTE (IDM_EDIT + 5) - #define IDM_EDIT_DELETE (IDM_EDIT + 6) - #define IDM_EDIT_SELECTALL (IDM_EDIT + 7) - - #define IDM_EDIT_INS_TAB (IDM_EDIT + 8) - #define IDM_EDIT_RMV_TAB (IDM_EDIT + 9) - #define IDM_EDIT_DUP_LINE (IDM_EDIT + 10) - #define IDM_EDIT_TRANSPOSE_LINE (IDM_EDIT + 11) - #define IDM_EDIT_SPLIT_LINES (IDM_EDIT + 12) - #define IDM_EDIT_JOIN_LINES (IDM_EDIT + 13) - #define IDM_EDIT_LINE_UP (IDM_EDIT + 14) - #define IDM_EDIT_LINE_DOWN (IDM_EDIT + 15) - #define IDM_EDIT_UPPERCASE (IDM_EDIT + 16) - #define IDM_EDIT_LOWERCASE (IDM_EDIT + 17) - - #define IDM_EDIT_BLOCK_COMMENT (IDM_EDIT + 22) - #define IDM_EDIT_STREAM_COMMENT (IDM_EDIT + 23) - #define IDM_EDIT_TRIMTRAILING (IDM_EDIT + 24) - - #define IDM_EDIT_RTL (IDM_EDIT+26) - #define IDM_EDIT_LTR (IDM_EDIT+27) - #define IDM_EDIT_SETREADONLY (IDM_EDIT+28) - #define IDM_EDIT_FULLPATHTOCLIP (IDM_EDIT+29) - #define IDM_EDIT_FILENAMETOCLIP (IDM_EDIT+30) - #define IDM_EDIT_CURRENTDIRTOCLIP (IDM_EDIT+31) - - #define IDM_EDIT_CLEARREADONLY (IDM_EDIT+33) - #define IDM_EDIT_COLUMNMODE (IDM_EDIT+34) - #define IDM_EDIT_BLOCK_COMMENT_SET (IDM_EDIT+35) - #define IDM_EDIT_BLOCK_UNCOMMENT (IDM_EDIT+36) - - #define IDM_EDIT_AUTOCOMPLETE (50000+0) - #define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (50000+1) - #define IDM_EDIT_FUNCCALLTIP (50000+2) - - //Belong to MENU FILE - #define IDM_OPEN_ALL_RECENT_FILE (IDM_EDIT + 40) - #define IDM_CLEAN_RECENT_FILE_LIST (IDM_EDIT + 41) - -#define IDM_SEARCH (IDM + 3000) - - #define IDM_SEARCH_FIND (IDM_SEARCH + 1) - #define IDM_SEARCH_FINDNEXT (IDM_SEARCH + 2) - #define IDM_SEARCH_REPLACE (IDM_SEARCH + 3) - #define IDM_SEARCH_GOTOLINE (IDM_SEARCH + 4) - #define IDM_SEARCH_TOGGLE_BOOKMARK (IDM_SEARCH + 5) - #define IDM_SEARCH_NEXT_BOOKMARK (IDM_SEARCH + 6) - #define IDM_SEARCH_PREV_BOOKMARK (IDM_SEARCH + 7) - #define IDM_SEARCH_CLEAR_BOOKMARKS (IDM_SEARCH + 8) - #define IDM_SEARCH_GOTOMATCHINGBRACE (IDM_SEARCH + 9) - #define IDM_SEARCH_FINDPREV (IDM_SEARCH + 10) - #define IDM_SEARCH_FINDINCREMENT (IDM_SEARCH + 11) - #define IDM_SEARCH_FINDINFILES (IDM_SEARCH + 13) - #define IDM_SEARCH_VOLATILE_FINDNEXT (IDM_SEARCH + 14) - #define IDM_SEARCH_VOLATILE_FINDPREV (IDM_SEARCH + 15) - #define IDM_SEARCH_CUTMARKEDLINES (IDM_SEARCH + 18) - #define IDM_SEARCH_COPYMARKEDLINES (IDM_SEARCH + 19) - #define IDM_SEARCH_PASTEMARKEDLINES (IDM_SEARCH + 20) - #define IDM_SEARCH_DELETEMARKEDLINES (IDM_SEARCH + 21) - #define IDM_SEARCH_MARKALLEXT1 (IDM_SEARCH + 22) - #define IDM_SEARCH_UNMARKALLEXT1 (IDM_SEARCH + 23) - #define IDM_SEARCH_MARKALLEXT2 (IDM_SEARCH + 24) - #define IDM_SEARCH_UNMARKALLEXT2 (IDM_SEARCH + 25) - #define IDM_SEARCH_MARKALLEXT3 (IDM_SEARCH + 26) - #define IDM_SEARCH_UNMARKALLEXT3 (IDM_SEARCH + 27) - #define IDM_SEARCH_MARKALLEXT4 (IDM_SEARCH + 28) - #define IDM_SEARCH_UNMARKALLEXT4 (IDM_SEARCH + 29) - #define IDM_SEARCH_MARKALLEXT5 (IDM_SEARCH + 30) - #define IDM_SEARCH_UNMARKALLEXT5 (IDM_SEARCH + 31) - #define IDM_SEARCH_CLEARALLMARKS (IDM_SEARCH + 32) - -#define IDM_VIEW (IDM + 4000) - //#define IDM_VIEW_TOOLBAR_HIDE (IDM_VIEW + 1) - #define IDM_VIEW_TOOLBAR_REDUCE (IDM_VIEW + 2) - #define IDM_VIEW_TOOLBAR_ENLARGE (IDM_VIEW + 3) - #define IDM_VIEW_TOOLBAR_STANDARD (IDM_VIEW + 4) - #define IDM_VIEW_REDUCETABBAR (IDM_VIEW + 5) - #define IDM_VIEW_LOCKTABBAR (IDM_VIEW + 6) - #define IDM_VIEW_DRAWTABBAR_TOPBAR (IDM_VIEW + 7) - #define IDM_VIEW_DRAWTABBAR_INACIVETAB (IDM_VIEW + 8) - #define IDM_VIEW_POSTIT (IDM_VIEW + 9) - #define IDM_VIEW_TOGGLE_FOLDALL (IDM_VIEW + 10) - #define IDM_VIEW_USER_DLG (IDM_VIEW + 11) - #define IDM_VIEW_LINENUMBER (IDM_VIEW + 12) - #define IDM_VIEW_SYMBOLMARGIN (IDM_VIEW + 13) - #define IDM_VIEW_FOLDERMAGIN (IDM_VIEW + 14) - #define IDM_VIEW_FOLDERMAGIN_SIMPLE (IDM_VIEW + 15) - #define IDM_VIEW_FOLDERMAGIN_ARROW (IDM_VIEW + 16) - #define IDM_VIEW_FOLDERMAGIN_CIRCLE (IDM_VIEW + 17) - #define IDM_VIEW_FOLDERMAGIN_BOX (IDM_VIEW + 18) - #define IDM_VIEW_ALL_CHARACTERS (IDM_VIEW + 19) - #define IDM_VIEW_INDENT_GUIDE (IDM_VIEW + 20) - #define IDM_VIEW_CURLINE_HILITING (IDM_VIEW + 21) - #define IDM_VIEW_WRAP (IDM_VIEW + 22) - #define IDM_VIEW_ZOOMIN (IDM_VIEW + 23) - #define IDM_VIEW_ZOOMOUT (IDM_VIEW + 24) - #define IDM_VIEW_TAB_SPACE (IDM_VIEW + 25) - #define IDM_VIEW_EOL (IDM_VIEW + 26) - #define IDM_VIEW_EDGELINE (IDM_VIEW + 27) - #define IDM_VIEW_EDGEBACKGROUND (IDM_VIEW + 28) - #define IDM_VIEW_TOGGLE_UNFOLDALL (IDM_VIEW + 29) - #define IDM_VIEW_FOLD_CURRENT (IDM_VIEW + 30) - #define IDM_VIEW_UNFOLD_CURRENT (IDM_VIEW + 31) - #define IDM_VIEW_FULLSCREENTOGGLE (IDM_VIEW + 32) - #define IDM_VIEW_ZOOMRESTORE (IDM_VIEW + 33) - #define IDM_VIEW_ALWAYSONTOP (IDM_VIEW + 34) - #define IDM_VIEW_SYNSCROLLV (IDM_VIEW + 35) - #define IDM_VIEW_SYNSCROLLH (IDM_VIEW + 36) - #define IDM_VIEW_EDGENONE (IDM_VIEW + 37) - #define IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN (IDM_VIEW + 38) - #define IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE (IDM_VIEW + 39) - #define IDM_VIEW_REFRESHTABAR (IDM_VIEW + 40) - #define IDM_VIEW_WRAP_SYMBOL (IDM_VIEW + 41) - #define IDM_VIEW_HIDELINES (IDM_VIEW + 42) - #define IDM_VIEW_DRAWTABBAR_VERTICAL (IDM_VIEW + 43) - #define IDM_VIEW_DRAWTABBAR_MULTILINE (IDM_VIEW + 44) - #define IDM_VIEW_DOCCHANGEMARGIN (IDM_VIEW + 45) - - - #define IDM_VIEW_FOLD (IDM_VIEW + 50) - #define IDM_VIEW_FOLD_1 (IDM_VIEW_FOLD + 1) - #define IDM_VIEW_FOLD_2 (IDM_VIEW_FOLD + 2) - #define IDM_VIEW_FOLD_3 (IDM_VIEW_FOLD + 3) - #define IDM_VIEW_FOLD_4 (IDM_VIEW_FOLD + 4) - #define IDM_VIEW_FOLD_5 (IDM_VIEW_FOLD + 5) - #define IDM_VIEW_FOLD_6 (IDM_VIEW_FOLD + 6) - #define IDM_VIEW_FOLD_7 (IDM_VIEW_FOLD + 7) - #define IDM_VIEW_FOLD_8 (IDM_VIEW_FOLD + 8) - - #define IDM_VIEW_UNFOLD (IDM_VIEW + 60) - #define IDM_VIEW_UNFOLD_1 (IDM_VIEW_UNFOLD + 1) - #define IDM_VIEW_UNFOLD_2 (IDM_VIEW_UNFOLD + 2) - #define IDM_VIEW_UNFOLD_3 (IDM_VIEW_UNFOLD + 3) - #define IDM_VIEW_UNFOLD_4 (IDM_VIEW_UNFOLD + 4) - #define IDM_VIEW_UNFOLD_5 (IDM_VIEW_UNFOLD + 5) - #define IDM_VIEW_UNFOLD_6 (IDM_VIEW_UNFOLD + 6) - #define IDM_VIEW_UNFOLD_7 (IDM_VIEW_UNFOLD + 7) - #define IDM_VIEW_UNFOLD_8 (IDM_VIEW_UNFOLD + 8) - - - #define IDM_VIEW_GOTO_ANOTHER_VIEW 10001 - #define IDM_VIEW_CLONE_TO_ANOTHER_VIEW 10002 - #define IDM_VIEW_GOTO_NEW_INSTANCE 10003 - #define IDM_VIEW_LOAD_IN_NEW_INSTANCE 10004 - - #define IDM_VIEW_SWITCHTO_OTHER_VIEW (IDM_VIEW + 72) - - -#define IDM_FORMAT (IDM + 5000) - #define IDM_FORMAT_TODOS (IDM_FORMAT + 1) - #define IDM_FORMAT_TOUNIX (IDM_FORMAT + 2) - #define IDM_FORMAT_TOMAC (IDM_FORMAT + 3) - #define IDM_FORMAT_ANSI (IDM_FORMAT + 4) - #define IDM_FORMAT_UTF_8 (IDM_FORMAT + 5) - #define IDM_FORMAT_UCS_2BE (IDM_FORMAT + 6) - #define IDM_FORMAT_UCS_2LE (IDM_FORMAT + 7) - #define IDM_FORMAT_AS_UTF_8 (IDM_FORMAT + 8) - #define IDM_FORMAT_CONV2_ANSI (IDM_FORMAT + 9) - #define IDM_FORMAT_CONV2_AS_UTF_8 (IDM_FORMAT + 10) - #define IDM_FORMAT_CONV2_UTF_8 (IDM_FORMAT + 11) - #define IDM_FORMAT_CONV2_UCS_2BE (IDM_FORMAT + 12) - #define IDM_FORMAT_CONV2_UCS_2LE (IDM_FORMAT + 13) - -#define IDM_LANG (IDM + 6000) - #define IDM_LANGSTYLE_CONFIG_DLG (IDM_LANG + 1) - #define IDM_LANG_C (IDM_LANG + 2) - #define IDM_LANG_CPP (IDM_LANG + 3) - #define IDM_LANG_JAVA (IDM_LANG + 4) - #define IDM_LANG_HTML (IDM_LANG + 5) - #define IDM_LANG_XML (IDM_LANG + 6) - #define IDM_LANG_JS (IDM_LANG + 7) - #define IDM_LANG_PHP (IDM_LANG + 8) - #define IDM_LANG_ASP (IDM_LANG + 9) - #define IDM_LANG_CSS (IDM_LANG + 10) - #define IDM_LANG_PASCAL (IDM_LANG + 11) - #define IDM_LANG_PYTHON (IDM_LANG + 12) - #define IDM_LANG_PERL (IDM_LANG + 13) - #define IDM_LANG_OBJC (IDM_LANG + 14) - #define IDM_LANG_ASCII (IDM_LANG + 15) - #define IDM_LANG_TEXT (IDM_LANG + 16) - #define IDM_LANG_RC (IDM_LANG + 17) - #define IDM_LANG_MAKEFILE (IDM_LANG + 18) - #define IDM_LANG_INI (IDM_LANG + 19) - #define IDM_LANG_SQL (IDM_LANG + 20) - #define IDM_LANG_VB (IDM_LANG + 21) - #define IDM_LANG_BATCH (IDM_LANG + 22) - #define IDM_LANG_CS (IDM_LANG + 23) - #define IDM_LANG_LUA (IDM_LANG + 24) - #define IDM_LANG_TEX (IDM_LANG + 25) - #define IDM_LANG_FORTRAN (IDM_LANG + 26) - #define IDM_LANG_SH (IDM_LANG + 27) - #define IDM_LANG_FLASH (IDM_LANG + 28) - #define IDM_LANG_NSIS (IDM_LANG + 29) - #define IDM_LANG_TCL (IDM_LANG + 30) - #define IDM_LANG_LISP (IDM_LANG + 31) - #define IDM_LANG_SCHEME (IDM_LANG + 32) - #define IDM_LANG_ASM (IDM_LANG + 33) - #define IDM_LANG_DIFF (IDM_LANG + 34) - #define IDM_LANG_PROPS (IDM_LANG + 35) - #define IDM_LANG_PS (IDM_LANG + 36) - #define IDM_LANG_RUBY (IDM_LANG + 37) - #define IDM_LANG_SMALLTALK (IDM_LANG + 38) - #define IDM_LANG_VHDL (IDM_LANG + 39) - #define IDM_LANG_CAML (IDM_LANG + 40) - #define IDM_LANG_KIX (IDM_LANG + 41) - #define IDM_LANG_ADA (IDM_LANG + 42) - #define IDM_LANG_VERILOG (IDM_LANG + 43) - #define IDM_LANG_AU3 (IDM_LANG + 44) - #define IDM_LANG_MATLAB (IDM_LANG + 45) - #define IDM_LANG_HASKELL (IDM_LANG + 46) - #define IDM_LANG_INNO (IDM_LANG + 47) - #define IDM_LANG_CMAKE (IDM_LANG + 48) - #define IDM_LANG_YAML (IDM_LANG + 49) - - #define IDM_LANG_EXTERNAL (IDM_LANG + 50) - #define IDM_LANG_EXTERNAL_LIMIT (IDM_LANG + 79) - - #define IDM_LANG_USER (IDM_LANG + 80) //46080 - #define IDM_LANG_USER_LIMIT (IDM_LANG + 110) //46110 - +// To be updated if new menu item(s) is (are) added in menu "File" + #define IDM_FILEMENU_LASTONE IDM_FILE_CONTAININGFOLDERASWORKSPACE + +// 0 based position of command "Exit" including the bars in the file menu +// and without counting "Recent files history" items + +// 0 New +// 1 Open... +// 2 Open Containing Folder +// 3 Open Folder as Workspace +// 4 Open in Default Viewer +// 5 Reload from Disk +// 6 Save +// 7 Save As... +// 8 Save a Copy As... +// 9 Save All +//10 Rename... +//11 Close +//12 Close All +//13 Close More +//14 Move to Recycle Bin +//15 -------- +//16 Load Session... +//17 Save Session... +//18 -------- +//19 Print... +//20 Print Now +//21 -------- +//22 Exit + #define IDM_FILEMENU_EXISTCMDPOSITION 22 + + +#define IDM_EDIT (IDM + 2000) + #define IDM_EDIT_CUT (IDM_EDIT + 1) + #define IDM_EDIT_COPY (IDM_EDIT + 2) + #define IDM_EDIT_UNDO (IDM_EDIT + 3) + #define IDM_EDIT_REDO (IDM_EDIT + 4) + #define IDM_EDIT_PASTE (IDM_EDIT + 5) + #define IDM_EDIT_DELETE (IDM_EDIT + 6) + #define IDM_EDIT_SELECTALL (IDM_EDIT + 7) + #define IDM_EDIT_INS_TAB (IDM_EDIT + 8) + #define IDM_EDIT_RMV_TAB (IDM_EDIT + 9) + #define IDM_EDIT_DUP_LINE (IDM_EDIT + 10) + #define IDM_EDIT_TRANSPOSE_LINE (IDM_EDIT + 11) + #define IDM_EDIT_SPLIT_LINES (IDM_EDIT + 12) + #define IDM_EDIT_JOIN_LINES (IDM_EDIT + 13) + #define IDM_EDIT_LINE_UP (IDM_EDIT + 14) + #define IDM_EDIT_LINE_DOWN (IDM_EDIT + 15) + #define IDM_EDIT_UPPERCASE (IDM_EDIT + 16) + #define IDM_EDIT_LOWERCASE (IDM_EDIT + 17) + #define IDM_MACRO_STARTRECORDINGMACRO (IDM_EDIT + 18) + #define IDM_MACRO_STOPRECORDINGMACRO (IDM_EDIT + 19) + #define IDM_EDIT_BEGINENDSELECT (IDM_EDIT + 20) + #define IDM_MACRO_PLAYBACKRECORDEDMACRO (IDM_EDIT + 21) + #define IDM_EDIT_BLOCK_COMMENT (IDM_EDIT + 22) + #define IDM_EDIT_STREAM_COMMENT (IDM_EDIT + 23) + #define IDM_EDIT_TRIMTRAILING (IDM_EDIT + 24) + #define IDM_MACRO_SAVECURRENTMACRO (IDM_EDIT + 25) + #define IDM_EDIT_RTL (IDM_EDIT + 26) + #define IDM_EDIT_LTR (IDM_EDIT + 27) + #define IDM_EDIT_SETREADONLY (IDM_EDIT + 28) + #define IDM_EDIT_FULLPATHTOCLIP (IDM_EDIT + 29) + #define IDM_EDIT_FILENAMETOCLIP (IDM_EDIT + 30) + #define IDM_EDIT_CURRENTDIRTOCLIP (IDM_EDIT + 31) + #define IDM_MACRO_RUNMULTIMACRODLG (IDM_EDIT + 32) + #define IDM_EDIT_CLEARREADONLY (IDM_EDIT + 33) + #define IDM_EDIT_COLUMNMODE (IDM_EDIT + 34) + #define IDM_EDIT_BLOCK_COMMENT_SET (IDM_EDIT + 35) + #define IDM_EDIT_BLOCK_UNCOMMENT (IDM_EDIT + 36) + #define IDM_EDIT_COLUMNMODETIP (IDM_EDIT + 37) + #define IDM_EDIT_PASTE_AS_HTML (IDM_EDIT + 38) + #define IDM_EDIT_PASTE_AS_RTF (IDM_EDIT + 39) + #define IDM_OPEN_ALL_RECENT_FILE (IDM_EDIT + 40) + #define IDM_CLEAN_RECENT_FILE_LIST (IDM_EDIT + 41) + #define IDM_EDIT_TRIMLINEHEAD (IDM_EDIT + 42) + #define IDM_EDIT_TRIM_BOTH (IDM_EDIT + 43) + #define IDM_EDIT_EOL2WS (IDM_EDIT + 44) + #define IDM_EDIT_TRIMALL (IDM_EDIT + 45) + #define IDM_EDIT_TAB2SW (IDM_EDIT + 46) + #define IDM_EDIT_STREAM_UNCOMMENT (IDM_EDIT + 47) + #define IDM_EDIT_COPY_BINARY (IDM_EDIT + 48) + #define IDM_EDIT_CUT_BINARY (IDM_EDIT + 49) + #define IDM_EDIT_PASTE_BINARY (IDM_EDIT + 50) + #define IDM_EDIT_CHAR_PANEL (IDM_EDIT + 51) + #define IDM_EDIT_CLIPBOARDHISTORY_PANEL (IDM_EDIT + 52) + #define IDM_EDIT_SW2TAB_LEADING (IDM_EDIT + 53) + #define IDM_EDIT_SW2TAB_ALL (IDM_EDIT + 54) + #define IDM_EDIT_REMOVEEMPTYLINES (IDM_EDIT + 55) + #define IDM_EDIT_REMOVEEMPTYLINESWITHBLANK (IDM_EDIT + 56) + #define IDM_EDIT_BLANKLINEABOVECURRENT (IDM_EDIT + 57) + #define IDM_EDIT_BLANKLINEBELOWCURRENT (IDM_EDIT + 58) + #define IDM_EDIT_SORTLINES_LEXICOGRAPHIC_ASCENDING (IDM_EDIT + 59) + #define IDM_EDIT_SORTLINES_LEXICOGRAPHIC_DESCENDING (IDM_EDIT + 60) + #define IDM_EDIT_SORTLINES_INTEGER_ASCENDING (IDM_EDIT + 61) + #define IDM_EDIT_SORTLINES_INTEGER_DESCENDING (IDM_EDIT + 62) + #define IDM_EDIT_SORTLINES_DECIMALCOMMA_ASCENDING (IDM_EDIT + 63) + #define IDM_EDIT_SORTLINES_DECIMALCOMMA_DESCENDING (IDM_EDIT + 64) + #define IDM_EDIT_SORTLINES_DECIMALDOT_ASCENDING (IDM_EDIT + 65) + #define IDM_EDIT_SORTLINES_DECIMALDOT_DESCENDING (IDM_EDIT + 66) + #define IDM_EDIT_PROPERCASE_FORCE (IDM_EDIT + 67) + #define IDM_EDIT_PROPERCASE_BLEND (IDM_EDIT + 68) + #define IDM_EDIT_SENTENCECASE_FORCE (IDM_EDIT + 69) + #define IDM_EDIT_SENTENCECASE_BLEND (IDM_EDIT + 70) + #define IDM_EDIT_INVERTCASE (IDM_EDIT + 71) + #define IDM_EDIT_RANDOMCASE (IDM_EDIT + 72) + #define IDM_EDIT_OPENASFILE (IDM_EDIT + 73) + #define IDM_EDIT_OPENINFOLDER (IDM_EDIT + 74) + #define IDM_EDIT_SEARCHONINTERNET (IDM_EDIT + 75) + #define IDM_EDIT_CHANGESEARCHENGINE (IDM_EDIT + 76) + #define IDM_EDIT_REMOVE_CONSECUTIVE_DUP_LINES (IDM_EDIT + 77) + #define IDM_EDIT_SORTLINES_RANDOMLY (IDM_EDIT + 78) + #define IDM_EDIT_REMOVE_ANY_DUP_LINES (IDM_EDIT + 79) + #define IDM_EDIT_SORTLINES_LEXICO_CASE_INSENS_ASCENDING (IDM_EDIT + 80) + #define IDM_EDIT_SORTLINES_LEXICO_CASE_INSENS_DESCENDING (IDM_EDIT + 81) + #define IDM_EDIT_COPY_LINK (IDM_EDIT + 82) + #define IDM_EDIT_SORTLINES_REVERSE_ORDER (IDM_EDIT + 83) + #define IDM_EDIT_INSERT_DATETIME_SHORT (IDM_EDIT + 84) + #define IDM_EDIT_INSERT_DATETIME_LONG (IDM_EDIT + 85) + #define IDM_EDIT_INSERT_DATETIME_CUSTOMIZED (IDM_EDIT + 86) + #define IDM_EDIT_COPY_ALL_NAMES (IDM_EDIT + 87) + #define IDM_EDIT_COPY_ALL_PATHS (IDM_EDIT + 88) + + #define IDM_EDIT_AUTOCOMPLETE (50000 + 0) + #define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (50000 + 1) + #define IDM_EDIT_FUNCCALLTIP (50000 + 2) + #define IDM_EDIT_AUTOCOMPLETE_PATH (50000 + 6) + + +#define IDM_SEARCH (IDM + 3000) + #define IDM_SEARCH_FIND (IDM_SEARCH + 1) + #define IDM_SEARCH_FINDNEXT (IDM_SEARCH + 2) + #define IDM_SEARCH_REPLACE (IDM_SEARCH + 3) + #define IDM_SEARCH_GOTOLINE (IDM_SEARCH + 4) + #define IDM_SEARCH_TOGGLE_BOOKMARK (IDM_SEARCH + 5) + #define IDM_SEARCH_NEXT_BOOKMARK (IDM_SEARCH + 6) + #define IDM_SEARCH_PREV_BOOKMARK (IDM_SEARCH + 7) + #define IDM_SEARCH_CLEAR_BOOKMARKS (IDM_SEARCH + 8) + #define IDM_SEARCH_GOTOMATCHINGBRACE (IDM_SEARCH + 9) + #define IDM_SEARCH_FINDPREV (IDM_SEARCH + 10) + #define IDM_SEARCH_FINDINCREMENT (IDM_SEARCH + 11) + #define IDM_SEARCH_FINDINFILES (IDM_SEARCH + 13) + #define IDM_SEARCH_VOLATILE_FINDNEXT (IDM_SEARCH + 14) + #define IDM_SEARCH_VOLATILE_FINDPREV (IDM_SEARCH + 15) + #define IDM_SEARCH_CUTMARKEDLINES (IDM_SEARCH + 18) + #define IDM_SEARCH_COPYMARKEDLINES (IDM_SEARCH + 19) + #define IDM_SEARCH_PASTEMARKEDLINES (IDM_SEARCH + 20) + #define IDM_SEARCH_DELETEMARKEDLINES (IDM_SEARCH + 21) + #define IDM_SEARCH_MARKALLEXT1 (IDM_SEARCH + 22) + #define IDM_SEARCH_UNMARKALLEXT1 (IDM_SEARCH + 23) + #define IDM_SEARCH_MARKALLEXT2 (IDM_SEARCH + 24) + #define IDM_SEARCH_UNMARKALLEXT2 (IDM_SEARCH + 25) + #define IDM_SEARCH_MARKALLEXT3 (IDM_SEARCH + 26) + #define IDM_SEARCH_UNMARKALLEXT3 (IDM_SEARCH + 27) + #define IDM_SEARCH_MARKALLEXT4 (IDM_SEARCH + 28) + #define IDM_SEARCH_UNMARKALLEXT4 (IDM_SEARCH + 29) + #define IDM_SEARCH_MARKALLEXT5 (IDM_SEARCH + 30) + #define IDM_SEARCH_UNMARKALLEXT5 (IDM_SEARCH + 31) + #define IDM_SEARCH_CLEARALLMARKS (IDM_SEARCH + 32) + + #define IDM_SEARCH_GOPREVMARKER1 (IDM_SEARCH + 33) + #define IDM_SEARCH_GOPREVMARKER2 (IDM_SEARCH + 34) + #define IDM_SEARCH_GOPREVMARKER3 (IDM_SEARCH + 35) + #define IDM_SEARCH_GOPREVMARKER4 (IDM_SEARCH + 36) + #define IDM_SEARCH_GOPREVMARKER5 (IDM_SEARCH + 37) + #define IDM_SEARCH_GOPREVMARKER_DEF (IDM_SEARCH + 38) + + #define IDM_SEARCH_GONEXTMARKER1 (IDM_SEARCH + 39) + #define IDM_SEARCH_GONEXTMARKER2 (IDM_SEARCH + 40) + #define IDM_SEARCH_GONEXTMARKER3 (IDM_SEARCH + 41) + #define IDM_SEARCH_GONEXTMARKER4 (IDM_SEARCH + 42) + #define IDM_SEARCH_GONEXTMARKER5 (IDM_SEARCH + 43) + #define IDM_SEARCH_GONEXTMARKER_DEF (IDM_SEARCH + 44) + + #define IDM_FOCUS_ON_FOUND_RESULTS (IDM_SEARCH + 45) + #define IDM_SEARCH_GOTONEXTFOUND (IDM_SEARCH + 46) + #define IDM_SEARCH_GOTOPREVFOUND (IDM_SEARCH + 47) + + #define IDM_SEARCH_SETANDFINDNEXT (IDM_SEARCH + 48) + #define IDM_SEARCH_SETANDFINDPREV (IDM_SEARCH + 49) + #define IDM_SEARCH_INVERSEMARKS (IDM_SEARCH + 50) + #define IDM_SEARCH_DELETEUNMARKEDLINES (IDM_SEARCH + 51) + #define IDM_SEARCH_FINDCHARINRANGE (IDM_SEARCH + 52) + #define IDM_SEARCH_SELECTMATCHINGBRACES (IDM_SEARCH + 53) + #define IDM_SEARCH_MARK (IDM_SEARCH + 54) + + #define IDM_SEARCH_STYLE1TOCLIP (IDM_SEARCH + 55) + #define IDM_SEARCH_STYLE2TOCLIP (IDM_SEARCH + 56) + #define IDM_SEARCH_STYLE3TOCLIP (IDM_SEARCH + 57) + #define IDM_SEARCH_STYLE4TOCLIP (IDM_SEARCH + 58) + #define IDM_SEARCH_STYLE5TOCLIP (IDM_SEARCH + 59) + #define IDM_SEARCH_ALLSTYLESTOCLIP (IDM_SEARCH + 60) + #define IDM_SEARCH_MARKEDTOCLIP (IDM_SEARCH + 61) + + #define IDM_SEARCH_MARKONEEXT1 (IDM_SEARCH + 62) + #define IDM_SEARCH_MARKONEEXT2 (IDM_SEARCH + 63) + #define IDM_SEARCH_MARKONEEXT3 (IDM_SEARCH + 64) + #define IDM_SEARCH_MARKONEEXT4 (IDM_SEARCH + 65) + #define IDM_SEARCH_MARKONEEXT5 (IDM_SEARCH + 66) + +#define IDM_MISC (IDM + 3500) + #define IDM_DOCLIST_FILESCLOSE (IDM_MISC + 1) + #define IDM_DOCLIST_FILESCLOSEOTHERS (IDM_MISC + 2) + #define IDM_DOCLIST_COPYNAMES (IDM_MISC + 3) + #define IDM_DOCLIST_COPYPATHS (IDM_MISC + 4) + + +#define IDM_VIEW (IDM + 4000) + //#define IDM_VIEW_TOOLBAR_HIDE (IDM_VIEW + 1) + #define IDM_VIEW_TOOLBAR_REDUCE (IDM_VIEW + 2) + #define IDM_VIEW_TOOLBAR_ENLARGE (IDM_VIEW + 3) + #define IDM_VIEW_TOOLBAR_STANDARD (IDM_VIEW + 4) + #define IDM_VIEW_REDUCETABBAR (IDM_VIEW + 5) + #define IDM_VIEW_LOCKTABBAR (IDM_VIEW + 6) + #define IDM_VIEW_DRAWTABBAR_TOPBAR (IDM_VIEW + 7) + #define IDM_VIEW_DRAWTABBAR_INACIVETAB (IDM_VIEW + 8) + #define IDM_VIEW_POSTIT (IDM_VIEW + 9) + #define IDM_VIEW_TOGGLE_FOLDALL (IDM_VIEW + 10) + #define IDM_VIEW_DISTRACTIONFREE (IDM_VIEW + 11) + #define IDM_VIEW_LINENUMBER (IDM_VIEW + 12) + #define IDM_VIEW_SYMBOLMARGIN (IDM_VIEW + 13) + #define IDM_VIEW_FOLDERMAGIN (IDM_VIEW + 14) + #define IDM_VIEW_FOLDERMAGIN_SIMPLE (IDM_VIEW + 15) + #define IDM_VIEW_FOLDERMAGIN_ARROW (IDM_VIEW + 16) + #define IDM_VIEW_FOLDERMAGIN_CIRCLE (IDM_VIEW + 17) + #define IDM_VIEW_FOLDERMAGIN_BOX (IDM_VIEW + 18) + #define IDM_VIEW_ALL_CHARACTERS (IDM_VIEW + 19) + #define IDM_VIEW_INDENT_GUIDE (IDM_VIEW + 20) + #define IDM_VIEW_CURLINE_HILITING (IDM_VIEW + 21) + #define IDM_VIEW_WRAP (IDM_VIEW + 22) + #define IDM_VIEW_ZOOMIN (IDM_VIEW + 23) + #define IDM_VIEW_ZOOMOUT (IDM_VIEW + 24) + #define IDM_VIEW_TAB_SPACE (IDM_VIEW + 25) + #define IDM_VIEW_EOL (IDM_VIEW + 26) + #define IDM_VIEW_TOOLBAR_REDUCE_SET2 (IDM_VIEW + 27) + #define IDM_VIEW_TOOLBAR_ENLARGE_SET2 (IDM_VIEW + 28) + #define IDM_VIEW_TOGGLE_UNFOLDALL (IDM_VIEW + 29) + #define IDM_VIEW_FOLD_CURRENT (IDM_VIEW + 30) + #define IDM_VIEW_UNFOLD_CURRENT (IDM_VIEW + 31) + #define IDM_VIEW_FULLSCREENTOGGLE (IDM_VIEW + 32) + #define IDM_VIEW_ZOOMRESTORE (IDM_VIEW + 33) + #define IDM_VIEW_ALWAYSONTOP (IDM_VIEW + 34) + #define IDM_VIEW_SYNSCROLLV (IDM_VIEW + 35) + #define IDM_VIEW_SYNSCROLLH (IDM_VIEW + 36) + //#define IDM_VIEW_EDGENONE (IDM_VIEW + 37) + #define IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN (IDM_VIEW + 38) + #define IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE (IDM_VIEW + 39) + #define IDM_VIEW_REFRESHTABAR (IDM_VIEW + 40) + #define IDM_VIEW_WRAP_SYMBOL (IDM_VIEW + 41) + #define IDM_VIEW_HIDELINES (IDM_VIEW + 42) + #define IDM_VIEW_DRAWTABBAR_VERTICAL (IDM_VIEW + 43) + #define IDM_VIEW_DRAWTABBAR_MULTILINE (IDM_VIEW + 44) + #define IDM_VIEW_DOCCHANGEMARGIN (IDM_VIEW + 45) + #define IDM_VIEW_LWDEF (IDM_VIEW + 46) + #define IDM_VIEW_LWALIGN (IDM_VIEW + 47) + #define IDM_VIEW_LWINDENT (IDM_VIEW + 48) + #define IDM_VIEW_SUMMARY (IDM_VIEW + 49) + + #define IDM_VIEW_FOLD (IDM_VIEW + 50) + #define IDM_VIEW_FOLD_1 (IDM_VIEW_FOLD + 1) + #define IDM_VIEW_FOLD_2 (IDM_VIEW_FOLD + 2) + #define IDM_VIEW_FOLD_3 (IDM_VIEW_FOLD + 3) + #define IDM_VIEW_FOLD_4 (IDM_VIEW_FOLD + 4) + #define IDM_VIEW_FOLD_5 (IDM_VIEW_FOLD + 5) + #define IDM_VIEW_FOLD_6 (IDM_VIEW_FOLD + 6) + #define IDM_VIEW_FOLD_7 (IDM_VIEW_FOLD + 7) + #define IDM_VIEW_FOLD_8 (IDM_VIEW_FOLD + 8) + + #define IDM_VIEW_UNFOLD (IDM_VIEW + 60) + #define IDM_VIEW_UNFOLD_1 (IDM_VIEW_UNFOLD + 1) + #define IDM_VIEW_UNFOLD_2 (IDM_VIEW_UNFOLD + 2) + #define IDM_VIEW_UNFOLD_3 (IDM_VIEW_UNFOLD + 3) + #define IDM_VIEW_UNFOLD_4 (IDM_VIEW_UNFOLD + 4) + #define IDM_VIEW_UNFOLD_5 (IDM_VIEW_UNFOLD + 5) + #define IDM_VIEW_UNFOLD_6 (IDM_VIEW_UNFOLD + 6) + #define IDM_VIEW_UNFOLD_7 (IDM_VIEW_UNFOLD + 7) + #define IDM_VIEW_UNFOLD_8 (IDM_VIEW_UNFOLD + 8) + + #define IDM_VIEW_DOCLIST (IDM_VIEW + 70) + #define IDM_VIEW_SWITCHTO_OTHER_VIEW (IDM_VIEW + 72) + #define IDM_EXPORT_FUNC_LIST_AND_QUIT (IDM_VIEW + 73) + + #define IDM_VIEW_DOC_MAP (IDM_VIEW + 80) + + #define IDM_VIEW_PROJECT_PANEL_1 (IDM_VIEW + 81) + #define IDM_VIEW_PROJECT_PANEL_2 (IDM_VIEW + 82) + #define IDM_VIEW_PROJECT_PANEL_3 (IDM_VIEW + 83) + + #define IDM_VIEW_FUNC_LIST (IDM_VIEW + 84) + #define IDM_VIEW_FILEBROWSER (IDM_VIEW + 85) + + #define IDM_VIEW_TAB1 (IDM_VIEW + 86) + #define IDM_VIEW_TAB2 (IDM_VIEW + 87) + #define IDM_VIEW_TAB3 (IDM_VIEW + 88) + #define IDM_VIEW_TAB4 (IDM_VIEW + 89) + #define IDM_VIEW_TAB5 (IDM_VIEW + 90) + #define IDM_VIEW_TAB6 (IDM_VIEW + 91) + #define IDM_VIEW_TAB7 (IDM_VIEW + 92) + #define IDM_VIEW_TAB8 (IDM_VIEW + 93) + #define IDM_VIEW_TAB9 (IDM_VIEW + 94) + #define IDM_VIEW_TAB_NEXT (IDM_VIEW + 95) + #define IDM_VIEW_TAB_PREV (IDM_VIEW + 96) + #define IDM_VIEW_MONITORING (IDM_VIEW + 97) + #define IDM_VIEW_TAB_MOVEFORWARD (IDM_VIEW + 98) + #define IDM_VIEW_TAB_MOVEBACKWARD (IDM_VIEW + 99) + #define IDM_VIEW_IN_FIREFOX (IDM_VIEW + 100) + #define IDM_VIEW_IN_CHROME (IDM_VIEW + 101) + #define IDM_VIEW_IN_EDGE (IDM_VIEW + 102) + #define IDM_VIEW_IN_IE (IDM_VIEW + 103) + + #define IDM_VIEW_SWITCHTO_PROJECT_PANEL_1 (IDM_VIEW + 104) + #define IDM_VIEW_SWITCHTO_PROJECT_PANEL_2 (IDM_VIEW + 105) + #define IDM_VIEW_SWITCHTO_PROJECT_PANEL_3 (IDM_VIEW + 106) + #define IDM_VIEW_SWITCHTO_FILEBROWSER (IDM_VIEW + 107) + #define IDM_VIEW_SWITCHTO_FUNC_LIST (IDM_VIEW + 108) + #define IDM_VIEW_SWITCHTO_DOCLIST (IDM_VIEW + 109) + + #define IDM_VIEW_GOTO_ANOTHER_VIEW 10001 + #define IDM_VIEW_CLONE_TO_ANOTHER_VIEW 10002 + #define IDM_VIEW_GOTO_NEW_INSTANCE 10003 + #define IDM_VIEW_LOAD_IN_NEW_INSTANCE 10004 + + +#define IDM_FORMAT (IDM + 5000) + #define IDM_FORMAT_TODOS (IDM_FORMAT + 1) + #define IDM_FORMAT_TOUNIX (IDM_FORMAT + 2) + #define IDM_FORMAT_TOMAC (IDM_FORMAT + 3) + #define IDM_FORMAT_ANSI (IDM_FORMAT + 4) + #define IDM_FORMAT_UTF_8 (IDM_FORMAT + 5) + #define IDM_FORMAT_UTF_16BE (IDM_FORMAT + 6) + #define IDM_FORMAT_UTF_16LE (IDM_FORMAT + 7) + #define IDM_FORMAT_AS_UTF_8 (IDM_FORMAT + 8) + #define IDM_FORMAT_CONV2_ANSI (IDM_FORMAT + 9) + #define IDM_FORMAT_CONV2_AS_UTF_8 (IDM_FORMAT + 10) + #define IDM_FORMAT_CONV2_UTF_8 (IDM_FORMAT + 11) + #define IDM_FORMAT_CONV2_UTF_16BE (IDM_FORMAT + 12) + #define IDM_FORMAT_CONV2_UTF_16LE (IDM_FORMAT + 13) + + #define IDM_FORMAT_ENCODE (IDM_FORMAT + 20) + #define IDM_FORMAT_WIN_1250 (IDM_FORMAT_ENCODE + 0) + #define IDM_FORMAT_WIN_1251 (IDM_FORMAT_ENCODE + 1) + #define IDM_FORMAT_WIN_1252 (IDM_FORMAT_ENCODE + 2) + #define IDM_FORMAT_WIN_1253 (IDM_FORMAT_ENCODE + 3) + #define IDM_FORMAT_WIN_1254 (IDM_FORMAT_ENCODE + 4) + #define IDM_FORMAT_WIN_1255 (IDM_FORMAT_ENCODE + 5) + #define IDM_FORMAT_WIN_1256 (IDM_FORMAT_ENCODE + 6) + #define IDM_FORMAT_WIN_1257 (IDM_FORMAT_ENCODE + 7) + #define IDM_FORMAT_WIN_1258 (IDM_FORMAT_ENCODE + 8) + #define IDM_FORMAT_ISO_8859_1 (IDM_FORMAT_ENCODE + 9) + #define IDM_FORMAT_ISO_8859_2 (IDM_FORMAT_ENCODE + 10) + #define IDM_FORMAT_ISO_8859_3 (IDM_FORMAT_ENCODE + 11) + #define IDM_FORMAT_ISO_8859_4 (IDM_FORMAT_ENCODE + 12) + #define IDM_FORMAT_ISO_8859_5 (IDM_FORMAT_ENCODE + 13) + #define IDM_FORMAT_ISO_8859_6 (IDM_FORMAT_ENCODE + 14) + #define IDM_FORMAT_ISO_8859_7 (IDM_FORMAT_ENCODE + 15) + #define IDM_FORMAT_ISO_8859_8 (IDM_FORMAT_ENCODE + 16) + #define IDM_FORMAT_ISO_8859_9 (IDM_FORMAT_ENCODE + 17) + //#define IDM_FORMAT_ISO_8859_10 (IDM_FORMAT_ENCODE + 18) + //#define IDM_FORMAT_ISO_8859_11 (IDM_FORMAT_ENCODE + 19) + #define IDM_FORMAT_ISO_8859_13 (IDM_FORMAT_ENCODE + 20) + #define IDM_FORMAT_ISO_8859_14 (IDM_FORMAT_ENCODE + 21) + #define IDM_FORMAT_ISO_8859_15 (IDM_FORMAT_ENCODE + 22) + //#define IDM_FORMAT_ISO_8859_16 (IDM_FORMAT_ENCODE + 23) + #define IDM_FORMAT_DOS_437 (IDM_FORMAT_ENCODE + 24) + #define IDM_FORMAT_DOS_720 (IDM_FORMAT_ENCODE + 25) + #define IDM_FORMAT_DOS_737 (IDM_FORMAT_ENCODE + 26) + #define IDM_FORMAT_DOS_775 (IDM_FORMAT_ENCODE + 27) + #define IDM_FORMAT_DOS_850 (IDM_FORMAT_ENCODE + 28) + #define IDM_FORMAT_DOS_852 (IDM_FORMAT_ENCODE + 29) + #define IDM_FORMAT_DOS_855 (IDM_FORMAT_ENCODE + 30) + #define IDM_FORMAT_DOS_857 (IDM_FORMAT_ENCODE + 31) + #define IDM_FORMAT_DOS_858 (IDM_FORMAT_ENCODE + 32) + #define IDM_FORMAT_DOS_860 (IDM_FORMAT_ENCODE + 33) + #define IDM_FORMAT_DOS_861 (IDM_FORMAT_ENCODE + 34) + #define IDM_FORMAT_DOS_862 (IDM_FORMAT_ENCODE + 35) + #define IDM_FORMAT_DOS_863 (IDM_FORMAT_ENCODE + 36) + #define IDM_FORMAT_DOS_865 (IDM_FORMAT_ENCODE + 37) + #define IDM_FORMAT_DOS_866 (IDM_FORMAT_ENCODE + 38) + #define IDM_FORMAT_DOS_869 (IDM_FORMAT_ENCODE + 39) + #define IDM_FORMAT_BIG5 (IDM_FORMAT_ENCODE + 40) + #define IDM_FORMAT_GB2312 (IDM_FORMAT_ENCODE + 41) + #define IDM_FORMAT_SHIFT_JIS (IDM_FORMAT_ENCODE + 42) + #define IDM_FORMAT_KOREAN_WIN (IDM_FORMAT_ENCODE + 43) + #define IDM_FORMAT_EUC_KR (IDM_FORMAT_ENCODE + 44) + #define IDM_FORMAT_TIS_620 (IDM_FORMAT_ENCODE + 45) + #define IDM_FORMAT_MAC_CYRILLIC (IDM_FORMAT_ENCODE + 46) + #define IDM_FORMAT_KOI8U_CYRILLIC (IDM_FORMAT_ENCODE + 47) + #define IDM_FORMAT_KOI8R_CYRILLIC (IDM_FORMAT_ENCODE + 48) + #define IDM_FORMAT_ENCODE_END IDM_FORMAT_KOI8R_CYRILLIC -#define IDM_ABOUT (IDM + 7000) - #define IDM_HOMESWEETHOME (IDM_ABOUT + 1) - #define IDM_PROJECTPAGE (IDM_ABOUT + 2) - #define IDM_ONLINEHELP (IDM_ABOUT + 3) - #define IDM_FORUM (IDM_ABOUT + 4) - #define IDM_PLUGINSHOME (IDM_ABOUT + 5) - #define IDM_UPDATE_NPP (IDM_ABOUT + 6) - #define IDM_WIKIFAQ (IDM_ABOUT + 7) - #define IDM_HELP (IDM_ABOUT + 8) - - -#define IDM_SETTING (IDM + 8000) - #define IDM_SETTING_TAB_SIZE (IDM_SETTING + 1) - #define IDM_SETTING_TAB_REPLCESPACE (IDM_SETTING + 2) - #define IDM_SETTING_HISTORY_SIZE (IDM_SETTING + 3) - #define IDM_SETTING_EDGE_SIZE (IDM_SETTING + 4) - #define IDM_SETTING_IMPORTPLUGIN (IDM_SETTING + 5) - #define IDM_SETTING_IMPORTSTYLETHEMS (IDM_SETTING + 6) - - #define IDM_SETTING_TRAYICON (IDM_SETTING + 8) - #define IDM_SETTING_SHORTCUT_MAPPER (IDM_SETTING + 9) - #define IDM_SETTING_REMEMBER_LAST_SESSION (IDM_SETTING + 10) - #define IDM_SETTING_PREFERECE (IDM_SETTING + 11) - - #define IDM_SETTING_AUTOCNBCHAR (IDM_SETTING + 15) - -// Menu macro - #define IDM_MACRO_STARTRECORDINGMACRO (IDM_EDIT + 18) - #define IDM_MACRO_STOPRECORDINGMACRO (IDM_EDIT + 19) - #define IDM_MACRO_PLAYBACKRECORDEDMACRO (IDM_EDIT + 21) - #define IDM_MACRO_SAVECURRENTMACRO (IDM_EDIT + 25) - #define IDM_MACRO_RUNMULTIMACRODLG (IDM_EDIT+32) - -#define IDM_EXECUTE (IDM + 9000) - -#endif //MENUCMDID_H + //#define IDM_FORMAT_CONVERT 200 + +#define IDM_LANG (IDM + 6000) + #define IDM_LANGSTYLE_CONFIG_DLG (IDM_LANG + 1) + #define IDM_LANG_C (IDM_LANG + 2) + #define IDM_LANG_CPP (IDM_LANG + 3) + #define IDM_LANG_JAVA (IDM_LANG + 4) + #define IDM_LANG_HTML (IDM_LANG + 5) + #define IDM_LANG_XML (IDM_LANG + 6) + #define IDM_LANG_JS (IDM_LANG + 7) + #define IDM_LANG_PHP (IDM_LANG + 8) + #define IDM_LANG_ASP (IDM_LANG + 9) + #define IDM_LANG_CSS (IDM_LANG + 10) + #define IDM_LANG_PASCAL (IDM_LANG + 11) + #define IDM_LANG_PYTHON (IDM_LANG + 12) + #define IDM_LANG_PERL (IDM_LANG + 13) + #define IDM_LANG_OBJC (IDM_LANG + 14) + #define IDM_LANG_ASCII (IDM_LANG + 15) + #define IDM_LANG_TEXT (IDM_LANG + 16) + #define IDM_LANG_RC (IDM_LANG + 17) + #define IDM_LANG_MAKEFILE (IDM_LANG + 18) + #define IDM_LANG_INI (IDM_LANG + 19) + #define IDM_LANG_SQL (IDM_LANG + 20) + #define IDM_LANG_VB (IDM_LANG + 21) + #define IDM_LANG_BATCH (IDM_LANG + 22) + #define IDM_LANG_CS (IDM_LANG + 23) + #define IDM_LANG_LUA (IDM_LANG + 24) + #define IDM_LANG_TEX (IDM_LANG + 25) + #define IDM_LANG_FORTRAN (IDM_LANG + 26) + #define IDM_LANG_BASH (IDM_LANG + 27) + #define IDM_LANG_FLASH (IDM_LANG + 28) + #define IDM_LANG_NSIS (IDM_LANG + 29) + #define IDM_LANG_TCL (IDM_LANG + 30) + #define IDM_LANG_LISP (IDM_LANG + 31) + #define IDM_LANG_SCHEME (IDM_LANG + 32) + #define IDM_LANG_ASM (IDM_LANG + 33) + #define IDM_LANG_DIFF (IDM_LANG + 34) + #define IDM_LANG_PROPS (IDM_LANG + 35) + #define IDM_LANG_PS (IDM_LANG + 36) + #define IDM_LANG_RUBY (IDM_LANG + 37) + #define IDM_LANG_SMALLTALK (IDM_LANG + 38) + #define IDM_LANG_VHDL (IDM_LANG + 39) + #define IDM_LANG_CAML (IDM_LANG + 40) + #define IDM_LANG_KIX (IDM_LANG + 41) + #define IDM_LANG_ADA (IDM_LANG + 42) + #define IDM_LANG_VERILOG (IDM_LANG + 43) + #define IDM_LANG_AU3 (IDM_LANG + 44) + #define IDM_LANG_MATLAB (IDM_LANG + 45) + #define IDM_LANG_HASKELL (IDM_LANG + 46) + #define IDM_LANG_INNO (IDM_LANG + 47) + #define IDM_LANG_CMAKE (IDM_LANG + 48) + #define IDM_LANG_YAML (IDM_LANG + 49) + #define IDM_LANG_COBOL (IDM_LANG + 50) + #define IDM_LANG_D (IDM_LANG + 51) + #define IDM_LANG_GUI4CLI (IDM_LANG + 52) + #define IDM_LANG_POWERSHELL (IDM_LANG + 53) + #define IDM_LANG_R (IDM_LANG + 54) + #define IDM_LANG_JSP (IDM_LANG + 55) + #define IDM_LANG_COFFEESCRIPT (IDM_LANG + 56) + #define IDM_LANG_JSON (IDM_LANG + 57) + #define IDM_LANG_FORTRAN_77 (IDM_LANG + 58) + #define IDM_LANG_BAANC (IDM_LANG + 59) + #define IDM_LANG_SREC (IDM_LANG + 60) + #define IDM_LANG_IHEX (IDM_LANG + 61) + #define IDM_LANG_TEHEX (IDM_LANG + 62) + #define IDM_LANG_SWIFT (IDM_LANG + 63) + #define IDM_LANG_ASN1 (IDM_LANG + 64) + #define IDM_LANG_AVS (IDM_LANG + 65) + #define IDM_LANG_BLITZBASIC (IDM_LANG + 66) + #define IDM_LANG_PUREBASIC (IDM_LANG + 67) + #define IDM_LANG_FREEBASIC (IDM_LANG + 68) + #define IDM_LANG_CSOUND (IDM_LANG + 69) + #define IDM_LANG_ERLANG (IDM_LANG + 70) + #define IDM_LANG_ESCRIPT (IDM_LANG + 71) + #define IDM_LANG_FORTH (IDM_LANG + 72) + #define IDM_LANG_LATEX (IDM_LANG + 73) + #define IDM_LANG_MMIXAL (IDM_LANG + 74) + #define IDM_LANG_NIM (IDM_LANG + 75) + #define IDM_LANG_NNCRONTAB (IDM_LANG + 76) + #define IDM_LANG_OSCRIPT (IDM_LANG + 77) + #define IDM_LANG_REBOL (IDM_LANG + 78) + #define IDM_LANG_REGISTRY (IDM_LANG + 79) + #define IDM_LANG_RUST (IDM_LANG + 80) + #define IDM_LANG_SPICE (IDM_LANG + 81) + #define IDM_LANG_TXT2TAGS (IDM_LANG + 82) + #define IDM_LANG_VISUALPROLOG (IDM_LANG + 83) + #define IDM_LANG_TYPESCRIPT (IDM_LANG + 84) + + #define IDM_LANG_EXTERNAL (IDM_LANG + 165) + #define IDM_LANG_EXTERNAL_LIMIT (IDM_LANG + 179) + + #define IDM_LANG_USER (IDM_LANG + 180) //46180: Used for translation + #define IDM_LANG_USER_LIMIT (IDM_LANG + 210) //46210: Ajust with IDM_LANG_USER + #define IDM_LANG_USER_DLG (IDM_LANG + 250) //46250: Used for translation + #define IDM_LANG_OPENUDLDIR (IDM_LANG + 300) + #define IDM_LANG_UDLCOLLECTION_PROJECT_SITE (IDM_LANG + 301) + + + +#define IDM_ABOUT (IDM + 7000) + #define IDM_HOMESWEETHOME (IDM_ABOUT + 1) + #define IDM_PROJECTPAGE (IDM_ABOUT + 2) + #define IDM_ONLINEDOCUMENT (IDM_ABOUT + 3) + #define IDM_FORUM (IDM_ABOUT + 4) + //#define IDM_PLUGINSHOME (IDM_ABOUT + 5) + #define IDM_UPDATE_NPP (IDM_ABOUT + 6) + #define IDM_WIKIFAQ (IDM_ABOUT + 7) + //#define IDM_HELP (IDM_ABOUT + 8) + #define IDM_CONFUPDATERPROXY (IDM_ABOUT + 9) + #define IDM_CMDLINEARGUMENTS (IDM_ABOUT + 10) + //#define IDM_ONLINESUPPORT (IDM_ABOUT + 11) + #define IDM_DEBUGINFO (IDM_ABOUT + 12) + + +#define IDM_SETTING (IDM + 8000) +// #define IDM_SETTING_TAB_SIZE (IDM_SETTING + 1) +// #define IDM_SETTING_TAB_REPLCESPACE (IDM_SETTING + 2) +// #define IDM_SETTING_HISTORY_SIZE (IDM_SETTING + 3) +// #define IDM_SETTING_EDGE_SIZE (IDM_SETTING + 4) + #define IDM_SETTING_IMPORTPLUGIN (IDM_SETTING + 5) + #define IDM_SETTING_IMPORTSTYLETHEMS (IDM_SETTING + 6) + #define IDM_SETTING_TRAYICON (IDM_SETTING + 8) + #define IDM_SETTING_SHORTCUT_MAPPER (IDM_SETTING + 9) + #define IDM_SETTING_REMEMBER_LAST_SESSION (IDM_SETTING + 10) + #define IDM_SETTING_PREFERENCE (IDM_SETTING + 11) + #define IDM_SETTING_OPENPLUGINSDIR (IDM_SETTING + 14) + #define IDM_SETTING_PLUGINADM (IDM_SETTING + 15) + #define IDM_SETTING_SHORTCUT_MAPPER_MACRO (IDM_SETTING + 16) + #define IDM_SETTING_SHORTCUT_MAPPER_RUN (IDM_SETTING + 17) + #define IDM_SETTING_EDITCONTEXTMENU (IDM_SETTING + 18) + +#define IDM_TOOL (IDM + 8500) + #define IDM_TOOL_MD5_GENERATE (IDM_TOOL + 1) + #define IDM_TOOL_MD5_GENERATEFROMFILE (IDM_TOOL + 2) + #define IDM_TOOL_MD5_GENERATEINTOCLIPBOARD (IDM_TOOL + 3) + #define IDM_TOOL_SHA256_GENERATE (IDM_TOOL + 4) + #define IDM_TOOL_SHA256_GENERATEFROMFILE (IDM_TOOL + 5) + #define IDM_TOOL_SHA256_GENERATEINTOCLIPBOARD (IDM_TOOL + 6) + +#define IDM_EXECUTE (IDM + 9000) + +#define IDM_SYSTRAYPOPUP (IDM + 3100) + #define IDM_SYSTRAYPOPUP_ACTIVATE (IDM_SYSTRAYPOPUP + 1) + #define IDM_SYSTRAYPOPUP_NEWDOC (IDM_SYSTRAYPOPUP + 2) + #define IDM_SYSTRAYPOPUP_NEW_AND_PASTE (IDM_SYSTRAYPOPUP + 3) + #define IDM_SYSTRAYPOPUP_OPENFILE (IDM_SYSTRAYPOPUP + 4) + #define IDM_SYSTRAYPOPUP_CLOSE (IDM_SYSTRAYPOPUP + 5) From 292ebe9558ad764ce07fd808d7114daed838941d Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Wed, 16 Feb 2022 22:00:07 -0500 Subject: [PATCH 2/8] convertProcessText2Wide() may not be needed --- DockingFeature/GitPanelDlg.cpp | 20 +++++++++++--------- DockingFeature/GitPanelDlg.h | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/DockingFeature/GitPanelDlg.cpp b/DockingFeature/GitPanelDlg.cpp index b6f2b91..0f02228 100644 --- a/DockingFeature/GitPanelDlg.cpp +++ b/DockingFeature/GitPanelDlg.cpp @@ -156,14 +156,14 @@ std::vector DemoDlg::split( std::wstring stringToBeSplitted, return splittedString; } -void DemoDlg::convertProcessText2Wide( std::wstring outputW, std::wstring &wide ) -{ - std::string output(outputW.begin(), outputW.end()); - output.assign(outputW.begin(), outputW.end()); +// void DemoDlg::convertProcessText2Wide( std::wstring outputW, std::wstring &wide ) +// { + // std::string output(outputW.begin(), outputW.end()); + // output.assign(outputW.begin(), outputW.end()); - std::wstring_convert> converter; - wide = converter.from_bytes(output.c_str()); -} + // std::wstring_convert> converter; + // wide = converter.from_bytes(output.c_str()); +// } void DemoDlg::clearList() { @@ -334,13 +334,15 @@ bool DemoDlg::execCommand( std::wstring command, std::wstring &wide ) // otherwise, we look in stdout else if ( program.hasStdout() ) { - convertProcessText2Wide( program.getStdout(), wide ); + // convertProcessText2Wide( program.getStdout(), wide ); + wide = program.getStdout(); return true; } } else { - convertProcessText2Wide( program.getStderr(), wide ); + // convertProcessText2Wide( program.getStderr(), wide ); + wide = program.getStderr(); return false; } return false; diff --git a/DockingFeature/GitPanelDlg.h b/DockingFeature/GitPanelDlg.h index 9bf842e..e625851 100644 --- a/DockingFeature/GitPanelDlg.h +++ b/DockingFeature/GitPanelDlg.h @@ -51,7 +51,7 @@ class DemoDlg : public DockingDlgInterface private : void doRefreshTimer(); std::vector split( std::wstring stringToBeSplitted, std::wstring delimeter ); - void convertProcessText2Wide( std::wstring outputW, std::wstring &wide ); + // void convertProcessText2Wide( std::wstring outputW, std::wstring &wide ); void clearList(); void setListColumns( unsigned int uItem, std::wstring strI, std::wstring strW, std::wstring strFile ); std::vector getListSelected(); From f5b0c8c96a3aa3ca3d2e72e04af52a4bb9437d37 Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Wed, 16 Feb 2022 22:13:17 -0500 Subject: [PATCH 3/8] string initializers and reset branch editbox on no git repo --- DockingFeature/GitPanelDlg.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/DockingFeature/GitPanelDlg.cpp b/DockingFeature/GitPanelDlg.cpp index 0f02228..a446456 100644 --- a/DockingFeature/GitPanelDlg.cpp +++ b/DockingFeature/GitPanelDlg.cpp @@ -214,7 +214,7 @@ std::vector DemoDlg::getListSelected(void) if ( itemInt == -1 ) return selectedItems; - std::wstring wide; + std::wstring wide = TEXT( "" ); if ( execCommand( TEXT( "git.exe rev-parse --show-toplevel" ), wide ) ) { wide.erase(std::remove(wide.begin(), wide.end(), '\n'), wide.end()); @@ -259,7 +259,7 @@ bool DemoDlg::execCommand( std::wstring command, std::wstring &wide ) { wide = TEXT( "" ); - std::wstring pathName; + std::wstring pathName = TEXT( "" ); updateLoc( pathName ); if ( pathName.empty() ) return false; @@ -365,7 +365,7 @@ void DemoDlg::updateList() clearList(); - std::wstring wide; + std::wstring wide = TEXT( "" ); if ( execCommand( TEXT( "git.exe status --porcelain --branch" ), wide ) ) { std::vector splittedStrings = split( wide, TEXT( "\n" ) ); @@ -381,7 +381,10 @@ void DemoDlg::updateList() } } else + { + SendMessage( GetDlgItem( _hSelf, IDC_EDT_BRANCH ), WM_SETTEXT, 0, ( LPARAM )TEXT( "" ) ); setListColumns( 0, TEXT( "" ), TEXT( "" ), wide ); + } } void DemoDlg::SetNppColors() @@ -516,7 +519,7 @@ void DemoDlg::gotoFile() return; else if ( fileOrDir & FILE_ATTRIBUTE_DIRECTORY ) { - std::wstring err; + std::wstring err = TEXT( "" ); err += files[i]; err += TEXT( "\n\nIs a directory. Continue to open all files?" ); int ret = ( int )::MessageBox( _hSelf, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); @@ -550,7 +553,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara case IDC_BTN_PROMPT : { - std::wstring pathName; + std::wstring pathName = TEXT( "" ); updateLoc( pathName ); ShellExecute( nppData._nppHandle, TEXT("open"), g_GitPrompt, NULL, pathName.c_str(), SW_SHOW ); return TRUE; @@ -770,7 +773,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara break; else if ( fileOrDir & FILE_ATTRIBUTE_DIRECTORY ) { - std::wstring err; + std::wstring err = TEXT( "" ); err += files[i]; err += TEXT( "\n\nIs a directory. Continue to open all files?" ); int ret = ( int )::MessageBox( _hSelf, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); From 713e88acfede81a85b4b634f162c9c38ad24ed65 Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Wed, 16 Feb 2022 22:26:00 -0500 Subject: [PATCH 4/8] nppData._nppHandle => _hParent --- DockingFeature/GitPanelDlg.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/DockingFeature/GitPanelDlg.cpp b/DockingFeature/GitPanelDlg.cpp index a446456..fb44465 100644 --- a/DockingFeature/GitPanelDlg.cpp +++ b/DockingFeature/GitPanelDlg.cpp @@ -31,7 +31,6 @@ #include #include -extern NppData nppData; extern TCHAR g_GitPath[MAX_PATH]; extern TCHAR g_GitPrompt[MAX_PATH]; extern bool g_useTortoise; @@ -173,7 +172,7 @@ void DemoDlg::clearList() bool DemoDlg::updateLoc( std::wstring &loc ) { TCHAR pathName[MAX_PATH] = {0}; - SendMessage( nppData._nppHandle, NPPM_GETCURRENTDIRECTORY, MAX_PATH, ( LPARAM )pathName ); + SendMessage( _hParent, NPPM_GETCURRENTDIRECTORY, MAX_PATH, ( LPARAM )pathName ); SendMessage( GetDlgItem( _hSelf, IDC_EDT_DIR ), WM_SETTEXT, 0, ( LPARAM )pathName ); loc = pathName; @@ -524,10 +523,10 @@ void DemoDlg::gotoFile() err += TEXT( "\n\nIs a directory. Continue to open all files?" ); int ret = ( int )::MessageBox( _hSelf, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); if ( ret == IDYES ) - SendMessage( nppData._nppHandle, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); + SendMessage( _hParent, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); } else - SendMessage( nppData._nppHandle, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); + SendMessage( _hParent, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); } } @@ -555,7 +554,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara { std::wstring pathName = TEXT( "" ); updateLoc( pathName ); - ShellExecute( nppData._nppHandle, TEXT("open"), g_GitPrompt, NULL, pathName.c_str(), SW_SHOW ); + ShellExecute( _hParent, TEXT("open"), g_GitPrompt, NULL, pathName.c_str(), SW_SHOW ); return TRUE; } @@ -778,10 +777,10 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara err += TEXT( "\n\nIs a directory. Continue to open all files?" ); int ret = ( int )::MessageBox( _hSelf, err.c_str(), TEXT( "Continue?" ), ( MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_APPLMODAL ) ); if ( ret == IDYES ) - SendMessage( nppData._nppHandle, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); + SendMessage( _hParent, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); } else - SendMessage( nppData._nppHandle, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); + SendMessage( _hParent, NPPM_DOOPEN, 0, ( LPARAM )files[i].c_str() ); } } } @@ -805,7 +804,7 @@ INT_PTR CALLBACK DemoDlg::run_dlgProc( UINT message, WPARAM wParam, LPARAM lPara break; cm.SetObjects( files ); - cm.ShowContextMenu( _hInst, nppData._nppHandle, _hSelf, pt ); + cm.ShowContextMenu( _hInst, _hParent, _hSelf, pt ); } return TRUE; } From 14abe0736a8c17f81fbe4820e7e6d7c154461fdb Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Wed, 16 Feb 2022 22:27:59 -0500 Subject: [PATCH 5/8] release bump --- resource.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource.h b/resource.h index b14c7c0..0ce17a2 100644 --- a/resource.h +++ b/resource.h @@ -7,7 +7,7 @@ /* VERSION DEFINITIONS */ #define VER_MAJOR 1 #define VER_MINOR 4 -#define VER_RELEASE 6 +#define VER_RELEASE 7 #define VER_BUILD 1 #define VER_STRING STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_RELEASE) "." STR(VER_BUILD) From b6f843acaa0596ab5ddaaf9eb688b97c934fb2bb Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Wed, 16 Feb 2022 22:37:46 -0500 Subject: [PATCH 6/8] GetNameStrFromCmd() fix UINT=>UINT_PTR --- DockingFeature/GitPanelDlg.cpp | 2 +- DockingFeature/resource.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/DockingFeature/GitPanelDlg.cpp b/DockingFeature/GitPanelDlg.cpp index fb44465..f7cb35d 100644 --- a/DockingFeature/GitPanelDlg.cpp +++ b/DockingFeature/GitPanelDlg.cpp @@ -102,7 +102,7 @@ static LPCTSTR szToolTip[16] = { TEXT("Settings") }; -LPCTSTR GetNameStrFromCmd( UINT resID ) +LPCTSTR GetNameStrFromCmd( UINT_PTR resID ) { if ((IDC_BTN_GITGUI <= resID) && (resID <= IDC_BTN_SETTINGS)) { return szToolTip[resID - IDC_BTN_GITGUI]; diff --git a/DockingFeature/resource.h b/DockingFeature/resource.h index 5b7ee33..5195e3e 100644 --- a/DockingFeature/resource.h +++ b/DockingFeature/resource.h @@ -34,6 +34,9 @@ #define IDB_PAGER1 1701 #define IDB_PAGER2 1702 +// The following MUST stay in order so GetNameStrFromCmd() +// tooltip lookups from szToolTip will work + #define IDC_BTN_GITGUI (IDB_TOOLBAR1 + 1) #define IDC_BTN_GITK (IDB_TOOLBAR1 + 2) #define IDC_BTN_PROMPT (IDB_TOOLBAR1 + 3) @@ -49,6 +52,8 @@ #define IDC_BTN_BLAME (IDB_TOOLBAR1 + 13) #define IDC_BTN_SETTINGS (IDB_TOOLBAR1 + 14) +// END order "MUST stay in order" + #define IDC_CHK_TORTOISE (IDD_PLUGINGITPANEL + 11) #define IDC_CHK_NPPCOLOR (IDD_PLUGINGITPANEL + 12) #define IDC_CHK_PANELTOGGLE (IDD_PLUGINGITPANEL + 13) From 900995536c1f1b8b650a71442e4df6294590b4de Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Thu, 17 Feb 2022 11:33:54 -0500 Subject: [PATCH 7/8] move "not git repo" message to branch text box - leave list empty --- DockingFeature/GitPanelDlg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DockingFeature/GitPanelDlg.cpp b/DockingFeature/GitPanelDlg.cpp index f7cb35d..be5629e 100644 --- a/DockingFeature/GitPanelDlg.cpp +++ b/DockingFeature/GitPanelDlg.cpp @@ -381,8 +381,8 @@ void DemoDlg::updateList() } else { - SendMessage( GetDlgItem( _hSelf, IDC_EDT_BRANCH ), WM_SETTEXT, 0, ( LPARAM )TEXT( "" ) ); - setListColumns( 0, TEXT( "" ), TEXT( "" ), wide ); + SendMessage( GetDlgItem( _hSelf, IDC_EDT_BRANCH ), WM_SETTEXT, 0, ( LPARAM )wide.c_str() ); + setListColumns( 0, TEXT( "" ), TEXT( "" ), TEXT( "" ) ); } } From 281395aaaf8e506dada1b338ec166998afa22a2f Mon Sep 17 00:00:00 2001 From: VinsWorldcom Date: Fri, 18 Feb 2022 09:49:44 -0500 Subject: [PATCH 8/8] nicer error messages on Tortoise/Git not found --- PluginDefinition.cpp | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/PluginDefinition.cpp b/PluginDefinition.cpp index aab3bf9..b34df9d 100644 --- a/PluginDefinition.cpp +++ b/PluginDefinition.cpp @@ -241,6 +241,28 @@ std::wstring getCurrentFileDirectory() return std::wstring(path); } +std::wstring GetLastErrorString(DWORD errorCode) +{ + std::wstring errorMsg(_T("")); + // Get the error message, if any. + // If both error codes (passed error n GetLastError) are 0, then return empty + if (errorCode == 0) + errorCode = GetLastError(); + if (errorCode == 0) + return errorMsg; //No error message has been recorded + + LPWSTR messageBuffer = nullptr; + FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&messageBuffer, 0, nullptr); + + errorMsg += messageBuffer; + + //Free the buffer. + LocalFree(messageBuffer); + + return errorMsg; +} + /// /// Gets the path to the TortioseGit executable from the registry. /// @@ -353,8 +375,12 @@ void ExecGitCommand( command += TEXT( "\"" ); if ( !launchGit( command ) ) - MessageBox( nppData._nppHandle, TEXT( "Could not launch Git." ), + { + std::wstring err = TEXT( "Could not launch Git.\n\n" ); + err += GetLastErrorString(GetLastError()); + MessageBox( nppData._nppHandle, err.c_str(), TEXT( "Failed" ), ( MB_OK | MB_ICONWARNING | MB_APPLMODAL ) ); + } updatePanel(); } @@ -396,8 +422,12 @@ void ExecTortoiseCommand( command += TEXT( "\" /closeonend:2" ); if ( !launchGit( command ) ) - MessageBox( nppData._nppHandle, TEXT( "Could not launch TortoiseGit." ), + { + std::wstring err = TEXT( "Could not launch TortoiseGit.\n\n" ); + err += GetLastErrorString(GetLastError()); + MessageBox( nppData._nppHandle, err.c_str(), TEXT( "Failed" ), ( MB_OK | MB_ICONWARNING | MB_APPLMODAL ) ); + } updatePanel(); }