├── .gitignore ├── .github ├── dependabot.yml └── workflows │ └── CI_build.yml ├── readme.txt ├── source ├── Sci_Position.h ├── conversionPanel.h ├── resource.h ├── DockingFeature │ ├── StaticDialog.h │ ├── dockingResource.h │ ├── Window.h │ ├── Docking.h │ ├── DockingDlgInterface.h │ └── StaticDialog.cpp ├── NppPluginDemo.cpp ├── PluginInterface.h ├── conversionPanel.rc ├── PluginDefinition.h ├── conversionPanel.cpp ├── PluginDefinition.cpp ├── menuCmdID.h └── Scintilla.h ├── vs.proj └── NppPluginConverter.vcxproj └── license.txt /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | bin64/ 3 | arm64/ 4 | vs.proj/.vs/ 5 | vs.proj/x64/ 6 | vs.proj/ARM64 7 | vs.proj/Win32/ 8 | UpgradeLog.htm 9 | vs.proj/NppPluginConverter.vcxproj.user 10 | vs.proj/NppPluginConverter.exp 11 | vs.proj/NppPluginConverter.lib 12 | *.sdf 13 | *.suo 14 | *.filters 15 | *.opensdf 16 | *.sln 17 | *.exp 18 | *.aps 19 | *.bak 20 | *.log 21 | *.tlog 22 | *.zip 23 | vs.proj/NppConverter.lib -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | 9 | # Maintain dependencies for GitHub Actions 10 | - package-ecosystem: "github-actions" 11 | directory: "/" 12 | schedule: 13 | interval: "monthly" 14 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | NppConvert is a plugin for Notepad++ that allows you to convert selected text between ASCII and hexadecimal formats. You can choose to convert a hexadecimal string to ASCII or an ASCII string to hexadecimal, depending on your needs. 2 | 3 | To customize the format of the generated hex string, you can modify the parameters in the [ascii2Hex] section of the converter.ini file. Note that you need to restart Notepad++ for the changes to take effect. 4 | 5 | NppConvert is also capable of detecting the input hex string format for the “Hex -> ASCII” command, making it easier to use. 6 | 7 | In addition to conversion, this plugin provides a conversion panel that can be useful when you need to convert a value into ASCII, decimal, hexadecimal, octal, or binary. 8 | 9 | This plugin is licensed under GPL. 10 | 11 | Don Ho 12 | -------------------------------------------------------------------------------- /source/Sci_Position.h: -------------------------------------------------------------------------------- 1 | // Scintilla source code edit control 2 | /** @file Sci_Position.h 3 | ** Define the Sci_Position type used in Scintilla's external interfaces. 4 | ** These need to be available to clients written in C so are not in a C++ namespace. 5 | **/ 6 | // Copyright 2015 by Neil Hodgson 7 | // The License.txt file describes the conditions under which this software may be distributed. 8 | 9 | #ifndef SCI_POSITION_H 10 | #define SCI_POSITION_H 11 | 12 | #include 13 | 14 | // Basic signed type used throughout interface 15 | typedef ptrdiff_t Sci_Position; 16 | 17 | // Unsigned variant used for ILexer::Lex and ILexer::Fold 18 | typedef size_t Sci_PositionU; 19 | 20 | // For Sci_CharacterRange which is defined as long to be compatible with Win32 CHARRANGE 21 | typedef intptr_t Sci_PositionCR; 22 | 23 | #ifdef _WIN32 24 | #define SCI_METHOD __stdcall 25 | #else 26 | #define SCI_METHOD 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /.github/workflows/CI_build.yml: -------------------------------------------------------------------------------- 1 | name: CI_build 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: windows-latest 9 | strategy: 10 | matrix: 11 | build_configuration: [Release, Debug] 12 | build_platform: [x64, Win32, ARM64] 13 | 14 | steps: 15 | - name: Checkout repo 16 | uses: actions/checkout@v6 17 | 18 | - name: Add msbuild to PATH 19 | uses: microsoft/setup-msbuild@v2 20 | 21 | - name: MSBuild of plugin dll 22 | working-directory: vs.proj\ 23 | run: msbuild NppPluginConverter.vcxproj /m /p:configuration="${{ matrix.build_configuration }}" /p:platform="${{ matrix.build_platform }}" 24 | 25 | - name: Archive artifacts for x64 26 | if: matrix.build_platform == 'x64' && matrix.build_configuration == 'Release' 27 | uses: actions/upload-artifact@v5 28 | with: 29 | name: plugin_dll_x64 30 | path: bin64\NppConverter.dll 31 | 32 | - name: Archive artifacts for Win32 33 | if: matrix.build_platform == 'Win32' && matrix.build_configuration == 'Release' 34 | uses: actions/upload-artifact@v5 35 | with: 36 | name: plugin_dll_x86 37 | path: bin\NppConverter.dll 38 | 39 | - name: Archive artifacts for ARM64 40 | if: matrix.build_platform == 'ARM64' && matrix.build_configuration == 'Release' 41 | uses: actions/upload-artifact@v5 42 | with: 43 | name: plugin_dll_arm64 44 | path: arm64\NppConverter.dll 45 | -------------------------------------------------------------------------------- /source/conversionPanel.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #ifndef GOTILINE_DLG_H 18 | #define GOTILINE_DLG_H 19 | 20 | #include "DockingFeature\DockingDlgInterface.h" 21 | #include "resource.h" 22 | #include 23 | 24 | typedef std::basic_string generic_string; 25 | 26 | class ConversionPanel : public DockingDlgInterface 27 | { 28 | public : 29 | ConversionPanel() : lock(false), DockingDlgInterface(IDD_CONVERSION_PANEL){}; 30 | 31 | virtual void display(bool toShow = true) const { 32 | DockingDlgInterface::display(toShow); 33 | if (toShow) 34 | ::SetFocus(::GetDlgItem(_hSelf, ID_ASCII_EDIT)); 35 | }; 36 | 37 | void setParent(HWND parent2set){ 38 | _hParent = parent2set; 39 | }; 40 | 41 | void resetExcept(int exceptID); 42 | void setValueFrom(int id); 43 | void setValueExcept(int id, size_t value); 44 | bool qualified(TCHAR *str, int id); 45 | generic_string getAsciiInfo(unsigned char value); 46 | void insertToNppFrom(int id); 47 | int getAsciiUcharFromDec(); 48 | void copyToClipboardFrom(int id); 49 | 50 | protected : 51 | virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam); 52 | 53 | private : 54 | bool lock; 55 | int getLine() const { 56 | BOOL isSuccessful; 57 | int line = ::GetDlgItemInt(_hSelf, ID_ASCII_EDIT, &isSuccessful, FALSE); 58 | return (isSuccessful?line:-1); 59 | }; 60 | }; 61 | 62 | HWND getCurrentScintillaHandle(); 63 | 64 | 65 | #endif //GOTILINE_DLG_H 66 | -------------------------------------------------------------------------------- /source/resource.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #ifndef RESOURCE_H 19 | #define RESOURCE_H 20 | 21 | #define VERSION_VALUE "4.7\0" 22 | #define VERSION_DIGITALVALUE 4, 7, 0, 0 23 | 24 | #ifndef IDC_STATIC 25 | #define IDC_STATIC -1 26 | #endif 27 | 28 | #define IDD_CONVERSION_PANEL 2500 29 | #define ID_ASCII_EDIT (IDD_CONVERSION_PANEL + 1) 30 | #define ID_ASCII_STATIC (IDD_CONVERSION_PANEL + 2) 31 | #define ID_ASCII_BUTTON (IDD_CONVERSION_PANEL + 3) 32 | 33 | #define ID_BIN_EDIT (IDD_CONVERSION_PANEL + 4) 34 | #define ID_BIN_STATIC (IDD_CONVERSION_PANEL + 5) 35 | #define ID_BIN_BUTTON (IDD_CONVERSION_PANEL + 6) 36 | 37 | #define ID_HEX_EDIT (IDD_CONVERSION_PANEL + 7) 38 | #define ID_HEX_STATIC (IDD_CONVERSION_PANEL + 8) 39 | #define ID_HEX_BUTTON (IDD_CONVERSION_PANEL + 9) 40 | 41 | #define ID_DEC_EDIT (IDD_CONVERSION_PANEL + 10) 42 | #define ID_DEC_STATIC (IDD_CONVERSION_PANEL + 11) 43 | #define ID_DEC_BUTTON (IDD_CONVERSION_PANEL + 12) 44 | 45 | #define ID_OCT_EDIT (IDD_CONVERSION_PANEL + 13) 46 | #define ID_OCT_STATIC (IDD_CONVERSION_PANEL + 14) 47 | #define ID_OCT_BUTTON (IDD_CONVERSION_PANEL + 15) 48 | 49 | #define ID_ASCII_INSERT_BUTTON (IDD_CONVERSION_PANEL + 16) 50 | #define ID_BIN_INSERT_BUTTON (IDD_CONVERSION_PANEL + 17) 51 | #define ID_HEX_INSERT_BUTTON (IDD_CONVERSION_PANEL + 18) 52 | #define ID_DEC_INSERT_BUTTON (IDD_CONVERSION_PANEL + 19) 53 | #define ID_OCT_INSERT_BUTTON (IDD_CONVERSION_PANEL + 20) 54 | #define ID_ASCII_INFO_STATIC (IDD_CONVERSION_PANEL + 21) 55 | 56 | #endif // RESOURCE_H 57 | 58 | -------------------------------------------------------------------------------- /source/DockingFeature/StaticDialog.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #pragma once 19 | 20 | #include "Window.h" 21 | #include "..\Notepad_plus_msgs.h" 22 | 23 | enum class PosAlign { left, right, top, bottom }; 24 | 25 | struct DLGTEMPLATEEX { 26 | WORD dlgVer; 27 | WORD signature; 28 | DWORD helpID; 29 | DWORD exStyle; 30 | DWORD style; 31 | WORD cDlgItems; 32 | short x; 33 | short y; 34 | short cx; 35 | short cy; 36 | // The structure has more fields but are variable length 37 | } ; 38 | 39 | class StaticDialog : public Window 40 | { 41 | public : 42 | StaticDialog() : Window() {}; 43 | ~StaticDialog(){ 44 | if (isCreated()) { 45 | ::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (long)NULL); //Prevent run_dlgProc from doing anything, since its virtual 46 | destroy(); 47 | } 48 | }; 49 | virtual void create(int dialogID, bool isRTL = false); 50 | 51 | virtual bool isCreated() const { 52 | return (_hSelf != NULL); 53 | }; 54 | 55 | void goToCenter(); 56 | void destroy() { 57 | ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_hSelf); 58 | ::DestroyWindow(_hSelf); 59 | }; 60 | 61 | protected : 62 | RECT _rc; 63 | static INT_PTR CALLBACK dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); 64 | virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) = 0; 65 | 66 | void alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point); 67 | HGLOBAL makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate); 68 | }; 69 | 70 | -------------------------------------------------------------------------------- /source/DockingFeature/dockingResource.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2006 Jens Lorenz 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | // Contribution by Don HO 18 | // Date of Contribution: 2025-05-14 19 | // Description of Contribution: Minor change 20 | 21 | #pragma once 22 | 23 | #define DM_NOFOCUSWHILECLICKINGCAPTION L"NOFOCUSWHILECLICKINGCAPTION" 24 | 25 | #define IDD_PLUGIN_DLG 103 26 | #define IDC_EDIT1 1000 27 | 28 | 29 | #define IDB_CLOSE_DOWN 137 30 | #define IDB_CLOSE_UP 138 31 | #define IDD_CONTAINER_DLG 139 32 | 33 | #define IDC_TAB_CONT 1027 34 | #define IDC_CLIENT_TAB 1028 35 | #define IDC_BTN_CAPTION 1050 36 | 37 | #define DMM_MSG 0x5000 38 | #define DMM_CLOSE (DMM_MSG + 1) 39 | #define DMM_DOCK (DMM_MSG + 2) 40 | #define DMM_FLOAT (DMM_MSG + 3) 41 | #define DMM_DOCKALL (DMM_MSG + 4) 42 | #define DMM_FLOATALL (DMM_MSG + 5) 43 | #define DMM_MOVE (DMM_MSG + 6) 44 | #define DMM_UPDATEDISPINFO (DMM_MSG + 7) 45 | //#define DMM_GETIMAGELIST (DMM_MSG + 8) 46 | //#define DMM_GETICONPOS (DMM_MSG + 9) 47 | #define DMM_DROPDATA (DMM_MSG + 10) 48 | #define DMM_MOVE_SPLITTER (DMM_MSG + 11) 49 | #define DMM_CANCEL_MOVE (DMM_MSG + 12) 50 | #define DMM_LBUTTONUP (DMM_MSG + 13) 51 | 52 | #define DMN_FIRST 1050 53 | #define DMN_CLOSE (DMN_FIRST + 1) 54 | #define DMN_DOCK (DMN_FIRST + 2) 55 | #define DMN_FLOAT (DMN_FIRST + 3) 56 | #define DMN_SWITCHIN (DMN_FIRST + 4) 57 | #define DMN_SWITCHOFF (DMN_FIRST + 5) 58 | #define DMN_FLOATDROPPED (DMN_FIRST + 6) 59 | 60 | -------------------------------------------------------------------------------- /source/NppPluginDemo.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #include "PluginDefinition.h" 19 | 20 | extern FuncItem funcItem[nbFunc]; 21 | extern NppData nppData; 22 | 23 | 24 | BOOL APIENTRY DllMain( HANDLE hModule, DWORD reasonForCall, LPVOID) 25 | { 26 | switch (reasonForCall) 27 | { 28 | case DLL_PROCESS_ATTACH: 29 | pluginInit(hModule); 30 | break; 31 | 32 | case DLL_PROCESS_DETACH: 33 | pluginCleanUp(); 34 | break; 35 | 36 | case DLL_THREAD_ATTACH: 37 | break; 38 | 39 | case DLL_THREAD_DETACH: 40 | break; 41 | } 42 | 43 | return TRUE; 44 | } 45 | 46 | 47 | extern "C" __declspec(dllexport) void setInfo(NppData notpadPlusData) 48 | { 49 | nppData = notpadPlusData; 50 | loadConfFile(); 51 | commandMenuInit(); 52 | } 53 | 54 | extern "C" __declspec(dllexport) const TCHAR * getName() 55 | { 56 | return NPP_PLUGIN_NAME; 57 | } 58 | 59 | extern "C" __declspec(dllexport) FuncItem * getFuncsArray(int *nbF) 60 | { 61 | *nbF = nbFunc; 62 | return funcItem; 63 | } 64 | 65 | 66 | extern "C" __declspec(dllexport) void beNotified(SCNotification *notifyCode) 67 | { 68 | switch (notifyCode->nmhdr.code) 69 | { 70 | case NPPN_SHUTDOWN: 71 | { 72 | commandMenuCleanUp(); 73 | } 74 | break; 75 | 76 | default: 77 | return; 78 | } 79 | } 80 | 81 | 82 | // Here you can process the Npp Messages 83 | // I will make the messages accessible little by little, according to the need of plugin development. 84 | // Please let me know if you need to access to some messages : 85 | // http://sourceforge.net/forum/forum.php?forum_id=482781 86 | // 87 | extern "C" __declspec(dllexport) LRESULT messageProc(UINT, WPARAM, LPARAM) 88 | { 89 | return TRUE; 90 | } 91 | 92 | #ifdef UNICODE 93 | extern "C" __declspec(dllexport) BOOL isUnicode() 94 | { 95 | return TRUE; 96 | } 97 | #endif //UNICODE 98 | -------------------------------------------------------------------------------- /source/PluginInterface.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2025 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | 19 | // For more comprehensive information on plugin communication, please refer to the following resource: 20 | // https://npp-user-manual.org/docs/plugin-communication/ 21 | 22 | #pragma once 23 | 24 | #include "Scintilla.h" 25 | #include "Notepad_plus_msgs.h" 26 | 27 | 28 | typedef const wchar_t * (__cdecl * PFUNCGETNAME)(); 29 | 30 | struct NppData 31 | { 32 | HWND _nppHandle = nullptr; 33 | HWND _scintillaMainHandle = nullptr; 34 | HWND _scintillaSecondHandle = nullptr; 35 | }; 36 | 37 | typedef void (__cdecl * PFUNCSETINFO)(NppData); 38 | typedef void (__cdecl * PFUNCPLUGINCMD)(); 39 | typedef void (__cdecl * PBENOTIFIED)(SCNotification *); 40 | typedef LRESULT (__cdecl * PMESSAGEPROC)(UINT Message, WPARAM wParam, LPARAM lParam); 41 | 42 | 43 | struct ShortcutKey 44 | { 45 | bool _isCtrl = false; 46 | bool _isAlt = false; 47 | bool _isShift = false; 48 | UCHAR _key = 0; 49 | }; 50 | 51 | const int menuItemSize = 64; 52 | 53 | struct FuncItem 54 | { 55 | wchar_t _itemName[menuItemSize] = { '\0' }; 56 | PFUNCPLUGINCMD _pFunc = nullptr; 57 | int _cmdID = 0; 58 | bool _init2Check = false; 59 | ShortcutKey *_pShKey = nullptr; 60 | }; 61 | 62 | typedef FuncItem * (__cdecl * PFUNCGETFUNCSARRAY)(int *); 63 | 64 | // You should implement (or define an empty function body) those functions which are called by Notepad++ plugin manager 65 | extern "C" __declspec(dllexport) void setInfo(NppData); 66 | extern "C" __declspec(dllexport) const wchar_t * getName(); 67 | extern "C" __declspec(dllexport) FuncItem * getFuncsArray(int *); 68 | extern "C" __declspec(dllexport) void beNotified(SCNotification *); 69 | extern "C" __declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam); 70 | 71 | // This API return always true now, since Notepad++ isn't compiled in ANSI mode anymore 72 | extern "C" __declspec(dllexport) BOOL isUnicode(); 73 | 74 | -------------------------------------------------------------------------------- /source/DockingFeature/Window.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #ifndef WINDOW_CONTROL_H 19 | #define WINDOW_CONTROL_H 20 | 21 | #include 22 | 23 | class Window 24 | { 25 | public: 26 | Window(): _hInst(NULL), _hParent(NULL), _hSelf(NULL){}; 27 | virtual ~Window() {}; 28 | 29 | virtual void init(HINSTANCE hInst, HWND parent) 30 | { 31 | _hInst = hInst; 32 | _hParent = parent; 33 | } 34 | 35 | virtual void destroy() = 0; 36 | 37 | virtual void display(bool toShow = true) const { 38 | ::ShowWindow(_hSelf, toShow?SW_SHOW:SW_HIDE); 39 | }; 40 | 41 | virtual void reSizeTo(RECT & rc) // should NEVER be const !!! 42 | { 43 | ::MoveWindow(_hSelf, rc.left, rc.top, rc.right, rc.bottom, TRUE); 44 | redraw(); 45 | }; 46 | 47 | virtual void reSizeToWH(RECT & rc) // should NEVER be const !!! 48 | { 49 | ::MoveWindow(_hSelf, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE); 50 | redraw(); 51 | }; 52 | 53 | virtual void redraw(bool forceUpdate = false) const { 54 | ::InvalidateRect(_hSelf, NULL, TRUE); 55 | if (forceUpdate) 56 | ::UpdateWindow(_hSelf); 57 | }; 58 | 59 | virtual void getClientRect(RECT & rc) const { 60 | ::GetClientRect(_hSelf, &rc); 61 | }; 62 | 63 | virtual void getWindowRect(RECT & rc) const { 64 | ::GetWindowRect(_hSelf, &rc); 65 | }; 66 | 67 | virtual int getWidth() const { 68 | RECT rc; 69 | ::GetClientRect(_hSelf, &rc); 70 | return (rc.right - rc.left); 71 | }; 72 | 73 | virtual int getHeight() const { 74 | RECT rc; 75 | ::GetClientRect(_hSelf, &rc); 76 | if (::IsWindowVisible(_hSelf) == TRUE) 77 | return (rc.bottom - rc.top); 78 | return 0; 79 | }; 80 | 81 | virtual bool isVisible() const { 82 | return (::IsWindowVisible(_hSelf)?true:false); 83 | }; 84 | 85 | HWND getHSelf() const { 86 | //assert(_hSelf); 87 | return _hSelf; 88 | }; 89 | 90 | HWND getHParent() const { 91 | return _hParent; 92 | }; 93 | 94 | void getFocus() const { 95 | ::SetFocus(_hSelf); 96 | }; 97 | 98 | HINSTANCE getHinst() const { 99 | if (!_hInst) 100 | { 101 | ::MessageBox(NULL, TEXT("_hInst == NULL"), TEXT("class Window"), MB_OK); 102 | throw int(1999); 103 | } 104 | return _hInst; 105 | }; 106 | protected: 107 | HINSTANCE _hInst; 108 | HWND _hParent; 109 | HWND _hSelf; 110 | }; 111 | 112 | #endif //WINDOW_CONTROL_H 113 | 114 | 115 | -------------------------------------------------------------------------------- /source/DockingFeature/Docking.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2025 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | // ATTENTION : It's a part of interface header, so don't include the others header here 23 | 24 | // styles for containers 25 | #define CAPTION_TOP TRUE 26 | #define CAPTION_BOTTOM FALSE 27 | 28 | // defines for docking manager 29 | #define CONT_LEFT 0 30 | #define CONT_RIGHT 1 31 | #define CONT_TOP 2 32 | #define CONT_BOTTOM 3 33 | #define DOCKCONT_MAX 4 34 | 35 | // mask params for plugins of internal dialogs 36 | #define DWS_ICONTAB 0x00000001 // Icon for tabs are available 37 | #define DWS_ICONBAR 0x00000002 // Icon for icon bar are available (currently not supported) 38 | #define DWS_ADDINFO 0x00000004 // Additional information are in use 39 | #define DWS_USEOWNDARKMODE 0x00000008 // Use plugin's own dark mode 40 | #define DWS_PARAMSALL (DWS_ICONTAB|DWS_ICONBAR|DWS_ADDINFO) 41 | 42 | // default docking values for first call of plugin 43 | #define DWS_DF_CONT_LEFT (CONT_LEFT << 28) // default docking on left 44 | #define DWS_DF_CONT_RIGHT (CONT_RIGHT << 28) // default docking on right 45 | #define DWS_DF_CONT_TOP (CONT_TOP << 28) // default docking on top 46 | #define DWS_DF_CONT_BOTTOM (CONT_BOTTOM << 28) // default docking on bottom 47 | #define DWS_DF_FLOATING 0x80000000 // default state is floating 48 | 49 | 50 | struct tTbData { 51 | HWND hClient = nullptr; // client Window Handle 52 | const wchar_t* pszName = nullptr; // name of plugin (shown in window) 53 | int dlgID = 0; // a funcItem provides the function pointer to start a dialog. Please parse here these ID 54 | 55 | // user modifications 56 | UINT uMask = 0; // mask params: look to above defines 57 | HICON hIconTab = nullptr; // icon for tabs 58 | const wchar_t* pszAddInfo = nullptr; // for plugin to display additional information 59 | 60 | // internal data, do not use !!! 61 | RECT rcFloat = {}; // floating position 62 | int iPrevCont = 0; // stores the privious container (toggling between float and dock) 63 | const wchar_t* pszModuleName = nullptr; // it's the plugin file name. It's used to identify the plugin 64 | }; 65 | 66 | 67 | struct tDockMgr { 68 | HWND hWnd = nullptr; // the docking manager wnd 69 | RECT rcRegion[DOCKCONT_MAX] = {{}}; // position of docked dialogs 70 | }; 71 | 72 | 73 | #define HIT_TEST_THICKNESS 20 74 | #define SPLITTER_WIDTH 4 75 | 76 | -------------------------------------------------------------------------------- /source/conversionPanel.rc: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #include 18 | #include "resource.h" 19 | 20 | VS_VERSION_INFO VERSIONINFO 21 | FILEVERSION VERSION_DIGITALVALUE 22 | PRODUCTVERSION VERSION_DIGITALVALUE 23 | FILEFLAGSMASK 0x3fL 24 | FILEFLAGS 0 25 | FILEOS VOS_NT_WINDOWS32 26 | FILETYPE VFT_APP 27 | FILESUBTYPE VFT2_UNKNOWN 28 | BEGIN 29 | BLOCK "VarFileInfo" 30 | BEGIN 31 | VALUE "Translation", 0x409, 1200 32 | END 33 | BLOCK "StringFileInfo" 34 | BEGIN 35 | BLOCK "040904b0" 36 | BEGIN 37 | VALUE "CompanyName", "Don HO don.h@free.fr\0" 38 | VALUE "FileDescription", "ASCII <-> Hex plugin for Notepad++\0" 39 | VALUE "FileVersion", VERSION_VALUE 40 | VALUE "InternalName", "converter.dll\0" 41 | VALUE "LegalCopyright", "Copyright 2011 by Don HO\0" 42 | VALUE "OriginalFilename", "NppConverter.dll\0" 43 | VALUE "ProductName", "Npp Converter\0" 44 | VALUE "ProductVersion", VERSION_VALUE 45 | END 46 | END 47 | END 48 | 49 | IDD_CONVERSION_PANEL DIALOGEX 26, 41, 324, 142 50 | STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU 51 | EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE 52 | CAPTION "Conversion" 53 | FONT 8, "MS Sans Serif", 0, 0, 0x0 54 | BEGIN 55 | LTEXT "ASCII:",ID_ASCII_STATIC,15,23,45,8,0,WS_EX_RIGHT 56 | EDITTEXT ID_ASCII_EDIT,65,20,15,12 57 | LTEXT "",ID_ASCII_INFO_STATIC, 85,23,65,8,0 58 | PUSHBUTTON "Copy",ID_ASCII_BUTTON,229,19,40,14,BS_NOTIFY 59 | PUSHBUTTON "Insert",ID_ASCII_INSERT_BUTTON,275,19,40,14,BS_NOTIFY 60 | 61 | LTEXT "Decimal:",ID_DEC_STATIC,15,47,45,8,0,WS_EX_RIGHT 62 | EDITTEXT ID_DEC_EDIT,65,45,150,12,ES_NUMBER 63 | PUSHBUTTON "Copy",ID_DEC_BUTTON,229,43,40,14,BS_NOTIFY 64 | PUSHBUTTON "Insert",ID_DEC_INSERT_BUTTON,275,43,40,14,BS_NOTIFY 65 | 66 | LTEXT "Hexadecimal:",ID_HEX_STATIC,15,68,45,8,0,WS_EX_RIGHT 67 | EDITTEXT ID_HEX_EDIT,65,67,150,12 68 | PUSHBUTTON "Copy",ID_HEX_BUTTON,229,65,40,14,BS_NOTIFY 69 | PUSHBUTTON "Insert",ID_HEX_INSERT_BUTTON,275,65,40,14,BS_NOTIFY 70 | 71 | LTEXT "Binary:",ID_BIN_STATIC,15,93,45,8,0,WS_EX_RIGHT 72 | EDITTEXT ID_BIN_EDIT,65,91,150,12,ES_NUMBER 73 | PUSHBUTTON "Copy",ID_BIN_BUTTON,230,89,40,14,BS_NOTIFY 74 | PUSHBUTTON "Insert",ID_BIN_INSERT_BUTTON,275,89,40,14,BS_NOTIFY 75 | 76 | LTEXT "Octal:",ID_OCT_STATIC,15,116,45,8,0,WS_EX_RIGHT 77 | EDITTEXT ID_OCT_EDIT,65,114,150,12,ES_NUMBER 78 | PUSHBUTTON "Copy",ID_OCT_BUTTON,230,112,40,14,BS_NOTIFY 79 | PUSHBUTTON "Insert",ID_OCT_INSERT_BUTTON,275,112,40,14,BS_NOTIFY 80 | END 81 | 82 | 83 | -------------------------------------------------------------------------------- /source/DockingFeature/DockingDlgInterface.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #ifndef DOCKINGDLGINTERFACE_H 19 | #define DOCKINGDLGINTERFACE_H 20 | 21 | #include "StaticDialog.h" 22 | #include "dockingResource.h" 23 | #include "Docking.h" 24 | #include 25 | 26 | 27 | class DockingDlgInterface : public StaticDialog 28 | { 29 | public: 30 | DockingDlgInterface(): StaticDialog() {}; 31 | DockingDlgInterface(int dlgID): StaticDialog(), _dlgID(dlgID) {}; 32 | 33 | virtual void init(HINSTANCE hInst, HWND parent) 34 | { 35 | StaticDialog::init(hInst, parent); 36 | ::GetModuleFileName((HMODULE)hInst, _moduleName, MAX_PATH); 37 | lstrcpy(_moduleName, PathFindFileName(_moduleName)); 38 | } 39 | 40 | void create(tTbData * data, bool isRTL = false){ 41 | StaticDialog::create(_dlgID, isRTL); 42 | ::GetWindowText(_hSelf, _pluginName, sizeof(_pluginName)); 43 | 44 | // user information 45 | data->hClient = _hSelf; 46 | data->pszName = _pluginName; 47 | 48 | // supported features by plugin 49 | data->uMask = 0; 50 | 51 | // additional info 52 | data->pszAddInfo = NULL; 53 | _data = data; 54 | 55 | }; 56 | 57 | virtual void updateDockingDlg(void) { 58 | ::SendMessage(_hParent, NPPM_DMMUPDATEDISPINFO, 0, (LPARAM)_hSelf); 59 | } 60 | 61 | virtual void destroy() { 62 | }; 63 | 64 | virtual void display(bool toShow = true) const { 65 | ::SendMessage(_hParent, toShow?NPPM_DMMSHOW:NPPM_DMMHIDE, 0, (LPARAM)_hSelf); 66 | }; 67 | 68 | const TCHAR * getPluginFileName() const { 69 | return _moduleName; 70 | }; 71 | 72 | protected : 73 | virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM , LPARAM lParam) 74 | { 75 | switch (message) 76 | { 77 | case WM_NOTIFY: 78 | { 79 | LPNMHDR pnmh = (LPNMHDR)lParam; 80 | 81 | if (pnmh->hwndFrom == _hParent) 82 | { 83 | switch (LOWORD(pnmh->code)) 84 | { 85 | case DMN_CLOSE: 86 | { 87 | break; 88 | } 89 | case DMN_FLOAT: 90 | { 91 | _isFloating = true; 92 | break; 93 | } 94 | case DMN_DOCK: 95 | { 96 | _isFloating = false; 97 | break; 98 | } 99 | default: 100 | break; 101 | } 102 | } 103 | break; 104 | } 105 | default: 106 | break; 107 | } 108 | return FALSE; 109 | }; 110 | 111 | // Handles 112 | HWND _HSource; 113 | tTbData* _data; 114 | int _dlgID; 115 | bool _isFloating; 116 | TCHAR _moduleName[MAX_PATH]; 117 | TCHAR _pluginName[MAX_PATH]; 118 | }; 119 | 120 | #endif // DOCKINGDLGINTERFACE_H 121 | -------------------------------------------------------------------------------- /source/DockingFeature/StaticDialog.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2021 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | #include 18 | #include "StaticDialog.h" 19 | 20 | void StaticDialog::goToCenter() 21 | { 22 | RECT rc; 23 | ::GetClientRect(_hParent, &rc); 24 | POINT center; 25 | center.x = rc.left + (rc.right - rc.left)/2; 26 | center.y = rc.top + (rc.bottom - rc.top)/2; 27 | ::ClientToScreen(_hParent, ¢er); 28 | 29 | int x = center.x - (_rc.right - _rc.left)/2; 30 | int y = center.y - (_rc.bottom - _rc.top)/2; 31 | 32 | ::SetWindowPos(_hSelf, HWND_TOP, x, y, _rc.right - _rc.left, _rc.bottom - _rc.top, SWP_SHOWWINDOW); 33 | } 34 | 35 | HGLOBAL StaticDialog::makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate) 36 | { 37 | // Get Dlg Template resource 38 | HRSRC hDialogRC = ::FindResource(_hInst, MAKEINTRESOURCE(dialogID), RT_DIALOG); 39 | if (!hDialogRC) 40 | return NULL; 41 | 42 | HGLOBAL hDlgTemplate = ::LoadResource(_hInst, hDialogRC); 43 | if (!hDlgTemplate) 44 | return NULL; 45 | 46 | DLGTEMPLATE *pDlgTemplate = reinterpret_cast(::LockResource(hDlgTemplate)); 47 | if (!pDlgTemplate) 48 | return NULL; 49 | 50 | // Duplicate Dlg Template resource 51 | unsigned long sizeDlg = ::SizeofResource(_hInst, hDialogRC); 52 | HGLOBAL hMyDlgTemplate = ::GlobalAlloc(GPTR, sizeDlg); 53 | *ppMyDlgTemplate = reinterpret_cast(::GlobalLock(hMyDlgTemplate)); 54 | 55 | ::memcpy(*ppMyDlgTemplate, pDlgTemplate, sizeDlg); 56 | 57 | DLGTEMPLATEEX *pMyDlgTemplateEx = reinterpret_cast(*ppMyDlgTemplate); 58 | if (pMyDlgTemplateEx->signature == 0xFFFF) 59 | pMyDlgTemplateEx->exStyle |= WS_EX_LAYOUTRTL; 60 | else 61 | (*ppMyDlgTemplate)->dwExtendedStyle |= WS_EX_LAYOUTRTL; 62 | 63 | return hMyDlgTemplate; 64 | } 65 | 66 | void StaticDialog::create(int dialogID, bool isRTL) 67 | { 68 | if (isRTL) 69 | { 70 | DLGTEMPLATE *pMyDlgTemplate = NULL; 71 | HGLOBAL hMyDlgTemplate = makeRTLResource(dialogID, &pMyDlgTemplate); 72 | _hSelf = ::CreateDialogIndirectParam(_hInst, pMyDlgTemplate, _hParent, dlgProc, reinterpret_cast(this)); 73 | ::GlobalFree(hMyDlgTemplate); 74 | } 75 | else 76 | _hSelf = ::CreateDialogParam(_hInst, MAKEINTRESOURCE(dialogID), _hParent, dlgProc, reinterpret_cast(this)); 77 | 78 | if (!_hSelf) 79 | { 80 | DWORD err = ::GetLastError(); 81 | char errMsg[256]; 82 | sprintf(errMsg, "CreateDialogParam() return NULL.\rGetLastError() == %u", err); 83 | ::MessageBoxA(NULL, errMsg, "In StaticDialog::create()", MB_OK); 84 | return; 85 | } 86 | 87 | // if the destination of message NPPM_MODELESSDIALOG is not its parent, then it's the grand-parent 88 | ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGADD, reinterpret_cast(_hSelf)); 89 | } 90 | 91 | INT_PTR CALLBACK StaticDialog::dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 92 | { 93 | switch (message) 94 | { 95 | case WM_INITDIALOG: 96 | { 97 | StaticDialog *pStaticDlg = reinterpret_cast(lParam); 98 | pStaticDlg->_hSelf = hwnd; 99 | ::SetWindowLongPtr(hwnd, GWLP_USERDATA, static_cast(lParam)); 100 | ::GetWindowRect(hwnd, &(pStaticDlg->_rc)); 101 | pStaticDlg->run_dlgProc(message, wParam, lParam); 102 | 103 | return TRUE; 104 | } 105 | 106 | default: 107 | { 108 | StaticDialog *pStaticDlg = reinterpret_cast(::GetWindowLongPtr(hwnd, GWLP_USERDATA)); 109 | if (!pStaticDlg) 110 | return FALSE; 111 | return pStaticDlg->run_dlgProc(message, wParam, lParam); 112 | } 113 | } 114 | } 115 | 116 | void StaticDialog::alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point) 117 | { 118 | RECT rc, rc2; 119 | ::GetWindowRect(handle, &rc); 120 | 121 | point.x = rc.left; 122 | point.y = rc.top; 123 | 124 | switch (pos) 125 | { 126 | case PosAlign::left: 127 | { 128 | ::GetWindowRect(handle2Align, &rc2); 129 | point.x -= rc2.right - rc2.left; 130 | break; 131 | } 132 | case PosAlign::right: 133 | { 134 | ::GetWindowRect(handle, &rc2); 135 | point.x += rc2.right - rc2.left; 136 | break; 137 | } 138 | case PosAlign::top: 139 | { 140 | ::GetWindowRect(handle2Align, &rc2); 141 | point.y -= rc2.bottom - rc2.top; 142 | break; 143 | } 144 | case PosAlign::bottom: 145 | { 146 | ::GetWindowRect(handle, &rc2); 147 | point.y += rc2.bottom - rc2.top; 148 | break; 149 | } 150 | } 151 | 152 | ::ScreenToClient(_hSelf, &point); 153 | } 154 | 155 | -------------------------------------------------------------------------------- /source/PluginDefinition.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #ifndef PLUGINDEFINITION_H 19 | #define PLUGINDEFINITION_H 20 | 21 | // 22 | // All difinitions of plugin interface 23 | // 24 | #include "PluginInterface.h" 25 | 26 | //-------------------------------------// 27 | //-- STEP 1. DEFINE YOUR PLUGIN NAME --// 28 | //-------------------------------------// 29 | // Here define your plugin name 30 | // 31 | const TCHAR NPP_PLUGIN_NAME[] = TEXT("Converter"); 32 | 33 | //-----------------------------------------------// 34 | //-- STEP 2. DEFINE YOUR PLUGIN COMMAND NUMBER --// 35 | //-----------------------------------------------// 36 | // 37 | // Here define the number of your plugin commands 38 | // 39 | const int nbFunc = 7; 40 | #define CONVERSIONPANEL_INDEX 3 41 | 42 | // 43 | // Initialization of your plugin data 44 | // It will be called while plugin loading 45 | // 46 | void pluginInit(HANDLE hModule); 47 | 48 | // 49 | // Cleaning of your plugin 50 | // It will be called while plugin unloading 51 | // 52 | void pluginCleanUp(); 53 | 54 | // 55 | //Initialization of your plugin commands 56 | // 57 | void commandMenuInit(); 58 | 59 | // 60 | //Clean up your plugin commands allocation (if any) 61 | // 62 | void commandMenuCleanUp(); 63 | 64 | // 65 | // Function which sets your command 66 | // 67 | bool setCommand(size_t index, TCHAR *cmdName, PFUNCPLUGINCMD pFunc, ShortcutKey *sk = NULL, bool check0nInit = false); 68 | 69 | 70 | // 71 | // Your plugin command functions 72 | // 73 | 74 | #ifdef UNICODE 75 | #define NppMainEntry wWinMain 76 | #define generic_strtol wcstol 77 | #define generic_strncpy wcsncpy 78 | #define generic_stricmp wcsicmp 79 | #define generic_strncmp wcsncmp 80 | #define generic_strnicmp wcsnicmp 81 | #define generic_strncat wcsncat 82 | #define generic_strchr wcschr 83 | #define generic_atoi _wtoi 84 | #define generic_itoa _itow 85 | #define generic_atof _wtof 86 | #define generic_strtok wcstok 87 | #define generic_strftime wcsftime 88 | #define generic_fprintf fwprintf 89 | #define generic_sscanf swscanf 90 | #define generic_fopen _wfopen 91 | #define generic_fgets fgetws 92 | #define generic_stat _wstat 93 | #define generic_sprintf swprintf 94 | #define COPYDATA_FILENAMES COPYDATA_FILENAMESW 95 | #else 96 | #define NppMainEntry WinMain 97 | #define generic_strtol strtol 98 | #define generic_strncpy strncpy 99 | #define generic_stricmp stricmp 100 | #define generic_strncmp strncmp 101 | #define generic_strnicmp strnicmp 102 | #define generic_strncat strncat 103 | #define generic_strchr strchr 104 | #define generic_atoi atoi 105 | #define generic_itoa itoa 106 | #define generic_atof atof 107 | #define generic_strtok strtok 108 | #define generic_strftime strftime 109 | #define generic_fprintf fprintf 110 | #define generic_sscanf sscanf 111 | #define generic_fopen fopen 112 | #define generic_fgets fgets 113 | #define generic_stat _stat 114 | #define generic_sprintf sprintf 115 | #define COPYDATA_FILENAMES COPYDATA_FILENAMESA 116 | #endif 117 | 118 | struct Param { 119 | bool _isMaj; 120 | bool _insertSpace; 121 | size_t _nbCharPerLine; 122 | Param():_isMaj(true),_insertSpace(false), _nbCharPerLine(0) {}; 123 | }; 124 | 125 | class SelectedString { 126 | public: 127 | SelectedString(); 128 | ~SelectedString(){ 129 | if (_str) 130 | delete [] _str; 131 | }; 132 | 133 | const char * getStr() { 134 | return _str; 135 | }; 136 | 137 | size_t length(){ 138 | if (_str) 139 | return (_selEndPos-_selStartPos); 140 | return 0; 141 | }; 142 | 143 | size_t getSelStartPos() { 144 | return _selStartPos; 145 | }; 146 | 147 | size_t getSelEndPos() { 148 | return _selEndPos; 149 | }; 150 | 151 | size_t getChar(size_t i, bool& isBufferOverflowed) { 152 | isBufferOverflowed = false; 153 | if (i >= (_selEndPos - _selStartPos)) 154 | { 155 | isBufferOverflowed = true; 156 | return 0; 157 | } 158 | return _str[i]; 159 | }; 160 | 161 | 162 | protected: 163 | char *_str; 164 | size_t _selStartPos; 165 | size_t _selEndPos; 166 | }; 167 | 168 | class HexString: public SelectedString { 169 | public: 170 | bool toAscii(); 171 | }; 172 | 173 | void getCmdsFromConf(const TCHAR *confPath, Param & param); 174 | void loadConfFile(); 175 | void ascii2hex(bool insertSpace, bool isMaj, size_t nbCharPerLine); 176 | void ascii2Hex(); 177 | int getTrueHexValue(char c); 178 | void hex2Ascii(); 179 | void conversionPanel(); 180 | void editConf(); 181 | void about(); 182 | 183 | #endif //PLUGINDEFINITION_H 184 | -------------------------------------------------------------------------------- /source/conversionPanel.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #include "conversionPanel.h" 19 | #include "PluginDefinition.h" 20 | #include 21 | 22 | 23 | extern NppData nppData; 24 | 25 | 26 | #ifdef UNICODE 27 | #define generic_strtoul wcstoul 28 | #define generic_sprintf swprintf 29 | #else 30 | #define generic_strtoul strtoul 31 | #define generic_sprintf sprintf 32 | #endif 33 | 34 | #define BCKGRD_COLOR (RGB(255,102,102)) 35 | #define TXT_COLOR (RGB(255,255,255)) 36 | #define CF_NPPTEXTLEN TEXT("Notepad++ Binary Text Length") 37 | 38 | INT_PTR CALLBACK ConversionPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) 39 | { 40 | switch (message) 41 | { 42 | case WM_INITDIALOG : 43 | { 44 | ::SendDlgItemMessage(_hSelf, ID_ASCII_EDIT, EM_LIMITTEXT, 1, 0); 45 | return TRUE; 46 | } 47 | break; 48 | 49 | case WM_COMMAND : 50 | { 51 | 52 | switch (wParam) 53 | { 54 | case ID_ASCII_INSERT_BUTTON : 55 | { 56 | int v = getAsciiUcharFromDec(); 57 | if (v != -1) 58 | { 59 | char charStr[2]; 60 | charStr[0] = static_cast(v); 61 | charStr[1] = '\0'; 62 | HWND hCurrScintilla = getCurrentScintillaHandle(); 63 | ::SendMessage(hCurrScintilla, SCI_REPLACESEL, 0, (LPARAM)""); 64 | ::SendMessage(hCurrScintilla, SCI_ADDTEXT, 1, (LPARAM)charStr); 65 | } 66 | return TRUE; 67 | } 68 | case ID_DEC_INSERT_BUTTON : 69 | { 70 | insertToNppFrom(ID_DEC_EDIT); 71 | return TRUE; 72 | } 73 | case ID_HEX_INSERT_BUTTON : 74 | { 75 | insertToNppFrom(ID_HEX_EDIT); 76 | return TRUE; 77 | } 78 | case ID_BIN_INSERT_BUTTON : 79 | { 80 | insertToNppFrom(ID_BIN_EDIT); 81 | return TRUE; 82 | } 83 | case ID_OCT_INSERT_BUTTON : 84 | { 85 | insertToNppFrom(ID_OCT_EDIT); 86 | return TRUE; 87 | } 88 | case ID_ASCII_BUTTON : 89 | { 90 | copyToClipboardFrom(ID_ASCII_EDIT); 91 | return TRUE; 92 | } 93 | case ID_DEC_BUTTON : 94 | { 95 | copyToClipboardFrom(ID_DEC_EDIT); 96 | return TRUE; 97 | } 98 | case ID_HEX_BUTTON : 99 | { 100 | copyToClipboardFrom(ID_HEX_EDIT); 101 | return TRUE; 102 | } 103 | case ID_BIN_BUTTON : 104 | { 105 | copyToClipboardFrom(ID_BIN_EDIT); 106 | return TRUE; 107 | } 108 | case ID_OCT_BUTTON : 109 | { 110 | copyToClipboardFrom(ID_OCT_EDIT); 111 | return TRUE; 112 | } 113 | } 114 | 115 | if (HIWORD(wParam) == EN_CHANGE) 116 | { 117 | switch (LOWORD(wParam)) 118 | { 119 | case ID_ASCII_EDIT : 120 | case ID_DEC_EDIT : 121 | case ID_HEX_EDIT : 122 | case ID_BIN_EDIT : 123 | case ID_OCT_EDIT : 124 | { 125 | if (!lock) 126 | setValueFrom((int)LOWORD(wParam)); 127 | return TRUE; 128 | } 129 | } 130 | } 131 | 132 | return FALSE; 133 | } 134 | 135 | default : 136 | return DockingDlgInterface::run_dlgProc(message, wParam, lParam); 137 | } 138 | } 139 | 140 | void ConversionPanel::resetExcept(int exceptID) 141 | { 142 | if (exceptID != ID_ASCII_EDIT) 143 | ::SendDlgItemMessage(_hSelf, ID_ASCII_EDIT, WM_SETTEXT, 0, (LPARAM)TEXT("")); 144 | if (exceptID != ID_DEC_EDIT) 145 | ::SendDlgItemMessage(_hSelf, ID_DEC_EDIT, WM_SETTEXT, 0, (LPARAM)TEXT("")); 146 | if (exceptID != ID_HEX_EDIT) 147 | ::SendDlgItemMessage(_hSelf, ID_HEX_EDIT, WM_SETTEXT, 0, (LPARAM)TEXT("")); 148 | if (exceptID != ID_OCT_EDIT) 149 | ::SendDlgItemMessage(_hSelf, ID_OCT_EDIT, WM_SETTEXT, 0, (LPARAM)TEXT("")); 150 | if (exceptID != ID_BIN_EDIT) 151 | ::SendDlgItemMessage(_hSelf, ID_BIN_EDIT, WM_SETTEXT, 0, (LPARAM)TEXT("")); 152 | } 153 | 154 | bool ConversionPanel::qualified(TCHAR *str, int id) 155 | { 156 | for (int i = 0 ; i < lstrlen(str) ; i++) 157 | { 158 | if (id == ID_ASCII_EDIT) 159 | { 160 | //Only one character, Accept all 161 | } 162 | else if (id == ID_HEX_EDIT) 163 | { 164 | if (!((str[i] >= '0' && str[i] <= '9') || 165 | (str[i] >= 'A' && str[i] <= 'F') || 166 | (str[i] >= 'a' && str[i] <= 'f'))) 167 | { 168 | 169 | return false; 170 | } 171 | } 172 | else if (id == ID_DEC_EDIT) 173 | { 174 | if (!(str[i] >= '0' && str[i] <= '9')) 175 | { 176 | 177 | return false; 178 | } 179 | } 180 | else if (id == ID_OCT_EDIT) 181 | { 182 | if (!(str[i] >= '0' && str[i] <= '7')) 183 | { 184 | 185 | return false; 186 | } 187 | } 188 | else if (id == ID_BIN_EDIT) 189 | { 190 | if (!(str[i] == '0' || str[i] == '1')) 191 | { 192 | 193 | return false; 194 | } 195 | } 196 | } 197 | return true; 198 | } 199 | 200 | generic_string ConversionPanel::getAsciiInfo(unsigned char value) 201 | { 202 | switch (value) 203 | { 204 | case 0: 205 | return TEXT("NULL"); 206 | case 1: 207 | return TEXT("SOH"); 208 | case 2: 209 | return TEXT("STX"); 210 | case 3: 211 | return TEXT("ETX"); 212 | case 4: 213 | return TEXT("EOT"); 214 | case 5: 215 | return TEXT("ENQ"); 216 | case 6: 217 | return TEXT("ACK"); 218 | case 7: 219 | return TEXT("BEL"); 220 | case 8: 221 | return TEXT("BS"); 222 | case 9: 223 | return TEXT("TAB"); 224 | case 10: 225 | return TEXT("LF"); 226 | case 11: 227 | return TEXT("VT"); 228 | case 12: 229 | return TEXT("FF"); 230 | case 13: 231 | return TEXT("CR"); 232 | case 14: 233 | return TEXT("SO"); 234 | case 15: 235 | return TEXT("SI"); 236 | case 16: 237 | return TEXT("DLE"); 238 | case 17: 239 | return TEXT("DC1"); 240 | case 18: 241 | return TEXT("DC2"); 242 | case 19: 243 | return TEXT("DC3"); 244 | case 20: 245 | return TEXT("DC4"); 246 | case 21: 247 | return TEXT("NAK"); 248 | case 22: 249 | return TEXT("SYN"); 250 | case 23: 251 | return TEXT("ETB"); 252 | case 24: 253 | return TEXT("CAN"); 254 | case 25: 255 | return TEXT("EM"); 256 | case 26: 257 | return TEXT("SUB"); 258 | case 27: 259 | return TEXT("ESC"); 260 | case 28: 261 | return TEXT("FS"); 262 | case 29: 263 | return TEXT("GS"); 264 | case 30: 265 | return TEXT("RS"); 266 | case 31: 267 | return TEXT("US"); 268 | case 32: 269 | return TEXT("Space"); 270 | case 127: 271 | return TEXT("DEL"); 272 | /* 273 | case 0: 274 | return TEXT("NULL"); 275 | case 0: 276 | return TEXT("NULL"); 277 | case 0: 278 | return TEXT("NULL"); 279 | case 0: 280 | return TEXT("NULL"); 281 | case 0: 282 | return TEXT("NULL"); 283 | */ 284 | } 285 | return TEXT(""); 286 | } 287 | 288 | void ConversionPanel::setValueExcept(int exceptID, size_t value) 289 | { 290 | const int strLen = 1024; 291 | TCHAR str2Display[strLen]; 292 | if (exceptID != ID_ASCII_EDIT) 293 | { 294 | if (value <= 255) 295 | { 296 | TCHAR ascii2Display[2]; 297 | ascii2Display[0] = (TCHAR)value; 298 | ascii2Display[1] = '\0'; 299 | ::SendDlgItemMessage(_hSelf, ID_ASCII_EDIT, WM_SETTEXT, 0, (LPARAM)ascii2Display); 300 | ::SendDlgItemMessage(_hSelf, ID_ASCII_INFO_STATIC, WM_SETTEXT, 0, (LPARAM)getAsciiInfo((unsigned char)value).c_str()); 301 | } 302 | else 303 | ::SendDlgItemMessage(_hSelf, ID_ASCII_INFO_STATIC, WM_SETTEXT, 0, (LPARAM)TEXT("")); 304 | } 305 | else 306 | { 307 | ::SendDlgItemMessage(_hSelf, ID_ASCII_INFO_STATIC, WM_SETTEXT, 0, (LPARAM)getAsciiInfo((unsigned char)value).c_str()); 308 | } 309 | 310 | if (exceptID != ID_DEC_EDIT) 311 | { 312 | generic_sprintf(str2Display, strLen, TEXT("%zd"), (size_t)value); 313 | ::SendDlgItemMessage(_hSelf, ID_DEC_EDIT, WM_SETTEXT, 0, (LPARAM)str2Display); 314 | } 315 | if (exceptID != ID_HEX_EDIT) 316 | { 317 | generic_sprintf(str2Display, strLen, TEXT("%zX"), (size_t)value); 318 | ::SendDlgItemMessage(_hSelf, ID_HEX_EDIT, WM_SETTEXT, 0, (LPARAM)str2Display); 319 | } 320 | if (exceptID != ID_OCT_EDIT) 321 | { 322 | generic_sprintf(str2Display, strLen, TEXT("%zo"), (size_t)value); 323 | ::SendDlgItemMessage(_hSelf, ID_OCT_EDIT, WM_SETTEXT, 0, (LPARAM)str2Display); 324 | } 325 | if (exceptID != ID_BIN_EDIT) 326 | { 327 | char str2DisplayA[1234]; 328 | itoa(int(value), str2DisplayA, 2); 329 | ::SendDlgItemMessageA(_hSelf, ID_BIN_EDIT, WM_SETTEXT, 0, (LPARAM)str2DisplayA); 330 | } 331 | } 332 | 333 | 334 | void ConversionPanel::setValueFrom(int id) 335 | { 336 | lock = true; 337 | const int inStrSize = 256; 338 | TCHAR intStr[inStrSize]; 339 | ::SendDlgItemMessage(_hSelf, id, WM_GETTEXT, inStrSize, (LPARAM)intStr); 340 | 341 | resetExcept(id); 342 | 343 | if (!intStr[0]) 344 | { 345 | lock = false; 346 | return; 347 | } 348 | 349 | if (!qualified(intStr, id)) 350 | { 351 | lock = false; 352 | int len = lstrlen(intStr); 353 | intStr[len-1] = '\0'; 354 | ::SendDlgItemMessage(_hSelf, id, WM_SETTEXT, 0, (LPARAM)intStr); 355 | ::SendDlgItemMessage(_hSelf, id, EM_SETSEL, len-1, len-1); 356 | return; 357 | } 358 | 359 | int base = 10; 360 | switch (id) 361 | { 362 | case ID_ASCII_EDIT : 363 | { 364 | base = 0; 365 | 366 | } 367 | break; 368 | case ID_DEC_EDIT : 369 | { 370 | base = 10; 371 | 372 | } 373 | break; 374 | case ID_HEX_EDIT : 375 | { 376 | base = 16; 377 | 378 | } 379 | break; 380 | case ID_OCT_EDIT : 381 | { 382 | base = 8; 383 | 384 | } 385 | break; 386 | case ID_BIN_EDIT : 387 | { 388 | base = 2; 389 | 390 | } 391 | break; 392 | } 393 | 394 | unsigned long v = 0; 395 | if (!base) 396 | v = intStr[0]; 397 | else 398 | v = generic_strtoul(intStr, NULL, base); 399 | 400 | setValueExcept(id, v); 401 | lock = false; 402 | } 403 | 404 | void ConversionPanel::insertToNppFrom(int id) 405 | { 406 | const int inStrSize = 256; 407 | char intStr[inStrSize]; 408 | ::SendDlgItemMessageA(_hSelf, id, WM_GETTEXT, inStrSize, (LPARAM)intStr); 409 | HWND hCurrScintilla = getCurrentScintillaHandle(); 410 | ::SendMessage(hCurrScintilla, SCI_REPLACESEL, 0, (LPARAM)intStr); 411 | } 412 | 413 | void ConversionPanel::copyToClipboardFrom(int id) 414 | { 415 | const int intStrMaxSize = 256; 416 | char intStr[intStrMaxSize]; 417 | size_t intStrLen = 0; 418 | if (id == ID_ASCII_EDIT) 419 | { 420 | int v = getAsciiUcharFromDec(); 421 | if (v == -1) return; 422 | intStr[0] = static_cast(v); 423 | intStr[1] = '\0'; 424 | intStrLen = 1; 425 | } 426 | else 427 | { 428 | ::SendDlgItemMessageA(_hSelf, id, WM_GETTEXT, intStrMaxSize, (LPARAM)intStr); 429 | intStrLen = strlen(intStr); 430 | } 431 | // Open the clipboard, and empty it. 432 | if (!OpenClipboard(NULL)) 433 | return; 434 | EmptyClipboard(); 435 | 436 | // Allocate a global memory object for the text. 437 | HGLOBAL hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (intStrLen + 1) * sizeof(unsigned char)); 438 | if (hglbCopy == NULL) 439 | { 440 | CloseClipboard(); 441 | return; 442 | } 443 | 444 | // Lock the handle and copy the text to the buffer. 445 | unsigned char *lpucharCopy = (unsigned char *)GlobalLock(hglbCopy); 446 | memcpy(lpucharCopy, intStr, intStrLen * sizeof(unsigned char)); 447 | lpucharCopy[intStrLen] = 0; // null character 448 | 449 | GlobalUnlock(hglbCopy); 450 | 451 | // Place the handle on the clipboard. 452 | SetClipboardData(CF_TEXT, hglbCopy); 453 | 454 | 455 | // Allocate a global memory object for the text length. 456 | HGLOBAL hglbLenCopy = GlobalAlloc(GMEM_MOVEABLE, sizeof(unsigned long)); 457 | if (hglbLenCopy == NULL) 458 | { 459 | CloseClipboard(); 460 | return; 461 | } 462 | 463 | // Lock the handle and copy the text to the buffer. 464 | unsigned long *lpLenCopy = (unsigned long *)GlobalLock(hglbLenCopy); 465 | *lpLenCopy = (unsigned long)intStrLen; 466 | 467 | GlobalUnlock(hglbLenCopy); 468 | 469 | // Place the handle on the clipboard. 470 | UINT f = RegisterClipboardFormat(CF_NPPTEXTLEN); 471 | SetClipboardData(f, hglbLenCopy); 472 | 473 | CloseClipboard(); 474 | 475 | } 476 | 477 | int ConversionPanel::getAsciiUcharFromDec() 478 | { 479 | const int inStrSize = 256; 480 | TCHAR intStr[inStrSize]; 481 | ::SendDlgItemMessage(_hSelf, ID_DEC_EDIT, WM_GETTEXT, inStrSize, (LPARAM)intStr); 482 | int v = generic_strtoul(intStr, NULL, 10); 483 | if (v > 255) 484 | return -1; 485 | return v; 486 | } -------------------------------------------------------------------------------- /source/PluginDefinition.cpp: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2022 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #include "PluginDefinition.h" 19 | #include "menuCmdID.h" 20 | #include 21 | #include 22 | #include 23 | #include "conversionPanel.h" 24 | 25 | // 26 | // The plugin data that Notepad++ needs 27 | // 28 | FuncItem funcItem[nbFunc]; 29 | 30 | // 31 | // The data of Notepad++ that you can use in your plugin commands 32 | // 33 | NppData nppData; 34 | 35 | 36 | Param param; 37 | typedef std::basic_string generic_string; 38 | generic_string confPath; 39 | ConversionPanel _conversionPanel; 40 | 41 | // 42 | // Initialize your plugin data here 43 | // It will be called while plugin loading 44 | void pluginInit(HANDLE hModule) 45 | { 46 | _conversionPanel.init((HINSTANCE)hModule, NULL); 47 | } 48 | 49 | // 50 | // Here you can do the clean up, save the parameters (if any) for the next session 51 | // 52 | void pluginCleanUp() 53 | { 54 | } 55 | 56 | // 57 | // Initialization of your plugin commands 58 | // You should fill your plugins commands here 59 | void commandMenuInit() 60 | { 61 | 62 | //--------------------------------------------// 63 | //-- STEP 3. CUSTOMIZE YOUR PLUGIN COMMANDS --// 64 | //--------------------------------------------// 65 | // with function : 66 | // setCommand(int index, // zero based number to indicate the order of command 67 | // TCHAR *commandName, // the command name that you want to see in plugin menu 68 | // PFUNCPLUGINCMD functionPointer, // the symbol of function (function pointer) associated with this command. The body should be defined below. See Step 4. 69 | // ShortcutKey *shortcut, // optional. Define a shortcut to trigger this command 70 | // bool check0nInit // optional. Make this menu item be checked visually 71 | // ); 72 | setCommand(0, TEXT("ASCII -> HEX"), ascii2Hex, NULL, false); 73 | setCommand(1, TEXT("HEX -> ASCII"), hex2Ascii, NULL, false); 74 | setCommand(2, TEXT("---"), NULL, NULL, false); 75 | setCommand(CONVERSIONPANEL_INDEX, TEXT("Conversion Panel"), conversionPanel, NULL, false); 76 | setCommand(4, TEXT("---"), NULL, NULL, false); 77 | setCommand(5, TEXT("Edit Configuration File"), editConf, NULL, false); 78 | setCommand(6, TEXT("About"), about, NULL, false); 79 | } 80 | 81 | // 82 | // Here you can do the clean up (especially for the shortcut) 83 | // 84 | void commandMenuCleanUp() 85 | { 86 | // Don't forget to deallocate your shortcut here 87 | } 88 | 89 | 90 | // 91 | // This function help you to initialize your plugin commands 92 | // 93 | bool setCommand(size_t index, TCHAR *cmdName, PFUNCPLUGINCMD pFunc, ShortcutKey *sk, bool check0nInit) 94 | { 95 | if (index >= nbFunc) 96 | return false; 97 | 98 | if (!pFunc) 99 | return false; 100 | 101 | lstrcpy(funcItem[index]._itemName, cmdName); 102 | funcItem[index]._pFunc = pFunc; 103 | funcItem[index]._init2Check = check0nInit; 104 | funcItem[index]._pShKey = sk; 105 | 106 | return true; 107 | } 108 | 109 | //----------------------------------------------// 110 | //-- STEP 4. DEFINE YOUR ASSOCIATED FUNCTIONS --// 111 | //----------------------------------------------// 112 | 113 | HWND getCurrentScintillaHandle() { 114 | int currentEdit; 115 | ::SendMessage(nppData._nppHandle, NPPM_GETCURRENTSCINTILLA, 0, (LPARAM)¤tEdit); 116 | return (currentEdit == 0)?nppData._scintillaMainHandle:nppData._scintillaSecondHandle; 117 | } 118 | 119 | const TCHAR *pluginConfName = TEXT("converter.ini"); 120 | const TCHAR *ascii2HexSectionName = TEXT("ascii2Hex"); 121 | const TCHAR *ascii2HexSpace = TEXT("insertSpace"); 122 | const TCHAR *ascii2HexMaj = TEXT("uppercase"); 123 | const TCHAR *ascii2HexNbCharPerLine = TEXT("nbCharPerLine"); 124 | 125 | void getCmdsFromConf(const TCHAR *confPathVal, Param & paramVal) 126 | { 127 | TCHAR cmdNames[MAX_PATH]; 128 | ::GetPrivateProfileSectionNames(cmdNames, MAX_PATH, confPathVal); 129 | TCHAR *pFn = cmdNames; 130 | 131 | if (*pFn && wcscmp(pFn, ascii2HexSectionName) == 0) 132 | { 133 | int val = GetPrivateProfileInt(pFn, ascii2HexSpace, 0, confPathVal); 134 | paramVal._insertSpace = val != 0; 135 | val = GetPrivateProfileInt(pFn, ascii2HexMaj, 0, confPathVal); 136 | paramVal._isMaj = val != 0; 137 | val = GetPrivateProfileInt(pFn, ascii2HexNbCharPerLine, 0, confPathVal); 138 | paramVal._nbCharPerLine = val; 139 | } 140 | } 141 | // 142 | // if conf file does not exist, then create it and load it. 143 | void loadConfFile() 144 | { 145 | TCHAR confDir[MAX_PATH]; 146 | ::SendMessage(nppData._nppHandle, NPPM_GETPLUGINSCONFIGDIR, MAX_PATH, (LPARAM)confDir); 147 | confPath = confDir; 148 | confPath += TEXT("\\"); 149 | confPath += pluginConfName; 150 | 151 | const char confContent[] = "\ 152 | ; This section contains the parameters for command ASCII -> Hex\n\ 153 | ; If you modify directly this file, please restart your Notepad++ to take effect.\n\ 154 | ; * insertSpace: this parameter allows you to insert a white space between the generated hex codes. Set the value to 1 to enable it, 0 otherwise.\n\ 155 | ; * uppercase: this parameter allows you to make a-f in UPPERCASE (ie. A-F). Set the value to 1 to enable it , 0 otherwise.\n\ 156 | ; * nbCharPerLine: this parameter allows you to break line. The value you set is the number of ascii character per line. Set the value from 0 to whatever you want.\n\ 157 | [ascii2Hex]\n\ 158 | insertSpace=0\n\ 159 | uppercase=1\n\ 160 | nbCharPerLine=16\n\ 161 | \n"; 162 | 163 | if (!::PathFileExists(confPath.c_str())) 164 | { 165 | FILE *f = generic_fopen(confPath.c_str(), TEXT("w")); 166 | if (f) 167 | { 168 | fwrite(confContent, sizeof(confContent[0]), strlen(confContent), f); 169 | fflush(f); 170 | fclose(f); 171 | } 172 | /* 173 | else 174 | { 175 | generic_string msg = confPath; 176 | msg += TEXT(" is absent, and this file cannot be create."); 177 | ::MessageBox(nppData._nppHandle, msg.c_str(), TEXT("Not present"), MB_OK); 178 | } 179 | */ 180 | } 181 | getCmdsFromConf(confPath.c_str(), param); 182 | } 183 | 184 | void ascii2Hex() 185 | { 186 | ascii2hex(param._insertSpace, param._isMaj, param._nbCharPerLine); 187 | } 188 | 189 | 190 | SelectedString::SelectedString(): _str(NULL), _selStartPos(0), _selEndPos(0) 191 | { 192 | HWND hCurrScintilla = getCurrentScintillaHandle(); 193 | 194 | size_t start = ::SendMessage(hCurrScintilla, SCI_GETSELECTIONSTART, 0, 0); 195 | size_t end = ::SendMessage(hCurrScintilla, SCI_GETSELECTIONEND, 0, 0); 196 | if (end < start) 197 | { 198 | size_t tmp = start; 199 | start = end; 200 | end = tmp; 201 | } 202 | _selStartPos = start; 203 | _selEndPos = end; 204 | 205 | size_t textLen = end - start; 206 | if (textLen == 0) return; 207 | 208 | _str = new char[textLen+1]; 209 | 210 | Sci_TextRangeFull tr; 211 | tr.chrg.cpMin = static_cast(start); 212 | tr.chrg.cpMax = static_cast(end); 213 | tr.lpstrText = _str; 214 | ::SendMessage(hCurrScintilla, SCI_GETTEXTRANGEFULL, 0, reinterpret_cast(&tr)); 215 | } 216 | 217 | enum hexStat{st_init, st_c, st_cc}; 218 | 219 | int getTrueHexValue(char c) 220 | { 221 | switch (c) 222 | { 223 | case '0' : 224 | case '1' : 225 | case '2' : 226 | case '3' : 227 | case '4' : 228 | case '5' : 229 | case '6' : 230 | case '7' : 231 | case '8' : 232 | case '9' : 233 | return (c - '0'); 234 | 235 | case 'a' : 236 | case 'A' : 237 | return 10; 238 | 239 | case 'b' : 240 | case 'B' : 241 | return 11; 242 | 243 | case 'c' : 244 | case 'C' : 245 | return 12; 246 | 247 | case 'd' : 248 | case 'D' : 249 | return 13; 250 | 251 | case 'e' : 252 | case 'E' : 253 | return 14; 254 | 255 | case 'f' : 256 | case 'F' : 257 | return 15; 258 | 259 | default : 260 | return -1; 261 | } 262 | } 263 | 264 | // rule : 265 | // 0. only 0-9 a-f A-F withe space (32) and return (10, 13) are allowed. 266 | // 1. 2 char to form 1 byte, so there are alway 2 char w/o space. 267 | // 2. if there is a space between the 1st char and the 2nd char, then it should be it in all string, and vice and versa 268 | // 3. All the white space (32) \n(10) and \r(13) will be ignored. 269 | // 270 | bool HexString::toAscii() 271 | { 272 | size_t l = length(); 273 | bool hasWs = false; 274 | if (!l || l < 2) return false; 275 | if (l < 5) //3 : "00X" or "X00" where X == \n or " " 276 | //4 : "0000" 277 | { 278 | 279 | } 280 | // Check 5 first characters 281 | else // 5: "00 00" or "00000" 282 | { 283 | hasWs = _str[2] == ' '; 284 | } 285 | // Begin conversion 286 | hexStat stat = st_init; 287 | size_t i = 0, j = 0; 288 | for ( ; _str[i] ; i++) 289 | { 290 | if (_str[i] == ' ') 291 | { 292 | if (!hasWs) return false; 293 | if (stat != st_cc) return false; 294 | stat = st_init; 295 | } 296 | /* 297 | else if (_str[i] == '\t') 298 | { 299 | 300 | } 301 | */ 302 | else if ((_str[i] == '\n') || (_str[i] == '\r')) 303 | { 304 | if ((stat != st_cc) && (stat != st_init)) return false; 305 | stat = st_init; 306 | } 307 | else if ((_str[i] >= 'a' && _str[i] <= 'f') || 308 | (_str[i] >= 'A' && _str[i] <= 'F') || 309 | (_str[i] >= '0' && _str[i] <= '9')) 310 | { 311 | if (stat == st_cc) 312 | { 313 | if (hasWs) return false; 314 | stat = st_c; 315 | } 316 | else if (stat == st_c) 317 | { 318 | // Process 319 | 320 | auto hi = getTrueHexValue(_str[i-1]); 321 | if (hi == -1) 322 | return false; 323 | 324 | auto lo = getTrueHexValue(_str[i]); 325 | if (lo == -1) 326 | return false; 327 | 328 | _str[j++] = static_cast(hi * 16 + lo); 329 | stat = st_cc; 330 | } 331 | else if (stat == st_init) 332 | { 333 | stat = st_c; 334 | } 335 | } 336 | /* 337 | else if (_str[i] == ' ') 338 | { 339 | 340 | } 341 | */ 342 | else 343 | { 344 | return false; 345 | } 346 | 347 | } 348 | // finalize 349 | if (stat == st_c) return false; 350 | _selEndPos = _selStartPos + j; 351 | return true; 352 | } 353 | 354 | void ascii2hex(bool insertSpace, bool isMaj, size_t nbCharPerLine) 355 | { 356 | SelectedString selText; 357 | size_t textLen = selText.length(); 358 | if (!textLen) return; 359 | 360 | HWND hCurrScintilla = getCurrentScintillaHandle(); 361 | int eolMode = (int)::SendMessage(hCurrScintilla, SCI_GETEOLMODE, 0, 0); 362 | size_t eolNbCharUnit = eolMode == SC_EOL_CRLF?2:1; 363 | size_t eolNbChar = 0; 364 | if (nbCharPerLine) 365 | { 366 | eolNbChar = (textLen / nbCharPerLine) * eolNbCharUnit; 367 | } 368 | size_t inc = insertSpace?3:2; 369 | char *pDestText = new char[textLen*(inc+eolNbChar)+1]; 370 | 371 | size_t j = 0; 372 | for (size_t i = 0, k = 1 ; i < textLen ; i++) 373 | { 374 | bool isEOL = false; 375 | if (nbCharPerLine) 376 | { 377 | if (k >= nbCharPerLine) 378 | { 379 | isEOL = true; 380 | k = 1; 381 | } 382 | else 383 | { 384 | k++; 385 | } 386 | } 387 | 388 | const char *format = ""; 389 | bool isBufferOverflowed = false; 390 | size_t val = selText.getChar(i, isBufferOverflowed); 391 | if (isBufferOverflowed) 392 | { 393 | delete [] pDestText; 394 | return; 395 | } 396 | 397 | if (!insertSpace || isEOL) 398 | { 399 | format = isMaj?"%02X":"%02x"; 400 | sprintf(pDestText + j, format, (unsigned char)val); 401 | j += 2; 402 | } 403 | else 404 | { 405 | format = isMaj?"%02X ":"%02x "; 406 | sprintf(pDestText + j, format, (unsigned char)val); 407 | j += 3; 408 | } 409 | 410 | if (isEOL) 411 | { 412 | if (eolMode == SC_EOL_CRLF) 413 | { 414 | pDestText[j++] = 0x0D; 415 | pDestText[j++] = 0x0A; 416 | } 417 | else if (eolMode == SC_EOL_CR) 418 | { 419 | pDestText[j++] = 0x0D; 420 | } 421 | else if (eolMode == SC_EOL_LF) 422 | { 423 | pDestText[j++] = 0x0A; 424 | } 425 | } 426 | } 427 | pDestText[j] = 0x00; 428 | 429 | size_t start = selText.getSelStartPos(); 430 | ::SendMessage(hCurrScintilla, SCI_REPLACESEL, 0, (LPARAM)""); 431 | ::SendMessage(hCurrScintilla, SCI_ADDTEXT, j, (LPARAM)pDestText); 432 | ::SendMessage(hCurrScintilla, SCI_SETSEL, start, start+j); 433 | 434 | delete [] pDestText; 435 | } 436 | 437 | void hex2Ascii() 438 | { 439 | HexString transformer; 440 | size_t textLen = transformer.length(); 441 | if (!textLen) return; 442 | 443 | bool isOK = transformer.toAscii(); 444 | 445 | if (isOK) 446 | { 447 | const char *hexStr = transformer.getStr(); 448 | HWND hCurrScintilla = getCurrentScintillaHandle(); 449 | size_t start = transformer.getSelStartPos(); 450 | size_t len = transformer.length(); 451 | ::SendMessage(hCurrScintilla, SCI_REPLACESEL, 0, (LPARAM)""); 452 | ::SendMessage(hCurrScintilla, SCI_ADDTEXT, len, (LPARAM)hexStr); 453 | ::SendMessage(hCurrScintilla, SCI_SETSEL, start, start+len); 454 | } 455 | else 456 | { 457 | ::MessageBoxA(NULL, "Hex format is not conformed", "Converter plugin", MB_OK); 458 | } 459 | } 460 | 461 | 462 | void about() 463 | { 464 | generic_string aboutMsg = TEXT("Version: "); 465 | aboutMsg += TEXT(VERSION_VALUE); 466 | aboutMsg += TEXT("\r\r"); 467 | aboutMsg += TEXT("License: GPL\r\r"); 468 | aboutMsg += TEXT("Author: Don Ho \r"); 469 | ::MessageBox(nppData._nppHandle, aboutMsg.c_str(), TEXT("Converter Plugin"), MB_OK); 470 | } 471 | 472 | void editConf() 473 | { 474 | if (!::PathFileExists(confPath.c_str())) 475 | { 476 | generic_string msg = confPath + TEXT(" is not present.\rPlease create this file manually."); 477 | ::MessageBox(nppData._nppHandle, msg.c_str(), TEXT("Configuration file is absent"), MB_OK); 478 | return; 479 | } 480 | ::SendMessage(nppData._nppHandle, NPPM_DOOPEN, 0, (LPARAM)confPath.c_str()); 481 | } 482 | 483 | void conversionPanel() 484 | { 485 | _conversionPanel.setParent(nppData._nppHandle); 486 | tTbData data = {0}; 487 | 488 | if (!_conversionPanel.isCreated()) 489 | { 490 | _conversionPanel.create(&data); 491 | 492 | // define the default docking behaviour 493 | data.uMask = DWS_DF_FLOATING; 494 | 495 | data.pszModuleName = _conversionPanel.getPluginFileName(); 496 | 497 | // the dlgDlg should be the index of funcItem where the current function pointer is 498 | // in this case is DOCKABLE_DEMO_INDEX 499 | data.dlgID = CONVERSIONPANEL_INDEX; 500 | ::SendMessage(nppData._nppHandle, NPPM_DMMREGASDCKDLG, 0, (LPARAM)&data); 501 | } 502 | _conversionPanel.display(); 503 | } 504 | -------------------------------------------------------------------------------- /vs.proj/NppPluginConverter.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | ARM64 7 | 8 | 9 | Debug 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | ARM64 19 | 20 | 21 | Release 22 | Win32 23 | 24 | 25 | Release 26 | x64 27 | 28 | 29 | 30 | {9D04DBD5-E12E-44E0-A683-6F43F21D533B} 31 | Win32Proj 32 | NppPluginConverter 33 | NppConverter 34 | 10.0 35 | 36 | 37 | 38 | DynamicLibrary 39 | true 40 | v143 41 | Unicode 42 | 43 | 44 | DynamicLibrary 45 | true 46 | v143 47 | Unicode 48 | 49 | 50 | DynamicLibrary 51 | true 52 | v143 53 | Unicode 54 | 55 | 56 | DynamicLibrary 57 | false 58 | v143 59 | true 60 | Unicode 61 | 62 | 63 | DynamicLibrary 64 | false 65 | v143 66 | true 67 | Unicode 68 | 69 | 70 | DynamicLibrary 71 | false 72 | v143 73 | true 74 | Unicode 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | true 100 | $(Configuration)\ 101 | $(Platform)\$(Configuration)\ 102 | 103 | 104 | true 105 | x64\$(Configuration)\ 106 | $(Platform)\$(Configuration)\ 107 | 108 | 109 | true 110 | x64\$(Configuration)\ 111 | $(Platform)\$(Configuration)\ 112 | 113 | 114 | false 115 | ..\bin\ 116 | $(Platform)\$(Configuration)\ 117 | 118 | 119 | false 120 | ..\bin64\ 121 | $(Platform)\$(Configuration)\ 122 | 123 | 124 | false 125 | ..\arm64\ 126 | $(Platform)\$(Configuration)\ 127 | 128 | 129 | 130 | NotUsing 131 | Level4 132 | Disabled 133 | WIN32;_DEBUG;_WINDOWS;_USRDLL;NPPPLUGINCONVERTER_EXPORTS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 134 | 135 | 136 | true 137 | Speed 138 | true 139 | Default 140 | MultiThreadedDebug 141 | true 142 | false 143 | true 144 | 145 | 146 | Windows 147 | true 148 | shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 149 | 150 | 151 | 152 | 153 | 154 | 155 | Level4 156 | Disabled 157 | WIN32;_DEBUG;_WINDOWS;_USRDLL;NPPPLUGINCONVERTER_EXPORTS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 158 | true 159 | MultiThreadedDebug 160 | true 161 | Default 162 | false 163 | true 164 | 165 | 166 | Windows 167 | true 168 | shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 169 | 170 | 171 | 172 | 173 | 174 | 175 | Level4 176 | Disabled 177 | WIN32;_DEBUG;_WINDOWS;_USRDLL;NPPPLUGINCONVERTER_EXPORTS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 178 | true 179 | MultiThreadedDebug 180 | true 181 | Default 182 | false 183 | true 184 | 185 | 186 | Windows 187 | true 188 | shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 189 | 190 | 191 | 192 | 193 | Level4 194 | NotUsing 195 | MaxSpeed 196 | true 197 | true 198 | WIN32;NDEBUG;_WINDOWS;_USRDLL;NPPPLUGINCONVERTER_EXPORTS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 199 | 200 | 201 | true 202 | MultiThreaded 203 | true 204 | true 205 | 206 | 207 | Windows 208 | false 209 | true 210 | true 211 | shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 212 | $(TargetName).lib 213 | 214 | 215 | copy ..\license.txt ..\bin\license.txt 216 | copy ..\readme.txt ..\bin\readme.txt 217 | 218 | 219 | 220 | 221 | Level4 222 | 223 | 224 | MaxSpeed 225 | true 226 | true 227 | WIN32;NDEBUG;_WINDOWS;_USRDLL;NPPPLUGINCONVERTER_EXPORTS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 228 | true 229 | MultiThreaded 230 | true 231 | true 232 | 233 | 234 | Windows 235 | false 236 | true 237 | true 238 | shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 239 | $(TargetName).lib 240 | 241 | 242 | copy ..\license.txt ..\bin64\license.txt 243 | copy ..\readme.txt ..\bin64\readme.txt 244 | 245 | 246 | 247 | 248 | Level4 249 | 250 | 251 | MaxSpeed 252 | true 253 | true 254 | WIN32;NDEBUG;_WINDOWS;_USRDLL;NPPPLUGINCONVERTER_EXPORTS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 255 | true 256 | MultiThreaded 257 | true 258 | true 259 | 260 | 261 | Windows 262 | false 263 | true 264 | true 265 | shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 266 | $(TargetName).lib 267 | 268 | 269 | copy ..\license.txt ..\arm64\license.txt 270 | copy ..\readme.txt ..\arm64\readme.txt 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | COPYING -- Describes the terms under which Notepad++ Conventer plugin (NppConverter.dll) is distributed. 2 | A copy of the GNU GPL is appended to this file. 3 | 4 | IMPORTANT NOTEPAD++ LICENSE TERMS 5 | 6 | Copyright (C)2021 Don HO . This program is free software; you may redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; Version 3 with the clarifications and exceptions described below. This guarantees your right to use, modify, and redistribute this software under certain conditions. 7 | 8 | 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. 9 | 10 | ****************************************************************** 11 | 12 | 13 | GNU GENERAL PUBLIC LICENSE 14 | Version 3, 29 June 2007 15 | 16 | Copyright © 2007 Free Software Foundation, Inc. 17 | 18 | Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 19 | 20 | Preamble 21 | The GNU General Public License is a free, copyleft license for software and other kinds of works. 22 | 23 | The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. 24 | 25 | When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. 26 | 27 | To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. 28 | 29 | For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. 30 | 31 | Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. 32 | 33 | For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. 34 | 35 | Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. 36 | 37 | Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. 38 | 39 | The precise terms and conditions for copying, distribution and modification follow. 40 | 41 | TERMS AND CONDITIONS 42 | 0. Definitions. 43 | “This License” refers to version 3 of the GNU General Public License. 44 | 45 | “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. 46 | 47 | “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. 48 | 49 | To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. 50 | 51 | A “covered work” means either the unmodified Program or a work based on the Program. 52 | 53 | To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. 54 | 55 | To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. 56 | 57 | An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 58 | 59 | 1. Source Code. 60 | The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. 61 | 62 | A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. 63 | 64 | The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. 65 | 66 | The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. 67 | 68 | The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. 69 | 70 | The Corresponding Source for a work in source code form is that same work. 71 | 72 | 2. Basic Permissions. 73 | All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. 74 | 75 | You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. 76 | 77 | Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 78 | 79 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 80 | No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. 81 | 82 | When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 83 | 84 | 4. Conveying Verbatim Copies. 85 | You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. 86 | 87 | You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 88 | 89 | 5. Conveying Modified Source Versions. 90 | You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: 91 | 92 | a) The work must carry prominent notices stating that you modified it, and giving a relevant date. 93 | b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. 94 | c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. 95 | d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. 96 | A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 97 | 98 | 6. Conveying Non-Source Forms. 99 | You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: 100 | 101 | a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. 102 | b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. 103 | c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. 104 | d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. 105 | e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. 106 | A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. 107 | 108 | A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. 109 | 110 | “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. 111 | 112 | If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). 113 | 114 | The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. 115 | 116 | Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 117 | 118 | 7. Additional Terms. 119 | “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. 120 | 121 | When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. 122 | 123 | Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: 124 | 125 | a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or 126 | b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or 127 | c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or 128 | d) Limiting the use for publicity purposes of names of licensors or authors of the material; or 129 | e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or 130 | f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. 131 | All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. 132 | 133 | If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. 134 | 135 | Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 136 | 137 | 8. Termination. 138 | You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). 139 | 140 | However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. 141 | 142 | Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. 143 | 144 | Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 145 | 146 | 9. Acceptance Not Required for Having Copies. 147 | You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 148 | 149 | 10. Automatic Licensing of Downstream Recipients. 150 | Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. 151 | 152 | An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. 153 | 154 | You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 155 | 156 | 11. Patents. 157 | A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. 158 | 159 | A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. 160 | 161 | Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. 162 | 163 | In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. 164 | 165 | If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. 166 | 167 | If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. 168 | 169 | A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. 170 | 171 | Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 172 | 173 | 12. No Surrender of Others' Freedom. 174 | If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 175 | 176 | 13. Use with the GNU Affero General Public License. 177 | Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 178 | 179 | 14. Revised Versions of this License. 180 | The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. 181 | 182 | Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. 183 | 184 | If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. 185 | 186 | Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 187 | 188 | 15. Disclaimer of Warranty. 189 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 190 | 191 | 16. Limitation of Liability. 192 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 193 | 194 | 17. Interpretation of Sections 15 and 16. 195 | If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. 196 | 197 | END OF TERMS AND CONDITIONS 198 | 199 | How to Apply These Terms to Your New Programs 200 | If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. 201 | 202 | To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. 203 | 204 | 205 | Copyright (C) 206 | 207 | This program is free software: you can redistribute it and/or modify 208 | it under the terms of the GNU General Public License as published by 209 | the Free Software Foundation, either version 3 of the License, or 210 | (at your option) any later version. 211 | 212 | This program is distributed in the hope that it will be useful, 213 | but WITHOUT ANY WARRANTY; without even the implied warranty of 214 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 215 | GNU General Public License for more details. 216 | 217 | You should have received a copy of the GNU General Public License 218 | along with this program. If not, see . 219 | Also add information on how to contact you by electronic and paper mail. 220 | 221 | If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: 222 | 223 | Copyright (C) 224 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 225 | This is free software, and you are welcome to redistribute it 226 | under certain conditions; type `show c' for details. 227 | The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. 228 | 229 | You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . 230 | 231 | The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . 232 | -------------------------------------------------------------------------------- /source/menuCmdID.h: -------------------------------------------------------------------------------- 1 | // This file is part of Notepad++ project 2 | // Copyright (C)2025 Don HO 3 | 4 | // This program is free software: you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation, either version 3 of the License, or 7 | // at your option any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License 15 | // along with this program. If not, see . 16 | 17 | 18 | #pragma once 19 | 20 | #define IDM 40000 21 | 22 | #define IDM_FILE (IDM + 1000) 23 | // IMPORTANT: If list below is modified, you have to change the value of IDM_FILEMENU_LASTONE and IDM_FILEMENU_EXISTCMDPOSITION 24 | #define IDM_FILE_NEW (IDM_FILE + 1) 25 | #define IDM_FILE_OPEN (IDM_FILE + 2) 26 | #define IDM_FILE_CLOSE (IDM_FILE + 3) 27 | #define IDM_FILE_CLOSEALL (IDM_FILE + 4) 28 | #define IDM_FILE_CLOSEALL_BUT_CURRENT (IDM_FILE + 5) 29 | #define IDM_FILE_SAVE (IDM_FILE + 6) 30 | #define IDM_FILE_SAVEALL (IDM_FILE + 7) 31 | #define IDM_FILE_SAVEAS (IDM_FILE + 8) 32 | #define IDM_FILE_CLOSEALL_TOLEFT (IDM_FILE + 9) 33 | #define IDM_FILE_PRINT (IDM_FILE + 10) 34 | #define IDM_FILE_PRINTNOW 1001 35 | #define IDM_FILE_EXIT (IDM_FILE + 11) 36 | #define IDM_FILE_LOADSESSION (IDM_FILE + 12) 37 | #define IDM_FILE_SAVESESSION (IDM_FILE + 13) 38 | #define IDM_FILE_RELOAD (IDM_FILE + 14) 39 | #define IDM_FILE_SAVECOPYAS (IDM_FILE + 15) 40 | #define IDM_FILE_DELETE (IDM_FILE + 16) 41 | #define IDM_FILE_RENAME (IDM_FILE + 17) 42 | #define IDM_FILE_CLOSEALL_TORIGHT (IDM_FILE + 18) 43 | #define IDM_FILE_OPEN_FOLDER (IDM_FILE + 19) 44 | #define IDM_FILE_OPEN_CMD (IDM_FILE + 20) 45 | #define IDM_FILE_RESTORELASTCLOSEDFILE (IDM_FILE + 21) 46 | #define IDM_FILE_OPENFOLDERASWORKSPACE (IDM_FILE + 22) 47 | #define IDM_FILE_OPEN_DEFAULT_VIEWER (IDM_FILE + 23) 48 | #define IDM_FILE_CLOSEALL_UNCHANGED (IDM_FILE + 24) 49 | #define IDM_FILE_CONTAININGFOLDERASWORKSPACE (IDM_FILE + 25) 50 | #define IDM_FILE_CLOSEALL_BUT_PINNED (IDM_FILE + 26) 51 | // IMPORTANT: If list above is modified, you have to change the following values: 52 | 53 | // To be updated if new menu item(s) is (are) added in menu "File" 54 | #define IDM_FILEMENU_LASTONE IDM_FILE_CLOSEALL_BUT_PINNED 55 | 56 | // 0 based position of command "Exit" including the bars in the file menu 57 | // and without counting "Recent files history" items 58 | 59 | // 0 New 60 | // 1 Open... 61 | // 2 Open Containing Folder 62 | // 3 Open Folder as Workspace 63 | // 4 Open in Default Viewer 64 | // 5 Reload from Disk 65 | // 6 Save 66 | // 7 Save As... 67 | // 8 Save a Copy As... 68 | // 9 Save All 69 | //10 Rename... 70 | //11 Close 71 | //12 Close All 72 | //13 Close Multiple Documents 73 | //14 Move to Recycle Bin 74 | //15 -------- 75 | //16 Load Session... 76 | //17 Save Session... 77 | //18 -------- 78 | //19 Print... 79 | //20 Print Now 80 | //21 -------- 81 | //22 Exit 82 | #define IDM_FILEMENU_EXISTCMDPOSITION 22 83 | 84 | 85 | #define IDM_EDIT (IDM + 2000) 86 | #define IDM_EDIT_CUT (IDM_EDIT + 1) 87 | #define IDM_EDIT_COPY (IDM_EDIT + 2) 88 | #define IDM_EDIT_UNDO (IDM_EDIT + 3) 89 | #define IDM_EDIT_REDO (IDM_EDIT + 4) 90 | #define IDM_EDIT_PASTE (IDM_EDIT + 5) 91 | #define IDM_EDIT_DELETE (IDM_EDIT + 6) 92 | #define IDM_EDIT_SELECTALL (IDM_EDIT + 7) 93 | #define IDM_EDIT_INS_TAB (IDM_EDIT + 8) 94 | #define IDM_EDIT_RMV_TAB (IDM_EDIT + 9) 95 | #define IDM_EDIT_DUP_LINE (IDM_EDIT + 10) 96 | #define IDM_EDIT_TRANSPOSE_LINE (IDM_EDIT + 11) 97 | #define IDM_EDIT_SPLIT_LINES (IDM_EDIT + 12) 98 | #define IDM_EDIT_JOIN_LINES (IDM_EDIT + 13) 99 | #define IDM_EDIT_LINE_UP (IDM_EDIT + 14) 100 | #define IDM_EDIT_LINE_DOWN (IDM_EDIT + 15) 101 | #define IDM_EDIT_UPPERCASE (IDM_EDIT + 16) 102 | #define IDM_EDIT_LOWERCASE (IDM_EDIT + 17) 103 | #define IDM_MACRO_STARTRECORDINGMACRO (IDM_EDIT + 18) 104 | #define IDM_MACRO_STOPRECORDINGMACRO (IDM_EDIT + 19) 105 | #define IDM_EDIT_BEGINENDSELECT (IDM_EDIT + 20) 106 | #define IDM_MACRO_PLAYBACKRECORDEDMACRO (IDM_EDIT + 21) 107 | #define IDM_EDIT_BLOCK_COMMENT (IDM_EDIT + 22) 108 | #define IDM_EDIT_STREAM_COMMENT (IDM_EDIT + 23) 109 | #define IDM_EDIT_TRIMTRAILING (IDM_EDIT + 24) 110 | #define IDM_MACRO_SAVECURRENTMACRO (IDM_EDIT + 25) 111 | #define IDM_EDIT_RTL (IDM_EDIT + 26) 112 | #define IDM_EDIT_LTR (IDM_EDIT + 27) 113 | #define IDM_EDIT_TOGGLEREADONLY (IDM_EDIT + 28) 114 | #define IDM_EDIT_FULLPATHTOCLIP (IDM_EDIT + 29) 115 | #define IDM_EDIT_FILENAMETOCLIP (IDM_EDIT + 30) 116 | #define IDM_EDIT_CURRENTDIRTOCLIP (IDM_EDIT + 31) 117 | #define IDM_MACRO_RUNMULTIMACRODLG (IDM_EDIT + 32) 118 | #define IDM_EDIT_TOGGLESYSTEMREADONLY (IDM_EDIT + 33) 119 | #define IDM_EDIT_COLUMNMODE (IDM_EDIT + 34) 120 | #define IDM_EDIT_BLOCK_COMMENT_SET (IDM_EDIT + 35) 121 | #define IDM_EDIT_BLOCK_UNCOMMENT (IDM_EDIT + 36) 122 | #define IDM_EDIT_COLUMNMODETIP (IDM_EDIT + 37) 123 | #define IDM_EDIT_PASTE_AS_HTML (IDM_EDIT + 38) 124 | #define IDM_EDIT_PASTE_AS_RTF (IDM_EDIT + 39) 125 | #define IDM_OPEN_ALL_RECENT_FILE (IDM_EDIT + 40) 126 | #define IDM_CLEAN_RECENT_FILE_LIST (IDM_EDIT + 41) 127 | #define IDM_EDIT_TRIMLINEHEAD (IDM_EDIT + 42) 128 | #define IDM_EDIT_TRIM_BOTH (IDM_EDIT + 43) 129 | #define IDM_EDIT_EOL2WS (IDM_EDIT + 44) 130 | #define IDM_EDIT_TRIMALL (IDM_EDIT + 45) 131 | #define IDM_EDIT_TAB2SW (IDM_EDIT + 46) 132 | #define IDM_EDIT_STREAM_UNCOMMENT (IDM_EDIT + 47) 133 | #define IDM_EDIT_COPY_BINARY (IDM_EDIT + 48) 134 | #define IDM_EDIT_CUT_BINARY (IDM_EDIT + 49) 135 | #define IDM_EDIT_PASTE_BINARY (IDM_EDIT + 50) 136 | #define IDM_EDIT_CHAR_PANEL (IDM_EDIT + 51) 137 | #define IDM_EDIT_CLIPBOARDHISTORY_PANEL (IDM_EDIT + 52) 138 | #define IDM_EDIT_SW2TAB_LEADING (IDM_EDIT + 53) 139 | #define IDM_EDIT_SW2TAB_ALL (IDM_EDIT + 54) 140 | #define IDM_EDIT_REMOVEEMPTYLINES (IDM_EDIT + 55) 141 | #define IDM_EDIT_REMOVEEMPTYLINESWITHBLANK (IDM_EDIT + 56) 142 | #define IDM_EDIT_BLANKLINEABOVECURRENT (IDM_EDIT + 57) 143 | #define IDM_EDIT_BLANKLINEBELOWCURRENT (IDM_EDIT + 58) 144 | #define IDM_EDIT_SORTLINES_LEXICOGRAPHIC_ASCENDING (IDM_EDIT + 59) 145 | #define IDM_EDIT_SORTLINES_LEXICOGRAPHIC_DESCENDING (IDM_EDIT + 60) 146 | #define IDM_EDIT_SORTLINES_INTEGER_ASCENDING (IDM_EDIT + 61) 147 | #define IDM_EDIT_SORTLINES_INTEGER_DESCENDING (IDM_EDIT + 62) 148 | #define IDM_EDIT_SORTLINES_DECIMALCOMMA_ASCENDING (IDM_EDIT + 63) 149 | #define IDM_EDIT_SORTLINES_DECIMALCOMMA_DESCENDING (IDM_EDIT + 64) 150 | #define IDM_EDIT_SORTLINES_DECIMALDOT_ASCENDING (IDM_EDIT + 65) 151 | #define IDM_EDIT_SORTLINES_DECIMALDOT_DESCENDING (IDM_EDIT + 66) 152 | #define IDM_EDIT_PROPERCASE_FORCE (IDM_EDIT + 67) 153 | #define IDM_EDIT_PROPERCASE_BLEND (IDM_EDIT + 68) 154 | #define IDM_EDIT_SENTENCECASE_FORCE (IDM_EDIT + 69) 155 | #define IDM_EDIT_SENTENCECASE_BLEND (IDM_EDIT + 70) 156 | #define IDM_EDIT_INVERTCASE (IDM_EDIT + 71) 157 | #define IDM_EDIT_RANDOMCASE (IDM_EDIT + 72) 158 | #define IDM_EDIT_OPENASFILE (IDM_EDIT + 73) 159 | #define IDM_EDIT_OPENINFOLDER (IDM_EDIT + 74) 160 | #define IDM_EDIT_SEARCHONINTERNET (IDM_EDIT + 75) 161 | #define IDM_EDIT_CHANGESEARCHENGINE (IDM_EDIT + 76) 162 | #define IDM_EDIT_REMOVE_CONSECUTIVE_DUP_LINES (IDM_EDIT + 77) 163 | #define IDM_EDIT_SORTLINES_RANDOMLY (IDM_EDIT + 78) 164 | #define IDM_EDIT_REMOVE_ANY_DUP_LINES (IDM_EDIT + 79) 165 | #define IDM_EDIT_SORTLINES_LEXICO_CASE_INSENS_ASCENDING (IDM_EDIT + 80) 166 | #define IDM_EDIT_SORTLINES_LEXICO_CASE_INSENS_DESCENDING (IDM_EDIT + 81) 167 | #define IDM_EDIT_COPY_LINK (IDM_EDIT + 82) 168 | #define IDM_EDIT_SORTLINES_REVERSE_ORDER (IDM_EDIT + 83) 169 | #define IDM_EDIT_INSERT_DATETIME_SHORT (IDM_EDIT + 84) 170 | #define IDM_EDIT_INSERT_DATETIME_LONG (IDM_EDIT + 85) 171 | #define IDM_EDIT_INSERT_DATETIME_CUSTOMIZED (IDM_EDIT + 86) 172 | #define IDM_EDIT_COPY_ALL_NAMES (IDM_EDIT + 87) 173 | #define IDM_EDIT_COPY_ALL_PATHS (IDM_EDIT + 88) 174 | #define IDM_EDIT_BEGINENDSELECT_COLUMNMODE (IDM_EDIT + 89) 175 | #define IDM_EDIT_MULTISELECTALL (IDM_EDIT + 90) 176 | #define IDM_EDIT_MULTISELECTALLMATCHCASE (IDM_EDIT + 91) 177 | #define IDM_EDIT_MULTISELECTALLWHOLEWORD (IDM_EDIT + 92) 178 | #define IDM_EDIT_MULTISELECTALLMATCHCASEWHOLEWORD (IDM_EDIT + 93) 179 | #define IDM_EDIT_MULTISELECTNEXT (IDM_EDIT + 94) 180 | #define IDM_EDIT_MULTISELECTNEXTMATCHCASE (IDM_EDIT + 95) 181 | #define IDM_EDIT_MULTISELECTNEXTWHOLEWORD (IDM_EDIT + 96) 182 | #define IDM_EDIT_MULTISELECTNEXTMATCHCASEWHOLEWORD (IDM_EDIT + 97) 183 | #define IDM_EDIT_MULTISELECTUNDO (IDM_EDIT + 98) 184 | #define IDM_EDIT_MULTISELECTSSKIP (IDM_EDIT + 99) 185 | #define IDM_EDIT_SORTLINES_LOCALE_ASCENDING (IDM_EDIT + 100) 186 | #define IDM_EDIT_SORTLINES_LOCALE_DESCENDING (IDM_EDIT + 101) 187 | 188 | #define IDM_EDIT_AUTOCOMPLETE (50000 + 0) 189 | #define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (50000 + 1) 190 | #define IDM_EDIT_FUNCCALLTIP (50000 + 2) 191 | #define IDM_EDIT_AUTOCOMPLETE_PATH (50000 + 6) 192 | #define IDM_EDIT_FUNCCALLTIP_PREVIOUS (50000 + 10) 193 | #define IDM_EDIT_FUNCCALLTIP_NEXT (50000 + 11) 194 | 195 | 196 | #define IDM_SEARCH (IDM + 3000) 197 | #define IDM_SEARCH_FIND (IDM_SEARCH + 1) 198 | #define IDM_SEARCH_FINDNEXT (IDM_SEARCH + 2) 199 | #define IDM_SEARCH_REPLACE (IDM_SEARCH + 3) 200 | #define IDM_SEARCH_GOTOLINE (IDM_SEARCH + 4) 201 | #define IDM_SEARCH_TOGGLE_BOOKMARK (IDM_SEARCH + 5) 202 | #define IDM_SEARCH_NEXT_BOOKMARK (IDM_SEARCH + 6) 203 | #define IDM_SEARCH_PREV_BOOKMARK (IDM_SEARCH + 7) 204 | #define IDM_SEARCH_CLEAR_BOOKMARKS (IDM_SEARCH + 8) 205 | #define IDM_SEARCH_GOTOMATCHINGBRACE (IDM_SEARCH + 9) 206 | #define IDM_SEARCH_FINDPREV (IDM_SEARCH + 10) 207 | #define IDM_SEARCH_FINDINCREMENT (IDM_SEARCH + 11) 208 | #define IDM_SEARCH_FINDINFILES (IDM_SEARCH + 13) 209 | #define IDM_SEARCH_VOLATILE_FINDNEXT (IDM_SEARCH + 14) 210 | #define IDM_SEARCH_VOLATILE_FINDPREV (IDM_SEARCH + 15) 211 | #define IDM_SEARCH_CUTMARKEDLINES (IDM_SEARCH + 18) 212 | #define IDM_SEARCH_COPYMARKEDLINES (IDM_SEARCH + 19) 213 | #define IDM_SEARCH_PASTEMARKEDLINES (IDM_SEARCH + 20) 214 | #define IDM_SEARCH_DELETEMARKEDLINES (IDM_SEARCH + 21) 215 | #define IDM_SEARCH_MARKALLEXT1 (IDM_SEARCH + 22) 216 | #define IDM_SEARCH_UNMARKALLEXT1 (IDM_SEARCH + 23) 217 | #define IDM_SEARCH_MARKALLEXT2 (IDM_SEARCH + 24) 218 | #define IDM_SEARCH_UNMARKALLEXT2 (IDM_SEARCH + 25) 219 | #define IDM_SEARCH_MARKALLEXT3 (IDM_SEARCH + 26) 220 | #define IDM_SEARCH_UNMARKALLEXT3 (IDM_SEARCH + 27) 221 | #define IDM_SEARCH_MARKALLEXT4 (IDM_SEARCH + 28) 222 | #define IDM_SEARCH_UNMARKALLEXT4 (IDM_SEARCH + 29) 223 | #define IDM_SEARCH_MARKALLEXT5 (IDM_SEARCH + 30) 224 | #define IDM_SEARCH_UNMARKALLEXT5 (IDM_SEARCH + 31) 225 | #define IDM_SEARCH_CLEARALLMARKS (IDM_SEARCH + 32) 226 | 227 | #define IDM_SEARCH_GOPREVMARKER1 (IDM_SEARCH + 33) 228 | #define IDM_SEARCH_GOPREVMARKER2 (IDM_SEARCH + 34) 229 | #define IDM_SEARCH_GOPREVMARKER3 (IDM_SEARCH + 35) 230 | #define IDM_SEARCH_GOPREVMARKER4 (IDM_SEARCH + 36) 231 | #define IDM_SEARCH_GOPREVMARKER5 (IDM_SEARCH + 37) 232 | #define IDM_SEARCH_GOPREVMARKER_DEF (IDM_SEARCH + 38) 233 | 234 | #define IDM_SEARCH_GONEXTMARKER1 (IDM_SEARCH + 39) 235 | #define IDM_SEARCH_GONEXTMARKER2 (IDM_SEARCH + 40) 236 | #define IDM_SEARCH_GONEXTMARKER3 (IDM_SEARCH + 41) 237 | #define IDM_SEARCH_GONEXTMARKER4 (IDM_SEARCH + 42) 238 | #define IDM_SEARCH_GONEXTMARKER5 (IDM_SEARCH + 43) 239 | #define IDM_SEARCH_GONEXTMARKER_DEF (IDM_SEARCH + 44) 240 | 241 | #define IDM_FOCUS_ON_FOUND_RESULTS (IDM_SEARCH + 45) 242 | #define IDM_SEARCH_GOTONEXTFOUND (IDM_SEARCH + 46) 243 | #define IDM_SEARCH_GOTOPREVFOUND (IDM_SEARCH + 47) 244 | 245 | #define IDM_SEARCH_SETANDFINDNEXT (IDM_SEARCH + 48) 246 | #define IDM_SEARCH_SETANDFINDPREV (IDM_SEARCH + 49) 247 | #define IDM_SEARCH_INVERSEMARKS (IDM_SEARCH + 50) 248 | #define IDM_SEARCH_DELETEUNMARKEDLINES (IDM_SEARCH + 51) 249 | #define IDM_SEARCH_FINDCHARINRANGE (IDM_SEARCH + 52) 250 | #define IDM_SEARCH_SELECTMATCHINGBRACES (IDM_SEARCH + 53) 251 | #define IDM_SEARCH_MARK (IDM_SEARCH + 54) 252 | 253 | #define IDM_SEARCH_STYLE1TOCLIP (IDM_SEARCH + 55) 254 | #define IDM_SEARCH_STYLE2TOCLIP (IDM_SEARCH + 56) 255 | #define IDM_SEARCH_STYLE3TOCLIP (IDM_SEARCH + 57) 256 | #define IDM_SEARCH_STYLE4TOCLIP (IDM_SEARCH + 58) 257 | #define IDM_SEARCH_STYLE5TOCLIP (IDM_SEARCH + 59) 258 | #define IDM_SEARCH_ALLSTYLESTOCLIP (IDM_SEARCH + 60) 259 | #define IDM_SEARCH_MARKEDTOCLIP (IDM_SEARCH + 61) 260 | 261 | #define IDM_SEARCH_MARKONEEXT1 (IDM_SEARCH + 62) 262 | #define IDM_SEARCH_MARKONEEXT2 (IDM_SEARCH + 63) 263 | #define IDM_SEARCH_MARKONEEXT3 (IDM_SEARCH + 64) 264 | #define IDM_SEARCH_MARKONEEXT4 (IDM_SEARCH + 65) 265 | #define IDM_SEARCH_MARKONEEXT5 (IDM_SEARCH + 66) 266 | 267 | #define IDM_SEARCH_CHANGED_NEXT (IDM_SEARCH + 67) 268 | #define IDM_SEARCH_CHANGED_PREV (IDM_SEARCH + 68) 269 | #define IDM_SEARCH_CLEAR_CHANGE_HISTORY (IDM_SEARCH + 69) 270 | 271 | #define IDM_MISC (IDM + 3500) 272 | #define IDM_DOCLIST_FILESCLOSE (IDM_MISC + 1) 273 | #define IDM_DOCLIST_FILESCLOSEOTHERS (IDM_MISC + 2) 274 | #define IDM_DOCLIST_COPYNAMES (IDM_MISC + 3) 275 | #define IDM_DOCLIST_COPYPATHS (IDM_MISC + 4) 276 | 277 | 278 | #define IDM_VIEW (IDM + 4000) 279 | //#define IDM_VIEW_TOOLBAR_HIDE (IDM_VIEW + 1) 280 | //#define IDM_VIEW_TOOLBAR_REDUCE (IDM_VIEW + 2) 281 | //#define IDM_VIEW_TOOLBAR_ENLARGE (IDM_VIEW + 3) 282 | //#define IDM_VIEW_TOOLBAR_STANDARD (IDM_VIEW + 4) 283 | //#define IDM_VIEW_REDUCETABBAR (IDM_VIEW + 5) 284 | //#define IDM_VIEW_LOCKTABBAR (IDM_VIEW + 6) 285 | //#define IDM_VIEW_DRAWTABBAR_TOPBAR (IDM_VIEW + 7) 286 | //#define IDM_VIEW_DRAWTABBAR_INACTIVETAB (IDM_VIEW + 8) 287 | #define IDM_VIEW_POSTIT (IDM_VIEW + 9) 288 | #define IDM_VIEW_FOLDALL (IDM_VIEW + 10) 289 | #define IDM_VIEW_DISTRACTIONFREE (IDM_VIEW + 11) 290 | //#define IDM_VIEW_LINENUMBER (IDM_VIEW + 12) 291 | //#define IDM_VIEW_SYMBOLMARGIN (IDM_VIEW + 13) 292 | //#define IDM_VIEW_FOLDERMARGIN (IDM_VIEW + 14) 293 | //#define IDM_VIEW_FOLDERMARGIN_SIMPLE (IDM_VIEW + 15) 294 | //#define IDM_VIEW_FOLDERMARGIN_ARROW (IDM_VIEW + 16) 295 | //#define IDM_VIEW_FOLDERMARGIN_CIRCLE (IDM_VIEW + 17) 296 | //#define IDM_VIEW_FOLDERMARGIN_BOX (IDM_VIEW + 18) 297 | #define IDM_VIEW_ALL_CHARACTERS (IDM_VIEW + 19) 298 | #define IDM_VIEW_INDENT_GUIDE (IDM_VIEW + 20) 299 | //#define IDM_VIEW_CURLINE_HILITING (IDM_VIEW + 21) 300 | #define IDM_VIEW_WRAP (IDM_VIEW + 22) 301 | #define IDM_VIEW_ZOOMIN (IDM_VIEW + 23) 302 | #define IDM_VIEW_ZOOMOUT (IDM_VIEW + 24) 303 | #define IDM_VIEW_TAB_SPACE (IDM_VIEW + 25) 304 | #define IDM_VIEW_EOL (IDM_VIEW + 26) 305 | //#define IDM_VIEW_TOOLBAR_REDUCE_SET2 (IDM_VIEW + 27) 306 | //#define IDM_VIEW_TOOLBAR_ENLARGE_SET2 (IDM_VIEW + 28) 307 | #define IDM_VIEW_UNFOLDALL (IDM_VIEW + 29) 308 | #define IDM_VIEW_FOLD_CURRENT (IDM_VIEW + 30) 309 | #define IDM_VIEW_UNFOLD_CURRENT (IDM_VIEW + 31) 310 | #define IDM_VIEW_FULLSCREENTOGGLE (IDM_VIEW + 32) 311 | #define IDM_VIEW_ZOOMRESTORE (IDM_VIEW + 33) 312 | #define IDM_VIEW_ALWAYSONTOP (IDM_VIEW + 34) 313 | #define IDM_VIEW_SYNSCROLLV (IDM_VIEW + 35) 314 | #define IDM_VIEW_SYNSCROLLH (IDM_VIEW + 36) 315 | //#define IDM_VIEW_EDGENONE (IDM_VIEW + 37) 316 | //#define IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN (IDM_VIEW + 38) 317 | //#define IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE (IDM_VIEW + 39) 318 | //#define IDM_VIEW_REFRESHTABAR (IDM_VIEW + 40) 319 | #define IDM_VIEW_WRAP_SYMBOL (IDM_VIEW + 41) 320 | #define IDM_VIEW_HIDELINES (IDM_VIEW + 42) 321 | //#define IDM_VIEW_DRAWTABBAR_VERTICAL (IDM_VIEW + 43) 322 | //#define IDM_VIEW_DRAWTABBAR_MULTILINE (IDM_VIEW + 44) 323 | //#define IDM_VIEW_DOCCHANGEMARGIN (IDM_VIEW + 45) 324 | //#define IDM_VIEW_LWDEF (IDM_VIEW + 46) 325 | //#define IDM_VIEW_LWALIGN (IDM_VIEW + 47) 326 | #define IDM_PINTAB (IDM_VIEW + 48) 327 | #define IDM_VIEW_SUMMARY (IDM_VIEW + 49) 328 | 329 | #define IDM_VIEW_FOLD (IDM_VIEW + 50) 330 | #define IDM_VIEW_FOLD_1 (IDM_VIEW_FOLD + 1) 331 | #define IDM_VIEW_FOLD_2 (IDM_VIEW_FOLD + 2) 332 | #define IDM_VIEW_FOLD_3 (IDM_VIEW_FOLD + 3) 333 | #define IDM_VIEW_FOLD_4 (IDM_VIEW_FOLD + 4) 334 | #define IDM_VIEW_FOLD_5 (IDM_VIEW_FOLD + 5) 335 | #define IDM_VIEW_FOLD_6 (IDM_VIEW_FOLD + 6) 336 | #define IDM_VIEW_FOLD_7 (IDM_VIEW_FOLD + 7) 337 | #define IDM_VIEW_FOLD_8 (IDM_VIEW_FOLD + 8) 338 | 339 | #define IDM_VIEW_UNFOLD (IDM_VIEW + 60) 340 | #define IDM_VIEW_UNFOLD_1 (IDM_VIEW_UNFOLD + 1) 341 | #define IDM_VIEW_UNFOLD_2 (IDM_VIEW_UNFOLD + 2) 342 | #define IDM_VIEW_UNFOLD_3 (IDM_VIEW_UNFOLD + 3) 343 | #define IDM_VIEW_UNFOLD_4 (IDM_VIEW_UNFOLD + 4) 344 | #define IDM_VIEW_UNFOLD_5 (IDM_VIEW_UNFOLD + 5) 345 | #define IDM_VIEW_UNFOLD_6 (IDM_VIEW_UNFOLD + 6) 346 | #define IDM_VIEW_UNFOLD_7 (IDM_VIEW_UNFOLD + 7) 347 | #define IDM_VIEW_UNFOLD_8 (IDM_VIEW_UNFOLD + 8) 348 | 349 | #define IDM_VIEW_DOCLIST (IDM_VIEW + 70) 350 | #define IDM_VIEW_SWITCHTO_OTHER_VIEW (IDM_VIEW + 72) 351 | #define IDM_EXPORT_FUNC_LIST_AND_QUIT (IDM_VIEW + 73) 352 | 353 | #define IDM_VIEW_DOC_MAP (IDM_VIEW + 80) 354 | 355 | #define IDM_VIEW_PROJECT_PANEL_1 (IDM_VIEW + 81) 356 | #define IDM_VIEW_PROJECT_PANEL_2 (IDM_VIEW + 82) 357 | #define IDM_VIEW_PROJECT_PANEL_3 (IDM_VIEW + 83) 358 | 359 | #define IDM_VIEW_FUNC_LIST (IDM_VIEW + 84) 360 | #define IDM_VIEW_FILEBROWSER (IDM_VIEW + 85) 361 | 362 | #define IDM_VIEW_TAB1 (IDM_VIEW + 86) 363 | #define IDM_VIEW_TAB2 (IDM_VIEW + 87) 364 | #define IDM_VIEW_TAB3 (IDM_VIEW + 88) 365 | #define IDM_VIEW_TAB4 (IDM_VIEW + 89) 366 | #define IDM_VIEW_TAB5 (IDM_VIEW + 90) 367 | #define IDM_VIEW_TAB6 (IDM_VIEW + 91) 368 | #define IDM_VIEW_TAB7 (IDM_VIEW + 92) 369 | #define IDM_VIEW_TAB8 (IDM_VIEW + 93) 370 | #define IDM_VIEW_TAB9 (IDM_VIEW + 94) 371 | #define IDM_VIEW_TAB_NEXT (IDM_VIEW + 95) 372 | #define IDM_VIEW_TAB_PREV (IDM_VIEW + 96) 373 | #define IDM_VIEW_MONITORING (IDM_VIEW + 97) 374 | #define IDM_VIEW_TAB_MOVEFORWARD (IDM_VIEW + 98) 375 | #define IDM_VIEW_TAB_MOVEBACKWARD (IDM_VIEW + 99) 376 | #define IDM_VIEW_IN_FIREFOX (IDM_VIEW + 100) 377 | #define IDM_VIEW_IN_CHROME (IDM_VIEW + 101) 378 | #define IDM_VIEW_IN_EDGE (IDM_VIEW + 102) 379 | #define IDM_VIEW_IN_IE (IDM_VIEW + 103) 380 | 381 | #define IDM_VIEW_SWITCHTO_PROJECT_PANEL_1 (IDM_VIEW + 104) 382 | #define IDM_VIEW_SWITCHTO_PROJECT_PANEL_2 (IDM_VIEW + 105) 383 | #define IDM_VIEW_SWITCHTO_PROJECT_PANEL_3 (IDM_VIEW + 106) 384 | #define IDM_VIEW_SWITCHTO_FILEBROWSER (IDM_VIEW + 107) 385 | #define IDM_VIEW_SWITCHTO_FUNC_LIST (IDM_VIEW + 108) 386 | #define IDM_VIEW_SWITCHTO_DOCLIST (IDM_VIEW + 109) 387 | 388 | #define IDM_VIEW_TAB_COLOUR_NONE (IDM_VIEW + 110) 389 | #define IDM_VIEW_TAB_COLOUR_1 (IDM_VIEW + 111) 390 | #define IDM_VIEW_TAB_COLOUR_2 (IDM_VIEW + 112) 391 | #define IDM_VIEW_TAB_COLOUR_3 (IDM_VIEW + 113) 392 | #define IDM_VIEW_TAB_COLOUR_4 (IDM_VIEW + 114) 393 | #define IDM_VIEW_TAB_COLOUR_5 (IDM_VIEW + 115) 394 | #define IDM_VIEW_TAB_START (IDM_VIEW + 116) 395 | #define IDM_VIEW_TAB_END (IDM_VIEW + 117) 396 | 397 | #define IDM_VIEW_NPC (IDM_VIEW + 130) 398 | #define IDM_VIEW_NPC_CCUNIEOL (IDM_VIEW + 131) 399 | 400 | #define IDM_VIEW_GOTO_ANOTHER_VIEW 10001 401 | #define IDM_VIEW_CLONE_TO_ANOTHER_VIEW 10002 402 | #define IDM_VIEW_GOTO_NEW_INSTANCE 10003 403 | #define IDM_VIEW_LOAD_IN_NEW_INSTANCE 10004 404 | #define IDM_VIEW_GOTO_START 10005 405 | #define IDM_VIEW_GOTO_END 10006 406 | 407 | #define IDM_FORMAT (IDM + 5000) 408 | #define IDM_FORMAT_TODOS (IDM_FORMAT + 1) 409 | #define IDM_FORMAT_TOUNIX (IDM_FORMAT + 2) 410 | #define IDM_FORMAT_TOMAC (IDM_FORMAT + 3) 411 | #define IDM_FORMAT_ANSI (IDM_FORMAT + 4) 412 | #define IDM_FORMAT_UTF_8 (IDM_FORMAT + 5) 413 | #define IDM_FORMAT_UTF_16BE (IDM_FORMAT + 6) 414 | #define IDM_FORMAT_UTF_16LE (IDM_FORMAT + 7) 415 | #define IDM_FORMAT_AS_UTF_8 (IDM_FORMAT + 8) 416 | #define IDM_FORMAT_CONV2_ANSI (IDM_FORMAT + 9) 417 | #define IDM_FORMAT_CONV2_AS_UTF_8 (IDM_FORMAT + 10) 418 | #define IDM_FORMAT_CONV2_UTF_8 (IDM_FORMAT + 11) 419 | #define IDM_FORMAT_CONV2_UTF_16BE (IDM_FORMAT + 12) 420 | #define IDM_FORMAT_CONV2_UTF_16LE (IDM_FORMAT + 13) 421 | 422 | #define IDM_FORMAT_ENCODE (IDM_FORMAT + 20) 423 | #define IDM_FORMAT_WIN_1250 (IDM_FORMAT_ENCODE + 0) 424 | #define IDM_FORMAT_WIN_1251 (IDM_FORMAT_ENCODE + 1) 425 | #define IDM_FORMAT_WIN_1252 (IDM_FORMAT_ENCODE + 2) 426 | #define IDM_FORMAT_WIN_1253 (IDM_FORMAT_ENCODE + 3) 427 | #define IDM_FORMAT_WIN_1254 (IDM_FORMAT_ENCODE + 4) 428 | #define IDM_FORMAT_WIN_1255 (IDM_FORMAT_ENCODE + 5) 429 | #define IDM_FORMAT_WIN_1256 (IDM_FORMAT_ENCODE + 6) 430 | #define IDM_FORMAT_WIN_1257 (IDM_FORMAT_ENCODE + 7) 431 | #define IDM_FORMAT_WIN_1258 (IDM_FORMAT_ENCODE + 8) 432 | #define IDM_FORMAT_ISO_8859_1 (IDM_FORMAT_ENCODE + 9) 433 | #define IDM_FORMAT_ISO_8859_2 (IDM_FORMAT_ENCODE + 10) 434 | #define IDM_FORMAT_ISO_8859_3 (IDM_FORMAT_ENCODE + 11) 435 | #define IDM_FORMAT_ISO_8859_4 (IDM_FORMAT_ENCODE + 12) 436 | #define IDM_FORMAT_ISO_8859_5 (IDM_FORMAT_ENCODE + 13) 437 | #define IDM_FORMAT_ISO_8859_6 (IDM_FORMAT_ENCODE + 14) 438 | #define IDM_FORMAT_ISO_8859_7 (IDM_FORMAT_ENCODE + 15) 439 | #define IDM_FORMAT_ISO_8859_8 (IDM_FORMAT_ENCODE + 16) 440 | #define IDM_FORMAT_ISO_8859_9 (IDM_FORMAT_ENCODE + 17) 441 | //#define IDM_FORMAT_ISO_8859_10 (IDM_FORMAT_ENCODE + 18) 442 | //#define IDM_FORMAT_ISO_8859_11 (IDM_FORMAT_ENCODE + 19) 443 | #define IDM_FORMAT_ISO_8859_13 (IDM_FORMAT_ENCODE + 20) 444 | #define IDM_FORMAT_ISO_8859_14 (IDM_FORMAT_ENCODE + 21) 445 | #define IDM_FORMAT_ISO_8859_15 (IDM_FORMAT_ENCODE + 22) 446 | //#define IDM_FORMAT_ISO_8859_16 (IDM_FORMAT_ENCODE + 23) 447 | #define IDM_FORMAT_DOS_437 (IDM_FORMAT_ENCODE + 24) 448 | #define IDM_FORMAT_DOS_720 (IDM_FORMAT_ENCODE + 25) 449 | #define IDM_FORMAT_DOS_737 (IDM_FORMAT_ENCODE + 26) 450 | #define IDM_FORMAT_DOS_775 (IDM_FORMAT_ENCODE + 27) 451 | #define IDM_FORMAT_DOS_850 (IDM_FORMAT_ENCODE + 28) 452 | #define IDM_FORMAT_DOS_852 (IDM_FORMAT_ENCODE + 29) 453 | #define IDM_FORMAT_DOS_855 (IDM_FORMAT_ENCODE + 30) 454 | #define IDM_FORMAT_DOS_857 (IDM_FORMAT_ENCODE + 31) 455 | #define IDM_FORMAT_DOS_858 (IDM_FORMAT_ENCODE + 32) 456 | #define IDM_FORMAT_DOS_860 (IDM_FORMAT_ENCODE + 33) 457 | #define IDM_FORMAT_DOS_861 (IDM_FORMAT_ENCODE + 34) 458 | #define IDM_FORMAT_DOS_862 (IDM_FORMAT_ENCODE + 35) 459 | #define IDM_FORMAT_DOS_863 (IDM_FORMAT_ENCODE + 36) 460 | #define IDM_FORMAT_DOS_865 (IDM_FORMAT_ENCODE + 37) 461 | #define IDM_FORMAT_DOS_866 (IDM_FORMAT_ENCODE + 38) 462 | #define IDM_FORMAT_DOS_869 (IDM_FORMAT_ENCODE + 39) 463 | #define IDM_FORMAT_BIG5 (IDM_FORMAT_ENCODE + 40) 464 | #define IDM_FORMAT_GB2312 (IDM_FORMAT_ENCODE + 41) 465 | #define IDM_FORMAT_SHIFT_JIS (IDM_FORMAT_ENCODE + 42) 466 | #define IDM_FORMAT_KOREAN_WIN (IDM_FORMAT_ENCODE + 43) 467 | #define IDM_FORMAT_EUC_KR (IDM_FORMAT_ENCODE + 44) 468 | #define IDM_FORMAT_TIS_620 (IDM_FORMAT_ENCODE + 45) 469 | #define IDM_FORMAT_MAC_CYRILLIC (IDM_FORMAT_ENCODE + 46) 470 | #define IDM_FORMAT_KOI8U_CYRILLIC (IDM_FORMAT_ENCODE + 47) 471 | #define IDM_FORMAT_KOI8R_CYRILLIC (IDM_FORMAT_ENCODE + 48) 472 | #define IDM_FORMAT_ENCODE_END IDM_FORMAT_KOI8R_CYRILLIC 473 | 474 | 475 | #define IDM_LANG (IDM + 6000) 476 | #define IDM_LANGSTYLE_CONFIG_DLG (IDM_LANG + 1) 477 | #define IDM_LANG_C (IDM_LANG + 2) 478 | #define IDM_LANG_CPP (IDM_LANG + 3) 479 | #define IDM_LANG_JAVA (IDM_LANG + 4) 480 | #define IDM_LANG_HTML (IDM_LANG + 5) 481 | #define IDM_LANG_XML (IDM_LANG + 6) 482 | #define IDM_LANG_JS (IDM_LANG + 7) 483 | #define IDM_LANG_PHP (IDM_LANG + 8) 484 | #define IDM_LANG_ASP (IDM_LANG + 9) 485 | #define IDM_LANG_CSS (IDM_LANG + 10) 486 | #define IDM_LANG_PASCAL (IDM_LANG + 11) 487 | #define IDM_LANG_PYTHON (IDM_LANG + 12) 488 | #define IDM_LANG_PERL (IDM_LANG + 13) 489 | #define IDM_LANG_OBJC (IDM_LANG + 14) 490 | #define IDM_LANG_ASCII (IDM_LANG + 15) 491 | #define IDM_LANG_TEXT (IDM_LANG + 16) 492 | #define IDM_LANG_RC (IDM_LANG + 17) 493 | #define IDM_LANG_MAKEFILE (IDM_LANG + 18) 494 | #define IDM_LANG_INI (IDM_LANG + 19) 495 | #define IDM_LANG_SQL (IDM_LANG + 20) 496 | #define IDM_LANG_VB (IDM_LANG + 21) 497 | #define IDM_LANG_BATCH (IDM_LANG + 22) 498 | #define IDM_LANG_CS (IDM_LANG + 23) 499 | #define IDM_LANG_LUA (IDM_LANG + 24) 500 | #define IDM_LANG_TEX (IDM_LANG + 25) 501 | #define IDM_LANG_FORTRAN (IDM_LANG + 26) 502 | #define IDM_LANG_BASH (IDM_LANG + 27) 503 | #define IDM_LANG_FLASH (IDM_LANG + 28) 504 | #define IDM_LANG_NSIS (IDM_LANG + 29) 505 | #define IDM_LANG_TCL (IDM_LANG + 30) 506 | #define IDM_LANG_LISP (IDM_LANG + 31) 507 | #define IDM_LANG_SCHEME (IDM_LANG + 32) 508 | #define IDM_LANG_ASM (IDM_LANG + 33) 509 | #define IDM_LANG_DIFF (IDM_LANG + 34) 510 | #define IDM_LANG_PROPS (IDM_LANG + 35) 511 | #define IDM_LANG_PS (IDM_LANG + 36) 512 | #define IDM_LANG_RUBY (IDM_LANG + 37) 513 | #define IDM_LANG_SMALLTALK (IDM_LANG + 38) 514 | #define IDM_LANG_VHDL (IDM_LANG + 39) 515 | #define IDM_LANG_CAML (IDM_LANG + 40) 516 | #define IDM_LANG_KIX (IDM_LANG + 41) 517 | #define IDM_LANG_ADA (IDM_LANG + 42) 518 | #define IDM_LANG_VERILOG (IDM_LANG + 43) 519 | #define IDM_LANG_AU3 (IDM_LANG + 44) 520 | #define IDM_LANG_MATLAB (IDM_LANG + 45) 521 | #define IDM_LANG_HASKELL (IDM_LANG + 46) 522 | #define IDM_LANG_INNO (IDM_LANG + 47) 523 | #define IDM_LANG_CMAKE (IDM_LANG + 48) 524 | #define IDM_LANG_YAML (IDM_LANG + 49) 525 | #define IDM_LANG_COBOL (IDM_LANG + 50) 526 | #define IDM_LANG_D (IDM_LANG + 51) 527 | #define IDM_LANG_GUI4CLI (IDM_LANG + 52) 528 | #define IDM_LANG_POWERSHELL (IDM_LANG + 53) 529 | #define IDM_LANG_R (IDM_LANG + 54) 530 | #define IDM_LANG_JSP (IDM_LANG + 55) 531 | #define IDM_LANG_COFFEESCRIPT (IDM_LANG + 56) 532 | #define IDM_LANG_JSON (IDM_LANG + 57) 533 | #define IDM_LANG_FORTRAN_77 (IDM_LANG + 58) 534 | #define IDM_LANG_BAANC (IDM_LANG + 59) 535 | #define IDM_LANG_SREC (IDM_LANG + 60) 536 | #define IDM_LANG_IHEX (IDM_LANG + 61) 537 | #define IDM_LANG_TEHEX (IDM_LANG + 62) 538 | #define IDM_LANG_SWIFT (IDM_LANG + 63) 539 | #define IDM_LANG_ASN1 (IDM_LANG + 64) 540 | #define IDM_LANG_AVS (IDM_LANG + 65) 541 | #define IDM_LANG_BLITZBASIC (IDM_LANG + 66) 542 | #define IDM_LANG_PUREBASIC (IDM_LANG + 67) 543 | #define IDM_LANG_FREEBASIC (IDM_LANG + 68) 544 | #define IDM_LANG_CSOUND (IDM_LANG + 69) 545 | #define IDM_LANG_ERLANG (IDM_LANG + 70) 546 | #define IDM_LANG_ESCRIPT (IDM_LANG + 71) 547 | #define IDM_LANG_FORTH (IDM_LANG + 72) 548 | #define IDM_LANG_LATEX (IDM_LANG + 73) 549 | #define IDM_LANG_MMIXAL (IDM_LANG + 74) 550 | #define IDM_LANG_NIM (IDM_LANG + 75) 551 | #define IDM_LANG_NNCRONTAB (IDM_LANG + 76) 552 | #define IDM_LANG_OSCRIPT (IDM_LANG + 77) 553 | #define IDM_LANG_REBOL (IDM_LANG + 78) 554 | #define IDM_LANG_REGISTRY (IDM_LANG + 79) 555 | #define IDM_LANG_RUST (IDM_LANG + 80) 556 | #define IDM_LANG_SPICE (IDM_LANG + 81) 557 | #define IDM_LANG_TXT2TAGS (IDM_LANG + 82) 558 | #define IDM_LANG_VISUALPROLOG (IDM_LANG + 83) 559 | #define IDM_LANG_TYPESCRIPT (IDM_LANG + 84) 560 | #define IDM_LANG_JSON5 (IDM_LANG + 85) 561 | #define IDM_LANG_MSSQL (IDM_LANG + 86) 562 | #define IDM_LANG_GDSCRIPT (IDM_LANG + 87) 563 | #define IDM_LANG_HOLLYWOOD (IDM_LANG + 88) 564 | #define IDM_LANG_GOLANG (IDM_LANG + 89) 565 | #define IDM_LANG_RAKU (IDM_LANG + 90) 566 | #define IDM_LANG_TOML (IDM_LANG + 91) 567 | #define IDM_LANG_SAS (IDM_LANG + 92) 568 | #define IDM_LANG_ERRORLIST (IDM_LANG + 93) 569 | 570 | #define IDM_LANG_EXTERNAL (IDM_LANG + 165) 571 | #define IDM_LANG_EXTERNAL_LIMIT (IDM_LANG + 179) 572 | 573 | #define IDM_LANG_USER (IDM_LANG + 180) //46180: Used for translation 574 | #define IDM_LANG_USER_LIMIT (IDM_LANG + 210) //46210: Adjust with IDM_LANG_USER 575 | #define IDM_LANG_USER_DLG (IDM_LANG + 250) //46250: Used for translation 576 | #define IDM_LANG_OPENUDLDIR (IDM_LANG + 300) 577 | #define IDM_LANG_UDLCOLLECTION_PROJECT_SITE (IDM_LANG + 301) 578 | 579 | 580 | 581 | #define IDM_ABOUT (IDM + 7000) 582 | #define IDM_HOMESWEETHOME (IDM_ABOUT + 1) 583 | #define IDM_PROJECTPAGE (IDM_ABOUT + 2) 584 | #define IDM_ONLINEDOCUMENT (IDM_ABOUT + 3) 585 | #define IDM_FORUM (IDM_ABOUT + 4) 586 | //#define IDM_PLUGINSHOME (IDM_ABOUT + 5) 587 | #define IDM_UPDATE_NPP (IDM_ABOUT + 6) 588 | //#define IDM_WIKIFAQ (IDM_ABOUT + 7) 589 | //#define IDM_HELP (IDM_ABOUT + 8) 590 | #define IDM_CONFUPDATERPROXY (IDM_ABOUT + 9) 591 | #define IDM_CMDLINEARGUMENTS (IDM_ABOUT + 10) 592 | //#define IDM_ONLINESUPPORT (IDM_ABOUT + 11) 593 | #define IDM_DEBUGINFO (IDM_ABOUT + 12) 594 | 595 | 596 | #define IDM_SETTING (IDM + 8000) 597 | // #define IDM_SETTING_TAB_SIZE (IDM_SETTING + 1) 598 | // #define IDM_SETTING_TAB_REPLACESPACE (IDM_SETTING + 2) 599 | // #define IDM_SETTING_HISTORY_SIZE (IDM_SETTING + 3) 600 | // #define IDM_SETTING_EDGE_SIZE (IDM_SETTING + 4) 601 | #define IDM_SETTING_IMPORTPLUGIN (IDM_SETTING + 5) 602 | #define IDM_SETTING_IMPORTSTYLETHEMES (IDM_SETTING + 6) 603 | #define IDM_SETTING_TRAYICON (IDM_SETTING + 8) 604 | #define IDM_SETTING_SHORTCUT_MAPPER (IDM_SETTING + 9) 605 | #define IDM_SETTING_REMEMBER_LAST_SESSION (IDM_SETTING + 10) 606 | #define IDM_SETTING_PREFERENCE (IDM_SETTING + 11) 607 | #define IDM_SETTING_OPENPLUGINSDIR (IDM_SETTING + 14) 608 | #define IDM_SETTING_PLUGINADM (IDM_SETTING + 15) 609 | #define IDM_SETTING_SHORTCUT_MAPPER_MACRO (IDM_SETTING + 16) 610 | #define IDM_SETTING_SHORTCUT_MAPPER_RUN (IDM_SETTING + 17) 611 | #define IDM_SETTING_EDITCONTEXTMENU (IDM_SETTING + 18) 612 | 613 | #define IDM_TOOL (IDM + 8500) 614 | #define IDM_TOOL_MD5_GENERATE (IDM_TOOL + 1) 615 | #define IDM_TOOL_MD5_GENERATEFROMFILE (IDM_TOOL + 2) 616 | #define IDM_TOOL_MD5_GENERATEINTOCLIPBOARD (IDM_TOOL + 3) 617 | #define IDM_TOOL_SHA256_GENERATE (IDM_TOOL + 4) 618 | #define IDM_TOOL_SHA256_GENERATEFROMFILE (IDM_TOOL + 5) 619 | #define IDM_TOOL_SHA256_GENERATEINTOCLIPBOARD (IDM_TOOL + 6) 620 | #define IDM_TOOL_SHA1_GENERATE (IDM_TOOL + 7) 621 | #define IDM_TOOL_SHA1_GENERATEFROMFILE (IDM_TOOL + 8) 622 | #define IDM_TOOL_SHA1_GENERATEINTOCLIPBOARD (IDM_TOOL + 9) 623 | #define IDM_TOOL_SHA512_GENERATE (IDM_TOOL + 10) 624 | #define IDM_TOOL_SHA512_GENERATEFROMFILE (IDM_TOOL + 11) 625 | #define IDM_TOOL_SHA512_GENERATEINTOCLIPBOARD (IDM_TOOL + 12) 626 | 627 | #define IDM_EXECUTE (IDM + 9000) 628 | 629 | #define IDM_SYSTRAYPOPUP (IDM + 3100) 630 | #define IDM_SYSTRAYPOPUP_ACTIVATE (IDM_SYSTRAYPOPUP + 1) 631 | #define IDM_SYSTRAYPOPUP_NEWDOC (IDM_SYSTRAYPOPUP + 2) 632 | #define IDM_SYSTRAYPOPUP_NEW_AND_PASTE (IDM_SYSTRAYPOPUP + 3) 633 | #define IDM_SYSTRAYPOPUP_OPENFILE (IDM_SYSTRAYPOPUP + 4) 634 | #define IDM_SYSTRAYPOPUP_CLOSE (IDM_SYSTRAYPOPUP + 5) 635 | 636 | #define IDR_WINDOWS_MENU 11000 637 | #define IDM_WINDOW_WINDOWS (IDR_WINDOWS_MENU + 1) 638 | #define IDM_WINDOW_SORT_FN_ASC (IDR_WINDOWS_MENU + 2) 639 | #define IDM_WINDOW_SORT_FN_DSC (IDR_WINDOWS_MENU + 3) 640 | #define IDM_WINDOW_SORT_FP_ASC (IDR_WINDOWS_MENU + 4) 641 | #define IDM_WINDOW_SORT_FP_DSC (IDR_WINDOWS_MENU + 5) 642 | #define IDM_WINDOW_SORT_FT_ASC (IDR_WINDOWS_MENU + 6) 643 | #define IDM_WINDOW_SORT_FT_DSC (IDR_WINDOWS_MENU + 7) 644 | #define IDM_WINDOW_SORT_FS_ASC (IDR_WINDOWS_MENU + 8) 645 | #define IDM_WINDOW_SORT_FS_DSC (IDR_WINDOWS_MENU + 9) 646 | #define IDM_WINDOW_SORT_FD_ASC (IDR_WINDOWS_MENU + 10) 647 | #define IDM_WINDOW_SORT_FD_DSC (IDR_WINDOWS_MENU + 11) 648 | #define IDM_WINDOW_MRU_FIRST (IDR_WINDOWS_MENU + 20) 649 | #define IDM_WINDOW_MRU_LIMIT (IDR_WINDOWS_MENU + 59) 650 | #define IDM_WINDOW_COPY_NAME (IDM_WINDOW_MRU_LIMIT + 1) 651 | #define IDM_WINDOW_COPY_PATH (IDM_WINDOW_MRU_LIMIT + 2) 652 | 653 | #define IDR_DROPLIST_MENU 14000 654 | #define IDM_DROPLIST_LIST (IDR_DROPLIST_MENU + 1) 655 | #define IDM_DROPLIST_MRU_FIRST (IDR_DROPLIST_MENU + 20) 656 | -------------------------------------------------------------------------------- /source/Scintilla.h: -------------------------------------------------------------------------------- 1 | /* Scintilla source code edit control */ 2 | /** @file Scintilla.h 3 | ** Interface to the edit control. 4 | **/ 5 | /* Copyright 1998-2003 by Neil Hodgson 6 | * The License.txt file describes the conditions under which this software may be distributed. */ 7 | 8 | /* Most of this file is automatically generated from the Scintilla.iface interface definition 9 | * file which contains any comments about the definitions. HFacer.py does the generation. */ 10 | 11 | #ifndef SCINTILLA_H 12 | #define SCINTILLA_H 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #if defined(_WIN32) 19 | /* Return false on failure: */ 20 | int Scintilla_RegisterClasses(void *hInstance); 21 | int Scintilla_ReleaseResources(void); 22 | #endif 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | // Include header that defines basic numeric types. 29 | #include 30 | 31 | // Define uptr_t, an unsigned integer type large enough to hold a pointer. 32 | typedef uintptr_t uptr_t; 33 | // Define sptr_t, a signed integer large enough to hold a pointer. 34 | typedef intptr_t sptr_t; 35 | 36 | #include "Sci_Position.h" 37 | 38 | typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); 39 | typedef sptr_t (*SciFnDirectStatus)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam, int *pStatus); 40 | 41 | #ifndef SCI_DISABLE_AUTOGENERATED 42 | 43 | /* ++Autogenerated -- start of section automatically generated from Scintilla.iface */ 44 | #define INVALID_POSITION -1 45 | #define SCI_START 2000 46 | #define SCI_OPTIONAL_START 3000 47 | #define SCI_LEXER_START 4000 48 | #define SCI_ADDTEXT 2001 49 | #define SCI_ADDSTYLEDTEXT 2002 50 | #define SCI_INSERTTEXT 2003 51 | #define SCI_CHANGEINSERTION 2672 52 | #define SCI_CLEARALL 2004 53 | #define SCI_DELETERANGE 2645 54 | #define SCI_CLEARDOCUMENTSTYLE 2005 55 | #define SCI_GETLENGTH 2006 56 | #define SCI_GETCHARAT 2007 57 | #define SCI_GETCURRENTPOS 2008 58 | #define SCI_GETANCHOR 2009 59 | #define SCI_GETSTYLEAT 2010 60 | #define SCI_GETSTYLEINDEXAT 2038 61 | #define SCI_REDO 2011 62 | #define SCI_SETUNDOCOLLECTION 2012 63 | #define SCI_SELECTALL 2013 64 | #define SCI_SETSAVEPOINT 2014 65 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 66 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL,SCI_GETSTYLEDTEXTFULL and SCI_FORMATRANGEFULL and corresponding defines/structs 67 | //#define SCI_GETSTYLEDTEXT 2015 68 | #define SCI_GETSTYLEDTEXTFULL 2778 69 | #define SCI_CANREDO 2016 70 | #define SCI_MARKERLINEFROMHANDLE 2017 71 | #define SCI_MARKERDELETEHANDLE 2018 72 | #define SCI_MARKERHANDLEFROMLINE 2732 73 | #define SCI_MARKERNUMBERFROMLINE 2733 74 | #define SCI_GETUNDOCOLLECTION 2019 75 | #define SCWS_INVISIBLE 0 76 | #define SCWS_VISIBLEALWAYS 1 77 | #define SCWS_VISIBLEAFTERINDENT 2 78 | #define SCWS_VISIBLEONLYININDENT 3 79 | #define SCI_GETVIEWWS 2020 80 | #define SCI_SETVIEWWS 2021 81 | #define SCTD_LONGARROW 0 82 | #define SCTD_STRIKEOUT 1 83 | #define SCI_GETTABDRAWMODE 2698 84 | #define SCI_SETTABDRAWMODE 2699 85 | #define SCI_POSITIONFROMPOINT 2022 86 | #define SCI_POSITIONFROMPOINTCLOSE 2023 87 | #define SCI_GOTOLINE 2024 88 | #define SCI_GOTOPOS 2025 89 | #define SCI_SETANCHOR 2026 90 | #define SCI_GETCURLINE 2027 91 | #define SCI_GETENDSTYLED 2028 92 | #define SC_EOL_CRLF 0 93 | #define SC_EOL_CR 1 94 | #define SC_EOL_LF 2 95 | #define SCI_CONVERTEOLS 2029 96 | #define SCI_GETEOLMODE 2030 97 | #define SCI_SETEOLMODE 2031 98 | #define SCI_STARTSTYLING 2032 99 | #define SCI_SETSTYLING 2033 100 | #define SCI_GETBUFFEREDDRAW 2034 101 | #define SCI_SETBUFFEREDDRAW 2035 102 | #define SCI_SETTABWIDTH 2036 103 | #define SCI_GETTABWIDTH 2121 104 | #define SCI_SETTABMINIMUMWIDTH 2724 105 | #define SCI_GETTABMINIMUMWIDTH 2725 106 | #define SCI_CLEARTABSTOPS 2675 107 | #define SCI_ADDTABSTOP 2676 108 | #define SCI_GETNEXTTABSTOP 2677 109 | #define SC_CP_UTF8 65001 110 | #define SCI_SETCODEPAGE 2037 111 | #define SCI_SETFONTLOCALE 2760 112 | #define SCI_GETFONTLOCALE 2761 113 | #define SC_IME_WINDOWED 0 114 | #define SC_IME_INLINE 1 115 | #define SCI_GETIMEINTERACTION 2678 116 | #define SCI_SETIMEINTERACTION 2679 117 | #define SC_ALPHA_TRANSPARENT 0 118 | #define SC_ALPHA_OPAQUE 255 119 | #define SC_ALPHA_NOALPHA 256 120 | #define SC_CURSORNORMAL -1 121 | #define SC_CURSORARROW 2 122 | #define SC_CURSORWAIT 4 123 | #define SC_CURSORREVERSEARROW 7 124 | #define MARKER_MAX 31 125 | #define SC_MARK_CIRCLE 0 126 | #define SC_MARK_ROUNDRECT 1 127 | #define SC_MARK_ARROW 2 128 | #define SC_MARK_SMALLRECT 3 129 | #define SC_MARK_SHORTARROW 4 130 | #define SC_MARK_EMPTY 5 131 | #define SC_MARK_ARROWDOWN 6 132 | #define SC_MARK_MINUS 7 133 | #define SC_MARK_PLUS 8 134 | #define SC_MARK_VLINE 9 135 | #define SC_MARK_LCORNER 10 136 | #define SC_MARK_TCORNER 11 137 | #define SC_MARK_BOXPLUS 12 138 | #define SC_MARK_BOXPLUSCONNECTED 13 139 | #define SC_MARK_BOXMINUS 14 140 | #define SC_MARK_BOXMINUSCONNECTED 15 141 | #define SC_MARK_LCORNERCURVE 16 142 | #define SC_MARK_TCORNERCURVE 17 143 | #define SC_MARK_CIRCLEPLUS 18 144 | #define SC_MARK_CIRCLEPLUSCONNECTED 19 145 | #define SC_MARK_CIRCLEMINUS 20 146 | #define SC_MARK_CIRCLEMINUSCONNECTED 21 147 | #define SC_MARK_BACKGROUND 22 148 | #define SC_MARK_DOTDOTDOT 23 149 | #define SC_MARK_ARROWS 24 150 | #define SC_MARK_PIXMAP 25 151 | #define SC_MARK_FULLRECT 26 152 | #define SC_MARK_LEFTRECT 27 153 | #define SC_MARK_AVAILABLE 28 154 | #define SC_MARK_UNDERLINE 29 155 | #define SC_MARK_RGBAIMAGE 30 156 | #define SC_MARK_BOOKMARK 31 157 | #define SC_MARK_VERTICALBOOKMARK 32 158 | #define SC_MARK_BAR 33 159 | #define SC_MARK_CHARACTER 10000 160 | #define SC_MARKNUM_HISTORY_REVERTED_TO_ORIGIN 21 161 | #define SC_MARKNUM_HISTORY_SAVED 22 162 | #define SC_MARKNUM_HISTORY_MODIFIED 23 163 | #define SC_MARKNUM_HISTORY_REVERTED_TO_MODIFIED 24 164 | #define SC_MARKNUM_FOLDEREND 25 165 | #define SC_MARKNUM_FOLDEROPENMID 26 166 | #define SC_MARKNUM_FOLDERMIDTAIL 27 167 | #define SC_MARKNUM_FOLDERTAIL 28 168 | #define SC_MARKNUM_FOLDERSUB 29 169 | #define SC_MARKNUM_FOLDER 30 170 | #define SC_MARKNUM_FOLDEROPEN 31 171 | #define SC_MASK_HISTORY 0x01E00000 172 | #define SC_MASK_FOLDERS 0xFE000000 173 | #define SCI_MARKERDEFINE 2040 174 | #define SCI_MARKERSETFORE 2041 175 | #define SCI_MARKERSETBACK 2042 176 | #define SCI_MARKERSETBACKSELECTED 2292 177 | #define SCI_MARKERSETFORETRANSLUCENT 2294 178 | #define SCI_MARKERSETBACKTRANSLUCENT 2295 179 | #define SCI_MARKERSETBACKSELECTEDTRANSLUCENT 2296 180 | #define SCI_MARKERSETSTROKEWIDTH 2297 181 | #define SCI_MARKERENABLEHIGHLIGHT 2293 182 | #define SCI_MARKERADD 2043 183 | #define SCI_MARKERDELETE 2044 184 | #define SCI_MARKERDELETEALL 2045 185 | #define SCI_MARKERGET 2046 186 | #define SCI_MARKERNEXT 2047 187 | #define SCI_MARKERPREVIOUS 2048 188 | #define SCI_MARKERDEFINEPIXMAP 2049 189 | #define SCI_MARKERADDSET 2466 190 | #define SCI_MARKERSETALPHA 2476 191 | #define SCI_MARKERGETLAYER 2734 192 | #define SCI_MARKERSETLAYER 2735 193 | #define SC_MAX_MARGIN 4 194 | #define SC_MARGIN_SYMBOL 0 195 | #define SC_MARGIN_NUMBER 1 196 | #define SC_MARGIN_BACK 2 197 | #define SC_MARGIN_FORE 3 198 | #define SC_MARGIN_TEXT 4 199 | #define SC_MARGIN_RTEXT 5 200 | #define SC_MARGIN_COLOUR 6 201 | #define SCI_SETMARGINTYPEN 2240 202 | #define SCI_GETMARGINTYPEN 2241 203 | #define SCI_SETMARGINWIDTHN 2242 204 | #define SCI_GETMARGINWIDTHN 2243 205 | #define SCI_SETMARGINMASKN 2244 206 | #define SCI_GETMARGINMASKN 2245 207 | #define SCI_SETMARGINSENSITIVEN 2246 208 | #define SCI_GETMARGINSENSITIVEN 2247 209 | #define SCI_SETMARGINCURSORN 2248 210 | #define SCI_GETMARGINCURSORN 2249 211 | #define SCI_SETMARGINBACKN 2250 212 | #define SCI_GETMARGINBACKN 2251 213 | #define SCI_SETMARGINS 2252 214 | #define SCI_GETMARGINS 2253 215 | #define STYLE_DEFAULT 32 216 | #define STYLE_LINENUMBER 33 217 | #define STYLE_BRACELIGHT 34 218 | #define STYLE_BRACEBAD 35 219 | #define STYLE_CONTROLCHAR 36 220 | #define STYLE_INDENTGUIDE 37 221 | #define STYLE_CALLTIP 38 222 | #define STYLE_FOLDDISPLAYTEXT 39 223 | #define STYLE_LASTPREDEFINED 39 224 | #define STYLE_MAX 255 225 | #define SC_CHARSET_ANSI 0 226 | #define SC_CHARSET_DEFAULT 1 227 | #define SC_CHARSET_BALTIC 186 228 | #define SC_CHARSET_CHINESEBIG5 136 229 | #define SC_CHARSET_EASTEUROPE 238 230 | #define SC_CHARSET_GB2312 134 231 | #define SC_CHARSET_GREEK 161 232 | #define SC_CHARSET_HANGUL 129 233 | #define SC_CHARSET_MAC 77 234 | #define SC_CHARSET_OEM 255 235 | #define SC_CHARSET_RUSSIAN 204 236 | #define SC_CHARSET_OEM866 866 237 | #define SC_CHARSET_CYRILLIC 1251 238 | #define SC_CHARSET_SHIFTJIS 128 239 | #define SC_CHARSET_SYMBOL 2 240 | #define SC_CHARSET_TURKISH 162 241 | #define SC_CHARSET_JOHAB 130 242 | #define SC_CHARSET_HEBREW 177 243 | #define SC_CHARSET_ARABIC 178 244 | #define SC_CHARSET_VIETNAMESE 163 245 | #define SC_CHARSET_THAI 222 246 | #define SC_CHARSET_8859_15 1000 247 | #define SCI_STYLECLEARALL 2050 248 | #define SCI_STYLESETFORE 2051 249 | #define SCI_STYLESETBACK 2052 250 | #define SCI_STYLESETBOLD 2053 251 | #define SCI_STYLESETITALIC 2054 252 | #define SCI_STYLESETSIZE 2055 253 | #define SCI_STYLESETFONT 2056 254 | #define SCI_STYLESETEOLFILLED 2057 255 | #define SCI_STYLERESETDEFAULT 2058 256 | #define SCI_STYLESETUNDERLINE 2059 257 | #define SC_CASE_MIXED 0 258 | #define SC_CASE_UPPER 1 259 | #define SC_CASE_LOWER 2 260 | #define SC_CASE_CAMEL 3 261 | #define SCI_STYLEGETFORE 2481 262 | #define SCI_STYLEGETBACK 2482 263 | #define SCI_STYLEGETBOLD 2483 264 | #define SCI_STYLEGETITALIC 2484 265 | #define SCI_STYLEGETSIZE 2485 266 | #define SCI_STYLEGETFONT 2486 267 | #define SCI_STYLEGETEOLFILLED 2487 268 | #define SCI_STYLEGETUNDERLINE 2488 269 | #define SCI_STYLEGETCASE 2489 270 | #define SCI_STYLEGETCHARACTERSET 2490 271 | #define SCI_STYLEGETVISIBLE 2491 272 | #define SCI_STYLEGETCHANGEABLE 2492 273 | #define SCI_STYLEGETHOTSPOT 2493 274 | #define SCI_STYLESETCASE 2060 275 | #define SC_FONT_SIZE_MULTIPLIER 100 276 | #define SCI_STYLESETSIZEFRACTIONAL 2061 277 | #define SCI_STYLEGETSIZEFRACTIONAL 2062 278 | #define SC_WEIGHT_NORMAL 400 279 | #define SC_WEIGHT_SEMIBOLD 600 280 | #define SC_WEIGHT_BOLD 700 281 | #define SCI_STYLESETWEIGHT 2063 282 | #define SCI_STYLEGETWEIGHT 2064 283 | #define SCI_STYLESETCHARACTERSET 2066 284 | #define SCI_STYLESETHOTSPOT 2409 285 | #define SCI_STYLESETCHECKMONOSPACED 2254 286 | #define SCI_STYLEGETCHECKMONOSPACED 2255 287 | #define SC_STRETCH_ULTRA_CONDENSED 1 288 | #define SC_STRETCH_EXTRA_CONDENSED 2 289 | #define SC_STRETCH_CONDENSED 3 290 | #define SC_STRETCH_SEMI_CONDENSED 4 291 | #define SC_STRETCH_NORMAL 5 292 | #define SC_STRETCH_SEMI_EXPANDED 6 293 | #define SC_STRETCH_EXPANDED 7 294 | #define SC_STRETCH_EXTRA_EXPANDED 8 295 | #define SC_STRETCH_ULTRA_EXPANDED 9 296 | #define SCI_STYLESETSTRETCH 2258 297 | #define SCI_STYLEGETSTRETCH 2259 298 | #define SCI_STYLESETINVISIBLEREPRESENTATION 2256 299 | #define SCI_STYLEGETINVISIBLEREPRESENTATION 2257 300 | #define SC_ELEMENT_LIST 0 301 | #define SC_ELEMENT_LIST_BACK 1 302 | #define SC_ELEMENT_LIST_SELECTED 2 303 | #define SC_ELEMENT_LIST_SELECTED_BACK 3 304 | #define SC_ELEMENT_SELECTION_TEXT 10 305 | #define SC_ELEMENT_SELECTION_BACK 11 306 | #define SC_ELEMENT_SELECTION_ADDITIONAL_TEXT 12 307 | #define SC_ELEMENT_SELECTION_ADDITIONAL_BACK 13 308 | #define SC_ELEMENT_SELECTION_SECONDARY_TEXT 14 309 | #define SC_ELEMENT_SELECTION_SECONDARY_BACK 15 310 | #define SC_ELEMENT_SELECTION_INACTIVE_TEXT 16 311 | #define SC_ELEMENT_SELECTION_INACTIVE_BACK 17 312 | #define SC_ELEMENT_SELECTION_INACTIVE_ADDITIONAL_TEXT 18 313 | #define SC_ELEMENT_SELECTION_INACTIVE_ADDITIONAL_BACK 19 314 | #define SC_ELEMENT_CARET 40 315 | #define SC_ELEMENT_CARET_ADDITIONAL 41 316 | #define SC_ELEMENT_CARET_LINE_BACK 50 317 | #define SC_ELEMENT_WHITE_SPACE 60 318 | #define SC_ELEMENT_WHITE_SPACE_BACK 61 319 | #define SC_ELEMENT_HOT_SPOT_ACTIVE 70 320 | #define SC_ELEMENT_HOT_SPOT_ACTIVE_BACK 71 321 | #define SC_ELEMENT_FOLD_LINE 80 322 | #define SC_ELEMENT_HIDDEN_LINE 81 323 | #define SCI_SETELEMENTCOLOUR 2753 324 | #define SCI_GETELEMENTCOLOUR 2754 325 | #define SCI_RESETELEMENTCOLOUR 2755 326 | #define SCI_GETELEMENTISSET 2756 327 | #define SCI_GETELEMENTALLOWSTRANSLUCENT 2757 328 | #define SCI_GETELEMENTBASECOLOUR 2758 329 | #define SCI_SETSELFORE 2067 330 | #define SCI_SETSELBACK 2068 331 | #define SCI_GETSELALPHA 2477 332 | #define SCI_SETSELALPHA 2478 333 | #define SCI_GETSELEOLFILLED 2479 334 | #define SCI_SETSELEOLFILLED 2480 335 | #define SC_LAYER_BASE 0 336 | #define SC_LAYER_UNDER_TEXT 1 337 | #define SC_LAYER_OVER_TEXT 2 338 | #define SCI_GETSELECTIONLAYER 2762 339 | #define SCI_SETSELECTIONLAYER 2763 340 | #define SCI_GETCARETLINELAYER 2764 341 | #define SCI_SETCARETLINELAYER 2765 342 | #define SCI_GETCARETLINEHIGHLIGHTSUBLINE 2773 343 | #define SCI_SETCARETLINEHIGHLIGHTSUBLINE 2774 344 | #define SCI_SETCARETFORE 2069 345 | #define SCI_ASSIGNCMDKEY 2070 346 | #define SCI_CLEARCMDKEY 2071 347 | #define SCI_CLEARALLCMDKEYS 2072 348 | #define SCI_SETSTYLINGEX 2073 349 | #define SCI_STYLESETVISIBLE 2074 350 | #define SCI_GETCARETPERIOD 2075 351 | #define SCI_SETCARETPERIOD 2076 352 | #define SCI_SETWORDCHARS 2077 353 | #define SCI_GETWORDCHARS 2646 354 | #define SCI_SETCHARACTERCATEGORYOPTIMIZATION 2720 355 | #define SCI_GETCHARACTERCATEGORYOPTIMIZATION 2721 356 | #define SCI_BEGINUNDOACTION 2078 357 | #define SCI_ENDUNDOACTION 2079 358 | #define SCI_GETUNDOSEQUENCE 2799 359 | #define SCI_GETUNDOACTIONS 2790 360 | #define SCI_SETUNDOSAVEPOINT 2791 361 | #define SCI_GETUNDOSAVEPOINT 2792 362 | #define SCI_SETUNDODETACH 2793 363 | #define SCI_GETUNDODETACH 2794 364 | #define SCI_SETUNDOTENTATIVE 2795 365 | #define SCI_GETUNDOTENTATIVE 2796 366 | #define SCI_SETUNDOCURRENT 2797 367 | #define SCI_GETUNDOCURRENT 2798 368 | #define SCI_PUSHUNDOACTIONTYPE 2800 369 | #define SCI_CHANGELASTUNDOACTIONTEXT 2801 370 | #define SCI_GETUNDOACTIONTYPE 2802 371 | #define SCI_GETUNDOACTIONPOSITION 2803 372 | #define SCI_GETUNDOACTIONTEXT 2804 373 | #define INDIC_PLAIN 0 374 | #define INDIC_SQUIGGLE 1 375 | #define INDIC_TT 2 376 | #define INDIC_DIAGONAL 3 377 | #define INDIC_STRIKE 4 378 | #define INDIC_HIDDEN 5 379 | #define INDIC_BOX 6 380 | #define INDIC_ROUNDBOX 7 381 | #define INDIC_STRAIGHTBOX 8 382 | #define INDIC_DASH 9 383 | #define INDIC_DOTS 10 384 | #define INDIC_SQUIGGLELOW 11 385 | #define INDIC_DOTBOX 12 386 | #define INDIC_SQUIGGLEPIXMAP 13 387 | #define INDIC_COMPOSITIONTHICK 14 388 | #define INDIC_COMPOSITIONTHIN 15 389 | #define INDIC_FULLBOX 16 390 | #define INDIC_TEXTFORE 17 391 | #define INDIC_POINT 18 392 | #define INDIC_POINTCHARACTER 19 393 | #define INDIC_GRADIENT 20 394 | #define INDIC_GRADIENTCENTRE 21 395 | #define INDIC_POINT_TOP 22 396 | #define INDIC_EXPLORERLINK 23 397 | #define INDIC_CONTAINER 8 398 | #define INDIC_IME 32 399 | #define INDIC_IME_MAX 35 400 | #define INDIC_MAX 35 401 | #define INDICATOR_CONTAINER 8 402 | #define INDICATOR_IME 32 403 | #define INDICATOR_IME_MAX 35 404 | #define INDICATOR_HISTORY_REVERTED_TO_ORIGIN_INSERTION 36 405 | #define INDICATOR_HISTORY_REVERTED_TO_ORIGIN_DELETION 37 406 | #define INDICATOR_HISTORY_SAVED_INSERTION 38 407 | #define INDICATOR_HISTORY_SAVED_DELETION 39 408 | #define INDICATOR_HISTORY_MODIFIED_INSERTION 40 409 | #define INDICATOR_HISTORY_MODIFIED_DELETION 41 410 | #define INDICATOR_HISTORY_REVERTED_TO_MODIFIED_INSERTION 42 411 | #define INDICATOR_HISTORY_REVERTED_TO_MODIFIED_DELETION 43 412 | #define INDICATOR_MAX 43 413 | #define SCI_INDICSETSTYLE 2080 414 | #define SCI_INDICGETSTYLE 2081 415 | #define SCI_INDICSETFORE 2082 416 | #define SCI_INDICGETFORE 2083 417 | #define SCI_INDICSETUNDER 2510 418 | #define SCI_INDICGETUNDER 2511 419 | #define SCI_INDICSETHOVERSTYLE 2680 420 | #define SCI_INDICGETHOVERSTYLE 2681 421 | #define SCI_INDICSETHOVERFORE 2682 422 | #define SCI_INDICGETHOVERFORE 2683 423 | #define SC_INDICVALUEBIT 0x1000000 424 | #define SC_INDICVALUEMASK 0xFFFFFF 425 | #define SC_INDICFLAG_NONE 0 426 | #define SC_INDICFLAG_VALUEFORE 1 427 | #define SCI_INDICSETFLAGS 2684 428 | #define SCI_INDICGETFLAGS 2685 429 | #define SCI_INDICSETSTROKEWIDTH 2751 430 | #define SCI_INDICGETSTROKEWIDTH 2752 431 | #define SCI_SETWHITESPACEFORE 2084 432 | #define SCI_SETWHITESPACEBACK 2085 433 | #define SCI_SETWHITESPACESIZE 2086 434 | #define SCI_GETWHITESPACESIZE 2087 435 | #define SCI_SETLINESTATE 2092 436 | #define SCI_GETLINESTATE 2093 437 | #define SCI_GETMAXLINESTATE 2094 438 | #define SCI_GETCARETLINEVISIBLE 2095 439 | #define SCI_SETCARETLINEVISIBLE 2096 440 | #define SCI_GETCARETLINEBACK 2097 441 | #define SCI_SETCARETLINEBACK 2098 442 | #define SCI_GETCARETLINEFRAME 2704 443 | #define SCI_SETCARETLINEFRAME 2705 444 | #define SCI_STYLESETCHANGEABLE 2099 445 | #define SCI_AUTOCSHOW 2100 446 | #define SCI_AUTOCCANCEL 2101 447 | #define SCI_AUTOCACTIVE 2102 448 | #define SCI_AUTOCPOSSTART 2103 449 | #define SCI_AUTOCCOMPLETE 2104 450 | #define SCI_AUTOCSTOPS 2105 451 | #define SCI_AUTOCSETSEPARATOR 2106 452 | #define SCI_AUTOCGETSEPARATOR 2107 453 | #define SCI_AUTOCSELECT 2108 454 | #define SCI_AUTOCSETCANCELATSTART 2110 455 | #define SCI_AUTOCGETCANCELATSTART 2111 456 | #define SCI_AUTOCSETFILLUPS 2112 457 | #define SCI_AUTOCSETCHOOSESINGLE 2113 458 | #define SCI_AUTOCGETCHOOSESINGLE 2114 459 | #define SCI_AUTOCSETIGNORECASE 2115 460 | #define SCI_AUTOCGETIGNORECASE 2116 461 | #define SCI_USERLISTSHOW 2117 462 | #define SCI_AUTOCSETAUTOHIDE 2118 463 | #define SCI_AUTOCGETAUTOHIDE 2119 464 | #define SC_AUTOCOMPLETE_NORMAL 0 465 | #define SC_AUTOCOMPLETE_FIXED_SIZE 1 466 | #define SC_AUTOCOMPLETE_SELECT_FIRST_ITEM 2 467 | #define SCI_AUTOCSETOPTIONS 2638 468 | #define SCI_AUTOCGETOPTIONS 2639 469 | #define SCI_AUTOCSETDROPRESTOFWORD 2270 470 | #define SCI_AUTOCGETDROPRESTOFWORD 2271 471 | #define SCI_REGISTERIMAGE 2405 472 | #define SCI_CLEARREGISTEREDIMAGES 2408 473 | #define SCI_AUTOCGETTYPESEPARATOR 2285 474 | #define SCI_AUTOCSETTYPESEPARATOR 2286 475 | #define SCI_AUTOCSETMAXWIDTH 2208 476 | #define SCI_AUTOCGETMAXWIDTH 2209 477 | #define SCI_AUTOCSETMAXHEIGHT 2210 478 | #define SCI_AUTOCGETMAXHEIGHT 2211 479 | #define SCI_AUTOCSETSTYLE 2109 480 | #define SCI_AUTOCGETSTYLE 2120 481 | #define SCI_AUTOCSETIMAGESCALE 2815 482 | #define SCI_AUTOCGETIMAGESCALE 2816 483 | #define SCI_SETINDENT 2122 484 | #define SCI_GETINDENT 2123 485 | #define SCI_SETUSETABS 2124 486 | #define SCI_GETUSETABS 2125 487 | #define SCI_SETLINEINDENTATION 2126 488 | #define SCI_GETLINEINDENTATION 2127 489 | #define SCI_GETLINEINDENTPOSITION 2128 490 | #define SCI_GETCOLUMN 2129 491 | #define SCI_COUNTCHARACTERS 2633 492 | #define SCI_COUNTCODEUNITS 2715 493 | #define SCI_SETHSCROLLBAR 2130 494 | #define SCI_GETHSCROLLBAR 2131 495 | #define SC_IV_NONE 0 496 | #define SC_IV_REAL 1 497 | #define SC_IV_LOOKFORWARD 2 498 | #define SC_IV_LOOKBOTH 3 499 | #define SCI_SETINDENTATIONGUIDES 2132 500 | #define SCI_GETINDENTATIONGUIDES 2133 501 | #define SCI_SETHIGHLIGHTGUIDE 2134 502 | #define SCI_GETHIGHLIGHTGUIDE 2135 503 | #define SCI_GETLINEENDPOSITION 2136 504 | #define SCI_GETCODEPAGE 2137 505 | #define SCI_GETCARETFORE 2138 506 | #define SCI_GETREADONLY 2140 507 | #define SCI_SETCURRENTPOS 2141 508 | #define SCI_SETSELECTIONSTART 2142 509 | #define SCI_GETSELECTIONSTART 2143 510 | #define SCI_SETSELECTIONEND 2144 511 | #define SCI_GETSELECTIONEND 2145 512 | #define SCI_SETEMPTYSELECTION 2556 513 | #define SCI_SETPRINTMAGNIFICATION 2146 514 | #define SCI_GETPRINTMAGNIFICATION 2147 515 | #define SC_PRINT_NORMAL 0 516 | #define SC_PRINT_INVERTLIGHT 1 517 | #define SC_PRINT_BLACKONWHITE 2 518 | #define SC_PRINT_COLOURONWHITE 3 519 | #define SC_PRINT_COLOURONWHITEDEFAULTBG 4 520 | #define SC_PRINT_SCREENCOLOURS 5 521 | #define SCI_SETPRINTCOLOURMODE 2148 522 | #define SCI_GETPRINTCOLOURMODE 2149 523 | #define SCFIND_NONE 0x0 524 | #define SCFIND_WHOLEWORD 0x2 525 | #define SCFIND_MATCHCASE 0x4 526 | #define SCFIND_WORDSTART 0x00100000 527 | #define SCFIND_REGEXP 0x00200000 528 | #define SCFIND_POSIX 0x00400000 529 | #define SCFIND_CXX11REGEX 0x00800000 530 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 531 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL,SCI_GETSTYLEDTEXTFULL and SCI_FORMATRANGEFULL and corresponding defines/structs 532 | //#define SCI_FINDTEXT 2150 533 | #define SCI_FINDTEXTFULL 2196 534 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 535 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL,SCI_GETSTYLEDTEXTFULL and SCI_FORMATRANGEFULL and corresponding defines/structs 536 | //#define SCI_FORMATRANGE 2151 537 | #define SCI_FORMATRANGEFULL 2777 538 | #define SC_CHANGE_HISTORY_DISABLED 0 539 | #define SC_CHANGE_HISTORY_ENABLED 1 540 | #define SC_CHANGE_HISTORY_MARKERS 2 541 | #define SC_CHANGE_HISTORY_INDICATORS 4 542 | #define SCI_SETCHANGEHISTORY 2780 543 | #define SCI_GETCHANGEHISTORY 2781 544 | #define SC_UNDO_SELECTION_HISTORY_DISABLED 0 545 | #define SC_UNDO_SELECTION_HISTORY_ENABLED 1 546 | #define SC_UNDO_SELECTION_HISTORY_SCROLL 2 547 | #define SCI_SETUNDOSELECTIONHISTORY 2782 548 | #define SCI_GETUNDOSELECTIONHISTORY 2783 549 | #define SCI_SETSELECTIONSERIALIZED 2784 550 | #define SCI_GETSELECTIONSERIALIZED 2785 551 | #define SCI_GETFIRSTVISIBLELINE 2152 552 | #define SCI_GETLINE 2153 553 | #define SCI_GETLINECOUNT 2154 554 | #define SCI_ALLOCATELINES 2089 555 | #define SCI_SETMARGINLEFT 2155 556 | #define SCI_GETMARGINLEFT 2156 557 | #define SCI_SETMARGINRIGHT 2157 558 | #define SCI_GETMARGINRIGHT 2158 559 | #define SCI_GETMODIFY 2159 560 | #define SCI_SETSEL 2160 561 | #define SCI_GETSELTEXT 2161 562 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 563 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL,SCI_GETSTYLEDTEXTFULL and SCI_FORMATRANGEFULL and corresponding defines/structs 564 | //#define SCI_GETTEXTRANGE 2162 565 | #define SCI_GETTEXTRANGEFULL 2039 566 | #define SCI_HIDESELECTION 2163 567 | #define SCI_GETSELECTIONHIDDEN 2088 568 | #define SCI_POINTXFROMPOSITION 2164 569 | #define SCI_POINTYFROMPOSITION 2165 570 | #define SCI_LINEFROMPOSITION 2166 571 | #define SCI_POSITIONFROMLINE 2167 572 | #define SCI_LINESCROLL 2168 573 | #define SCI_SCROLLVERTICAL 2817 574 | #define SCI_SCROLLCARET 2169 575 | #define SCI_SCROLLRANGE 2569 576 | #define SCI_REPLACESEL 2170 577 | #define SCI_SETREADONLY 2171 578 | #define SCI_NULL 2172 579 | #define SCI_CANPASTE 2173 580 | #define SCI_CANUNDO 2174 581 | #define SCI_EMPTYUNDOBUFFER 2175 582 | #define SCI_UNDO 2176 583 | #define SCI_CUT 2177 584 | #define SCI_COPY 2178 585 | #define SCI_PASTE 2179 586 | #define SCI_CLEAR 2180 587 | #define SCI_SETTEXT 2181 588 | #define SCI_GETTEXT 2182 589 | #define SCI_GETTEXTLENGTH 2183 590 | #define SCI_GETDIRECTFUNCTION 2184 591 | #define SCI_GETDIRECTSTATUSFUNCTION 2772 592 | #define SCI_GETDIRECTPOINTER 2185 593 | #define SCI_SETOVERTYPE 2186 594 | #define SCI_GETOVERTYPE 2187 595 | #define SCI_SETCARETWIDTH 2188 596 | #define SCI_GETCARETWIDTH 2189 597 | #define SCI_SETTARGETSTART 2190 598 | #define SCI_GETTARGETSTART 2191 599 | #define SCI_SETTARGETSTARTVIRTUALSPACE 2728 600 | #define SCI_GETTARGETSTARTVIRTUALSPACE 2729 601 | #define SCI_SETTARGETEND 2192 602 | #define SCI_GETTARGETEND 2193 603 | #define SCI_SETTARGETENDVIRTUALSPACE 2730 604 | #define SCI_GETTARGETENDVIRTUALSPACE 2731 605 | #define SCI_SETTARGETRANGE 2686 606 | #define SCI_GETTARGETTEXT 2687 607 | #define SCI_TARGETFROMSELECTION 2287 608 | #define SCI_TARGETWHOLEDOCUMENT 2690 609 | #define SCI_REPLACETARGET 2194 610 | #define SCI_REPLACETARGETRE 2195 611 | #define SCI_REPLACETARGETMINIMAL 2779 612 | #define SCI_SEARCHINTARGET 2197 613 | #define SCI_SETSEARCHFLAGS 2198 614 | #define SCI_GETSEARCHFLAGS 2199 615 | #define SCI_CALLTIPSHOW 2200 616 | #define SCI_CALLTIPCANCEL 2201 617 | #define SCI_CALLTIPACTIVE 2202 618 | #define SCI_CALLTIPPOSSTART 2203 619 | #define SCI_CALLTIPSETPOSSTART 2214 620 | #define SCI_CALLTIPSETHLT 2204 621 | #define SCI_CALLTIPSETBACK 2205 622 | #define SCI_CALLTIPSETFORE 2206 623 | #define SCI_CALLTIPSETFOREHLT 2207 624 | #define SCI_CALLTIPUSESTYLE 2212 625 | #define SCI_CALLTIPSETPOSITION 2213 626 | #define SCI_VISIBLEFROMDOCLINE 2220 627 | #define SCI_DOCLINEFROMVISIBLE 2221 628 | #define SCI_WRAPCOUNT 2235 629 | #define SC_FOLDLEVELNONE 0x0 630 | #define SC_FOLDLEVELBASE 0x400 631 | #define SC_FOLDLEVELWHITEFLAG 0x1000 632 | #define SC_FOLDLEVELHEADERFLAG 0x2000 633 | #define SC_FOLDLEVELNUMBERMASK 0x0FFF 634 | #define SCI_SETFOLDLEVEL 2222 635 | #define SCI_GETFOLDLEVEL 2223 636 | #define SCI_GETLASTCHILD 2224 637 | #define SCI_GETFOLDPARENT 2225 638 | #define SCI_SHOWLINES 2226 639 | #define SCI_HIDELINES 2227 640 | #define SCI_GETLINEVISIBLE 2228 641 | #define SCI_GETALLLINESVISIBLE 2236 642 | #define SCI_SETFOLDEXPANDED 2229 643 | #define SCI_GETFOLDEXPANDED 2230 644 | #define SCI_TOGGLEFOLD 2231 645 | #define SCI_TOGGLEFOLDSHOWTEXT 2700 646 | #define SC_FOLDDISPLAYTEXT_HIDDEN 0 647 | #define SC_FOLDDISPLAYTEXT_STANDARD 1 648 | #define SC_FOLDDISPLAYTEXT_BOXED 2 649 | #define SCI_FOLDDISPLAYTEXTSETSTYLE 2701 650 | #define SCI_FOLDDISPLAYTEXTGETSTYLE 2707 651 | #define SCI_SETDEFAULTFOLDDISPLAYTEXT 2722 652 | #define SCI_GETDEFAULTFOLDDISPLAYTEXT 2723 653 | #define SC_FOLDACTION_CONTRACT 0 654 | #define SC_FOLDACTION_EXPAND 1 655 | #define SC_FOLDACTION_TOGGLE 2 656 | #define SC_FOLDACTION_CONTRACT_EVERY_LEVEL 4 657 | #define SCI_FOLDLINE 2237 658 | #define SCI_FOLDCHILDREN 2238 659 | #define SCI_EXPANDCHILDREN 2239 660 | #define SCI_FOLDALL 2662 661 | #define SCI_ENSUREVISIBLE 2232 662 | #define SC_AUTOMATICFOLD_NONE 0x0000 663 | #define SC_AUTOMATICFOLD_SHOW 0x0001 664 | #define SC_AUTOMATICFOLD_CLICK 0x0002 665 | #define SC_AUTOMATICFOLD_CHANGE 0x0004 666 | #define SCI_SETAUTOMATICFOLD 2663 667 | #define SCI_GETAUTOMATICFOLD 2664 668 | #define SC_FOLDFLAG_NONE 0x0000 669 | #define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 670 | #define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 671 | #define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 672 | #define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 673 | #define SC_FOLDFLAG_LEVELNUMBERS 0x0040 674 | #define SC_FOLDFLAG_LINESTATE 0x0080 675 | #define SCI_SETFOLDFLAGS 2233 676 | #define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 677 | #define SCI_SETTABINDENTS 2260 678 | #define SCI_GETTABINDENTS 2261 679 | #define SCI_SETBACKSPACEUNINDENTS 2262 680 | #define SCI_GETBACKSPACEUNINDENTS 2263 681 | #define SC_TIME_FOREVER 10000000 682 | #define SCI_SETMOUSEDWELLTIME 2264 683 | #define SCI_GETMOUSEDWELLTIME 2265 684 | #define SCI_WORDSTARTPOSITION 2266 685 | #define SCI_WORDENDPOSITION 2267 686 | #define SCI_ISRANGEWORD 2691 687 | #define SC_IDLESTYLING_NONE 0 688 | #define SC_IDLESTYLING_TOVISIBLE 1 689 | #define SC_IDLESTYLING_AFTERVISIBLE 2 690 | #define SC_IDLESTYLING_ALL 3 691 | #define SCI_SETIDLESTYLING 2692 692 | #define SCI_GETIDLESTYLING 2693 693 | #define SC_WRAP_NONE 0 694 | #define SC_WRAP_WORD 1 695 | #define SC_WRAP_CHAR 2 696 | #define SC_WRAP_WHITESPACE 3 697 | #define SCI_SETWRAPMODE 2268 698 | #define SCI_GETWRAPMODE 2269 699 | #define SC_WRAPVISUALFLAG_NONE 0x0000 700 | #define SC_WRAPVISUALFLAG_END 0x0001 701 | #define SC_WRAPVISUALFLAG_START 0x0002 702 | #define SC_WRAPVISUALFLAG_MARGIN 0x0004 703 | #define SCI_SETWRAPVISUALFLAGS 2460 704 | #define SCI_GETWRAPVISUALFLAGS 2461 705 | #define SC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 706 | #define SC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 707 | #define SC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 708 | #define SCI_SETWRAPVISUALFLAGSLOCATION 2462 709 | #define SCI_GETWRAPVISUALFLAGSLOCATION 2463 710 | #define SCI_SETWRAPSTARTINDENT 2464 711 | #define SCI_GETWRAPSTARTINDENT 2465 712 | #define SC_WRAPINDENT_FIXED 0 713 | #define SC_WRAPINDENT_SAME 1 714 | #define SC_WRAPINDENT_INDENT 2 715 | #define SC_WRAPINDENT_DEEPINDENT 3 716 | #define SCI_SETWRAPINDENTMODE 2472 717 | #define SCI_GETWRAPINDENTMODE 2473 718 | #define SC_CACHE_NONE 0 719 | #define SC_CACHE_CARET 1 720 | #define SC_CACHE_PAGE 2 721 | #define SC_CACHE_DOCUMENT 3 722 | #define SCI_SETLAYOUTCACHE 2272 723 | #define SCI_GETLAYOUTCACHE 2273 724 | #define SCI_SETSCROLLWIDTH 2274 725 | #define SCI_GETSCROLLWIDTH 2275 726 | #define SCI_SETSCROLLWIDTHTRACKING 2516 727 | #define SCI_GETSCROLLWIDTHTRACKING 2517 728 | #define SCI_TEXTWIDTH 2276 729 | #define SCI_SETENDATLASTLINE 2277 730 | #define SCI_GETENDATLASTLINE 2278 731 | #define SCI_TEXTHEIGHT 2279 732 | #define SCI_SETVSCROLLBAR 2280 733 | #define SCI_GETVSCROLLBAR 2281 734 | #define SCI_APPENDTEXT 2282 735 | #define SC_PHASES_ONE 0 736 | #define SC_PHASES_TWO 1 737 | #define SC_PHASES_MULTIPLE 2 738 | #define SCI_GETPHASESDRAW 2673 739 | #define SCI_SETPHASESDRAW 2674 740 | #define SC_EFF_QUALITY_MASK 0xF 741 | #define SC_EFF_QUALITY_DEFAULT 0 742 | #define SC_EFF_QUALITY_NON_ANTIALIASED 1 743 | #define SC_EFF_QUALITY_ANTIALIASED 2 744 | #define SC_EFF_QUALITY_LCD_OPTIMIZED 3 745 | #define SCI_SETFONTQUALITY 2611 746 | #define SCI_GETFONTQUALITY 2612 747 | #define SCI_SETFIRSTVISIBLELINE 2613 748 | #define SC_MULTIPASTE_ONCE 0 749 | #define SC_MULTIPASTE_EACH 1 750 | #define SCI_SETMULTIPASTE 2614 751 | #define SCI_GETMULTIPASTE 2615 752 | #define SCI_GETTAG 2616 753 | #define SCI_LINESJOIN 2288 754 | #define SCI_LINESSPLIT 2289 755 | #define SCI_SETFOLDMARGINCOLOUR 2290 756 | #define SCI_SETFOLDMARGINHICOLOUR 2291 757 | #define SC_ACCESSIBILITY_DISABLED 0 758 | #define SC_ACCESSIBILITY_ENABLED 1 759 | #define SCI_SETACCESSIBILITY 2702 760 | #define SCI_GETACCESSIBILITY 2703 761 | #define SCI_LINEDOWN 2300 762 | #define SCI_LINEDOWNEXTEND 2301 763 | #define SCI_LINEUP 2302 764 | #define SCI_LINEUPEXTEND 2303 765 | #define SCI_CHARLEFT 2304 766 | #define SCI_CHARLEFTEXTEND 2305 767 | #define SCI_CHARRIGHT 2306 768 | #define SCI_CHARRIGHTEXTEND 2307 769 | #define SCI_WORDLEFT 2308 770 | #define SCI_WORDLEFTEXTEND 2309 771 | #define SCI_WORDRIGHT 2310 772 | #define SCI_WORDRIGHTEXTEND 2311 773 | #define SCI_HOME 2312 774 | #define SCI_HOMEEXTEND 2313 775 | #define SCI_LINEEND 2314 776 | #define SCI_LINEENDEXTEND 2315 777 | #define SCI_DOCUMENTSTART 2316 778 | #define SCI_DOCUMENTSTARTEXTEND 2317 779 | #define SCI_DOCUMENTEND 2318 780 | #define SCI_DOCUMENTENDEXTEND 2319 781 | #define SCI_PAGEUP 2320 782 | #define SCI_PAGEUPEXTEND 2321 783 | #define SCI_PAGEDOWN 2322 784 | #define SCI_PAGEDOWNEXTEND 2323 785 | #define SCI_EDITTOGGLEOVERTYPE 2324 786 | #define SCI_CANCEL 2325 787 | #define SCI_DELETEBACK 2326 788 | #define SCI_TAB 2327 789 | #define SCI_LINEINDENT 2813 790 | #define SCI_BACKTAB 2328 791 | #define SCI_LINEDEDENT 2814 792 | #define SCI_NEWLINE 2329 793 | #define SCI_FORMFEED 2330 794 | #define SCI_VCHOME 2331 795 | #define SCI_VCHOMEEXTEND 2332 796 | #define SCI_ZOOMIN 2333 797 | #define SCI_ZOOMOUT 2334 798 | #define SCI_DELWORDLEFT 2335 799 | #define SCI_DELWORDRIGHT 2336 800 | #define SCI_DELWORDRIGHTEND 2518 801 | #define SCI_LINECUT 2337 802 | #define SCI_LINEDELETE 2338 803 | #define SCI_LINETRANSPOSE 2339 804 | #define SCI_LINEREVERSE 2354 805 | #define SCI_LINEDUPLICATE 2404 806 | #define SCI_LOWERCASE 2340 807 | #define SCI_UPPERCASE 2341 808 | #define SCI_LINESCROLLDOWN 2342 809 | #define SCI_LINESCROLLUP 2343 810 | #define SCI_DELETEBACKNOTLINE 2344 811 | #define SCI_HOMEDISPLAY 2345 812 | #define SCI_HOMEDISPLAYEXTEND 2346 813 | #define SCI_LINEENDDISPLAY 2347 814 | #define SCI_LINEENDDISPLAYEXTEND 2348 815 | #define SCI_HOMEWRAP 2349 816 | #define SCI_HOMEWRAPEXTEND 2450 817 | #define SCI_LINEENDWRAP 2451 818 | #define SCI_LINEENDWRAPEXTEND 2452 819 | #define SCI_VCHOMEWRAP 2453 820 | #define SCI_VCHOMEWRAPEXTEND 2454 821 | #define SCI_LINECOPY 2455 822 | #define SCI_MOVECARETINSIDEVIEW 2401 823 | #define SCI_LINELENGTH 2350 824 | #define SCI_BRACEHIGHLIGHT 2351 825 | #define SCI_BRACEHIGHLIGHTINDICATOR 2498 826 | #define SCI_BRACEBADLIGHT 2352 827 | #define SCI_BRACEBADLIGHTINDICATOR 2499 828 | #define SCI_BRACEMATCH 2353 829 | #define SCI_BRACEMATCHNEXT 2369 830 | #define SCI_GETVIEWEOL 2355 831 | #define SCI_SETVIEWEOL 2356 832 | #define SCI_GETDOCPOINTER 2357 833 | #define SCI_SETDOCPOINTER 2358 834 | #define SCI_SETMODEVENTMASK 2359 835 | #define EDGE_NONE 0 836 | #define EDGE_LINE 1 837 | #define EDGE_BACKGROUND 2 838 | #define EDGE_MULTILINE 3 839 | #define SCI_GETEDGECOLUMN 2360 840 | #define SCI_SETEDGECOLUMN 2361 841 | #define SCI_GETEDGEMODE 2362 842 | #define SCI_SETEDGEMODE 2363 843 | #define SCI_GETEDGECOLOUR 2364 844 | #define SCI_SETEDGECOLOUR 2365 845 | #define SCI_MULTIEDGEADDLINE 2694 846 | #define SCI_MULTIEDGECLEARALL 2695 847 | #define SCI_GETMULTIEDGECOLUMN 2749 848 | #define SCI_SEARCHANCHOR 2366 849 | #define SCI_SEARCHNEXT 2367 850 | #define SCI_SEARCHPREV 2368 851 | #define SCI_LINESONSCREEN 2370 852 | #define SC_POPUP_NEVER 0 853 | #define SC_POPUP_ALL 1 854 | #define SC_POPUP_TEXT 2 855 | #define SCI_USEPOPUP 2371 856 | #define SCI_SELECTIONISRECTANGLE 2372 857 | #define SCI_SETZOOM 2373 858 | #define SCI_GETZOOM 2374 859 | #define SC_DOCUMENTOPTION_DEFAULT 0 860 | #define SC_DOCUMENTOPTION_STYLES_NONE 0x1 861 | #define SC_DOCUMENTOPTION_TEXT_LARGE 0x100 862 | #define SCI_CREATEDOCUMENT 2375 863 | #define SCI_ADDREFDOCUMENT 2376 864 | #define SCI_RELEASEDOCUMENT 2377 865 | #define SCI_GETDOCUMENTOPTIONS 2379 866 | #define SCI_GETMODEVENTMASK 2378 867 | #define SCI_SETCOMMANDEVENTS 2717 868 | #define SCI_GETCOMMANDEVENTS 2718 869 | #define SCI_SETFOCUS 2380 870 | #define SCI_GETFOCUS 2381 871 | #define SC_STATUS_OK 0 872 | #define SC_STATUS_FAILURE 1 873 | #define SC_STATUS_BADALLOC 2 874 | #define SC_STATUS_WARN_START 1000 875 | #define SC_STATUS_WARN_REGEX 1001 876 | #define SCI_SETSTATUS 2382 877 | #define SCI_GETSTATUS 2383 878 | #define SCI_SETMOUSEDOWNCAPTURES 2384 879 | #define SCI_GETMOUSEDOWNCAPTURES 2385 880 | #define SCI_SETMOUSEWHEELCAPTURES 2696 881 | #define SCI_GETMOUSEWHEELCAPTURES 2697 882 | #define SCI_SETCURSOR 2386 883 | #define SCI_GETCURSOR 2387 884 | #define SCI_SETCONTROLCHARSYMBOL 2388 885 | #define SCI_GETCONTROLCHARSYMBOL 2389 886 | #define SCI_WORDPARTLEFT 2390 887 | #define SCI_WORDPARTLEFTEXTEND 2391 888 | #define SCI_WORDPARTRIGHT 2392 889 | #define SCI_WORDPARTRIGHTEXTEND 2393 890 | #define VISIBLE_SLOP 0x01 891 | #define VISIBLE_STRICT 0x04 892 | #define SCI_SETVISIBLEPOLICY 2394 893 | #define SCI_DELLINELEFT 2395 894 | #define SCI_DELLINERIGHT 2396 895 | #define SCI_SETXOFFSET 2397 896 | #define SCI_GETXOFFSET 2398 897 | #define SCI_CHOOSECARETX 2399 898 | #define SCI_GRABFOCUS 2400 899 | #define CARET_SLOP 0x01 900 | #define CARET_STRICT 0x04 901 | #define CARET_JUMPS 0x10 902 | #define CARET_EVEN 0x08 903 | #define SCI_SETXCARETPOLICY 2402 904 | #define SCI_SETYCARETPOLICY 2403 905 | #define SCI_SETPRINTWRAPMODE 2406 906 | #define SCI_GETPRINTWRAPMODE 2407 907 | #define SCI_SETHOTSPOTACTIVEFORE 2410 908 | #define SCI_GETHOTSPOTACTIVEFORE 2494 909 | #define SCI_SETHOTSPOTACTIVEBACK 2411 910 | #define SCI_GETHOTSPOTACTIVEBACK 2495 911 | #define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 912 | #define SCI_GETHOTSPOTACTIVEUNDERLINE 2496 913 | #define SCI_SETHOTSPOTSINGLELINE 2421 914 | #define SCI_GETHOTSPOTSINGLELINE 2497 915 | #define SCI_PARADOWN 2413 916 | #define SCI_PARADOWNEXTEND 2414 917 | #define SCI_PARAUP 2415 918 | #define SCI_PARAUPEXTEND 2416 919 | #define SCI_POSITIONBEFORE 2417 920 | #define SCI_POSITIONAFTER 2418 921 | #define SCI_POSITIONRELATIVE 2670 922 | #define SCI_POSITIONRELATIVECODEUNITS 2716 923 | #define SCI_COPYRANGE 2419 924 | #define SCI_COPYTEXT 2420 925 | #define SC_SEL_STREAM 0 926 | #define SC_SEL_RECTANGLE 1 927 | #define SC_SEL_LINES 2 928 | #define SC_SEL_THIN 3 929 | #define SCI_SETSELECTIONMODE 2422 930 | #define SCI_CHANGESELECTIONMODE 2659 931 | #define SCI_GETSELECTIONMODE 2423 932 | #define SCI_SETMOVEEXTENDSSELECTION 2719 933 | #define SCI_GETMOVEEXTENDSSELECTION 2706 934 | #define SCI_GETLINESELSTARTPOSITION 2424 935 | #define SCI_GETLINESELENDPOSITION 2425 936 | #define SCI_LINEDOWNRECTEXTEND 2426 937 | #define SCI_LINEUPRECTEXTEND 2427 938 | #define SCI_CHARLEFTRECTEXTEND 2428 939 | #define SCI_CHARRIGHTRECTEXTEND 2429 940 | #define SCI_HOMERECTEXTEND 2430 941 | #define SCI_VCHOMERECTEXTEND 2431 942 | #define SCI_LINEENDRECTEXTEND 2432 943 | #define SCI_PAGEUPRECTEXTEND 2433 944 | #define SCI_PAGEDOWNRECTEXTEND 2434 945 | #define SCI_STUTTEREDPAGEUP 2435 946 | #define SCI_STUTTEREDPAGEUPEXTEND 2436 947 | #define SCI_STUTTEREDPAGEDOWN 2437 948 | #define SCI_STUTTEREDPAGEDOWNEXTEND 2438 949 | #define SCI_WORDLEFTEND 2439 950 | #define SCI_WORDLEFTENDEXTEND 2440 951 | #define SCI_WORDRIGHTEND 2441 952 | #define SCI_WORDRIGHTENDEXTEND 2442 953 | #define SCI_SETWHITESPACECHARS 2443 954 | #define SCI_GETWHITESPACECHARS 2647 955 | #define SCI_SETPUNCTUATIONCHARS 2648 956 | #define SCI_GETPUNCTUATIONCHARS 2649 957 | #define SCI_SETCHARSDEFAULT 2444 958 | #define SCI_AUTOCGETCURRENT 2445 959 | #define SCI_AUTOCGETCURRENTTEXT 2610 960 | #define SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE 0 961 | #define SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1 962 | #define SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR 2634 963 | #define SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR 2635 964 | #define SC_MULTIAUTOC_ONCE 0 965 | #define SC_MULTIAUTOC_EACH 1 966 | #define SCI_AUTOCSETMULTI 2636 967 | #define SCI_AUTOCGETMULTI 2637 968 | #define SC_ORDER_PRESORTED 0 969 | #define SC_ORDER_PERFORMSORT 1 970 | #define SC_ORDER_CUSTOM 2 971 | #define SCI_AUTOCSETORDER 2660 972 | #define SCI_AUTOCGETORDER 2661 973 | #define SCI_ALLOCATE 2446 974 | #define SCI_TARGETASUTF8 2447 975 | #define SCI_SETLENGTHFORENCODE 2448 976 | #define SCI_ENCODEDFROMUTF8 2449 977 | #define SCI_FINDCOLUMN 2456 978 | #define SC_CARETSTICKY_OFF 0 979 | #define SC_CARETSTICKY_ON 1 980 | #define SC_CARETSTICKY_WHITESPACE 2 981 | #define SCI_GETCARETSTICKY 2457 982 | #define SCI_SETCARETSTICKY 2458 983 | #define SCI_TOGGLECARETSTICKY 2459 984 | #define SCI_SETPASTECONVERTENDINGS 2467 985 | #define SCI_GETPASTECONVERTENDINGS 2468 986 | #define SCI_REPLACERECTANGULAR 2771 987 | #define SCI_SELECTIONDUPLICATE 2469 988 | #define SCI_SETCARETLINEBACKALPHA 2470 989 | #define SCI_GETCARETLINEBACKALPHA 2471 990 | #define CARETSTYLE_INVISIBLE 0 991 | #define CARETSTYLE_LINE 1 992 | #define CARETSTYLE_BLOCK 2 993 | #define CARETSTYLE_OVERSTRIKE_BAR 0 994 | #define CARETSTYLE_OVERSTRIKE_BLOCK 0x10 995 | #define CARETSTYLE_CURSES 0x20 996 | #define CARETSTYLE_INS_MASK 0xF 997 | #define CARETSTYLE_BLOCK_AFTER 0x100 998 | #define SCI_SETCARETSTYLE 2512 999 | #define SCI_GETCARETSTYLE 2513 1000 | #define SCI_SETINDICATORCURRENT 2500 1001 | #define SCI_GETINDICATORCURRENT 2501 1002 | #define SCI_SETINDICATORVALUE 2502 1003 | #define SCI_GETINDICATORVALUE 2503 1004 | #define SCI_INDICATORFILLRANGE 2504 1005 | #define SCI_INDICATORCLEARRANGE 2505 1006 | #define SCI_INDICATORALLONFOR 2506 1007 | #define SCI_INDICATORVALUEAT 2507 1008 | #define SCI_INDICATORSTART 2508 1009 | #define SCI_INDICATOREND 2509 1010 | #define SCI_SETPOSITIONCACHE 2514 1011 | #define SCI_GETPOSITIONCACHE 2515 1012 | #define SCI_SETLAYOUTTHREADS 2775 1013 | #define SCI_GETLAYOUTTHREADS 2776 1014 | #define SCI_COPYALLOWLINE 2519 1015 | #define SCI_CUTALLOWLINE 2810 1016 | #define SCI_SETCOPYSEPARATOR 2811 1017 | #define SCI_GETCOPYSEPARATOR 2812 1018 | #define SCI_GETCHARACTERPOINTER 2520 1019 | #define SCI_GETRANGEPOINTER 2643 1020 | #define SCI_GETGAPPOSITION 2644 1021 | #define SCI_INDICSETALPHA 2523 1022 | #define SCI_INDICGETALPHA 2524 1023 | #define SCI_INDICSETOUTLINEALPHA 2558 1024 | #define SCI_INDICGETOUTLINEALPHA 2559 1025 | #define SCI_SETEXTRAASCENT 2525 1026 | #define SCI_GETEXTRAASCENT 2526 1027 | #define SCI_SETEXTRADESCENT 2527 1028 | #define SCI_GETEXTRADESCENT 2528 1029 | #define SCI_MARKERSYMBOLDEFINED 2529 1030 | #define SCI_MARGINSETTEXT 2530 1031 | #define SCI_MARGINGETTEXT 2531 1032 | #define SCI_MARGINSETSTYLE 2532 1033 | #define SCI_MARGINGETSTYLE 2533 1034 | #define SCI_MARGINSETSTYLES 2534 1035 | #define SCI_MARGINGETSTYLES 2535 1036 | #define SCI_MARGINTEXTCLEARALL 2536 1037 | #define SCI_MARGINSETSTYLEOFFSET 2537 1038 | #define SCI_MARGINGETSTYLEOFFSET 2538 1039 | #define SC_MARGINOPTION_NONE 0 1040 | #define SC_MARGINOPTION_SUBLINESELECT 1 1041 | #define SCI_SETMARGINOPTIONS 2539 1042 | #define SCI_GETMARGINOPTIONS 2557 1043 | #define SCI_ANNOTATIONSETTEXT 2540 1044 | #define SCI_ANNOTATIONGETTEXT 2541 1045 | #define SCI_ANNOTATIONSETSTYLE 2542 1046 | #define SCI_ANNOTATIONGETSTYLE 2543 1047 | #define SCI_ANNOTATIONSETSTYLES 2544 1048 | #define SCI_ANNOTATIONGETSTYLES 2545 1049 | #define SCI_ANNOTATIONGETLINES 2546 1050 | #define SCI_ANNOTATIONCLEARALL 2547 1051 | #define ANNOTATION_HIDDEN 0 1052 | #define ANNOTATION_STANDARD 1 1053 | #define ANNOTATION_BOXED 2 1054 | #define ANNOTATION_INDENTED 3 1055 | #define SCI_ANNOTATIONSETVISIBLE 2548 1056 | #define SCI_ANNOTATIONGETVISIBLE 2549 1057 | #define SCI_ANNOTATIONSETSTYLEOFFSET 2550 1058 | #define SCI_ANNOTATIONGETSTYLEOFFSET 2551 1059 | #define SCI_RELEASEALLEXTENDEDSTYLES 2552 1060 | #define SCI_ALLOCATEEXTENDEDSTYLES 2553 1061 | #define UNDO_NONE 0 1062 | #define UNDO_MAY_COALESCE 1 1063 | #define SCI_ADDUNDOACTION 2560 1064 | #define SCI_CHARPOSITIONFROMPOINT 2561 1065 | #define SCI_CHARPOSITIONFROMPOINTCLOSE 2562 1066 | #define SCI_SETMOUSESELECTIONRECTANGULARSWITCH 2668 1067 | #define SCI_GETMOUSESELECTIONRECTANGULARSWITCH 2669 1068 | #define SCI_SETMULTIPLESELECTION 2563 1069 | #define SCI_GETMULTIPLESELECTION 2564 1070 | #define SCI_SETADDITIONALSELECTIONTYPING 2565 1071 | #define SCI_GETADDITIONALSELECTIONTYPING 2566 1072 | #define SCI_SETADDITIONALCARETSBLINK 2567 1073 | #define SCI_GETADDITIONALCARETSBLINK 2568 1074 | #define SCI_SETADDITIONALCARETSVISIBLE 2608 1075 | #define SCI_GETADDITIONALCARETSVISIBLE 2609 1076 | #define SCI_GETSELECTIONS 2570 1077 | #define SCI_GETSELECTIONEMPTY 2650 1078 | #define SCI_CLEARSELECTIONS 2571 1079 | #define SCI_SETSELECTION 2572 1080 | #define SCI_ADDSELECTION 2573 1081 | #define SCI_SELECTIONFROMPOINT 2474 1082 | #define SCI_DROPSELECTIONN 2671 1083 | #define SCI_SETMAINSELECTION 2574 1084 | #define SCI_GETMAINSELECTION 2575 1085 | #define SCI_SETSELECTIONNCARET 2576 1086 | #define SCI_GETSELECTIONNCARET 2577 1087 | #define SCI_SETSELECTIONNANCHOR 2578 1088 | #define SCI_GETSELECTIONNANCHOR 2579 1089 | #define SCI_SETSELECTIONNCARETVIRTUALSPACE 2580 1090 | #define SCI_GETSELECTIONNCARETVIRTUALSPACE 2581 1091 | #define SCI_SETSELECTIONNANCHORVIRTUALSPACE 2582 1092 | #define SCI_GETSELECTIONNANCHORVIRTUALSPACE 2583 1093 | #define SCI_SETSELECTIONNSTART 2584 1094 | #define SCI_GETSELECTIONNSTART 2585 1095 | #define SCI_GETSELECTIONNSTARTVIRTUALSPACE 2726 1096 | #define SCI_SETSELECTIONNEND 2586 1097 | #define SCI_GETSELECTIONNENDVIRTUALSPACE 2727 1098 | #define SCI_GETSELECTIONNEND 2587 1099 | #define SCI_SETRECTANGULARSELECTIONCARET 2588 1100 | #define SCI_GETRECTANGULARSELECTIONCARET 2589 1101 | #define SCI_SETRECTANGULARSELECTIONANCHOR 2590 1102 | #define SCI_GETRECTANGULARSELECTIONANCHOR 2591 1103 | #define SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE 2592 1104 | #define SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE 2593 1105 | #define SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2594 1106 | #define SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2595 1107 | #define SCVS_NONE 0 1108 | #define SCVS_RECTANGULARSELECTION 1 1109 | #define SCVS_USERACCESSIBLE 2 1110 | #define SCVS_NOWRAPLINESTART 4 1111 | #define SCI_SETVIRTUALSPACEOPTIONS 2596 1112 | #define SCI_GETVIRTUALSPACEOPTIONS 2597 1113 | #define SCI_SETRECTANGULARSELECTIONMODIFIER 2598 1114 | #define SCI_GETRECTANGULARSELECTIONMODIFIER 2599 1115 | #define SCI_SETADDITIONALSELFORE 2600 1116 | #define SCI_SETADDITIONALSELBACK 2601 1117 | #define SCI_SETADDITIONALSELALPHA 2602 1118 | #define SCI_GETADDITIONALSELALPHA 2603 1119 | #define SCI_SETADDITIONALCARETFORE 2604 1120 | #define SCI_GETADDITIONALCARETFORE 2605 1121 | #define SCI_ROTATESELECTION 2606 1122 | #define SCI_SWAPMAINANCHORCARET 2607 1123 | #define SCI_MULTIPLESELECTADDNEXT 2688 1124 | #define SCI_MULTIPLESELECTADDEACH 2689 1125 | #define SCI_CHANGELEXERSTATE 2617 1126 | #define SCI_CONTRACTEDFOLDNEXT 2618 1127 | #define SCI_VERTICALCENTRECARET 2619 1128 | #define SCI_MOVESELECTEDLINESUP 2620 1129 | #define SCI_MOVESELECTEDLINESDOWN 2621 1130 | #define SCI_SETIDENTIFIER 2622 1131 | #define SCI_GETIDENTIFIER 2623 1132 | #define SCI_RGBAIMAGESETWIDTH 2624 1133 | #define SCI_RGBAIMAGESETHEIGHT 2625 1134 | #define SCI_RGBAIMAGESETSCALE 2651 1135 | #define SCI_MARKERDEFINERGBAIMAGE 2626 1136 | #define SCI_REGISTERRGBAIMAGE 2627 1137 | #define SCI_SCROLLTOSTART 2628 1138 | #define SCI_SCROLLTOEND 2629 1139 | #define SC_TECHNOLOGY_DEFAULT 0 1140 | #define SC_TECHNOLOGY_DIRECTWRITE 1 1141 | #define SC_TECHNOLOGY_DIRECTWRITERETAIN 2 1142 | #define SC_TECHNOLOGY_DIRECTWRITEDC 3 1143 | #define SC_TECHNOLOGY_DIRECT_WRITE_1 4 1144 | #define SCI_SETTECHNOLOGY 2630 1145 | #define SCI_GETTECHNOLOGY 2631 1146 | #define SCI_CREATELOADER 2632 1147 | #define SCI_FINDINDICATORSHOW 2640 1148 | #define SCI_FINDINDICATORFLASH 2641 1149 | #define SCI_FINDINDICATORHIDE 2642 1150 | #define SCI_VCHOMEDISPLAY 2652 1151 | #define SCI_VCHOMEDISPLAYEXTEND 2653 1152 | #define SCI_GETCARETLINEVISIBLEALWAYS 2654 1153 | #define SCI_SETCARETLINEVISIBLEALWAYS 2655 1154 | #define SC_LINE_END_TYPE_DEFAULT 0 1155 | #define SC_LINE_END_TYPE_UNICODE 1 1156 | #define SCI_SETLINEENDTYPESALLOWED 2656 1157 | #define SCI_GETLINEENDTYPESALLOWED 2657 1158 | #define SCI_GETLINEENDTYPESACTIVE 2658 1159 | #define SCI_SETREPRESENTATION 2665 1160 | #define SCI_GETREPRESENTATION 2666 1161 | #define SCI_CLEARREPRESENTATION 2667 1162 | #define SCI_CLEARALLREPRESENTATIONS 2770 1163 | #define SC_REPRESENTATION_PLAIN 0 1164 | #define SC_REPRESENTATION_BLOB 1 1165 | #define SC_REPRESENTATION_COLOUR 0x10 1166 | #define SCI_SETREPRESENTATIONAPPEARANCE 2766 1167 | #define SCI_GETREPRESENTATIONAPPEARANCE 2767 1168 | #define SCI_SETREPRESENTATIONCOLOUR 2768 1169 | #define SCI_GETREPRESENTATIONCOLOUR 2769 1170 | #define SCI_EOLANNOTATIONSETTEXT 2740 1171 | #define SCI_EOLANNOTATIONGETTEXT 2741 1172 | #define SCI_EOLANNOTATIONSETSTYLE 2742 1173 | #define SCI_EOLANNOTATIONGETSTYLE 2743 1174 | #define SCI_EOLANNOTATIONCLEARALL 2744 1175 | #define EOLANNOTATION_HIDDEN 0x0 1176 | #define EOLANNOTATION_STANDARD 0x1 1177 | #define EOLANNOTATION_BOXED 0x2 1178 | #define EOLANNOTATION_STADIUM 0x100 1179 | #define EOLANNOTATION_FLAT_CIRCLE 0x101 1180 | #define EOLANNOTATION_ANGLE_CIRCLE 0x102 1181 | #define EOLANNOTATION_CIRCLE_FLAT 0x110 1182 | #define EOLANNOTATION_FLATS 0x111 1183 | #define EOLANNOTATION_ANGLE_FLAT 0x112 1184 | #define EOLANNOTATION_CIRCLE_ANGLE 0x120 1185 | #define EOLANNOTATION_FLAT_ANGLE 0x121 1186 | #define EOLANNOTATION_ANGLES 0x122 1187 | #define SCI_EOLANNOTATIONSETVISIBLE 2745 1188 | #define SCI_EOLANNOTATIONGETVISIBLE 2746 1189 | #define SCI_EOLANNOTATIONSETSTYLEOFFSET 2747 1190 | #define SCI_EOLANNOTATIONGETSTYLEOFFSET 2748 1191 | #define SC_SUPPORTS_LINE_DRAWS_FINAL 0 1192 | #define SC_SUPPORTS_PIXEL_DIVISIONS 1 1193 | #define SC_SUPPORTS_FRACTIONAL_STROKE_WIDTH 2 1194 | #define SC_SUPPORTS_TRANSLUCENT_STROKE 3 1195 | #define SC_SUPPORTS_PIXEL_MODIFICATION 4 1196 | #define SC_SUPPORTS_THREAD_SAFE_MEASURE_WIDTHS 5 1197 | #define SCI_SUPPORTSFEATURE 2750 1198 | #define SC_LINECHARACTERINDEX_NONE 0 1199 | #define SC_LINECHARACTERINDEX_UTF32 1 1200 | #define SC_LINECHARACTERINDEX_UTF16 2 1201 | #define SCI_GETLINECHARACTERINDEX 2710 1202 | #define SCI_ALLOCATELINECHARACTERINDEX 2711 1203 | #define SCI_RELEASELINECHARACTERINDEX 2712 1204 | #define SCI_LINEFROMINDEXPOSITION 2713 1205 | #define SCI_INDEXPOSITIONFROMLINE 2714 1206 | #define SCI_STARTRECORD 3001 1207 | #define SCI_STOPRECORD 3002 1208 | #define SCI_GETLEXER 4002 1209 | #define SCI_COLOURISE 4003 1210 | #define SCI_SETPROPERTY 4004 1211 | #define KEYWORDSET_MAX 30 1212 | #define SCI_SETKEYWORDS 4005 1213 | #define SCI_GETPROPERTY 4008 1214 | #define SCI_GETPROPERTYEXPANDED 4009 1215 | #define SCI_GETPROPERTYINT 4010 1216 | #define SCI_GETLEXERLANGUAGE 4012 1217 | #define SCI_PRIVATELEXERCALL 4013 1218 | #define SCI_PROPERTYNAMES 4014 1219 | #define SC_TYPE_BOOLEAN 0 1220 | #define SC_TYPE_INTEGER 1 1221 | #define SC_TYPE_STRING 2 1222 | #define SCI_PROPERTYTYPE 4015 1223 | #define SCI_DESCRIBEPROPERTY 4016 1224 | #define SCI_DESCRIBEKEYWORDSETS 4017 1225 | #define SCI_GETLINEENDTYPESSUPPORTED 4018 1226 | #define SCI_ALLOCATESUBSTYLES 4020 1227 | #define SCI_GETSUBSTYLESSTART 4021 1228 | #define SCI_GETSUBSTYLESLENGTH 4022 1229 | #define SCI_GETSTYLEFROMSUBSTYLE 4027 1230 | #define SCI_GETPRIMARYSTYLEFROMSTYLE 4028 1231 | #define SCI_FREESUBSTYLES 4023 1232 | #define SCI_SETIDENTIFIERS 4024 1233 | #define SCI_DISTANCETOSECONDARYSTYLES 4025 1234 | #define SCI_GETSUBSTYLEBASES 4026 1235 | #define SCI_GETNAMEDSTYLES 4029 1236 | #define SCI_NAMEOFSTYLE 4030 1237 | #define SCI_TAGSOFSTYLE 4031 1238 | #define SCI_DESCRIPTIONOFSTYLE 4032 1239 | #define SCI_SETILEXER 4033 1240 | #define SC_MOD_NONE 0x0 1241 | #define SC_MOD_INSERTTEXT 0x1 1242 | #define SC_MOD_DELETETEXT 0x2 1243 | #define SC_MOD_CHANGESTYLE 0x4 1244 | #define SC_MOD_CHANGEFOLD 0x8 1245 | #define SC_PERFORMED_USER 0x10 1246 | #define SC_PERFORMED_UNDO 0x20 1247 | #define SC_PERFORMED_REDO 0x40 1248 | #define SC_MULTISTEPUNDOREDO 0x80 1249 | #define SC_LASTSTEPINUNDOREDO 0x100 1250 | #define SC_MOD_CHANGEMARKER 0x200 1251 | #define SC_MOD_BEFOREINSERT 0x400 1252 | #define SC_MOD_BEFOREDELETE 0x800 1253 | #define SC_MULTILINEUNDOREDO 0x1000 1254 | #define SC_STARTACTION 0x2000 1255 | #define SC_MOD_CHANGEINDICATOR 0x4000 1256 | #define SC_MOD_CHANGELINESTATE 0x8000 1257 | #define SC_MOD_CHANGEMARGIN 0x10000 1258 | #define SC_MOD_CHANGEANNOTATION 0x20000 1259 | #define SC_MOD_CONTAINER 0x40000 1260 | #define SC_MOD_LEXERSTATE 0x80000 1261 | #define SC_MOD_INSERTCHECK 0x100000 1262 | #define SC_MOD_CHANGETABSTOPS 0x200000 1263 | #define SC_MOD_CHANGEEOLANNOTATION 0x400000 1264 | #define SC_MODEVENTMASKALL 0x7FFFFF 1265 | #define SC_UPDATE_NONE 0x0 1266 | #define SC_UPDATE_CONTENT 0x1 1267 | #define SC_UPDATE_SELECTION 0x2 1268 | #define SC_UPDATE_V_SCROLL 0x4 1269 | #define SC_UPDATE_H_SCROLL 0x8 1270 | #define SCEN_CHANGE 768 1271 | #define SCEN_SETFOCUS 512 1272 | #define SCEN_KILLFOCUS 256 1273 | #define SCK_DOWN 300 1274 | #define SCK_UP 301 1275 | #define SCK_LEFT 302 1276 | #define SCK_RIGHT 303 1277 | #define SCK_HOME 304 1278 | #define SCK_END 305 1279 | #define SCK_PRIOR 306 1280 | #define SCK_NEXT 307 1281 | #define SCK_DELETE 308 1282 | #define SCK_INSERT 309 1283 | #define SCK_ESCAPE 7 1284 | #define SCK_BACK 8 1285 | #define SCK_TAB 9 1286 | #define SCK_RETURN 13 1287 | #define SCK_ADD 310 1288 | #define SCK_SUBTRACT 311 1289 | #define SCK_DIVIDE 312 1290 | #define SCK_WIN 313 1291 | #define SCK_RWIN 314 1292 | #define SCK_MENU 315 1293 | #define SCMOD_NORM 0 1294 | #define SCMOD_SHIFT 1 1295 | #define SCMOD_CTRL 2 1296 | #define SCMOD_ALT 4 1297 | #define SCMOD_SUPER 8 1298 | #define SCMOD_META 16 1299 | #define SC_AC_FILLUP 1 1300 | #define SC_AC_DOUBLECLICK 2 1301 | #define SC_AC_TAB 3 1302 | #define SC_AC_NEWLINE 4 1303 | #define SC_AC_COMMAND 5 1304 | #define SC_AC_SINGLE_CHOICE 6 1305 | #define SC_CHARACTERSOURCE_DIRECT_INPUT 0 1306 | #define SC_CHARACTERSOURCE_TENTATIVE_INPUT 1 1307 | #define SC_CHARACTERSOURCE_IME_RESULT 2 1308 | #define SCN_STYLENEEDED 2000 1309 | #define SCN_CHARADDED 2001 1310 | #define SCN_SAVEPOINTREACHED 2002 1311 | #define SCN_SAVEPOINTLEFT 2003 1312 | #define SCN_MODIFYATTEMPTRO 2004 1313 | #define SCN_KEY 2005 1314 | #define SCN_DOUBLECLICK 2006 1315 | #define SCN_UPDATEUI 2007 1316 | #define SCN_MODIFIED 2008 1317 | #define SCN_MACRORECORD 2009 1318 | #define SCN_MARGINCLICK 2010 1319 | #define SCN_NEEDSHOWN 2011 1320 | #define SCN_PAINTED 2013 1321 | #define SCN_USERLISTSELECTION 2014 1322 | #define SCN_URIDROPPED 2015 1323 | #define SCN_DWELLSTART 2016 1324 | #define SCN_DWELLEND 2017 1325 | #define SCN_ZOOM 2018 1326 | #define SCN_HOTSPOTCLICK 2019 1327 | #define SCN_HOTSPOTDOUBLECLICK 2020 1328 | #define SCN_CALLTIPCLICK 2021 1329 | #define SCN_AUTOCSELECTION 2022 1330 | #define SCN_INDICATORCLICK 2023 1331 | #define SCN_INDICATORRELEASE 2024 1332 | #define SCN_AUTOCCANCELLED 2025 1333 | #define SCN_AUTOCCHARDELETED 2026 1334 | #define SCN_HOTSPOTRELEASECLICK 2027 1335 | #define SCN_FOCUSIN 2028 1336 | #define SCN_FOCUSOUT 2029 1337 | #define SCN_AUTOCCOMPLETED 2030 1338 | #define SCN_MARGINRIGHTCLICK 2031 1339 | #define SCN_AUTOCSELECTIONCHANGE 2032 1340 | #ifndef SCI_DISABLE_PROVISIONAL 1341 | #define SC_BIDIRECTIONAL_DISABLED 0 1342 | #define SC_BIDIRECTIONAL_L2R 1 1343 | #define SC_BIDIRECTIONAL_R2L 2 1344 | #define SCI_GETBIDIRECTIONAL 2708 1345 | #define SCI_SETBIDIRECTIONAL 2709 1346 | #endif 1347 | 1348 | #define SC_SEARCHRESULT_LINEBUFFERMAXLENGTH 2048 1349 | #define SCI_GETBOOSTREGEXERRMSG 5000 1350 | #define SCN_FOLDINGSTATECHANGED 2081 1351 | /* --Autogenerated -- end of section automatically generated from Scintilla.iface */ 1352 | 1353 | #endif 1354 | 1355 | /* These structures are defined to be exactly the same shape as the Win32 1356 | * CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs. 1357 | * So older code that treats Scintilla as a RichEdit will work. */ 1358 | 1359 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 1360 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL and corresponding defines/structs 1361 | //struct Sci_CharacterRange { 1362 | // Sci_PositionCR cpMin; 1363 | // Sci_PositionCR cpMax; 1364 | //}; 1365 | 1366 | struct Sci_CharacterRangeFull { 1367 | Sci_Position cpMin; 1368 | Sci_Position cpMax; 1369 | }; 1370 | 1371 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 1372 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL and corresponding defines/structs 1373 | //struct Sci_TextRange { 1374 | // struct Sci_CharacterRange chrg; 1375 | // char *lpstrText; 1376 | //}; 1377 | 1378 | struct Sci_TextRangeFull { 1379 | struct Sci_CharacterRangeFull chrg; 1380 | char *lpstrText; 1381 | }; 1382 | 1383 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 1384 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL and corresponding defines/structs 1385 | //struct Sci_TextToFind { 1386 | // struct Sci_CharacterRange chrg; 1387 | // const char *lpstrText; 1388 | // struct Sci_CharacterRange chrgText; 1389 | //}; 1390 | 1391 | struct Sci_TextToFindFull { 1392 | struct Sci_CharacterRangeFull chrg; 1393 | const char *lpstrText; 1394 | struct Sci_CharacterRangeFull chrgText; 1395 | }; 1396 | 1397 | typedef void *Sci_SurfaceID; 1398 | 1399 | struct Sci_Rectangle { 1400 | int left; 1401 | int top; 1402 | int right; 1403 | int bottom; 1404 | }; 1405 | 1406 | /* This structure is used in printing and requires some of the graphics types 1407 | * from Platform.h. Not needed by most client code. */ 1408 | 1409 | //deprecated by N++ 2GB+ support via new scintilla interfaces from 5.2.3 (see https://www.scintilla.org/ScintillaHistory.html), 1410 | //please use SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL and corresponding defines/structs 1411 | //struct Sci_RangeToFormat { 1412 | // Sci_SurfaceID hdc; 1413 | // Sci_SurfaceID hdcTarget; 1414 | // struct Sci_Rectangle rc; 1415 | // struct Sci_Rectangle rcPage; 1416 | // struct Sci_CharacterRange chrg; 1417 | //}; 1418 | 1419 | struct Sci_RangeToFormatFull { 1420 | Sci_SurfaceID hdc; 1421 | Sci_SurfaceID hdcTarget; 1422 | struct Sci_Rectangle rc; 1423 | struct Sci_Rectangle rcPage; 1424 | struct Sci_CharacterRangeFull chrg; 1425 | }; 1426 | 1427 | #ifndef __cplusplus 1428 | /* For the GTK+ platform, g-ir-scanner needs to have these typedefs. This 1429 | * is not required in C++ code and has caused problems in the past. */ 1430 | typedef struct Sci_NotifyHeader Sci_NotifyHeader; 1431 | typedef struct SCNotification SCNotification; 1432 | #endif 1433 | 1434 | struct Sci_NotifyHeader { 1435 | /* Compatible with Windows NMHDR. 1436 | * hwndFrom is really an environment specific window handle or pointer 1437 | * but most clients of Scintilla.h do not have this type visible. */ 1438 | void *hwndFrom; 1439 | uptr_t idFrom; 1440 | unsigned int code; 1441 | }; 1442 | 1443 | struct SCNotification { 1444 | Sci_NotifyHeader nmhdr; 1445 | Sci_Position position; 1446 | /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */ 1447 | /* SCN_MARGINRIGHTCLICK, SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, */ 1448 | /* SCN_CALLTIPCLICK, */ 1449 | /* SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, */ 1450 | /* SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ 1451 | /* SCN_USERLISTSELECTION, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, */ 1452 | /* SCN_AUTOCSELECTIONCHANGE */ 1453 | 1454 | int ch; 1455 | /* SCN_CHARADDED, SCN_KEY, SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, */ 1456 | /* SCN_USERLISTSELECTION */ 1457 | int modifiers; 1458 | /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, */ 1459 | /* SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ 1460 | /* SCN_MARGINCLICK, SCN_MARGINRIGHTCLICK */ 1461 | 1462 | int modificationType; /* SCN_MODIFIED */ 1463 | const char *text; 1464 | /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_URIDROPPED, */ 1465 | /* SCN_AUTOCCOMPLETED, SCN_AUTOCSELECTION, SCN_AUTOCSELECTIONCHANGE */ 1466 | 1467 | Sci_Position length; /* SCN_MODIFIED */ 1468 | Sci_Position linesAdded; /* SCN_MODIFIED */ 1469 | int message; /* SCN_MACRORECORD */ 1470 | uptr_t wParam; /* SCN_MACRORECORD */ 1471 | sptr_t lParam; /* SCN_MACRORECORD */ 1472 | Sci_Position line; /* SCN_MODIFIED */ 1473 | int foldLevelNow; /* SCN_MODIFIED */ 1474 | int foldLevelPrev; /* SCN_MODIFIED */ 1475 | int margin; /* SCN_MARGINCLICK, SCN_MARGINRIGHTCLICK */ 1476 | int listType; /* SCN_USERLISTSELECTION, SCN_AUTOCSELECTIONCHANGE */ 1477 | int x; /* SCN_DWELLSTART, SCN_DWELLEND */ 1478 | int y; /* SCN_DWELLSTART, SCN_DWELLEND */ 1479 | int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ 1480 | Sci_Position annotationLinesAdded; /* SCN_MODIFIED with SC_MOD_CHANGEANNOTATION */ 1481 | int updated; /* SCN_UPDATEUI */ 1482 | int listCompletionMethod; 1483 | /* SCN_AUTOCSELECTION, SCN_AUTOCCOMPLETED, SCN_USERLISTSELECTION */ 1484 | int characterSource; /* SCN_CHARADDED */ 1485 | }; 1486 | 1487 | #include 1488 | struct SearchResultMarkingLine { // each line could have several segments if user want to see only 1 found line which contains several results 1489 | std::vector> _segmentPostions; // a vector of pair of start & end of occurrence for colourizing 1490 | }; 1491 | 1492 | struct SearchResultMarkings { 1493 | intptr_t _length; 1494 | SearchResultMarkingLine *_markings; 1495 | }; 1496 | #ifdef INCLUDE_DEPRECATED_FEATURES 1497 | 1498 | #define SCI_SETKEYSUNICODE 2521 1499 | #define SCI_GETKEYSUNICODE 2522 1500 | 1501 | #define SCI_GETTWOPHASEDRAW 2283 1502 | #define SCI_SETTWOPHASEDRAW 2284 1503 | 1504 | #define CharacterRange Sci_CharacterRange 1505 | #define TextRange Sci_TextRange 1506 | #define TextToFind Sci_TextToFind 1507 | #define RangeToFormat Sci_RangeToFormat 1508 | #define NotifyHeader Sci_NotifyHeader 1509 | 1510 | #define SCI_SETSTYLEBITS 2090 1511 | #define SCI_GETSTYLEBITS 2091 1512 | #define SCI_GETSTYLEBITSNEEDED 4011 1513 | 1514 | #define INDIC0_MASK 0x20 1515 | #define INDIC1_MASK 0x40 1516 | #define INDIC2_MASK 0x80 1517 | #define INDICS_MASK 0xE0 1518 | 1519 | #endif 1520 | 1521 | #endif 1522 | --------------------------------------------------------------------------------