# HG changeset patch # User thomas_-_s # Date 1213550135 0 # Node ID 5fe3aefed089ee7eca4edd86c40d2c876846a984 # Parent 0745e5a3a9df7f98de804fa94adee88401bf8324 Initial commit of plugin for Notepad++. Had to make some changes to the indenthandler, which need to be put under a ifdef switch. But at first it at least works. git-svn-id: svn://svn.code.sf.net/p/universalindent/code/trunk@729 59b1889a-e5ac-428c-b0c7-476e01d41282 diff -r 0745e5a3a9df -r 5fe3aefed089 UniversalIndentGUI.sln --- a/UniversalIndentGUI.sln Fri Jun 13 12:13:27 2008 +0000 +++ b/UniversalIndentGUI.sln Sun Jun 15 17:15:35 2008 +0000 @@ -1,8 +1,9 @@ - Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 +# Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UniversalIndentGUI", "src\UniversalIndentGUI.vcproj", "{CF521500-824E-4DB7-A7FA-F4A8B6BB008A}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UniversalIndentGUI_NPP", "src\UniversalIndentGUI_NPP\UniversalIndentGUI_NPP.vcproj", "{0A9F9D63-C282-4AE8-9F80-A6D5F541AD12}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -13,6 +14,10 @@ {CF521500-824E-4DB7-A7FA-F4A8B6BB008A}.Debug|Win32.Build.0 = Debug|Win32 {CF521500-824E-4DB7-A7FA-F4A8B6BB008A}.Release|Win32.ActiveCfg = Release|Win32 {CF521500-824E-4DB7-A7FA-F4A8B6BB008A}.Release|Win32.Build.0 = Release|Win32 + {0A9F9D63-C282-4AE8-9F80-A6D5F541AD12}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A9F9D63-C282-4AE8-9F80-A6D5F541AD12}.Debug|Win32.Build.0 = Debug|Win32 + {0A9F9D63-C282-4AE8-9F80-A6D5F541AD12}.Release|Win32.ActiveCfg = Release|Win32 + {0A9F9D63-C282-4AE8-9F80-A6D5F541AD12}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI.vcproj --- a/src/UniversalIndentGUI.vcproj Fri Jun 13 12:13:27 2008 +0000 +++ b/src/UniversalIndentGUI.vcproj Sun Jun 15 17:15:35 2008 +0000 @@ -79,6 +79,7 @@ AdditionalDependencies="qtmaind.lib QtGuid4.lib QtCored4.lib QtNetworkd4.lib QtScriptd4.lib qscintilla2.lib" LinkIncremental="2" IgnoreAllDefaultLibraries="false" + IgnoreDefaultLibraryNames="LIBCRMTD.lib" GenerateDebugInformation="true" SubSystem="2" TargetMachine="1" diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Docking.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Docking.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,81 @@ +/* +This file is part of Notepad++ - interface defines +Copyright (C)2006 Jens Lorenz + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + + +#ifndef DOCKING_H +#define DOCKING_H + + +#include "windows.h" + +// defines for docking manager +#define CONT_LEFT 0 +#define CONT_RIGHT 1 +#define CONT_TOP 2 +#define CONT_BOTTOM 3 +#define DOCKCONT_MAX 4 + +// mask params for plugins of internal dialogs +#define DWS_ICONTAB 0x00000001 // Icon for tabs are available +#define DWS_ICONBAR 0x00000002 // Icon for icon bar are available (currently not supported) +#define DWS_ADDINFO 0x00000004 // Additional information are in use +#define DWS_PARAMSALL (DWS_ICONTAB|DWS_ICONBAR|DWS_ADDINFO) + +// default docking values for first call of plugin +#define DWS_DF_CONT_LEFT (CONT_LEFT << 28) // default docking on left +#define DWS_DF_CONT_RIGHT (CONT_RIGHT << 28) // default docking on right +#define DWS_DF_CONT_TOP (CONT_TOP << 28) // default docking on top +#define DWS_DF_CONT_BOTTOM (CONT_BOTTOM << 28) // default docking on bottom +#define DWS_DF_FLOATING 0x80000000 // default state is floating + + +typedef struct { + HWND hClient; // client Window Handle + char* pszName; // name of plugin (shown in window) + int dlgID; // a funcItem provides the function pointer to start a dialog. Please parse here these ID + + /* user modifications */ + UINT uMask; // mask params: look to above defines + HICON hIconTab; // icon for tabs + char* pszAddInfo; // for plugin to display additional informations + + /* internal data, do not use !!! */ + RECT rcFloat; // floating position + int iPrevCont; // stores the privious container (toggling between float and dock) + const char* pszModuleName; // it's the plugin file name. It's used to identify the plugin +} tTbData; + + + +/* notifications of docking */ +#define DMN_FIRST 1050 + #define DMN_CLOSE (DMN_FIRST + 1) + //nmhdr.code = DWORD(DMN_CLOSE, 0)); + //nmhdr.hwndFrom = hwndNpp; + //nmhdr.idFrom = ctrlIdNpp; + + #define DMN_DOCK (DMN_FIRST + 2) + #define DMN_FLOAT (DMN_FIRST + 3) + //nmhdr.code = DWORD(DMN_XXX, int newContainer); + //nmhdr.hwndFrom = hwndNpp; + //nmhdr.idFrom = ctrlIdNpp; + + + +#endif // DOCKING_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/DockingDlgInterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/DockingDlgInterface.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,137 @@ +/* +This file is part of Notepad++ - Interface defines +Copyright (C)2006 Jens Lorenz + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + + +#ifndef DOCKINGDLGINTERFACE_H +#define DOCKINGDLGINTERFACE_H + +#include "StaticDialog.h" +#include "Resource.h" +#include "Docking.h" +#include + +#define UPDATE_CAPTION updateDockingDlg + + +class DockingDlgInterface : public StaticDialog +{ +public: + DockingDlgInterface(): StaticDialog() {}; + DockingDlgInterface(int dlgID): StaticDialog(), _dlgID(dlgID) {}; + + virtual void init(HINSTANCE hInst, HWND parent) + { + StaticDialog::init(hInst, parent); + ::GetModuleFileName((HMODULE)hInst, _moduleName, MAX_PATH); + strcpy(_moduleName, PathFindFileName(_moduleName)); + } + + void create(tTbData * data, bool isRTL = false){ + StaticDialog::create(_dlgID, isRTL); + ::GetWindowText(_hSelf, _pluginName, sizeof(_pluginName)); + + /* user information */ + data->hClient = _hSelf; + data->pszName = _pluginName; + + /* supported features by plugin */ + data->uMask = 0; + + /* icons */ + //data->hIconBar = ::LoadIcon(hInst, IDB_CLOSE_DOWN); + //data->hIconTab = ::LoadIcon(hInst, IDB_CLOSE_DOWN); + + /* additional info */ + data->pszAddInfo = NULL; + + _data = data; + }; + + virtual void updateDockingDlg(void) { + ::SendMessage(_hParent, NPPM_DMMUPDATEDISPINFO, 0, (LPARAM)_hSelf); + } + + virtual void destroy() { + }; + + virtual void display(bool toShow = true) const { + extern FuncItem funcItem[]; + ::SendMessage(_hParent, toShow?NPPM_DMMSHOW:NPPM_DMMHIDE, 0, (LPARAM)_hSelf); + if (_data != NULL) + ::SendMessage(_hParent, NPPM_SETMENUITEMCHECK, funcItem[_data->dlgID]._cmdID, (LPARAM)toShow); + }; + + const char * getPluginFileName() const { + return _moduleName; + }; + +protected : + virtual BOOL CALLBACK run_dlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) + { + switch (message) + { + case WM_NOTIFY: + { + LPNMHDR pnmh = (LPNMHDR)lParam; + + if (pnmh->hwndFrom == _hParent) + { + switch (LOWORD(pnmh->code)) + { + case DMN_CLOSE: + { + extern FuncItem funcItem[]; + if (_data != NULL) + ::SendMessage(_hParent, NPPM_SETMENUITEMCHECK, funcItem[_data->dlgID]._cmdID, (LPARAM)FALSE); + break; + } + case DMN_FLOAT: + { + _isFloating = true; + break; + } + case DMN_DOCK: + { + _isFloating = false; + _iDockedPos = HIWORD(pnmh->code); + break; + } + default: + break; + } + } + break; + } + default: + break; + } + return FALSE; + }; + + /* Handles */ + HWND _HSource; + tTbData* _data; + int _dlgID; + bool _isFloating; + int _iDockedPos; + char _moduleName[MAX_PATH]; + char _pluginName[MAX_PATH]; +}; + +#endif // DOCKINGDLGINTERFACE_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ImageListSet.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ImageListSet.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,70 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#include "ImageListSet.h" +//#include "resource.h" + +void ToolBarIcons::init(ToolBarButtonUnit *buttonUnitArray, int arraySize) +{ + for (int i = 0 ; i < arraySize ; i++) + _tbiis.push_back(buttonUnitArray[i]); +} + +void ToolBarIcons::create(HINSTANCE hInst, int iconSize) +{ + _iconListVector.push_back(IconList()); + _iconListVector.push_back(IconList()); + _iconListVector.push_back(IconList()); + //_iconListVector.push_back(IconList()); + + _iconListVector[HLIST_DEFAULT].create(hInst, iconSize); + _iconListVector[HLIST_HOT].create(hInst, iconSize); + _iconListVector[HLIST_DISABLE].create(hInst, iconSize); + //_iconListVector[HLIST_UGLY].create(hInst, 16); + + for (size_t i = 0 ; i < _tbiis.size() ; i++) + { + _cmdArray[_nbCmd++] = _tbiis[i]._cmdID; + if (_tbiis[i]._defaultIcon != IDI_SEPARATOR_ICON) + { + _iconListVector[HLIST_DEFAULT].addIcon(_tbiis[i]._defaultIcon); + _iconListVector[HLIST_HOT].addIcon(_tbiis[i]._hotIcon); + _iconListVector[HLIST_DISABLE].addIcon(_tbiis[i]._grayIcon); + //_iconListVector[HLIST_UGLY].addImage(_tbiis[i]._uglyIcon); + } + } +} + +void ToolBarIcons::destroy() +{ + _iconListVector[HLIST_DEFAULT].destroy(); + _iconListVector[HLIST_HOT].destroy(); + _iconListVector[HLIST_DISABLE].destroy(); + //_iconListVector[HLIST_UGLY].destroy(); +} +/* +bool IconList::changeIcon(int index, const char *iconLocation) const +{ + HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, _iconSize, _iconSize, LR_LOADFROMFILE ); + if (!hBmp) + return false; + int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp); + ::DeleteObject(hBmp); + return (i == index); +} +*/ + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ImageListSet.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ImageListSet.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,209 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef IMAGE_LIST_H +#define IMAGE_LIST_H + +#include +#include +#include + +const int nbMax = 45; +#define IDI_SEPARATOR_ICON -1 + +class IconList +{ +public : + IconList() : _hImglst(NULL) {}; + + void create(HINSTANCE hInst, int iconSize) {_iconSize = iconSize; + _hInst = hInst; + InitCommonControls(); + _hImglst = ImageList_Create(iconSize, iconSize, ILC_COLOR32 | ILC_MASK, 0, nbMax); + if (!_hImglst) + throw int(25); + }; + + void create(int iconSize, HINSTANCE hInst, int *iconIDArray, int iconIDArraySize) { + create(hInst, iconSize); + _pIconIDArray = iconIDArray; + _iconIDArraySize = iconIDArraySize; + + for (int i = 0 ; i < iconIDArraySize ; i++) + addIcon(iconIDArray[i]); + }; + + void destroy() { + ImageList_Destroy(_hImglst); + }; + + HIMAGELIST getHandle() const {return _hImglst;}; + + void addIcon(int iconID) const { + HICON hIcon = ::LoadIcon(_hInst, MAKEINTRESOURCE(iconID)); + //HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, MAKEINTRESOURCE(iconID), IMAGE_ICON, _iconSize, _iconSize, LR_LOADMAP3DCOLORS); + if (!hIcon) + throw int(26); + ImageList_AddIcon(_hImglst, hIcon); + //ImageList_AddMasked(_hImglst, (HBITMAP)hBmp, RGB(0, 0, 0)); + ::DeleteObject(hIcon); + //::DeleteObject(hBmp); + }; + + bool changeIcon(int index, const char *iconLocation) const{ + HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, _iconSize, _iconSize, LR_LOADFROMFILE | LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + if (!hBmp) + return false; + int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp); + ImageList_AddMasked(_hImglst, (HBITMAP)hBmp, RGB(255,0,255)); + ::DeleteObject(hBmp); + return (i == index); + }; +/* + bool changeIcon(int index, const char *iconLocation, int size) const{ + HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, iconLocation, IMAGE_ICON, size, size, LR_LOADFROMFILE | LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + if (!hBmp) + return false; + int i = ImageList_ReplaceIcon(_hImglst, index, (HICON)hBmp); + ::DeleteObject(hBmp); + return (i == index); + };*/ + +/* + void addImage(int iconID) const { + HBITMAP hBmp = ::LoadBitmap(_hInst, MAKEINTRESOURCE("STD_FILEOPEN")); + //HBITMAP hBmp = (HBITMAP)::LoadImage(_hInst, MAKEINTRESOURCE(iconID), IMAGE_ICON, _iconSize, _iconSize, LR_LOADMAP3DCOLORS); + ImageList_Add(_hImglst, hBmp, NULL); + ::DeleteObject(hBmp); + }; +*/ + void setIconSize(int size) const { + ImageList_SetIconSize(_hImglst, size, size); + for (int i = 0 ; i < _iconIDArraySize ; i++) + addIcon(_pIconIDArray[i]); + }; +private : + HIMAGELIST _hImglst; + HINSTANCE _hInst; + int *_pIconIDArray; + int _iconIDArraySize; + int _iconSize; +}; + +typedef struct +{ + int _cmdID; + + int _defaultIcon; + int _hotIcon; + int _grayIcon; + + int _uglyIcon; + + UINT _uIconStyle; +}ToolBarButtonUnit; + +typedef std::vector ToolBarIconIDs; + +typedef std::vector IconListVector; + +class IconLists +{ +public : + IconLists() {}; + HIMAGELIST getImageListHandle(int index) const { + return _iconListVector[index].getHandle(); + }; + +protected : + IconListVector _iconListVector; +}; + +const int HLIST_DEFAULT = 0; +const int HLIST_HOT = 1; +const int HLIST_DISABLE = 2; + +class ToolBarIcons : public IconLists +{ +public : + ToolBarIcons() : _nbCmd(0) {}; + + void init(ToolBarButtonUnit *buttonUnitArray, int arraySize); + void create(HINSTANCE hInst, int iconSize); + void destroy(); + + HIMAGELIST getDefaultLst() const { + return IconLists::getImageListHandle(HLIST_DEFAULT); + }; + + HIMAGELIST getHotLst() const { + return IconLists::getImageListHandle(HLIST_HOT); + }; + + HIMAGELIST getDisableLst() const { + return IconLists::getImageListHandle(HLIST_DISABLE); + }; + + int getNbCommand() const {return _nbCmd;}; + int getCommandAt(int index) const {return _cmdArray[index];}; + void resizeIcon(int size) { + reInit(size); + }; + + void reInit(int size) { + ImageList_SetIconSize(getDefaultLst(), size, size); + ImageList_SetIconSize(getHotLst(), size, size); + ImageList_SetIconSize(getDisableLst(), size, size); + + for (int i = 0 ; i < int(_tbiis.size()) ; i++) + { + if (_tbiis[i]._defaultIcon != -1) + { + _iconListVector[HLIST_DEFAULT].addIcon(_tbiis[i]._defaultIcon); + _iconListVector[HLIST_HOT].addIcon(_tbiis[i]._hotIcon); + _iconListVector[HLIST_DISABLE].addIcon(_tbiis[i]._grayIcon); + } + } + + }; + + int getNbIcon() const { + return int(_tbiis.size()); + }; + + int getUglyIconAt(int i) const { + return _tbiis[i]._uglyIcon; + }; + + UINT getIconStyle(int i) const { + return _tbiis[i]._uIconStyle; + }; + + bool replaceIcon(int witchList, int iconIndex, const char *iconLocation) const { + if ((witchList != HLIST_DEFAULT) && (witchList != HLIST_HOT) && (witchList != HLIST_DISABLE)) + return false; + return _iconListVector[witchList].changeIcon(iconIndex, iconLocation); + + }; + +private : + ToolBarIconIDs _tbiis; + int _cmdArray[nbMax]; + int _nbCmd; +}; + +#endif //IMAGE_LIST_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Notepad_plus_msgs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Notepad_plus_msgs.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,238 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef NOTEPAD_PLUS_MSGS_H +#define NOTEPAD_PLUS_MSGS_H + +enum LangType {L_TXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\ + L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_NFO, L_USER,\ + L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA,\ + L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,\ + L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,\ + L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT, L_CMAKE,\ + // The end of enumated language type, so it should be always at the end + L_END}; +enum winVer{WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV_S2003, WV_XPX64, WV_VISTA}; + + +//#include "deprecatedSymbols.h" + +//Here you can find how to use these messages : http://notepad-plus.sourceforge.net/uk/plugins-HOWTO.php +#define NPPMSG (WM_USER + 1000) + + #define NPPM_GETCURRENTSCINTILLA (NPPMSG + 4) + #define NPPM_GETCURRENTLANGTYPE (NPPMSG + 5) + #define NPPM_SETCURRENTLANGTYPE (NPPMSG + 6) + + #define NPPM_GETNBOPENFILES (NPPMSG + 7) + #define ALL_OPEN_FILES 0 + #define PRIMARY_VIEW 1 + #define SECOND_VIEW 2 + + #define NPPM_GETOPENFILENAMES (NPPMSG + 8) + + + #define NPPM_MODELESSDIALOG (NPPMSG + 12) + #define MODELESSDIALOGADD 0 + #define MODELESSDIALOGREMOVE 1 + + #define NPPM_GETNBSESSIONFILES (NPPMSG + 13) + #define NPPM_GETSESSIONFILES (NPPMSG + 14) + #define NPPM_SAVESESSION (NPPMSG + 15) + #define NPPM_SAVECURRENTSESSION (NPPMSG + 16) + + struct sessionInfo { + char* sessionFilePathName; + int nbFile; + char** files; + }; + + #define NPPM_GETOPENFILENAMESPRIMARY (NPPMSG + 17) + #define NPPM_GETOPENFILENAMESSECOND (NPPMSG + 18) + + #define NPPM_CREATESCINTILLAHANDLE (NPPMSG + 20) + #define NPPM_DESTROYSCINTILLAHANDLE (NPPMSG + 21) + #define NPPM_GETNBUSERLANG (NPPMSG + 22) + + #define NPPM_GETCURRENTDOCINDEX (NPPMSG + 23) + #define MAIN_VIEW 0 + #define SUB_VIEW 1 + + #define NPPM_SETSTATUSBAR (NPPMSG + 24) + #define STATUSBAR_DOC_TYPE 0 + #define STATUSBAR_DOC_SIZE 1 + #define STATUSBAR_CUR_POS 2 + #define STATUSBAR_EOF_FORMAT 3 + #define STATUSBAR_UNICODE_TYPE 4 + #define STATUSBAR_TYPING_MODE 5 + + #define NPPM_GETMENUHANDLE (NPPMSG + 25) + #define NPPPLUGINMENU 0 + + #define NPPM_ENCODESCI (NPPMSG + 26) + //ascii file to unicode + //int NPPM_ENCODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return new unicodeMode + + #define NPPM_DECODESCI (NPPMSG + 27) + //unicode file to ascii + //int NPPM_DECODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return old unicodeMode + + #define NPPM_ACTIVATEDOC (NPPMSG + 28) + //void NPPM_ACTIVATEDOC(int index2Activate, int view) + + #define NPPM_LAUNCHFINDINFILESDLG (NPPMSG + 29) + //void NPPM_LAUNCHFINDINFILESDLG(char * dir2Search, char * filtre) + + #define NPPM_DMMSHOW (NPPMSG + 30) + #define NPPM_DMMHIDE (NPPMSG + 31) + #define NPPM_DMMUPDATEDISPINFO (NPPMSG + 32) + //void NPPM_DMMxxx(0, tTbData->hClient) + + #define NPPM_DMMREGASDCKDLG (NPPMSG + 33) + //void NPPM_DMMREGASDCKDLG(0, &tTbData) + + #define NPPM_LOADSESSION (NPPMSG + 34) + //void NPPM_LOADSESSION(0, const char* file name) + + #define NPPM_DMMVIEWOTHERTAB (NPPMSG + 35) + //void WM_DMM_VIEWOTHERTAB(0, tTbData->hClient) + + #define NPPM_RELOADFILE (NPPMSG + 36) + //BOOL NPPM_RELOADFILE(BOOL withAlert, char *filePathName2Reload) + + #define NPPM_SWITCHTOFILE (NPPMSG + 37) + //BOOL NPPM_SWITCHTOFILE(0, char *filePathName2switch) + + #define NPPM_SAVECURRENTFILE (NPPMSG + 38) + //BOOL WM_SWITCHTOFILE(0, 0) + + #define NPPM_SAVEALLFILES (NPPMSG + 39) + //BOOL NPPM_SAVEALLFILES(0, 0) + + #define NPPM_SETMENUITEMCHECK (NPPMSG + 40) + //void WM_PIMENU_CHECK(UINT funcItem[X]._cmdID, TRUE/FALSE) + + #define NPPM_ADDTOOLBARICON (NPPMSG + 41) + //void WM_ADDTOOLBARICON(UINT funcItem[X]._cmdID, toolbarIcons icon) + struct toolbarIcons { + HBITMAP hToolbarBmp; + HICON hToolbarIcon; + }; + + #define NPPM_GETWINDOWSVERSION (NPPMSG + 42) + //winVer NPPM_GETWINDOWSVERSION(0, 0) + + #define NPPM_DMMGETPLUGINHWNDBYNAME (NPPMSG + 43) + //HWND WM_DMM_GETPLUGINHWNDBYNAME(const char *windowName, const char *moduleName) + // if moduleName is NULL, then return value is NULL + // if windowName is NULL, then the first found window handle which matches with the moduleName will be returned + + #define NPPM_MAKECURRENTBUFFERDIRTY (NPPMSG + 44) + //BOOL NPPM_MAKECURRENTBUFFERDIRTY(0, 0) + + #define NPPM_GETENABLETHEMETEXTUREFUNC (NPPMSG + 45) + //BOOL NPPM_GETENABLETHEMETEXTUREFUNC(0, 0) + + #define NPPM_GETPLUGINSCONFIGDIR (NPPMSG + 46) + //void NPPM_GETPLUGINSCONFIGDIR(int strLen, char *str) + + #define NPPM_MSGTOPLUGIN (NPPMSG + 47) + //BOOL NPPM_MSGTOPLUGIN(char *destModuleName, CommunicationInfo *info) + // return value is TRUE when the message arrive to the destination plugins. + // if destModule or info is NULL, then return value is FALSE + struct CommunicationInfo { + long internalMsg; + const char * srcModuleName; + void * info; // defined by plugin + }; + +#define RUNCOMMAND_USER (WM_USER + 3000) + #define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH) + #define NPPM_GETCURRENTDIRECTORY (RUNCOMMAND_USER + CURRENT_DIRECTORY) + #define NPPM_GETFILENAME (RUNCOMMAND_USER + FILE_NAME) + #define NPPM_GETNAMEPART (RUNCOMMAND_USER + NAME_PART) + #define NPPM_GETEXTPART (RUNCOMMAND_USER + EXT_PART) + #define NPPM_GETCURRENTWORD (RUNCOMMAND_USER + CURRENT_WORD) + #define NPPM_GETNPPDIRECTORY (RUNCOMMAND_USER + NPP_DIRECTORY) + + #define VAR_NOT_RECOGNIZED 0 + #define FULL_CURRENT_PATH 1 + #define CURRENT_DIRECTORY 2 + #define FILE_NAME 3 + #define NAME_PART 4 + #define EXT_PART 5 + #define CURRENT_WORD 6 + #define NPP_DIRECTORY 7 + + +// Notification code +#define NPPN_FIRST 1000 + + // To notify plugins that all the procedures of launchment of notepad++ are done. + #define NPPN_READY (NPPN_FIRST + 1) + //scnNotification->nmhdr.code = NPPN_READY; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that toolbar icons can be registered + #define NPPN_TBMODIFICATION (NPPN_FIRST + 2) + //scnNotification->nmhdr.code = NPPN_TB_MODIFICATION; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that the current file is about to be closed + #define NPPN_FILEBEFORECLOSE (NPPN_FIRST + 3) + //scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that the current file is just opened + #define NPPN_FILEOPENED (NPPN_FIRST + 4) + //scnNotification->nmhdr.code = NPPN_FILEOPENED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that the current file is about to be closed + #define NPPN_FILECLOSED (NPPN_FIRST + 5) + //scnNotification->nmhdr.code = NPPN_FILECLOSED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that the current file is about to be opened + #define NPPN_FILEBEFOREOPEN (NPPN_FIRST + 6) + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that the current file is just saved + #define NPPN_FILEBEFORESAVE (NPPN_FIRST + 7) + //scnNotification->nmhdr.code = NPPN_FILEBEFORESAVE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + // To notify plugins that the current file is about to be saved + #define NPPN_FILESAVED (NPPN_FIRST + 8) + //scnNotification->nmhdr.code = NPPN_FILESAVED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + +#define NPPM_DOOPEN (SCINTILLA_USER + 8) + + +#endif //NOTEPAD_PLUS_MSGS_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Notepad_plus_rc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Notepad_plus_rc.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,553 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef NPP_RESOURCE_H +#define NPP_RESOURCE_H + + +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif + +#define IDI_M30ICON 100 +#define IDR_MENU1 101 +#define IDR_ACCELERATOR1 102 +#define IDR_RT_MANIFEST 103 + +#define IDI_NEW_OFF_ICON 201 +#define IDI_OPEN_OFF_ICON 202 +#define IDI_CLOSE_OFF_ICON 203 +#define IDI_CLOSEALL_OFF_ICON 204 +#define IDI_SAVE_OFF_ICON 205 +#define IDI_SAVEALL_OFF_ICON 206 +#define IDI_CUT_OFF_ICON 207 +#define IDI_COPY_OFF_ICON 208 +#define IDI_PASTE_OFF_ICON 209 +#define IDI_UNDO_OFF_ICON 210 +#define IDI_REDO_OFF_ICON 211 +#define IDI_FIND_OFF_ICON 212 +#define IDI_REPLACE_OFF_ICON 213 +#define IDI_ZOOMIN_OFF_ICON 214 +#define IDI_ZOOMOUT_OFF_ICON 215 +#define IDI_VIEW_UD_DLG_OFF_ICON 216 +#define IDI_PRINT_OFF_ICON 217 +#define IDI_VIEW_ALL_CHAR_ON_ICON 218 +#define IDI_VIEW_INDENT_ON_ICON 219 +#define IDI_VIEW_WRAP_ON_ICON 220 + +#define IDI_STARTRECORD_OFF_ICON 221 +#define IDI_STARTRECORD_ON_ICON 222 +#define IDI_STARTRECORD_DISABLE_ICON 223 +#define IDI_STOPRECORD_OFF_ICON 224 +#define IDI_STOPRECORD_ON_ICON 225 +#define IDI_STOPRECORD_DISABLE_ICON 226 +#define IDI_PLAYRECORD_OFF_ICON 227 +#define IDI_PLAYRECORD_ON_ICON 228 +#define IDI_PLAYRECORD_DISABLE_ICON 229 +#define IDI_SAVERECORD_OFF_ICON 230 +#define IDI_SAVERECORD_ON_ICON 231 +#define IDI_SAVERECORD_DISABLE_ICON 232 + +// multi run macro +#define IDI_MMPLAY_DIS_ICON 233 +#define IDI_MMPLAY_OFF_ICON 234 +#define IDI_MMPLAY_ON_ICON 235 + +#define IDI_NEW_ON_ICON 301 +#define IDI_OPEN_ON_ICON 302 +#define IDI_CLOSE_ON_ICON 303 +#define IDI_CLOSEALL_ON_ICON 304 +#define IDI_SAVE_ON_ICON 305 +#define IDI_SAVEALL_ON_ICON 306 +#define IDI_CUT_ON_ICON 307 +#define IDI_COPY_ON_ICON 308 +#define IDI_PASTE_ON_ICON 309 +#define IDI_UNDO_ON_ICON 310 +#define IDI_REDO_ON_ICON 311 +#define IDI_FIND_ON_ICON 312 +#define IDI_REPLACE_ON_ICON 313 +#define IDI_ZOOMIN_ON_ICON 314 +#define IDI_ZOOMOUT_ON_ICON 315 +#define IDI_VIEW_UD_DLG_ON_ICON 316 +#define IDI_PRINT_ON_ICON 317 +#define IDI_VIEW_ALL_CHAR_OFF_ICON 318 +#define IDI_VIEW_INDENT_OFF_ICON 319 +#define IDI_VIEW_WRAP_OFF_ICON 320 + +//#define IDI_NEW_DISABLE_ICON 401 +//#define IDI_OPEN_ON_ICON 402 +#define IDI_SAVE_DISABLE_ICON 403 +#define IDI_SAVEALL_DISABLE_ICON 404 +//#define IDI_CLOSE_ON_ICON 405 +//#define IDI_CLOSEALL_ON_ICON 406 +#define IDI_CUT_DISABLE_ICON 407 +#define IDI_COPY_DISABLE_ICON 408 +#define IDI_PASTE_DISABLE_ICON 409 +#define IDI_UNDO_DISABLE_ICON 410 +#define IDI_REDO_DISABLE_ICON 411 +#define IDI_DELETE_ICON 412 + +#define IDI_SYNCV_OFF_ICON 413 +#define IDI_SYNCV_ON_ICON 414 +#define IDI_SYNCV_DISABLE_ICON 415 + +#define IDI_SYNCH_OFF_ICON 416 +#define IDI_SYNCH_ON_ICON 417 +#define IDI_SYNCH_DISABLE_ICON 418 + +#define IDI_SAVED_ICON 501 +#define IDI_UNSAVED_ICON 502 +#define IDI_READONLY_ICON 503 +#define IDI_FIND_RESULT_ICON 504 + +#define IDC_MY_CUR 1402 +#define IDC_UP_ARROW 1403 +#define IDC_DRAG_TAB 1404 +#define IDC_DRAG_INTERDIT_TAB 1405 +#define IDC_DRAG_PLUS_TAB 1406 +#define IDC_MACRO_RECORDING 1407 + +#define IDR_SAVEALL 1500 +#define IDR_CLOSEFILE 1501 +#define IDR_CLOSEALL 1502 +#define IDR_FIND 1503 +#define IDR_REPLACE 1504 +#define IDR_ZOOMIN 1505 +#define IDR_ZOOMOUT 1506 +#define IDR_WRAP 1507 +#define IDR_INVISIBLECHAR 1508 +#define IDR_INDENTGUIDE 1509 +#define IDR_SHOWPANNEL 1510 +#define IDR_STARTRECORD 1511 +#define IDR_STOPRECORD 1512 +#define IDR_PLAYRECORD 1513 +#define IDR_SAVERECORD 1514 +#define IDR_SYNCV 1515 +#define IDR_SYNCH 1516 +#define IDR_FILENEW 1517 +#define IDR_FILEOPEN 1518 +#define IDR_FILESAVE 1519 +#define IDR_PRINT 1520 +#define IDR_CUT 1521 +#define IDR_COPY 1522 +#define IDR_PASTE 1523 +#define IDR_UNDO 1524 +#define IDR_REDO 1525 +#define IDR_M_PLAYRECORD 1526 + +#define IDR_CLOSETAB 1530 +#define IDR_CLOSETAB_INACT 1531 +#define IDR_CLOSETAB_HOVER 1532 +#define IDR_CLOSETAB_PUSH 1533 + +#define ID_MACRO 20000 +#define ID_MACRO_LIMIT 20200 + +#define ID_USER_CMD 21000 +#define ID_USER_CMD_LIMIT 21200 + +#define ID_PLUGINS_CMD 22000 +#define ID_PLUGINS_CMD_LIMIT 22500 + +#define IDM 40000 + +#define IDM_FILE (IDM + 1000) + #define IDM_FILE_NEW (IDM_FILE + 1) + #define IDM_FILE_OPEN (IDM_FILE + 2) + #define IDM_FILE_CLOSE (IDM_FILE + 3) + #define IDM_FILE_CLOSEALL (IDM_FILE + 4) + #define IDM_FILE_CLOSEALL_BUT_CURRENT (IDM_FILE + 5) + #define IDM_FILE_SAVE (IDM_FILE + 6) + #define IDM_FILE_SAVEALL (IDM_FILE + 7) + #define IDM_FILE_SAVEAS (IDM_FILE + 8) + #define IDM_FILE_ASIAN_LANG (IDM_FILE + 9) + #define IDM_FILE_PRINT (IDM_FILE + 10) + #define IDM_FILE_EXIT (IDM_FILE + 11) + #define IDM_FILE_LOADSESSION (IDM_FILE + 12) + #define IDM_FILE_SAVESESSION (IDM_FILE + 13) + #define IDM_FILE_RELOAD (IDM_FILE + 14) + + // A mettre à jour si on ajoute nouveau menu item dans le menu "File" + #define IDM_FILEMENU_LASTONE IDM_FILE_RELOAD + +#define IDM_EDIT (IDM + 2000) + #define IDM_EDIT_CUT (IDM_EDIT + 1) + #define IDM_EDIT_COPY (IDM_EDIT + 2) + #define IDM_EDIT_UNDO (IDM_EDIT + 3) + #define IDM_EDIT_REDO (IDM_EDIT + 4) + #define IDM_EDIT_PASTE (IDM_EDIT + 5) + #define IDM_EDIT_DELETE (IDM_EDIT + 6) + #define IDM_EDIT_SELECTALL (IDM_EDIT + 7) + + #define IDM_EDIT_INS_TAB (IDM_EDIT + 8) + #define IDM_EDIT_RMV_TAB (IDM_EDIT + 9) + #define IDM_EDIT_DUP_LINE (IDM_EDIT + 10) + #define IDM_EDIT_TRANSPOSE_LINE (IDM_EDIT + 11) + #define IDM_EDIT_SPLIT_LINES (IDM_EDIT + 12) + #define IDM_EDIT_JOIN_LINES (IDM_EDIT + 13) + #define IDM_EDIT_LINE_UP (IDM_EDIT + 14) + #define IDM_EDIT_LINE_DOWN (IDM_EDIT + 15) + #define IDM_EDIT_UPPERCASE (IDM_EDIT + 16) + #define IDM_EDIT_LOWERCASE (IDM_EDIT + 17) + #define IDM_EDIT_STARTRECORDINGMACRO (IDM_EDIT + 18) + #define IDM_EDIT_STOPRECORDINGMACRO (IDM_EDIT + 19) + #define IDM_EDIT_TOGGLEMACRORECORDING (IDM_EDIT + 20) + #define IDM_EDIT_PLAYBACKRECORDEDMACRO (IDM_EDIT + 21) + #define IDM_EDIT_BLOCK_COMMENT (IDM_EDIT + 22) + #define IDM_EDIT_STREAM_COMMENT (IDM_EDIT + 23) + #define IDM_EDIT_TRIMTRAILING (IDM_EDIT + 24) + #define IDM_EDIT_SAVECURRENTMACRO (IDM_EDIT + 25) + #define IDM_EDIT_RTL (IDM_EDIT+26) + #define IDM_EDIT_LTR (IDM_EDIT+27) + #define IDM_EDIT_SETREADONLY (IDM_EDIT+28) + #define IDM_EDIT_FULLPATHTOCLIP (IDM_EDIT+29) + #define IDM_EDIT_FILENAMETOCLIP (IDM_EDIT+30) + #define IDM_EDIT_CURRENTDIRTOCLIP (IDM_EDIT+31) + #define IDM_EDIT_RUNMULTIMACRODLG (IDM_EDIT+32) + #define IDM_EDIT_CLEARREADONLY (IDM_EDIT+33) + #define IDM_EDIT_COLUMNMODE (IDM_EDIT+34) + //Belong to MENU FILE + #define IDM_OPEN_ALL_RECENT_FILE (IDM_EDIT + 40) + +#define IDM_SEARCH (IDM + 3000) + + #define IDM_SEARCH_FIND (IDM_SEARCH + 1) + #define IDM_SEARCH_FINDNEXT (IDM_SEARCH + 2) + #define IDM_SEARCH_REPLACE (IDM_SEARCH + 3) + #define IDM_SEARCH_GOTOLINE (IDM_SEARCH + 4) + #define IDM_SEARCH_TOGGLE_BOOKMARK (IDM_SEARCH + 5) + #define IDM_SEARCH_NEXT_BOOKMARK (IDM_SEARCH + 6) + #define IDM_SEARCH_PREV_BOOKMARK (IDM_SEARCH + 7) + #define IDM_SEARCH_CLEAR_BOOKMARKS (IDM_SEARCH + 8) + #define IDM_SEARCH_GOTOMATCHINGBRACE (IDM_SEARCH + 9) + #define IDM_SEARCH_FINDPREV (IDM_SEARCH + 10) + #define IDM_SEARCH_FINDINCREMENT (IDM_SEARCH + 11) + #define IDM_SEARCH_FINDINFILES (IDM_SEARCH + 13) + #define IDM_SEARCH_VOLATILE_FINDNEXT (IDM_SEARCH + 14) + #define IDM_SEARCH_VOLATILE_FINDPREV (IDM_SEARCH + 15) + #define IDM_SEARCH_MARKALL (IDM_SEARCH + 16) + #define IDM_SEARCH_UNMARKALL (IDM_SEARCH + 17) + +#define IDM_VIEW (IDM + 4000) + #define IDM_VIEW_TOOLBAR_HIDE (IDM_VIEW + 1) + #define IDM_VIEW_TOOLBAR_REDUCE (IDM_VIEW + 2) + #define IDM_VIEW_TOOLBAR_ENLARGE (IDM_VIEW + 3) + #define IDM_VIEW_TOOLBAR_STANDARD (IDM_VIEW + 4) + #define IDM_VIEW_REDUCETABBAR (IDM_VIEW + 5) + #define IDM_VIEW_LOCKTABBAR (IDM_VIEW + 6) + #define IDM_VIEW_DRAWTABBAR_TOPBAR (IDM_VIEW + 7) + #define IDM_VIEW_DRAWTABBAR_INACIVETAB (IDM_VIEW + 8) + #define IDM_VIEW_STATUSBAR (IDM_VIEW + 9) + #define IDM_VIEW_TOGGLE_FOLDALL (IDM_VIEW + 10) + #define IDM_VIEW_USER_DLG (IDM_VIEW + 11) + #define IDM_VIEW_LINENUMBER (IDM_VIEW + 12) + #define IDM_VIEW_SYMBOLMARGIN (IDM_VIEW + 13) + #define IDM_VIEW_FOLDERMAGIN (IDM_VIEW + 14) + #define IDM_VIEW_FOLDERMAGIN_SIMPLE (IDM_VIEW + 15) + #define IDM_VIEW_FOLDERMAGIN_ARROW (IDM_VIEW + 16) + #define IDM_VIEW_FOLDERMAGIN_CIRCLE (IDM_VIEW + 17) + #define IDM_VIEW_FOLDERMAGIN_BOX (IDM_VIEW + 18) + #define IDM_VIEW_ALL_CHARACTERS (IDM_VIEW + 19) + #define IDM_VIEW_INDENT_GUIDE (IDM_VIEW + 20) + #define IDM_VIEW_CURLINE_HILITING (IDM_VIEW + 21) + #define IDM_VIEW_WRAP (IDM_VIEW + 22) + #define IDM_VIEW_ZOOMIN (IDM_VIEW + 23) + #define IDM_VIEW_ZOOMOUT (IDM_VIEW + 24) + #define IDM_VIEW_TAB_SPACE (IDM_VIEW + 25) + #define IDM_VIEW_EOL (IDM_VIEW + 26) + #define IDM_VIEW_EDGELINE (IDM_VIEW + 27) + #define IDM_VIEW_EDGEBACKGROUND (IDM_VIEW + 28) + #define IDM_VIEW_TOGGLE_UNFOLDALL (IDM_VIEW + 29) + #define IDM_VIEW_FOLD_CURRENT (IDM_VIEW + 30) + #define IDM_VIEW_UNFOLD_CURRENT (IDM_VIEW + 31) + #define IDM_VIEW_FULLSCREENTOGGLE (IDM_VIEW + 32) + #define IDM_VIEW_ZOOMRESTORE (IDM_VIEW + 33) + #define IDM_VIEW_ALWAYSONTOP (IDM_VIEW + 34) + #define IDM_VIEW_SYNSCROLLV (IDM_VIEW + 35) + #define IDM_VIEW_SYNSCROLLH (IDM_VIEW + 36) + #define IDM_VIEW_EDGENONE (IDM_VIEW + 37) + #define IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN (IDM_VIEW + 38) + #define IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE (IDM_VIEW + 39) + #define IDM_VIEW_REFRESHTABAR (IDM_VIEW + 40) + #define IDM_VIEW_WRAP_SYMBOL (IDM_VIEW + 41) + + #define IDM_VIEW_FOLD (IDM_VIEW + 50) + #define IDM_VIEW_FOLD_1 (IDM_VIEW_FOLD + 1) + #define IDM_VIEW_FOLD_2 (IDM_VIEW_FOLD + 2) + #define IDM_VIEW_FOLD_3 (IDM_VIEW_FOLD + 3) + #define IDM_VIEW_FOLD_4 (IDM_VIEW_FOLD + 4) + #define IDM_VIEW_FOLD_5 (IDM_VIEW_FOLD + 5) + #define IDM_VIEW_FOLD_6 (IDM_VIEW_FOLD + 6) + #define IDM_VIEW_FOLD_7 (IDM_VIEW_FOLD + 7) + #define IDM_VIEW_FOLD_8 (IDM_VIEW_FOLD + 8) + + #define IDM_VIEW_UNFOLD (IDM_VIEW + 60) + #define IDM_VIEW_UNFOLD_1 (IDM_VIEW_UNFOLD + 1) + #define IDM_VIEW_UNFOLD_2 (IDM_VIEW_UNFOLD + 2) + #define IDM_VIEW_UNFOLD_3 (IDM_VIEW_UNFOLD + 3) + #define IDM_VIEW_UNFOLD_4 (IDM_VIEW_UNFOLD + 4) + #define IDM_VIEW_UNFOLD_5 (IDM_VIEW_UNFOLD + 5) + #define IDM_VIEW_UNFOLD_6 (IDM_VIEW_UNFOLD + 6) + #define IDM_VIEW_UNFOLD_7 (IDM_VIEW_UNFOLD + 7) + #define IDM_VIEW_UNFOLD_8 (IDM_VIEW_UNFOLD + 8) + + + +#define IDM_FORMAT (IDM + 5000) + #define IDM_FORMAT_TODOS (IDM_FORMAT + 1) + #define IDM_FORMAT_TOUNIX (IDM_FORMAT + 2) + #define IDM_FORMAT_TOMAC (IDM_FORMAT + 3) + //NEW + #define IDM_FORMAT_ANSI (IDM_FORMAT + 4) + #define IDM_FORMAT_UTF_8 (IDM_FORMAT + 5) + #define IDM_FORMAT_UCS_2BE (IDM_FORMAT + 6) + #define IDM_FORMAT_UCS_2LE (IDM_FORMAT + 7) + #define IDM_FORMAT_AS_UTF_8 (IDM_FORMAT + 8) + //WEN + +#define IDM_LANG (IDM + 6000) + #define IDM_LANGSTYLE_CONFIG_DLG (IDM_LANG + 1) + #define IDM_LANG_C (IDM_LANG + 2) + #define IDM_LANG_CPP (IDM_LANG + 3) + #define IDM_LANG_JAVA (IDM_LANG + 4) + #define IDM_LANG_HTML (IDM_LANG + 5) + #define IDM_LANG_XML (IDM_LANG + 6) + #define IDM_LANG_JS (IDM_LANG + 7) + #define IDM_LANG_PHP (IDM_LANG + 8) + #define IDM_LANG_ASP (IDM_LANG + 9) + #define IDM_LANG_CSS (IDM_LANG + 10) + #define IDM_LANG_PASCAL (IDM_LANG + 11) + #define IDM_LANG_PYTHON (IDM_LANG + 12) + #define IDM_LANG_PERL (IDM_LANG + 13) + #define IDM_LANG_OBJC (IDM_LANG + 14) + #define IDM_LANG_ASCII (IDM_LANG + 15) + #define IDM_LANG_TEXT (IDM_LANG + 16) + #define IDM_LANG_RC (IDM_LANG + 17) + #define IDM_LANG_MAKEFILE (IDM_LANG + 18) + #define IDM_LANG_INI (IDM_LANG + 19) + #define IDM_LANG_SQL (IDM_LANG + 20) + #define IDM_LANG_VB (IDM_LANG + 21) + #define IDM_LANG_BATCH (IDM_LANG + 22) + #define IDM_LANG_CS (IDM_LANG + 23) + #define IDM_LANG_LUA (IDM_LANG + 24) + #define IDM_LANG_TEX (IDM_LANG + 25) + #define IDM_LANG_FORTRAN (IDM_LANG + 26) + #define IDM_LANG_SH (IDM_LANG + 27) + #define IDM_LANG_FLASH (IDM_LANG + 28) + #define IDM_LANG_NSIS (IDM_LANG + 29) + #define IDM_LANG_TCL (IDM_LANG + 30) + #define IDM_LANG_LISP (IDM_LANG + 31) + #define IDM_LANG_SCHEME (IDM_LANG + 32) + #define IDM_LANG_ASM (IDM_LANG + 33) + #define IDM_LANG_DIFF (IDM_LANG + 34) + #define IDM_LANG_PROPS (IDM_LANG + 35) + #define IDM_LANG_PS (IDM_LANG + 36) + #define IDM_LANG_RUBY (IDM_LANG + 37) + #define IDM_LANG_SMALLTALK (IDM_LANG + 38) + #define IDM_LANG_VHDL (IDM_LANG + 39) + #define IDM_LANG_CAML (IDM_LANG + 40) + #define IDM_LANG_KIX (IDM_LANG + 41) + #define IDM_LANG_ADA (IDM_LANG + 42) + #define IDM_LANG_VERILOG (IDM_LANG + 43) + #define IDM_LANG_AU3 (IDM_LANG + 44) + #define IDM_LANG_MATLAB (IDM_LANG + 45) + #define IDM_LANG_HASKELL (IDM_LANG + 46) + #define IDM_LANG_INNO (IDM_LANG + 47) + #define IDM_LANG_CMAKE (IDM_LANG + 48) + + #define IDM_LANG_USER (IDM_LANG + 50) //46050 + #define IDM_LANG_USER_LIMIT (IDM_LANG + 80) //46080 + + +#define IDM_ABOUT (IDM + 7000) + #define IDM_HOMESWEETHOME (IDM_ABOUT + 1) + #define IDM_PROJECTPAGE (IDM_ABOUT + 2) + #define IDM_ONLINEHELP (IDM_ABOUT + 3) + #define IDM_FORUM (IDM_ABOUT + 4) + #define IDM_PLUGINSHOME (IDM_ABOUT + 5) + +#define IDC_MINIMIZED_TRAY (IDM + 7001) + +#define IDM_SETTING (IDM + 8000) + #define IDM_SETTING_TAB_SIZE (IDM_SETTING + 1) + #define IDM_SETTING_TAB_REPLCESPACE (IDM_SETTING + 2) + #define IDM_SETTING_HISTORY_SIZE (IDM_SETTING + 3) + #define IDM_SETTING_EDGE_SIZE (IDM_SETTING + 4) + #define IDM_SETTING_FILEASSOCIATION_DLG (IDM_SETTING + 5) + //#define IDM_SETTING_FILE_AUTODETECTION (IDM_SETTING + 6) + #define IDM_SETTING_HISTORY_DONT_CHECK (IDM_SETTING + 7) + #define IDM_SETTING_TRAYICON (IDM_SETTING + 8) + #define IDM_SETTING_SHORTCUT_MAPPER (IDM_SETTING + 9) + #define IDM_SETTING_REMEMBER_LAST_SESSION (IDM_SETTING + 10) + #define IDM_SETTING_PREFERECE (IDM_SETTING + 11) + + #define IDM_SETTING_FILE_AUTODETECTION_ENABLE (IDM_SETTING + 12) + #define IDM_SETTING_FILE_AUTODETECTION_DISABLE (IDM_SETTING + 13) + #define IDM_SETTING_FILE_AUTODETECTION_ENABLESILENTLY (IDM_SETTING + 14) +/* + #define IDM_SETTING_SETUTF8SANSBOM (IDM_SETTING + 15) + #define IDM_SETTING_SETANSI (IDM_SETTING + 16) +*/ + +#define IDM_EXECUTE (IDM + 9000) + +#define IDC_DOC_GOTO_ANOTHER_VIEW 10001 +#define IDC_DOC_CLONE_TO_ANOTHER_VIEW 10002 + +#define IDCMD 50000 + #define IDC_AUTOCOMPLETE (IDCMD+0) + #define IDC_AUTOCOMPLETE_CURRENTFILE (IDCMD+1) + //#define IDC_SEARCH_FINDPREVSELECTED (IDCMD+2) + #define IDC_PREV_DOC (IDCMD+3) + #define IDC_NEXT_DOC (IDCMD+4) + #define IDC_EDIT_TOGGLEMACRORECORDING (IDCMD+5) + #define IDC_KEY_HOME (IDCMD+6) + #define IDC_KEY_END (IDCMD+7) + #define IDC_KEY_SELECT_2_HOME (IDCMD+8) + #define IDC_KEY_SELECT_2_END (IDCMD+9) + +#define IDCMD_LIMIT (IDCMD+20) + +#define IDSCINTILLA 60000 + #define IDSCINTILLA_KEY_HOME (IDSCINTILLA+0) + #define IDSCINTILLA_KEY_HOME_WRAP (IDSCINTILLA+1) + #define IDSCINTILLA_KEY_END (IDSCINTILLA+2) + #define IDSCINTILLA_KEY_END_WRAP (IDSCINTILLA+3) + #define IDSCINTILLA_KEY_LINE_DUP (IDSCINTILLA+4) + #define IDSCINTILLA_KEY_LINE_CUT (IDSCINTILLA+5) + #define IDSCINTILLA_KEY_LINE_DEL (IDSCINTILLA+6) + #define IDSCINTILLA_KEY_LINE_TRANS (IDSCINTILLA+7) + #define IDSCINTILLA_KEY_LINE_COPY (IDSCINTILLA+8) + #define IDSCINTILLA_KEY_CUT (IDSCINTILLA+9) + #define IDSCINTILLA_KEY_COPY (IDSCINTILLA+10) + #define IDSCINTILLA_KEY_PASTE (IDSCINTILLA+11) + #define IDSCINTILLA_KEY_DEL (IDSCINTILLA+12) + #define IDSCINTILLA_KEY_SELECTALL (IDSCINTILLA+13) + #define IDSCINTILLA_KEY_OUTDENT (IDSCINTILLA+14) + #define IDSCINTILLA_KEY_UNDO (IDSCINTILLA+15) + #define IDSCINTILLA_KEY_REDO (IDSCINTILLA+16) +#define IDSCINTILLA_LIMIT (IDSCINTILLA+30) + +#define IDD_FILEVIEW_DIALOG 1000 +#define IDC_BUTTON_PRINT 1001 + +#define IDD_CREATE_DIRECTORY 1100 +#define IDC_STATIC_CURRENT_FOLDER 1101 +#define IDC_EDIT_NEW_FOLDER 1102 + +#define IDD_INSERT_INPUT_TEXT 1200 +#define IDC_EDIT_INPUT_VALUE 1201 +#define IDC_STATIC_INPUT_TITLE 1202 +#define IDC_ICON_INPUT_ICON 1203 + +#define IDR_M30_MENU 1500 +#define IDR_NPP_ACCELERATORS 1501 +//#define IDR_NPP_ACCELERATORS_98 1502 + +// #define IDD_FIND_REPLACE_DLG 1600 + +#define IDD_ABOUTBOX 1700 +#define IDC_LICENCE_EDIT 1701 +#define IDC_HOME_ADDR 1702 +#define IDC_EMAIL_ADDR 1703 +#define IDC_ONLINEHELP_ADDR 1704 +#define IDC_AUTHOR_NAME 1705 + +//#define IDD_USER_DEFINE_BOX 1800 + +//#define IDD_RUN_DLG 1900 + +#define IDD_GOLINE 2000 +#define ID_GOLINE_EDIT (IDD_GOLINE + 1) +#define ID_CURRLINE (IDD_GOLINE + 2) +#define ID_LASTLINE (IDD_GOLINE + 3) +#define ID_URHERE_STATIC (IDD_GOLINE + 4) +#define ID_UGO_STATIC (IDD_GOLINE + 5) +#define ID_NOMORETHAN_STATIC (IDD_GOLINE + 6) + +// voir columnEditor_rc.h +//#define IDD_COLUMNEDIT 2020 + + +//#define IDD_COLOUR_POPUP 2100 + +// See WordStyleDlgRes.h +//#define IDD_STYLER_DLG 2200 +//#define IDD_GLOBAL_STYLER_DLG 2300 + +#define IDD_VALUE_DLG 2400 +#define IDC_VALUE_STATIC 2401 +#define IDC_VALUE_EDIT 2402 + +// see TaskListDlg_rc.h +//#define IDD_TASKLIST_DLG 2450 +#define IDD_SETTING_DLG 2500 + +//See ShortcutMapper_rc.h +//#define IDD_SHORTCUTMAPPER_DLG 2600 + +// See regExtDlg.h +//#define IDD_REGEXT 4000 + +// See shortcutRc.h +//#define IDD_SHORTCUT_DLG 5000 + +// See preference.rc +//#define IDD_PREFERENCE_BOX 6000 + +#define NOTEPADPLUS_USER_INTERNAL (WM_USER + 0000) + #define NPPM_INTERNAL_USERCMDLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 1) + #define NPPM_INTERNAL_CMDLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 2) + #define NPPM_INTERNAL_MACROLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 3) + #define NPPM_INTERNAL_PLUGINCMDLIST_MODIFIED (NOTEPADPLUS_USER_INTERNAL + 4) + #define NPPM_INTERNAL_CLEARSCINTILLAKEY (NOTEPADPLUS_USER_INTERNAL + 5) + #define NPPM_INTERNAL_BINDSCINTILLAKEY (NOTEPADPLUS_USER_INTERNAL + 6) + #define NPPM_INTERNAL_SCINTILLAKEYMODIFIED (NOTEPADPLUS_USER_INTERNAL + 7) + #define NPPM_INTERNAL_SCINTILLAFINFERCOLLAPSE (NOTEPADPLUS_USER_INTERNAL + 8) + #define NPPM_INTERNAL_SCINTILLAFINFERUNCOLLAPSE (NOTEPADPLUS_USER_INTERNAL + 9) +// See Notepad_plus_msgs.h +//#define NOTEPADPLUS_USER (WM_USER + 1000) +#define SCINTILLA_USER (WM_USER + 2000) + + +#define MACRO_USER (WM_USER + 4000) + #define WM_ISCURRENTMACRORECORDED (MACRO_USER + 01) + #define WM_MACRODLGRUNMACRO (MACRO_USER + 02) + + +// See Notepad_plus_msgs.h +//#define RUNCOMMAND_USER (WM_USER + 3000) +#define SPLITTER_USER (WM_USER + 4000) +#define WORDSTYLE_USER (WM_USER + 5000) +#define COLOURPOPUP_USER (WM_USER + 6000) +#define BABYGRID_USER (WM_USER + 7000) + +//#define IDD_DOCKING_MNG (IDM + 7000) + +#define MENUINDEX_FILE 0 +#define MENUINDEX_EDIT 1 +#define MENUINDEX_SEARCH 2 +#define MENUINDEX_VIEW 3 +#define MENUINDEX_FORMAT 4 +#define MENUINDEX_LANGUAGE 5 +#define MENUINDEX_SETTINGS 6 +#define MENUINDEX_MACRO 7 +#define MENUINDEX_RUN 8 +#define MENUINDEX_PLUGINS 9 + + +#endif /* NPP_RESOURCE_H */ diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/PluginInterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/PluginInterface.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,64 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef PLUGININTERFACE_H +#define PLUGININTERFACE_H + +#include +#include "Scintilla.h" +#include "Notepad_plus_msgs.h" + +const int nbChar = 64; + +typedef const char * (__cdecl * PFUNCGETNAME)(); + +struct NppData { + HWND _nppHandle; + HWND _scintillaMainHandle; + HWND _scintillaSecondHandle; +}; + +typedef void (__cdecl * PFUNCSETINFO)(NppData); +typedef void (__cdecl * PFUNCPLUGINCMD)(); +typedef void (__cdecl * PBENOTIFIED)(SCNotification *); +typedef LRESULT (__cdecl * PMESSAGEPROC)(UINT Message, WPARAM wParam, LPARAM lParam); + +struct ShortcutKey { + bool _isCtrl; + bool _isAlt; + bool _isShift; + unsigned char _key; +}; + +struct FuncItem { + char _itemName[nbChar]; + PFUNCPLUGINCMD _pFunc; + int _cmdID; + bool _init2Check; + ShortcutKey *_pShKey; +}; + +typedef FuncItem * (__cdecl * PFUNCGETFUNCSARRAY)(int *); + +// You should implement (or define an empty function body) those functions which are called by Notepad++ plugin manager +extern "C" __declspec(dllexport) void setInfo(NppData); +extern "C" __declspec(dllexport) const char * getName(); +extern "C" __declspec(dllexport) FuncItem * getFuncsArray(int *); +extern "C" __declspec(dllexport) void beNotified(SCNotification *); +extern "C" __declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam); + +#endif //PLUGININTERFACE_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Scintilla.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Scintilla.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,803 @@ +// Scintilla source code edit control +/** @file Scintilla.h + ** Interface to the edit control. + **/ +// Copyright 1998-2003 by Neil Hodgson +// The License.txt file describes the conditions under which this software may be distributed. + +// Most of this file is automatically generated from the Scintilla.iface interface definition +// file which contains any comments about the definitions. HFacer.py does the generation. + +#ifndef SCINTILLA_H +#define SCINTILLA_H + +#if LCCWIN +typedef BOOL bool; +#endif + +#if PLAT_WIN +// Return false on failure: +bool Scintilla_RegisterClasses(void *hInstance); +bool Scintilla_ReleaseResources(); +#endif +int Scintilla_LinkLexers(); + +// Here should be placed typedefs for uptr_t, an unsigned integer type large enough to +// hold a pointer and sptr_t, a signed integer large enough to hold a pointer. +// May need to be changed for 64 bit platforms. +#if _MSC_VER >= 1300 +#include +#endif +#ifdef MAXULONG_PTR +typedef ULONG_PTR uptr_t; +typedef LONG_PTR sptr_t; +#else +typedef unsigned long uptr_t; +typedef long sptr_t; +#endif + +typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); + +//++Autogenerated -- start of section automatically generated from Scintilla.iface +#define INVALID_POSITION -1 +#define SCI_START 2000 +#define SCI_OPTIONAL_START 3000 +#define SCI_LEXER_START 4000 +#define SCI_ADDTEXT 2001 +#define SCI_ADDSTYLEDTEXT 2002 +#define SCI_INSERTTEXT 2003 +#define SCI_CLEARALL 2004 +#define SCI_CLEARDOCUMENTSTYLE 2005 +#define SCI_GETLENGTH 2006 +#define SCI_GETCHARAT 2007 +#define SCI_GETCURRENTPOS 2008 +#define SCI_GETANCHOR 2009 +#define SCI_GETSTYLEAT 2010 +#define SCI_REDO 2011 +#define SCI_SETUNDOCOLLECTION 2012 +#define SCI_SELECTALL 2013 +#define SCI_SETSAVEPOINT 2014 +#define SCI_GETSTYLEDTEXT 2015 +#define SCI_CANREDO 2016 +#define SCI_MARKERLINEFROMHANDLE 2017 +#define SCI_MARKERDELETEHANDLE 2018 +#define SCI_GETUNDOCOLLECTION 2019 +#define SCWS_INVISIBLE 0 +#define SCWS_VISIBLEALWAYS 1 +#define SCWS_VISIBLEAFTERINDENT 2 +#define SCI_GETVIEWWS 2020 +#define SCI_SETVIEWWS 2021 +#define SCI_POSITIONFROMPOINT 2022 +#define SCI_POSITIONFROMPOINTCLOSE 2023 +#define SCI_GOTOLINE 2024 +#define SCI_GOTOPOS 2025 +#define SCI_SETANCHOR 2026 +#define SCI_GETCURLINE 2027 +#define SCI_GETENDSTYLED 2028 +#define SC_EOL_CRLF 0 +#define SC_EOL_CR 1 +#define SC_EOL_LF 2 +#define SCI_CONVERTEOLS 2029 +#define SCI_GETEOLMODE 2030 +#define SCI_SETEOLMODE 2031 +#define SCI_STARTSTYLING 2032 +#define SCI_SETSTYLING 2033 +#define SCI_GETBUFFEREDDRAW 2034 +#define SCI_SETBUFFEREDDRAW 2035 +#define SCI_SETTABWIDTH 2036 +#define SCI_GETTABWIDTH 2121 +#define SC_CP_UTF8 65001 +#define SC_CP_DBCS 1 +#define SCI_SETCODEPAGE 2037 +#define SCI_SETUSEPALETTE 2039 +#define MARKER_MAX 31 +#define SC_MARK_CIRCLE 0 +#define SC_MARK_ROUNDRECT 1 +#define SC_MARK_ARROW 2 +#define SC_MARK_SMALLRECT 3 +#define SC_MARK_SHORTARROW 4 +#define SC_MARK_EMPTY 5 +#define SC_MARK_ARROWDOWN 6 +#define SC_MARK_MINUS 7 +#define SC_MARK_PLUS 8 +#define SC_MARK_VLINE 9 +#define SC_MARK_LCORNER 10 +#define SC_MARK_TCORNER 11 +#define SC_MARK_BOXPLUS 12 +#define SC_MARK_BOXPLUSCONNECTED 13 +#define SC_MARK_BOXMINUS 14 +#define SC_MARK_BOXMINUSCONNECTED 15 +#define SC_MARK_LCORNERCURVE 16 +#define SC_MARK_TCORNERCURVE 17 +#define SC_MARK_CIRCLEPLUS 18 +#define SC_MARK_CIRCLEPLUSCONNECTED 19 +#define SC_MARK_CIRCLEMINUS 20 +#define SC_MARK_CIRCLEMINUSCONNECTED 21 +#define SC_MARK_BACKGROUND 22 +#define SC_MARK_DOTDOTDOT 23 +#define SC_MARK_ARROWS 24 +#define SC_MARK_PIXMAP 25 +#define SC_MARK_FULLRECT 26 +#define SC_MARK_CHARACTER 10000 +#define SC_MARKNUM_FOLDEREND 25 +#define SC_MARKNUM_FOLDEROPENMID 26 +#define SC_MARKNUM_FOLDERMIDTAIL 27 +#define SC_MARKNUM_FOLDERTAIL 28 +#define SC_MARKNUM_FOLDERSUB 29 +#define SC_MARKNUM_FOLDER 30 +#define SC_MARKNUM_FOLDEROPEN 31 +#define SC_MASK_FOLDERS 0xFE000000 +#define SCI_MARKERDEFINE 2040 +#define SCI_MARKERSETFORE 2041 +#define SCI_MARKERSETBACK 2042 +#define SCI_MARKERADD 2043 +#define SCI_MARKERDELETE 2044 +#define SCI_MARKERDELETEALL 2045 +#define SCI_MARKERGET 2046 +#define SCI_MARKERNEXT 2047 +#define SCI_MARKERPREVIOUS 2048 +#define SCI_MARKERDEFINEPIXMAP 2049 +#define SCI_MARKERADDSET 2466 +#define SCI_MARKERSETALPHA 2476 +#define SC_MARGIN_SYMBOL 0 +#define SC_MARGIN_NUMBER 1 +#define SC_MARGIN_BACK 2 +#define SC_MARGIN_FORE 3 +#define SCI_SETMARGINTYPEN 2240 +#define SCI_GETMARGINTYPEN 2241 +#define SCI_SETMARGINWIDTHN 2242 +#define SCI_GETMARGINWIDTHN 2243 +#define SCI_SETMARGINMASKN 2244 +#define SCI_GETMARGINMASKN 2245 +#define SCI_SETMARGINSENSITIVEN 2246 +#define SCI_GETMARGINSENSITIVEN 2247 +#define STYLE_DEFAULT 32 +#define STYLE_LINENUMBER 33 +#define STYLE_BRACELIGHT 34 +#define STYLE_BRACEBAD 35 +#define STYLE_CONTROLCHAR 36 +#define STYLE_INDENTGUIDE 37 +#define STYLE_CALLTIP 38 +#define STYLE_LASTPREDEFINED 39 +#define STYLE_MAX 127 +#define SC_CHARSET_ANSI 0 +#define SC_CHARSET_DEFAULT 1 +#define SC_CHARSET_BALTIC 186 +#define SC_CHARSET_CHINESEBIG5 136 +#define SC_CHARSET_EASTEUROPE 238 +#define SC_CHARSET_GB2312 134 +#define SC_CHARSET_GREEK 161 +#define SC_CHARSET_HANGUL 129 +#define SC_CHARSET_MAC 77 +#define SC_CHARSET_OEM 255 +#define SC_CHARSET_RUSSIAN 204 +#define SC_CHARSET_CYRILLIC 1251 +#define SC_CHARSET_SHIFTJIS 128 +#define SC_CHARSET_SYMBOL 2 +#define SC_CHARSET_TURKISH 162 +#define SC_CHARSET_JOHAB 130 +#define SC_CHARSET_HEBREW 177 +#define SC_CHARSET_ARABIC 178 +#define SC_CHARSET_VIETNAMESE 163 +#define SC_CHARSET_THAI 222 +#define SC_CHARSET_8859_15 1000 +#define SCI_STYLECLEARALL 2050 +#define SCI_STYLESETFORE 2051 +#define SCI_STYLESETBACK 2052 +#define SCI_STYLESETBOLD 2053 +#define SCI_STYLESETITALIC 2054 +#define SCI_STYLESETSIZE 2055 +#define SCI_STYLESETFONT 2056 +#define SCI_STYLESETEOLFILLED 2057 +#define SCI_STYLERESETDEFAULT 2058 +#define SCI_STYLESETUNDERLINE 2059 +#define SC_CASE_MIXED 0 +#define SC_CASE_UPPER 1 +#define SC_CASE_LOWER 2 +#define SCI_STYLEGETFORE 2481 +#define SCI_STYLEGETBACK 2482 +#define SCI_STYLEGETBOLD 2483 +#define SCI_STYLEGETITALIC 2484 +#define SCI_STYLEGETSIZE 2485 +#define SCI_STYLEGETFONT 2486 +#define SCI_STYLEGETEOLFILLED 2487 +#define SCI_STYLEGETUNDERLINE 2488 +#define SCI_STYLEGETCASE 2489 +#define SCI_STYLEGETCHARACTERSET 2490 +#define SCI_STYLEGETVISIBLE 2491 +#define SCI_STYLEGETCHANGEABLE 2492 +#define SCI_STYLEGETHOTSPOT 2493 +#define SCI_STYLESETCASE 2060 +#define SCI_STYLESETCHARACTERSET 2066 +#define SCI_STYLESETHOTSPOT 2409 +#define SCI_SETSELFORE 2067 +#define SCI_SETSELBACK 2068 +#define SCI_GETSELALPHA 2477 +#define SCI_SETSELALPHA 2478 +#define SCI_GETSELEOLFILLED 2479 +#define SCI_SETSELEOLFILLED 2480 +#define SCI_SETCARETFORE 2069 +#define SCI_ASSIGNCMDKEY 2070 +#define SCI_CLEARCMDKEY 2071 +#define SCI_CLEARALLCMDKEYS 2072 +#define SCI_SETSTYLINGEX 2073 +#define SCI_STYLESETVISIBLE 2074 +#define SCI_GETCARETPERIOD 2075 +#define SCI_SETCARETPERIOD 2076 +#define SCI_SETWORDCHARS 2077 +#define SCI_BEGINUNDOACTION 2078 +#define SCI_ENDUNDOACTION 2079 +#define INDIC_MAX 7 +#define INDIC_PLAIN 0 +#define INDIC_SQUIGGLE 1 +#define INDIC_TT 2 +#define INDIC_DIAGONAL 3 +#define INDIC_STRIKE 4 +#define INDIC_HIDDEN 5 +#define INDIC_BOX 6 +#define INDIC_ROUNDBOX 7 +#define INDIC0_MASK 0x20 +#define INDIC1_MASK 0x40 +#define INDIC2_MASK 0x80 +#define INDICS_MASK 0xE0 +#define SCI_INDICSETSTYLE 2080 +#define SCI_INDICGETSTYLE 2081 +#define SCI_INDICSETFORE 2082 +#define SCI_INDICGETFORE 2083 +#define SCI_SETWHITESPACEFORE 2084 +#define SCI_SETWHITESPACEBACK 2085 +#define SCI_SETSTYLEBITS 2090 +#define SCI_GETSTYLEBITS 2091 +#define SCI_SETLINESTATE 2092 +#define SCI_GETLINESTATE 2093 +#define SCI_GETMAXLINESTATE 2094 +#define SCI_GETCARETLINEVISIBLE 2095 +#define SCI_SETCARETLINEVISIBLE 2096 +#define SCI_GETCARETLINEBACK 2097 +#define SCI_SETCARETLINEBACK 2098 +#define SCI_STYLESETCHANGEABLE 2099 +#define SCI_AUTOCSHOW 2100 +#define SCI_AUTOCCANCEL 2101 +#define SCI_AUTOCACTIVE 2102 +#define SCI_AUTOCPOSSTART 2103 +#define SCI_AUTOCCOMPLETE 2104 +#define SCI_AUTOCSTOPS 2105 +#define SCI_AUTOCSETSEPARATOR 2106 +#define SCI_AUTOCGETSEPARATOR 2107 +#define SCI_AUTOCSELECT 2108 +#define SCI_AUTOCSETCANCELATSTART 2110 +#define SCI_AUTOCGETCANCELATSTART 2111 +#define SCI_AUTOCSETFILLUPS 2112 +#define SCI_AUTOCSETCHOOSESINGLE 2113 +#define SCI_AUTOCGETCHOOSESINGLE 2114 +#define SCI_AUTOCSETIGNORECASE 2115 +#define SCI_AUTOCGETIGNORECASE 2116 +#define SCI_USERLISTSHOW 2117 +#define SCI_AUTOCSETAUTOHIDE 2118 +#define SCI_AUTOCGETAUTOHIDE 2119 +#define SCI_AUTOCSETDROPRESTOFWORD 2270 +#define SCI_AUTOCGETDROPRESTOFWORD 2271 +#define SCI_REGISTERIMAGE 2405 +#define SCI_CLEARREGISTEREDIMAGES 2408 +#define SCI_AUTOCGETTYPESEPARATOR 2285 +#define SCI_AUTOCSETTYPESEPARATOR 2286 +#define SCI_AUTOCSETMAXWIDTH 2208 +#define SCI_AUTOCGETMAXWIDTH 2209 +#define SCI_AUTOCSETMAXHEIGHT 2210 +#define SCI_AUTOCGETMAXHEIGHT 2211 +#define SCI_SETINDENT 2122 +#define SCI_GETINDENT 2123 +#define SCI_SETUSETABS 2124 +#define SCI_GETUSETABS 2125 +#define SCI_SETLINEINDENTATION 2126 +#define SCI_GETLINEINDENTATION 2127 +#define SCI_GETLINEINDENTPOSITION 2128 +#define SCI_GETCOLUMN 2129 +#define SCI_SETHSCROLLBAR 2130 +#define SCI_GETHSCROLLBAR 2131 +#define SCI_SETINDENTATIONGUIDES 2132 +#define SCI_GETINDENTATIONGUIDES 2133 +#define SCI_SETHIGHLIGHTGUIDE 2134 +#define SCI_GETHIGHLIGHTGUIDE 2135 +#define SCI_GETLINEENDPOSITION 2136 +#define SCI_GETCODEPAGE 2137 +#define SCI_GETCARETFORE 2138 +#define SCI_GETUSEPALETTE 2139 +#define SCI_GETREADONLY 2140 +#define SCI_SETCURRENTPOS 2141 +#define SCI_SETSELECTIONSTART 2142 +#define SCI_GETSELECTIONSTART 2143 +#define SCI_SETSELECTIONEND 2144 +#define SCI_GETSELECTIONEND 2145 +#define SCI_SETPRINTMAGNIFICATION 2146 +#define SCI_GETPRINTMAGNIFICATION 2147 +#define SC_PRINT_NORMAL 0 +#define SC_PRINT_INVERTLIGHT 1 +#define SC_PRINT_BLACKONWHITE 2 +#define SC_PRINT_COLOURONWHITE 3 +#define SC_PRINT_COLOURONWHITEDEFAULTBG 4 +#define SCI_SETPRINTCOLOURMODE 2148 +#define SCI_GETPRINTCOLOURMODE 2149 +#define SCFIND_WHOLEWORD 2 +#define SCFIND_MATCHCASE 4 +#define SCFIND_WORDSTART 0x00100000 +#define SCFIND_REGEXP 0x00200000 +#define SCFIND_POSIX 0x00400000 +#define SCI_FINDTEXT 2150 +#define SCI_FORMATRANGE 2151 +#define SCI_GETFIRSTVISIBLELINE 2152 +#define SCI_GETLINE 2153 +#define SCI_GETLINECOUNT 2154 +#define SCI_SETMARGINLEFT 2155 +#define SCI_GETMARGINLEFT 2156 +#define SCI_SETMARGINRIGHT 2157 +#define SCI_GETMARGINRIGHT 2158 +#define SCI_GETMODIFY 2159 +#define SCI_SETSEL 2160 +#define SCI_GETSELTEXT 2161 +#define SCI_GETTEXTRANGE 2162 +#define SCI_HIDESELECTION 2163 +#define SCI_POINTXFROMPOSITION 2164 +#define SCI_POINTYFROMPOSITION 2165 +#define SCI_LINEFROMPOSITION 2166 +#define SCI_POSITIONFROMLINE 2167 +#define SCI_LINESCROLL 2168 +#define SCI_SCROLLCARET 2169 +#define SCI_REPLACESEL 2170 +#define SCI_SETREADONLY 2171 +#define SCI_NULL 2172 +#define SCI_CANPASTE 2173 +#define SCI_CANUNDO 2174 +#define SCI_EMPTYUNDOBUFFER 2175 +#define SCI_UNDO 2176 +#define SCI_CUT 2177 +#define SCI_COPY 2178 +#define SCI_PASTE 2179 +#define SCI_CLEAR 2180 +#define SCI_SETTEXT 2181 +#define SCI_GETTEXT 2182 +#define SCI_GETTEXTLENGTH 2183 +#define SCI_GETDIRECTFUNCTION 2184 +#define SCI_GETDIRECTPOINTER 2185 +#define SCI_SETOVERTYPE 2186 +#define SCI_GETOVERTYPE 2187 +#define SCI_SETCARETWIDTH 2188 +#define SCI_GETCARETWIDTH 2189 +#define SCI_SETTARGETSTART 2190 +#define SCI_GETTARGETSTART 2191 +#define SCI_SETTARGETEND 2192 +#define SCI_GETTARGETEND 2193 +#define SCI_REPLACETARGET 2194 +#define SCI_REPLACETARGETRE 2195 +#define SCI_SEARCHINTARGET 2197 +#define SCI_SETSEARCHFLAGS 2198 +#define SCI_GETSEARCHFLAGS 2199 +#define SCI_CALLTIPSHOW 2200 +#define SCI_CALLTIPCANCEL 2201 +#define SCI_CALLTIPACTIVE 2202 +#define SCI_CALLTIPPOSSTART 2203 +#define SCI_CALLTIPSETHLT 2204 +#define SCI_CALLTIPSETBACK 2205 +#define SCI_CALLTIPSETFORE 2206 +#define SCI_CALLTIPSETFOREHLT 2207 +#define SCI_CALLTIPUSESTYLE 2212 +#define SCI_VISIBLEFROMDOCLINE 2220 +#define SCI_DOCLINEFROMVISIBLE 2221 +#define SCI_WRAPCOUNT 2235 +#define SC_FOLDLEVELBASE 0x400 +#define SC_FOLDLEVELWHITEFLAG 0x1000 +#define SC_FOLDLEVELHEADERFLAG 0x2000 +#define SC_FOLDLEVELBOXHEADERFLAG 0x4000 +#define SC_FOLDLEVELBOXFOOTERFLAG 0x8000 +#define SC_FOLDLEVELCONTRACTED 0x10000 +#define SC_FOLDLEVELUNINDENT 0x20000 +#define SC_FOLDLEVELNUMBERMASK 0x0FFF +#define SCI_SETFOLDLEVEL 2222 +#define SCI_GETFOLDLEVEL 2223 +#define SCI_GETLASTCHILD 2224 +#define SCI_GETFOLDPARENT 2225 +#define SCI_SHOWLINES 2226 +#define SCI_HIDELINES 2227 +#define SCI_GETLINEVISIBLE 2228 +#define SCI_SETFOLDEXPANDED 2229 +#define SCI_GETFOLDEXPANDED 2230 +#define SCI_TOGGLEFOLD 2231 +#define SCI_ENSUREVISIBLE 2232 +#define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 +#define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 +#define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 +#define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 +#define SC_FOLDFLAG_LEVELNUMBERS 0x0040 +#define SC_FOLDFLAG_BOX 0x0001 +#define SCI_SETFOLDFLAGS 2233 +#define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 +#define SCI_SETTABINDENTS 2260 +#define SCI_GETTABINDENTS 2261 +#define SCI_SETBACKSPACEUNINDENTS 2262 +#define SCI_GETBACKSPACEUNINDENTS 2263 +#define SC_TIME_FOREVER 10000000 +#define SCI_SETMOUSEDWELLTIME 2264 +#define SCI_GETMOUSEDWELLTIME 2265 +#define SCI_WORDSTARTPOSITION 2266 +#define SCI_WORDENDPOSITION 2267 +#define SC_WRAP_NONE 0 +#define SC_WRAP_WORD 1 +#define SC_WRAP_CHAR 2 +#define SCI_SETWRAPMODE 2268 +#define SCI_GETWRAPMODE 2269 +#define SC_WRAPVISUALFLAG_NONE 0x0000 +#define SC_WRAPVISUALFLAG_END 0x0001 +#define SC_WRAPVISUALFLAG_START 0x0002 +#define SCI_SETWRAPVISUALFLAGS 2460 +#define SCI_GETWRAPVISUALFLAGS 2461 +#define SC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 +#define SC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 +#define SC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 +#define SCI_SETWRAPVISUALFLAGSLOCATION 2462 +#define SCI_GETWRAPVISUALFLAGSLOCATION 2463 +#define SCI_SETWRAPSTARTINDENT 2464 +#define SCI_GETWRAPSTARTINDENT 2465 +#define SC_CACHE_NONE 0 +#define SC_CACHE_CARET 1 +#define SC_CACHE_PAGE 2 +#define SC_CACHE_DOCUMENT 3 +#define SCI_SETLAYOUTCACHE 2272 +#define SCI_GETLAYOUTCACHE 2273 +#define SCI_SETSCROLLWIDTH 2274 +#define SCI_GETSCROLLWIDTH 2275 +#define SCI_TEXTWIDTH 2276 +#define SCI_SETENDATLASTLINE 2277 +#define SCI_GETENDATLASTLINE 2278 +#define SCI_TEXTHEIGHT 2279 +#define SCI_SETVSCROLLBAR 2280 +#define SCI_GETVSCROLLBAR 2281 +#define SCI_APPENDTEXT 2282 +#define SCI_GETTWOPHASEDRAW 2283 +#define SCI_SETTWOPHASEDRAW 2284 +#define SCI_TARGETFROMSELECTION 2287 +#define SCI_LINESJOIN 2288 +#define SCI_LINESSPLIT 2289 +#define SCI_SETFOLDMARGINCOLOUR 2290 +#define SCI_SETFOLDMARGINHICOLOUR 2291 +#define SCI_LINEDOWN 2300 +#define SCI_LINEDOWNEXTEND 2301 +#define SCI_LINEUP 2302 +#define SCI_LINEUPEXTEND 2303 +#define SCI_CHARLEFT 2304 +#define SCI_CHARLEFTEXTEND 2305 +#define SCI_CHARRIGHT 2306 +#define SCI_CHARRIGHTEXTEND 2307 +#define SCI_WORDLEFT 2308 +#define SCI_WORDLEFTEXTEND 2309 +#define SCI_WORDRIGHT 2310 +#define SCI_WORDRIGHTEXTEND 2311 +#define SCI_HOME 2312 +#define SCI_HOMEEXTEND 2313 +#define SCI_LINEEND 2314 +#define SCI_LINEENDEXTEND 2315 +#define SCI_DOCUMENTSTART 2316 +#define SCI_DOCUMENTSTARTEXTEND 2317 +#define SCI_DOCUMENTEND 2318 +#define SCI_DOCUMENTENDEXTEND 2319 +#define SCI_PAGEUP 2320 +#define SCI_PAGEUPEXTEND 2321 +#define SCI_PAGEDOWN 2322 +#define SCI_PAGEDOWNEXTEND 2323 +#define SCI_EDITTOGGLEOVERTYPE 2324 +#define SCI_CANCEL 2325 +#define SCI_DELETEBACK 2326 +#define SCI_TAB 2327 +#define SCI_BACKTAB 2328 +#define SCI_NEWLINE 2329 +#define SCI_FORMFEED 2330 +#define SCI_VCHOME 2331 +#define SCI_VCHOMEEXTEND 2332 +#define SCI_ZOOMIN 2333 +#define SCI_ZOOMOUT 2334 +#define SCI_DELWORDLEFT 2335 +#define SCI_DELWORDRIGHT 2336 +#define SCI_LINECUT 2337 +#define SCI_LINEDELETE 2338 +#define SCI_LINETRANSPOSE 2339 +#define SCI_LINEDUPLICATE 2404 +#define SCI_LOWERCASE 2340 +#define SCI_UPPERCASE 2341 +#define SCI_LINESCROLLDOWN 2342 +#define SCI_LINESCROLLUP 2343 +#define SCI_DELETEBACKNOTLINE 2344 +#define SCI_HOMEDISPLAY 2345 +#define SCI_HOMEDISPLAYEXTEND 2346 +#define SCI_LINEENDDISPLAY 2347 +#define SCI_LINEENDDISPLAYEXTEND 2348 +#define SCI_HOMEWRAP 2349 +#define SCI_HOMEWRAPEXTEND 2450 +#define SCI_LINEENDWRAP 2451 +#define SCI_LINEENDWRAPEXTEND 2452 +#define SCI_VCHOMEWRAP 2453 +#define SCI_VCHOMEWRAPEXTEND 2454 +#define SCI_LINECOPY 2455 +#define SCI_MOVECARETINSIDEVIEW 2401 +#define SCI_LINELENGTH 2350 +#define SCI_BRACEHIGHLIGHT 2351 +#define SCI_BRACEBADLIGHT 2352 +#define SCI_BRACEMATCH 2353 +#define SCI_GETVIEWEOL 2355 +#define SCI_SETVIEWEOL 2356 +#define SCI_GETDOCPOINTER 2357 +#define SCI_SETDOCPOINTER 2358 +#define SCI_SETMODEVENTMASK 2359 +#define EDGE_NONE 0 +#define EDGE_LINE 1 +#define EDGE_BACKGROUND 2 +#define SCI_GETEDGECOLUMN 2360 +#define SCI_SETEDGECOLUMN 2361 +#define SCI_GETEDGEMODE 2362 +#define SCI_SETEDGEMODE 2363 +#define SCI_GETEDGECOLOUR 2364 +#define SCI_SETEDGECOLOUR 2365 +#define SCI_SEARCHANCHOR 2366 +#define SCI_SEARCHNEXT 2367 +#define SCI_SEARCHPREV 2368 +#define SCI_LINESONSCREEN 2370 +#define SCI_USEPOPUP 2371 +#define SCI_SELECTIONISRECTANGLE 2372 +#define SCI_SETZOOM 2373 +#define SCI_GETZOOM 2374 +#define SCI_CREATEDOCUMENT 2375 +#define SCI_ADDREFDOCUMENT 2376 +#define SCI_RELEASEDOCUMENT 2377 +#define SCI_GETMODEVENTMASK 2378 +#define SCI_SETFOCUS 2380 +#define SCI_GETFOCUS 2381 +#define SCI_SETSTATUS 2382 +#define SCI_GETSTATUS 2383 +#define SCI_SETMOUSEDOWNCAPTURES 2384 +#define SCI_GETMOUSEDOWNCAPTURES 2385 +#define SC_CURSORNORMAL -1 +#define SC_CURSORWAIT 4 +#define SCI_SETCURSOR 2386 +#define SCI_GETCURSOR 2387 +#define SCI_SETCONTROLCHARSYMBOL 2388 +#define SCI_GETCONTROLCHARSYMBOL 2389 +#define SCI_WORDPARTLEFT 2390 +#define SCI_WORDPARTLEFTEXTEND 2391 +#define SCI_WORDPARTRIGHT 2392 +#define SCI_WORDPARTRIGHTEXTEND 2393 +#define VISIBLE_SLOP 0x01 +#define VISIBLE_STRICT 0x04 +#define SCI_SETVISIBLEPOLICY 2394 +#define SCI_DELLINELEFT 2395 +#define SCI_DELLINERIGHT 2396 +#define SCI_SETXOFFSET 2397 +#define SCI_GETXOFFSET 2398 +#define SCI_CHOOSECARETX 2399 +#define SCI_GRABFOCUS 2400 +#define CARET_SLOP 0x01 +#define CARET_STRICT 0x04 +#define CARET_JUMPS 0x10 +#define CARET_EVEN 0x08 +#define SCI_SETXCARETPOLICY 2402 +#define SCI_SETYCARETPOLICY 2403 +#define SCI_SETPRINTWRAPMODE 2406 +#define SCI_GETPRINTWRAPMODE 2407 +#define SCI_SETHOTSPOTACTIVEFORE 2410 +#define SCI_GETHOTSPOTACTIVEFORE 2494 +#define SCI_SETHOTSPOTACTIVEBACK 2411 +#define SCI_GETHOTSPOTACTIVEBACK 2495 +#define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 +#define SCI_GETHOTSPOTACTIVEUNDERLINE 2496 +#define SCI_SETHOTSPOTSINGLELINE 2421 +#define SCI_GETHOTSPOTSINGLELINE 2497 +#define SCI_PARADOWN 2413 +#define SCI_PARADOWNEXTEND 2414 +#define SCI_PARAUP 2415 +#define SCI_PARAUPEXTEND 2416 +#define SCI_POSITIONBEFORE 2417 +#define SCI_POSITIONAFTER 2418 +#define SCI_COPYRANGE 2419 +#define SCI_COPYTEXT 2420 +#define SC_SEL_STREAM 0 +#define SC_SEL_RECTANGLE 1 +#define SC_SEL_LINES 2 +#define SCI_SETSELECTIONMODE 2422 +#define SCI_GETSELECTIONMODE 2423 +#define SCI_GETLINESELSTARTPOSITION 2424 +#define SCI_GETLINESELENDPOSITION 2425 +#define SCI_LINEDOWNRECTEXTEND 2426 +#define SCI_LINEUPRECTEXTEND 2427 +#define SCI_CHARLEFTRECTEXTEND 2428 +#define SCI_CHARRIGHTRECTEXTEND 2429 +#define SCI_HOMERECTEXTEND 2430 +#define SCI_VCHOMERECTEXTEND 2431 +#define SCI_LINEENDRECTEXTEND 2432 +#define SCI_PAGEUPRECTEXTEND 2433 +#define SCI_PAGEDOWNRECTEXTEND 2434 +#define SCI_STUTTEREDPAGEUP 2435 +#define SCI_STUTTEREDPAGEUPEXTEND 2436 +#define SCI_STUTTEREDPAGEDOWN 2437 +#define SCI_STUTTEREDPAGEDOWNEXTEND 2438 +#define SCI_WORDLEFTEND 2439 +#define SCI_WORDLEFTENDEXTEND 2440 +#define SCI_WORDRIGHTEND 2441 +#define SCI_WORDRIGHTENDEXTEND 2442 +#define SCI_SETWHITESPACECHARS 2443 +#define SCI_SETCHARSDEFAULT 2444 +#define SCI_AUTOCGETCURRENT 2445 +#define SCI_ALLOCATE 2446 +#define SCI_TARGETASUTF8 2447 +#define SCI_SETLENGTHFORENCODE 2448 +#define SCI_ENCODEDFROMUTF8 2449 +#define SCI_FINDCOLUMN 2456 +#define SCI_GETCARETSTICKY 2457 +#define SCI_SETCARETSTICKY 2458 +#define SCI_TOGGLECARETSTICKY 2459 +#define SCI_SETPASTECONVERTENDINGS 2467 +#define SCI_GETPASTECONVERTENDINGS 2468 +#define SCI_SELECTIONDUPLICATE 2469 +#define SC_ALPHA_TRANSPARENT 0 +#define SC_ALPHA_OPAQUE 255 +#define SC_ALPHA_NOALPHA 256 +#define SCI_SETCARETLINEBACKALPHA 2470 +#define SCI_GETCARETLINEBACKALPHA 2471 +#define SCI_STARTRECORD 3001 +#define SCI_STOPRECORD 3002 +#define SCI_SETLEXER 4001 +#define SCI_GETLEXER 4002 +#define SCI_COLOURISE 4003 +#define SCI_SETPROPERTY 4004 +#define KEYWORDSET_MAX 8 +#define SCI_SETKEYWORDS 4005 +#define SCI_SETLEXERLANGUAGE 4006 +#define SCI_LOADLEXERLIBRARY 4007 +#define SCI_GETPROPERTY 4008 +#define SCI_GETPROPERTYEXPANDED 4009 +#define SCI_GETPROPERTYINT 4010 +#define SCI_GETSTYLEBITSNEEDED 4011 +#define SC_MOD_INSERTTEXT 0x1 +#define SC_MOD_DELETETEXT 0x2 +#define SC_MOD_CHANGESTYLE 0x4 +#define SC_MOD_CHANGEFOLD 0x8 +#define SC_PERFORMED_USER 0x10 +#define SC_PERFORMED_UNDO 0x20 +#define SC_PERFORMED_REDO 0x40 +#define SC_MULTISTEPUNDOREDO 0x80 +#define SC_LASTSTEPINUNDOREDO 0x100 +#define SC_MOD_CHANGEMARKER 0x200 +#define SC_MOD_BEFOREINSERT 0x400 +#define SC_MOD_BEFOREDELETE 0x800 +#define SC_MULTILINEUNDOREDO 0x1000 +#define SC_STARTACTION 0x2000 +#define SC_MODEVENTMASKALL 0x2FFF +#define SCEN_CHANGE 768 +#define SCEN_SETFOCUS 512 +#define SCEN_KILLFOCUS 256 +#define SCK_DOWN 300 +#define SCK_UP 301 +#define SCK_LEFT 302 +#define SCK_RIGHT 303 +#define SCK_HOME 304 +#define SCK_END 305 +#define SCK_PRIOR 306 +#define SCK_NEXT 307 +#define SCK_DELETE 308 +#define SCK_INSERT 309 +#define SCK_ESCAPE 7 +#define SCK_BACK 8 +#define SCK_TAB 9 +#define SCK_RETURN 13 +#define SCK_ADD 310 +#define SCK_SUBTRACT 311 +#define SCK_DIVIDE 312 +#define SCK_WIN 313 +#define SCK_RWIN 314 +#define SCK_MENU 315 +#define SCMOD_NORM 0 +#define SCMOD_SHIFT 1 +#define SCMOD_CTRL 2 +#define SCMOD_ALT 4 +#define SCN_STYLENEEDED 2000 +#define SCN_CHARADDED 2001 +#define SCN_SAVEPOINTREACHED 2002 +#define SCN_SAVEPOINTLEFT 2003 +#define SCN_MODIFYATTEMPTRO 2004 +#define SCN_KEY 2005 +#define SCN_DOUBLECLICK 2006 +#define SCN_UPDATEUI 2007 +#define SCN_MODIFIED 2008 +#define SCN_MACRORECORD 2009 +#define SCN_MARGINCLICK 2010 +#define SCN_NEEDSHOWN 2011 +#define SCN_PAINTED 2013 +#define SCN_USERLISTSELECTION 2014 +#define SCN_URIDROPPED 2015 +#define SCN_DWELLSTART 2016 +#define SCN_DWELLEND 2017 +#define SCN_ZOOM 2018 +#define SCN_HOTSPOTCLICK 2019 +#define SCN_HOTSPOTDOUBLECLICK 2020 +#define SCN_CALLTIPCLICK 2021 +#define SCN_AUTOCSELECTION 2022 +//--Autogenerated -- end of section automatically generated from Scintilla.iface + +// These structures are defined to be exactly the same shape as the Win32 +// CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs. +// So older code that treats Scintilla as a RichEdit will work. + +struct CharacterRange { + long cpMin; + long cpMax; +}; + +struct TextRange { + struct CharacterRange chrg; + char *lpstrText; +}; + +struct TextToFind { + struct CharacterRange chrg; + char *lpstrText; + struct CharacterRange chrgText; +}; + +#ifdef PLATFORM_H + +// This structure is used in printing and requires some of the graphics types +// from Platform.h. Not needed by most client code. + +struct RangeToFormat { + SurfaceID hdc; + SurfaceID hdcTarget; + PRectangle rc; + PRectangle rcPage; + CharacterRange chrg; +}; + +#endif + +struct NotifyHeader { + // Compatible with Windows NMHDR. + // hwndFrom is really an environment specific window handle or pointer + // but most clients of Scintilla.h do not have this type visible. + void *hwndFrom; + uptr_t idFrom; + unsigned int code; +}; + +struct SCNotification { + struct NotifyHeader nmhdr; + int position; // SCN_STYLENEEDED, SCN_MODIFIED, SCN_DWELLSTART, SCN_DWELLEND + int ch; // SCN_CHARADDED, SCN_KEY + int modifiers; // SCN_KEY + int modificationType; // SCN_MODIFIED + const char *text; // SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION + int length; // SCN_MODIFIED + int linesAdded; // SCN_MODIFIED + int message; // SCN_MACRORECORD + uptr_t wParam; // SCN_MACRORECORD + sptr_t lParam; // SCN_MACRORECORD + int line; // SCN_MODIFIED + int foldLevelNow; // SCN_MODIFIED + int foldLevelPrev; // SCN_MODIFIED + int margin; // SCN_MARGINCLICK + int listType; // SCN_USERLISTSELECTION + int x; // SCN_DWELLSTART, SCN_DWELLEND + int y; // SCN_DWELLSTART, SCN_DWELLEND +}; + +// Deprecation section listing all API features that are deprecated and will +// will be removed completely in a future version. +// To enable these features define INCLUDE_DEPRECATED_FEATURES + +#ifdef INCLUDE_DEPRECATED_FEATURES + +#define SCI_SETCARETPOLICY 2369 +#define CARET_CENTER 0x02 +#define CARET_XEVEN 0x08 +#define CARET_XJUMPS 0x10 + +#define SCN_POSCHANGED 2012 +#define SCN_CHECKBRACE 2007 + +#endif + +#endif diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/StaticDialog.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/StaticDialog.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,140 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#include "StaticDialog.h" +#include "SysMsg.h" + +#define WS_EX_LAYOUTRTL 0x00400000L + + +void StaticDialog::goToCenter() +{ + RECT rc; + ::GetClientRect(_hParent, &rc); + POINT center; + center.x = rc.left + (rc.right - rc.left)/2; + center.y = rc.top + (rc.bottom - rc.top)/2; + ::ClientToScreen(_hParent, ¢er); + + int x = center.x - (_rc.right - _rc.left)/2; + int y = center.y - (_rc.bottom - _rc.top)/2; + + ::SetWindowPos(_hSelf, HWND_TOP, x, y, _rc.right - _rc.left, _rc.bottom - _rc.top, SWP_SHOWWINDOW); +} + +HGLOBAL StaticDialog::makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate) +{ + // Get Dlg Template resource + HRSRC hDialogRC = ::FindResource(_hInst, MAKEINTRESOURCE(dialogID), RT_DIALOG); + HGLOBAL hDlgTemplate = ::LoadResource(_hInst, hDialogRC); + DLGTEMPLATE *pDlgTemplate = (DLGTEMPLATE *)::LockResource(hDlgTemplate); + + // Duplicate Dlg Template resource + unsigned long sizeDlg = ::SizeofResource(_hInst, hDialogRC); + HGLOBAL hMyDlgTemplate = ::GlobalAlloc(GPTR, sizeDlg); + *ppMyDlgTemplate = (DLGTEMPLATE *)::GlobalLock(hMyDlgTemplate); + + ::memcpy(*ppMyDlgTemplate, pDlgTemplate, sizeDlg); + + DLGTEMPLATEEX *pMyDlgTemplateEx = (DLGTEMPLATEEX *)*ppMyDlgTemplate; + if (pMyDlgTemplateEx->signature == 0xFFFF) + pMyDlgTemplateEx->exStyle |= WS_EX_LAYOUTRTL; + else + (*ppMyDlgTemplate)->dwExtendedStyle |= WS_EX_LAYOUTRTL; + + return hMyDlgTemplate; +} + +void StaticDialog::create(int dialogID, bool isRTL) +{ + if (isRTL) + { + DLGTEMPLATE *pMyDlgTemplate = NULL; + HGLOBAL hMyDlgTemplate = makeRTLResource(dialogID, &pMyDlgTemplate); + _hSelf = ::CreateDialogIndirectParam(_hInst, pMyDlgTemplate, _hParent, (DLGPROC)dlgProc, (LPARAM)this); + ::GlobalFree(hMyDlgTemplate); + } + else + _hSelf = ::CreateDialogParam(_hInst, MAKEINTRESOURCE(dialogID), _hParent, (DLGPROC)dlgProc, (LPARAM)this); + + if (!_hSelf) + { + systemMessage("StaticDialog"); + throw int(666); + } + + ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGADD, (WPARAM)_hSelf); +} + +BOOL CALLBACK StaticDialog::dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_INITDIALOG : + { + StaticDialog *pStaticDlg = (StaticDialog *)(lParam); + pStaticDlg->_hSelf = hwnd; + ::SetWindowLong(hwnd, GWL_USERDATA, (long)lParam); + ::GetWindowRect(hwnd, &(pStaticDlg->_rc)); + pStaticDlg->run_dlgProc(hwnd, message, wParam, lParam); + + return TRUE; + } + + default : + { + StaticDialog *pStaticDlg = reinterpret_cast(::GetWindowLong(hwnd, GWL_USERDATA)); + if (!pStaticDlg) + return FALSE; + return pStaticDlg->run_dlgProc(hwnd, message, wParam, lParam); + } + } +} + +void StaticDialog::alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point) +{ + RECT rc, rc2; + ::GetWindowRect(handle, &rc); + + point.x = rc.left; + point.y = rc.top; + + switch (pos) + { + case ALIGNPOS_LEFT : + ::GetWindowRect(handle2Align, &rc2); + point.x -= rc2.right - rc2.left; + break; + + case ALIGNPOS_RIGHT : + ::GetWindowRect(handle, &rc2); + point.x += rc2.right - rc2.left; + break; + + case ALIGNPOS_TOP : + ::GetWindowRect(handle2Align, &rc2); + point.y -= rc2.bottom - rc2.top; + break; + + default : //ALIGNPOS_BOTTOM + ::GetWindowRect(handle, &rc2); + point.y += rc2.bottom - rc2.top; + break; + } + + ::ScreenToClient(_hSelf, &point); +} diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/StaticDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/StaticDialog.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,70 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef STATIC_DIALOG_H +#define STATIC_DIALOG_H + +//#include "resource.h" +#include "Window.h" + + +enum PosAlign{ALIGNPOS_LEFT, ALIGNPOS_RIGHT, ALIGNPOS_TOP, ALIGNPOS_BOTTOM}; + +struct DLGTEMPLATEEX { + WORD dlgVer; + WORD signature; + DWORD helpID; + DWORD exStyle; + DWORD style; + WORD cDlgItems; + short x; + short y; + short cx; + short cy; + // The structure has more fields but are variable length +} ; + +class StaticDialog : public Window +{ +public : + StaticDialog() : Window() {}; + ~StaticDialog(){ + if (isCreated()) + destroy(); + }; + virtual void create(int dialogID, bool isRTL = false); + + virtual bool isCreated() const { + return (_hSelf != NULL); + }; + + void goToCenter(); + void destroy() { + ::SendMessage(_hParent, NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_hSelf); + ::DestroyWindow(_hSelf); + }; + +protected : + RECT _rc; + static BOOL CALLBACK dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); + virtual BOOL CALLBACK run_dlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) = 0; + + void alignWith(HWND handle, HWND handle2Align, PosAlign pos, POINT & point); + HGLOBAL makeRTLResource(int dialogID, DLGTEMPLATE **ppMyDlgTemplate); +}; + +#endif //STATIC_DIALOG_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/SysMsg.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/SysMsg.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,165 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#include "SysMsg.h" +#include +#include +#include + +DWORD ShortToLongPathName(LPCTSTR lpszShortPath, LPTSTR lpszLongPath, DWORD cchBuffer) +{ + // Catch null pointers. + if (!lpszShortPath || !lpszLongPath) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } + + // Check whether the input path is valid. + if (0xffffffff == GetFileAttributes(lpszShortPath)) + return 0; + + // Special characters. + char const sep = '\\'; + char const colon = ':'; + + // Make some short aliases for basic_strings of TCHAR. + typedef std::basic_string tstring; + typedef tstring::traits_type traits; + typedef tstring::size_type size; + size const npos = tstring::npos; + + // Copy the short path into the work buffer and convert forward + // slashes to backslashes. + tstring path = lpszShortPath; + std::replace(path.begin(), path.end(), '/', sep); + + // We need a couple of markers for stepping through the path. + size left = 0; + size right = 0; + + // Parse the first bit of the path. + if (path.length() >= 2 && isalpha(path[0]) && colon == path[1]) // Drive letter? + { + if (2 == path.length()) // 'bare' drive letter + { + right = npos; // skip main block + } + else if (sep == path[2]) // drive letter + backslash + { + // FindFirstFile doesn't like "X:\" + if (3 == path.length()) + { + right = npos; // skip main block + } + else + { + left = right = 3; + } + } + else return 0; // parsing failure + } + else if (path.length() >= 1 && sep == path[0]) + { + if (1 == path.length()) // 'bare' backslash + { + right = npos; // skip main block + } + else + { + if (sep == path[1]) // is it UNC? + { + // Find end of machine name + right = path.find_first_of(sep, 2); + if (npos == right) + return 0; + + // Find end of share name + right = path.find_first_of(sep, right + 1); + if (npos == right) + return 0; + } + ++right; + } + } + // else FindFirstFile will handle relative paths + + // The data block for FindFirstFile. + WIN32_FIND_DATA fd; + + // Main parse block - step through path. + while (npos != right) + { + left = right; // catch up + + // Find next separator. + right = path.find_first_of(sep, right); + + // Temporarily replace the separator with a null character so that + // the path so far can be passed to FindFirstFile. + if (npos != right) + path[right] = 0; + + // See what FindFirstFile makes of the path so far. + HANDLE hf = FindFirstFile(path.c_str(), &fd); + if (INVALID_HANDLE_VALUE == hf) + return 0; + FindClose(hf); + + // Put back the separator. + if (npos != right) + path[right] = sep; + + // The file was found - replace the short name with the long. + size old_len = (npos == right) ? path.length() - left : right - left; + size new_len = traits::length(fd.cFileName); + path.replace(left, old_len, fd.cFileName, new_len); + + // More to do? + if (npos != right) + { + // Yes - move past separator . + right = left + new_len + 1; + + // Did we overshoot the end? (i.e. path ends with a separator). + if (right >= path.length()) + right = npos; + } + } + + // If buffer is too small then return the required size. + if (cchBuffer <= path.length()) + return (DWORD)path.length() + 1; + + // Copy the buffer and return the number of characters copied. + traits::copy(lpszLongPath, path.c_str(), path.length() + 1); + return (DWORD)path.length(); +} + +void systemMessage(const char *title) +{ + LPVOID lpMsgBuf; + FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + ::GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &lpMsgBuf, + 0, + NULL );// Process any inserts in lpMsgBuf. + MessageBox( NULL, (LPTSTR)lpMsgBuf, title, MB_OK | MB_ICONSTOP); +} + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/SysMsg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/SysMsg.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,27 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef M30_IDE_COMMUN_H +#define M30_IDE_COMMUN_H + +#include + + +void systemMessage(const char *title); +DWORD ShortToLongPathName(LPCTSTR lpszShortPath, LPTSTR lpszLongPath, DWORD cchBuffer); + +#endif //M30_IDE_COMMUN_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ToolBar.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ToolBar.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,297 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +//#include "..\..\resource.h" +#include "ToolBar.h" +#include "SysMsg.h" + +const bool ToolBar::REDUCED = true; +const bool ToolBar::ENLARGED = false; +const int WS_TOOLBARSTYLE = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT | CCS_TOP; + +bool ToolBar::init(HINSTANCE hInst, HWND hPere, int iconSize, + ToolBarButtonUnit *buttonUnitArray, int arraySize, + bool doUglyStandardIcon, int *bmpArray, int bmpArraySize) +{ + Window::init(hInst, hPere); + _state = doUglyStandardIcon?TB_STANDARD:(iconSize >= 32?TB_LARGE:TB_SMALL); + _bmpArray = bmpArray; + _bmpArraySize = bmpArraySize; + + _toolBarIcons.init(buttonUnitArray, arraySize); + _toolBarIcons.create(_hInst, iconSize); + + INITCOMMONCONTROLSEX icex; + icex.dwSize = sizeof(INITCOMMONCONTROLSEX); + icex.dwICC = ICC_WIN95_CLASSES|ICC_COOL_CLASSES|ICC_BAR_CLASSES|ICC_USEREX_CLASSES; + InitCommonControlsEx(&icex); + + _hSelf = ::CreateWindowEx( + WS_EX_PALETTEWINDOW, + TOOLBARCLASSNAME, + "", + WS_TOOLBARSTYLE, + 0, 0, + 0, 0, + _hParent, + NULL, + _hInst, + 0); + + + if (!_hSelf) + { + systemMessage("System Err"); + throw int(9); + } + + // Send the TB_BUTTONSTRUCTSIZE message, which is required for + // backward compatibility. + ::SendMessage(_hSelf, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); + + /* set ext size to show button down */ + LONG exStyle = (LONG)::SendMessage(_hSelf, TB_GETEXTENDEDSTYLE, 0, 0); + ::SendMessage(_hSelf, TB_SETEXTENDEDSTYLE, 0, exStyle | TBSTYLE_EX_DRAWDDARROWS); + + if (!doUglyStandardIcon) + { + setDefaultImageList(); + setHotImageList(); + setDisableImageList(); + } + else + { + ::SendMessage(_hSelf, TB_LOADIMAGES, IDB_STD_SMALL_COLOR, reinterpret_cast(HINST_COMMCTRL)); + + TBADDBITMAP addbmp = {_hInst, 0}; + if (bmpArray) + { + for (int i = 0 ; i < _bmpArraySize ; i++) + { + addbmp.nID = _bmpArray[i]; + ::SendMessage(_hSelf, TB_ADDBITMAP, 1, (LPARAM)&addbmp); + } + } + + } + int nbElement = _toolBarIcons.getNbCommand(); + + _pTBB = new TBBUTTON[nbElement]; + int inc = 1; + + for (int i = 0, j = 0; i < nbElement ; i++) + { + int cmd = 0; + int bmpIndex, style; + + if ((cmd = _toolBarIcons.getCommandAt(i)) != 0) + { + if (doUglyStandardIcon) + { + int ibmp = _toolBarIcons.getUglyIconAt(i); + bmpIndex = (ibmp == -1)?(STD_PRINT + (inc++)):ibmp; + } + else + bmpIndex = j++; + + style = TBSTYLE_BUTTON | _toolBarIcons.getIconStyle(i); + } + else + { + bmpIndex = 0; + style = TBSTYLE_SEP; + } + _pTBB[i].iBitmap = bmpIndex; + _pTBB[i].idCommand = cmd; + _pTBB[i].fsState = TBSTATE_ENABLED; + _pTBB[i].fsStyle = style; + _pTBB[i].dwData = 0; + _pTBB[i].iString = 0; + + } + + setButtonSize(iconSize, iconSize); + ::SendMessage(_hSelf, TB_ADDBUTTONS, (WPARAM)nbElement, (LPARAM)_pTBB); + ::SendMessage(_hSelf, TB_AUTOSIZE, 0, 0); + + return true; +} + +void ToolBar::reset() +{ + setDefaultImageList(); + setHotImageList(); + setDisableImageList(); + + /* set ext size to show button down */ + LONG exStyle = (LONG)::SendMessage(_hSelf, TB_GETEXTENDEDSTYLE, 0, 0); + ::SendMessage(_hSelf, TB_SETEXTENDEDSTYLE, 0, exStyle | TBSTYLE_EX_DRAWDDARROWS); + + if (_state == TB_STANDARD) + { + int nbElement = _toolBarIcons.getNbCommand(); + for (int i = 0, j = 0, k = nbElement-1 ; i < nbElement ; i++, k--) + { + int cmd = 0; + int bmpIndex, style; + + ::SendMessage(_hSelf, TB_DELETEBUTTON, k, 0); + + if ((cmd = _toolBarIcons.getCommandAt(i)) != 0) + { + bmpIndex = j++; + style = TBSTYLE_BUTTON | _toolBarIcons.getIconStyle(i); + } + else + { + bmpIndex = 0; + style = TBSTYLE_SEP; + } + _pTBB[i].iBitmap = bmpIndex; + _pTBB[i].idCommand = cmd; + _pTBB[i].fsState = TBSTATE_ENABLED; + _pTBB[i].fsStyle = style; + _pTBB[i].dwData = 0; + _pTBB[i].iString = 0; + + } + + ::SendMessage(_hSelf, TB_ADDBUTTONS, (WPARAM)nbElement, (LPARAM)_pTBB); + } + + ::SendMessage(_hSelf, TB_AUTOSIZE, 0, 0); +} + +void ToolBar::setToUglyIcons() +{ + if (_state == TB_STANDARD) + return; + + // Due to the drawback of toolbar control (in-coexistence of Imagelist - custom icons and Bitmap - Std icons), + // We have to destroy the control then re-initialize it + ::DestroyWindow(_hSelf); + + //_state = REDUCED; + + _hSelf = ::CreateWindowEx( + WS_EX_PALETTEWINDOW , + TOOLBARCLASSNAME, + "", + WS_TOOLBARSTYLE|TBSTYLE_WRAPABLE, + 0, 0, + 0, 0, + _hParent, + NULL, + _hInst, + 0); + + if (!_hSelf) + { + systemMessage("System Err"); + throw int(9); + } + + // Send the TB_BUTTONSTRUCTSIZE message, which is required for + // backward compatibility. + ::SendMessage(_hSelf, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); + + ::SendMessage(_hSelf, TB_LOADIMAGES, IDB_STD_SMALL_COLOR, reinterpret_cast(HINST_COMMCTRL)); + + /* set ext size to show button down */ + LONG exStyle = (LONG)::SendMessage(_hSelf, TB_GETEXTENDEDSTYLE, 0, 0); + ::SendMessage(_hSelf, TB_SETEXTENDEDSTYLE, 0, exStyle | TBSTYLE_EX_DRAWDDARROWS); + + TBADDBITMAP addbmp = {_hInst, 0}; + if (_bmpArray) + { + for (int i = 0 ; i < _bmpArraySize ; i++) + { + addbmp.nID = _bmpArray[i]; + ::SendMessage(_hSelf, TB_ADDBITMAP, 1, (LPARAM)&addbmp); + } + } + + int nbElement = _toolBarIcons.getNbCommand(); + int inc = 1; + + for (int i = 0 ; i < nbElement ; i++) + { + int cmd = 0; + int bmpIndex, style; + + if ((cmd = _toolBarIcons.getCommandAt(i)) != 0) + { + int ibmp = _toolBarIcons.getUglyIconAt(i); + bmpIndex = (ibmp == -1)?(STD_PRINT + (inc++)):ibmp; + style = TBSTYLE_BUTTON; + } + else + { + bmpIndex = 0; + style = TBSTYLE_SEP; + } + _pTBB[i].iBitmap = bmpIndex; + _pTBB[i].idCommand = cmd; + _pTBB[i].fsState = TBSTATE_ENABLED; + _pTBB[i].fsStyle = style; + _pTBB[i].dwData = 0; + _pTBB[i].iString = 0; + + } + + setButtonSize(16, 16); + + ::SendMessage(_hSelf, TB_ADDBUTTONS, (WPARAM)nbElement, (LPARAM)_pTBB); + ::SendMessage(_hSelf, TB_AUTOSIZE, 0, 0); + _state = TB_STANDARD; +} + +void ReBar::init(HINSTANCE hInst, HWND hPere, ToolBar *pToolBar) +{ + Window::init(hInst, hPere); + _pToolBar = pToolBar; + _hSelf = CreateWindowEx(WS_EX_TOOLWINDOW, + REBARCLASSNAME, + NULL, + WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS| + WS_CLIPCHILDREN|CCS_NODIVIDER, + 0,0,0,0, _hParent, NULL, _hInst, NULL); + + + ::SendMessage(_hSelf, RB_SETBARINFO, 0, (LPARAM)&_rbi); + + RECT rc; + ::GetWindowRect(hPere, &rc); + + int dwBtnSize = (int)::SendMessage(_pToolBar->getHSelf(), TB_GETBUTTONSIZE, 0,0); + int iSize = rc.right - rc.left; + + _rbBand.hwndChild = _pToolBar->getHSelf(); + + if (LOWORD(dwBtnSize) < iSize) { + _rbBand.cxMinChild = LOWORD(dwBtnSize) * _pToolBar->getCountOfTBIcons(); + _rbBand.cyMinChild = HIWORD(dwBtnSize) * _pToolBar->getTBLines(); + _rbBand.cx = iSize; + } else { + _rbBand.cxMinChild = LOWORD(dwBtnSize); + _rbBand.cyMinChild = (rc.bottom - rc.top) - 4; + _rbBand.cx = LOWORD(dwBtnSize); + } + + ::SendMessage(_hSelf, RB_INSERTBAND, (WPARAM)0, (LPARAM)&_rbBand); +} + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ToolBar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ToolBar.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,245 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef TOOL_BAR_H +#define TOOL_BAR_H + +#include "Window.h" + +#ifndef _WIN32_IE +#define _WIN32_IE 0x0600 +#endif //_WIN32_IE + +#include + +#ifndef TB_SETIMAGELIST +#define TB_SETIMAGELIST (WM_USER+48) +#endif + +#ifndef TB_SETHOTIMAGELIST +#define TB_SETHOTIMAGELIST (WM_USER+52) +#endif + +#ifndef TB_SETDISABLEDIMAGELIST +#define TB_SETDISABLEDIMAGELIST (WM_USER+54) +#endif + +enum toolBarStatusType {TB_HIDE, TB_SMALL, TB_LARGE, TB_STANDARD}; + +#include "ImageListSet.h" + + +/************************************************************************** + * Windows helper functions + */ +static void ScreenToClient(HWND hWnd, RECT* rect) +{ + POINT pt; + + pt.x = rect->left; + pt.y = rect->top; + ::ScreenToClient( hWnd, &pt ); + rect->left = pt.x; + rect->top = pt.y; + + pt.x = rect->right; + pt.y = rect->bottom; + ::ScreenToClient( hWnd, &pt ); + rect->right = pt.x; + rect->bottom = pt.y; +} + +class ToolBar : public Window +{ +public : + const static bool REDUCED; + const static bool ENLARGED; + ToolBar():Window(), _pTBB(NULL){}; + virtual ~ToolBar(){}; + + virtual bool init(HINSTANCE hInst, HWND hPere, int iconSize, + ToolBarButtonUnit *buttonUnitArray, int arraySize, + bool doUglyStandardIcon = false, int *bmpArray = NULL, int bmpArraySize = 0); + + virtual void destroy() { + delete [] _pTBB; + ::DestroyWindow(_hSelf); + _hSelf = NULL; + _toolBarIcons.destroy(); + }; + virtual void reSizeTo(RECT & rcWin) { + ::SendMessage(_hSelf, TB_SETROWS, MAKEWPARAM(1,FALSE), NULL); + Window::reSizeTo(rcWin); + + UINT size = rcWin.right - rcWin.left; + + RECT rc; + ::SendMessage(_hSelf, TB_GETRECT, _pTBB[_toolBarIcons.getNbCommand()-1].idCommand, (LPARAM)&rc); + _row = 1 + rc.left / size; + + ::SendMessage(_hSelf, TB_SETROWS, MAKEWPARAM(_row,TRUE), (LPARAM)&rc); + ::SendMessage(_hSelf, TB_AUTOSIZE, 0, 0); + } + + void enable(int cmdID, bool doEnable) const { + ::SendMessage(_hSelf, TB_ENABLEBUTTON, cmdID, (LPARAM)doEnable); + }; + + int getHeight() const { + if (!::IsWindowVisible(_hSelf)) + return 0; + return Window::getHeight(); + }; + + void reduce() { + if (_state == TB_SMALL) + return; + // I really don't know why we have to enlarge then reduce + // to take the effect. + if (_state == TB_STANDARD) + _toolBarIcons.resizeIcon(32); + + _toolBarIcons.resizeIcon(16); + reset(); + + Window::redraw(); + _state = TB_SMALL; + }; + void enlarge() { + if (_state == TB_LARGE) + return; + _toolBarIcons.resizeIcon(32); + reset(); + Window::redraw(); + _state = TB_LARGE; + }; + + void display(bool toShow = true) { + Window::display(toShow); + if (!toShow) + _state = TB_HIDE; + }; + + bool getCheckState(int ID2Check) const { + return bool(::SendMessage(_hSelf, TB_GETSTATE, (WPARAM)ID2Check, 0) & TBSTATE_CHECKED); + }; + + void setCheck(int ID2Check, bool willBeChecked) const { + ::SendMessage(_hSelf, TB_CHECKBUTTON, (WPARAM)ID2Check, (LPARAM)MAKELONG(willBeChecked, 0)); + }; + + toolBarStatusType getState() const {return _state;}; + + void setToUglyIcons(); + + bool changeIcons(int whichLst, int iconIndex, const char *iconLocation){ + return _toolBarIcons.replaceIcon(whichLst, iconIndex, iconLocation); + }; + + int getCountOfTBIcons(void) { + return _toolBarIcons.getNbCommand(); + }; + int getTBLines(void) { + return _row; + }; + + +private : + TBBUTTON *_pTBB; + ToolBarIcons _toolBarIcons; + toolBarStatusType _state; + int *_bmpArray; + int _bmpArraySize; + int _row; + + + void setDefaultImageList() { + ::SendMessage(_hSelf, TB_SETIMAGELIST , (WPARAM)0, (LPARAM)_toolBarIcons.getDefaultLst()); + }; + void setHotImageList() { + ::SendMessage(_hSelf, TB_SETHOTIMAGELIST , (WPARAM)0, (LPARAM)_toolBarIcons.getHotLst()); + }; + void setDisableImageList() { + ::SendMessage(_hSelf, TB_SETDISABLEDIMAGELIST, (WPARAM)0, (LPARAM)_toolBarIcons.getDisableLst()); + }; + + + + void setButtonSize(int w, int h) { + ::SendMessage(_hSelf, TB_SETBUTTONSIZE , (WPARAM)0, (LPARAM)MAKELONG (w, h)); + }; + + void reset(); + +}; + +class ReBar : public Window +{ +public : + ReBar():Window(), _pToolBar(NULL) { + _rbi.cbSize = sizeof(REBARINFO); + _rbi.fMask = 0; + _rbi.himl = (HIMAGELIST)NULL; + + _rbBand.cbSize = sizeof(REBARBANDINFO); + _rbBand.fMask = /*RBBIM_COLORS | RBBIM_TEXT | RBBIM_BACKGROUND | \*/ + RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE | \ + RBBIM_SIZE; + + _rbBand.fStyle = RBBS_CHILDEDGE; + _rbBand.hbmBack = NULL; + _rbBand.lpText = "Toolbar"; + }; + + virtual void destroy() { + ::DestroyWindow(_hSelf); + _hSelf = NULL; + }; + virtual void reSizeTo(RECT & rc) { + Window::reSizeTo(rc); + + int dwBtnSize = (int)::SendMessage(_pToolBar->getHSelf(), TB_GETBUTTONSIZE, 0,0); + int iSize = rc.right - rc.left; + + if (LOWORD(dwBtnSize) < iSize) { + _rbBand.cxMinChild = LOWORD(dwBtnSize) * _pToolBar->getCountOfTBIcons(); + _rbBand.cyMinChild = HIWORD(dwBtnSize) * _pToolBar->getTBLines(); + _rbBand.cx = iSize; + } else { + _rbBand.cxMinChild = LOWORD(dwBtnSize); + _rbBand.cyMinChild = (rc.bottom - rc.top) - 4; + _rbBand.cx = LOWORD(dwBtnSize); + } + + ::SendMessage(_hSelf, RB_SETBANDINFO, (WPARAM)0, (LPARAM)&_rbBand); + } + + void init(HINSTANCE hInst, HWND hPere, ToolBar *pToolBar); + void reNew() { + _rbBand.hwndChild = _pToolBar->getHSelf(); + int dwBtnSize = (int)::SendMessage(_pToolBar->getHSelf(), TB_GETBUTTONSIZE, 0,0); + _rbBand.cyMinChild = HIWORD(dwBtnSize); + ::SendMessage(_hSelf, RB_INSERTBAND, (WPARAM)0, (LPARAM)&_rbBand); + }; + +private: + REBARINFO _rbi; + REBARBANDINFO _rbBand; + ToolBar *_pToolBar; +}; + +#endif // TOOL_BAR_H diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Window.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Window.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,100 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO ( donho@altern.org ) +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef WINDOW_CONTROL_H +#define WINDOW_CONTROL_H + +#include "PluginInterface.h" +#include + +class Window +{ +public: + Window(): _hInst(NULL), _hParent(NULL), _hSelf(NULL){}; + virtual ~Window() {}; + + virtual void init(HINSTANCE hInst, HWND parent) + { + _hInst = hInst; + _hParent = parent; + } + + virtual void destroy() = 0; + + virtual void display(bool toShow = true) const { + ::ShowWindow(_hSelf, toShow?SW_SHOW:SW_HIDE); + }; + + virtual void reSizeTo(RECT & rc) // should NEVER be const !!! + { + //::MoveWindow(_hSelf, rc.left, rc.top, rc.right, rc.bottom, TRUE); + // it should be : + ::MoveWindow(_hSelf, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE); + redraw(); + }; + + virtual void redraw() const { + ::InvalidateRect(_hSelf, NULL, TRUE); + ::UpdateWindow(_hSelf); + }; + + virtual void getClientRect(RECT & rc) const { + ::GetClientRect(_hSelf, &rc); + }; + + virtual void getWindowRect(RECT & rc) const { + ::GetWindowRect(_hSelf, &rc); + }; + + virtual int getWidth() const { + RECT rc; + ::GetClientRect(_hSelf, &rc); + return (rc.right - rc.left); + }; + + virtual int getHeight() const { + RECT rc; + ::GetClientRect(_hSelf, &rc); + return (rc.bottom - rc.top); + }; + + virtual bool isVisible() const { + if (!_hSelf) + return false; + else + return (::IsWindowVisible(_hSelf)?true:false); + }; + + HWND getHSelf() const { + return _hSelf; + }; + + void getFocus() const { + ::SetFocus(_hSelf); + }; + + HINSTANCE getHinst() const { + return _hInst; + }; +protected: + HINSTANCE _hInst; + HWND _hParent; + HWND _hSelf; +}; + +#endif //WINDOW_CONTROL_H + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/stdafx.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/stdafx.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,9 @@ +// stdafx.cpp : source file that includes just the standard includes +// NppInsertPlugin.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/stdafx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/stdafx.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,13 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files: + +// TODO: reference additional headers your program requires here +//#include \ No newline at end of file diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,258 @@ +/*************************************************************************** +* Copyright (C) 2006-2008 by Thomas Schweitzer * +* thomas-schweitzer(at)arcor.de * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License version 2.0 as * +* published by the Free Software Foundation. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program in the file LICENSE.GPL; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + + +/* include files */ +#include "stdafx.h" +#include "UniversalIndentGUI_NPP.h" +#include "UniversalIndentGUI_NPPDialog.h" + +#include "indenthandler.h" + + +/* information for notepad */ +CONST INT nbFunc = 3; +CONST CHAR PLUGIN_NAME[] = "&UniversalIndentGUI_NPP"; + +/* global values */ +HANDLE g_hModule = NULL; +NppData nppData; +FuncItem funcItem[nbFunc]; +toolbarIcons g_TBWndMgr; + +IndentHandler *indentHandler; + +/* dialog classes */ +UniversalIndentGUI_NPPDialog universalIndentGUI_NPPDialog; + + +/* settings */ +TCHAR configPath[MAX_PATH]; +TCHAR iniFilePath[MAX_PATH]; +tPluginProp pluginProp; + + +/* main function of dll */ +BOOL APIENTRY DllMain( HANDLE hModule, DWORD reasonForCall, LPVOID lpReserved ) +{ + g_hModule = hModule; + + switch (reasonForCall) + { + case DLL_PROCESS_ATTACH: + { + //IndentHandler *indentHandler = new IndentHandler("E:/EigeneDateien/Dokumente/Informatik/UniversalIndentGUI/indenters", "E:/EigeneDateien/Dokumente/Informatik/UniversalIndentGUI/config", "E:/EigeneDateien/Dokumente/Informatik/UniversalIndentGUI/temp", 0); + //indentHandler->show(); + //app.exec(); + if (!qApp) { + int argc = 1; + char *argv[] = {"setup", NULL}; + static QApplication qapp(argc, argv); + indentHandler = new IndentHandler("E:/EigeneDateien/Dokumente/Informatik/UniversalIndentGUI/indenters", "E:/EigeneDateien/Dokumente/Informatik/UniversalIndentGUI/config", "E:/EigeneDateien/Dokumente/Informatik/UniversalIndentGUI/temp", 0); + indentHandler->setWindowModality( Qt::ApplicationModal ); + indentHandler->setWindowTitle("UniversalIndentGUI"); + //qapp.setActiveWindow(indentHandler); + } + + /* Set function pointers */ + funcItem[0]._pFunc = toggleView; + funcItem[1]._pFunc = aboutDlg; + funcItem[2]._pFunc = indentText; + + /* Fill menu names */ + strcpy(funcItem[0]._itemName, "&Show Dockable View"); + strcpy(funcItem[1]._itemName, "&About..."); + strcpy(funcItem[2]._itemName, "&Indent text"); + + /* Set shortcuts */ + funcItem[0]._pShKey = new ShortcutKey; + funcItem[0]._pShKey->_isAlt = true; + funcItem[0]._pShKey->_isCtrl = true; + funcItem[0]._pShKey->_isShift = true; + funcItem[0]._pShKey->_key = 'T'; + funcItem[1]._pShKey = NULL; + funcItem[2]._pShKey = NULL; + break; + } + case DLL_PROCESS_DETACH: + { + delete funcItem[0]._pShKey; + + /* save settings */ + saveSettings(); + break; + } + case DLL_THREAD_ATTACH: + break; + + case DLL_THREAD_DETACH: + break; + } + + return TRUE; +} + + +extern "C" __declspec(dllexport) void setInfo(NppData notpadPlusData) +{ + /* stores notepad data */ + nppData = notpadPlusData; + + /* load data of plugin */ + loadSettings(); + + /* initial dialogs */ + universalIndentGUI_NPPDialog.init((HINSTANCE)g_hModule, nppData, &pluginProp); + //nppAboutDialog.init((HINSTANCE)g_hModule, nppData); +} + + +extern "C" __declspec(dllexport) LPCSTR getName() +{ + return PLUGIN_NAME; +} + + +extern "C" __declspec(dllexport) FuncItem * getFuncsArray(INT *nbF) +{ + *nbF = nbFunc; + return funcItem; +} + + +/*** + * beNotification() + * + * This function is called, if a notification in Scantilla/Notepad++ occurs + */ +extern "C" __declspec(dllexport) void beNotified(SCNotification *notifyCode) +{ + if (notifyCode->nmhdr.hwndFrom == nppData._nppHandle) + { + /* on this notification code you can register your plugin icon in Notepad++ toolbar */ + if (notifyCode->nmhdr.code == NPPN_TBMODIFICATION) + { + g_TBWndMgr.hToolbarBmp = (HBITMAP)::LoadImage((HINSTANCE)g_hModule, MAKEINTRESOURCE(IDB_TOOLBAR), IMAGE_BITMAP, 0, 0, (LR_LOADMAP3DCOLORS)); + ::SendMessage(nppData._nppHandle, NPPM_ADDTOOLBARICON, (WPARAM)funcItem[TOGGLE_DOCKABLE_WINDOW_INDEX]._cmdID, (LPARAM)&g_TBWndMgr); + } + } +} + + +/*** + * messageProc() + * + * This function is called, if a notification from Notepad occurs + */ +extern "C" __declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam) +{ + return TRUE; +} + + +/*** + * loadSettings() + * + * Load the parameters of plugin + */ +void loadSettings(void) +{ + /* initialize the config directory */ + ::SendMessage(nppData._nppHandle, NPPM_GETPLUGINSCONFIGDIR, MAX_PATH, (LPARAM)configPath); + + /* Test if config path exist */ + if (PathFileExists(configPath) == FALSE) { + ::CreateDirectory(configPath, NULL); + } + + strcpy(iniFilePath, configPath); + strcat(iniFilePath, PLUGINTEMP_INI); + if (PathFileExists(iniFilePath) == FALSE) + { + ::CloseHandle(::CreateFile(iniFilePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)); + } + + pluginProp.iValue1 = ::GetPrivateProfileInt(dlgTemp, Value1, 200, iniFilePath); + pluginProp.iValue2 = ::GetPrivateProfileInt(dlgTemp, Value2, 200, iniFilePath); +} + + +/*** + * saveSettings() + * + * Saves the parameters of plugin + */ +void saveSettings(void) +{ + TCHAR temp[16]; + + ::WritePrivateProfileString(dlgTemp, Value1, _itoa(pluginProp.iValue1, temp, 10), iniFilePath); + ::WritePrivateProfileString(dlgTemp, Value2, _itoa(pluginProp.iValue2, temp, 10), iniFilePath); +} + + +/************************************************************************** + * Interface functions + */ +void toggleView(void) +{ + /* get menu and test if dockable dialog is open */ + HMENU hMenu = ::GetMenu(nppData._nppHandle); + UINT state = ::GetMenuState(hMenu, funcItem[TOGGLE_DOCKABLE_WINDOW_INDEX]._cmdID, MF_BYCOMMAND); + universalIndentGUI_NPPDialog.doDialog(state & MF_CHECKED ? false : true); +} + + +void aboutDlg(void) +{ + indentHandler->show(); +} + + +HWND getCurrentHScintilla(int which) +{ + return (which == 0)?nppData._scintillaMainHandle:nppData._scintillaSecondHandle; +}; + +void indentText() { + int currentEdit = 0; + const int maxLineLength = 2600; + char *fullEditorText = NULL; + char wordsPerLineStr[maxLineLength]; + + // Get scintilla text edit window handle + //::SendMessage(nppData._nppHandle, WM_GETCURRENTSCINTILLA, 0, (LPARAM)¤tEdit); + + int textLength = ::SendMessage(getCurrentHScintilla(currentEdit), SCI_GETTEXTLENGTH, 0, 0); + + fullEditorText = new char[textLength]; + + // Get whole text + ::SendMessage(getCurrentHScintilla(currentEdit), SCI_GETTEXT, textLength, (LPARAM)fullEditorText); + + QString indentedText = indentHandler->callIndenter(fullEditorText, "cpp"); + + QByteArray indentedTextByteArray = indentedText.toAscii(); + + // Set whole text + ::SendMessage(getCurrentHScintilla(currentEdit), SCI_SETTEXT, 0, (LPARAM)indentedTextByteArray.constData()); + + delete fullEditorText; + fullEditorText = NULL; +} diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,65 @@ +/*************************************************************************** +* Copyright (C) 2006-2008 by Thomas Schweitzer * +* thomas-schweitzer(at)arcor.de * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License version 2.0 as * +* published by the Free Software Foundation. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program in the file LICENSE.GPL; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + + +#ifndef UNIVERSALINDENTGUI_NPP_H +#define UNIVERSALINDENTGUI_NPP_H + +#define WIN32_LEAN_AND_MEAN +#include "SysMsg.h" +#include "PluginInterface.h" +#include "Notepad_plus_rc.h" +#include "Scintilla.h" +#include + +/* menu position in funcItem */ +#define TOGGLE_DOCKABLE_WINDOW_INDEX 0 + + +/* ini file name */ +CONST TCHAR PLUGINTEMP_INI[] = _T("\\PluginManager.ini"); + +/* param names of ini file */ +/* section */ +CONST TCHAR dlgTemp[] = _T("Plugin Template"); +/* keys of section */ +CONST TCHAR Value1[] = _T("Value1"); +CONST TCHAR Value2[] = _T("Value2"); + + +/* define here your plugin properties (stored in an ini file) */ +typedef struct tPluginProp { + INT iValue1; + INT iValue2; +} tPluginProp; + + +/* load and save properties from/into ini file */ +void loadSettings(void); +void saveSettings(void); + +/* menu functions */ +void toggleView(void); +void aboutDlg(void); +void indentText(void); + + + +#endif // UNIVERSALINDENTGUI_NPP_H + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.vcproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.vcproj Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,219 @@ +/*************************************************************************** +* Copyright (C) 2006-2008 by Thomas Schweitzer * +* thomas-schweitzer(at)arcor.de * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License version 2.0 as * +* published by the Free Software Foundation. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program in the file LICENSE.GPL; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + + +#include "UniversalIndentGUI_NPPDialog.h" +#include "resource.h" + + +/************************* define here your toolbar layout *********************/ + +/* messages needs to be added in resource.h */ + +static ToolBarButtonUnit toolBarIcons[] = { + {IDM_EX_UNDO, -1, -1, -1, -1, 0/* TBSTYLE_DROPDOWN */}, + {IDM_EX_REDO, -1, -1, -1, -1, 0/* TBSTYLE_DROPDOWN */} +}; + +static int stdIcons[] = {IDB_EX_UNDO, IDB_EX_REDO}; + +/** + * Note: On change, keep sure to change order of IDM_EX_... also in function GetNameStrFromCmd + */ +static LPTSTR szToolTip[5] = { + "Undo", + "Redo" +}; + +void UniversalIndentGUI_NPPDialog::GetNameStrFromCmd(UINT resID, LPTSTR tip) +{ + strcpy(tip, szToolTip[resID - IDM_EX_UNDO]); +} +/**************************** end of toolbar layout ****************************/ + + + + +/* Note: Within constructor send dialog IDD to DockingDlgInterface class */ +UniversalIndentGUI_NPPDialog::UniversalIndentGUI_NPPDialog(void) : DockingDlgInterface(IDD_DOCK_DLG), _hEdit(NULL) +{ +} + +UniversalIndentGUI_NPPDialog::~UniversalIndentGUI_NPPDialog(void) +{ +} + + +void UniversalIndentGUI_NPPDialog::init(HINSTANCE hInst, NppData nppData, tPluginProp *pPluginProp) +{ + _nppData = nppData; + _pPluginProp = pPluginProp; + DockingDlgInterface::init(hInst, nppData._nppHandle); +} + + +void UniversalIndentGUI_NPPDialog::doDialog(bool willBeShown) +{ + if (!isCreated()) + { + create(&_data); + + // define the default docking behaviour + _data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB; + _data.hIconTab = (HICON)::LoadImage(_hInst, MAKEINTRESOURCE(IDI_TABBAR), IMAGE_ICON, 0, 0, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + _data.pszModuleName = getPluginFileName(); + _data.dlgID = TOGGLE_DOCKABLE_WINDOW_INDEX; + ::SendMessage(_hParent, NPPM_DMMREGASDCKDLG, 0, (LPARAM)&_data); + } + display(willBeShown); +} + + +BOOL CALLBACK UniversalIndentGUI_NPPDialog::run_dlgProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam) +{ + switch (Message) + { + case WM_INITDIALOG: + { + InitialDialog(); + break; + } + case WM_SIZE: + case WM_MOVE: + { + RECT rc = {0}; + + /* test if in side or if docked on top or bottom */ + if ((_iDockedPos == CONT_LEFT) || (_iDockedPos == CONT_RIGHT)) + { + getClientRect(rc); + + /* set position of toolbar */ + _ToolBar.reSizeTo(rc); + _Rebar.reSizeTo(rc); + + /* set position of edit control */ + rc.top += 26; + rc.bottom -= 26; + ::SetWindowPos(_hEdit, NULL, rc.left, rc.top, rc.right, rc.bottom, SWP_NOZORDER | SWP_SHOWWINDOW); + } + else + { + getClientRect(rc); + rc.right = rc.left + 23; + + /* set position of toolbar */ + _ToolBar.reSizeTo(rc); + _Rebar.reSizeTo(rc); + + /* set position of edit control */ + getClientRect(rc); + rc.left += 23; + rc.right -= 23; + ::SetWindowPos(_hEdit, NULL, rc.left, rc.top, rc.right, rc.bottom, SWP_NOZORDER | SWP_SHOWWINDOW); + } + break; + } + case WM_COMMAND: + { + if ((HWND)lParam == _ToolBar.getHSelf()) + { + tb_cmd(LOWORD(wParam)); + return TRUE; + } + break; + } + case WM_NOTIFY: + { + LPNMHDR nmhdr = (LPNMHDR)lParam; + + if (nmhdr->hwndFrom == _hEdit) { + + /* do what ever you need */ + + } else if (nmhdr->code == TTN_GETDISPINFO) { + + /* tooltip request of toolbar */ + + LPTOOLTIPTEXT lpttt; + + lpttt = (LPTOOLTIPTEXT)nmhdr; + lpttt->hinst = _hInst; + + // Specify the resource identifier of the descriptive + // text for the given button. + int resId = int(lpttt->hdr.idFrom); + + TCHAR tip[16]; + GetNameStrFromCmd(resId, tip); + lpttt->lpszText = tip; + return TRUE; + } else { + + /* parse all other notifications to docking dialog interface */ + + return DockingDlgInterface::run_dlgProc(hWnd, Message, wParam, lParam); + } + break; + } + case WM_DESTROY: + { + /* destroy icon of tab */ + ::DestroyIcon(_data.hIconTab); + break; + } + default: + return DockingDlgInterface::run_dlgProc(hWnd, Message, wParam, lParam); + } + + return FALSE; +} + +void UniversalIndentGUI_NPPDialog::InitialDialog(void) +{ + /* get handle of dialogs */ + _hEdit = ::GetDlgItem(_hSelf, IDC_EDIT_TEMP); + + /* create toolbar */ + _ToolBar.init(_hInst, _hSelf, 16, toolBarIcons, sizeof(toolBarIcons)/sizeof(ToolBarButtonUnit), true, stdIcons, sizeof(stdIcons)/sizeof(int)); + _ToolBar.display(); + _Rebar.init(_hInst, _hSelf, &_ToolBar); + _Rebar.display(); +} + +void UniversalIndentGUI_NPPDialog::tb_cmd(UINT message) +{ + switch (message) + { + case IDM_EX_UNDO: + { + ::SendMessage(_hEdit, WM_UNDO, 0, 0); + break; + } + case IDM_EX_REDO: + { + TCHAR pszText[256]; + _stprintf(pszText, "Value1 = %d\r\nValue2 = %d\r\n\r\n", _pPluginProp->iValue1, _pPluginProp->iValue2); + ::SendMessage(_hEdit, WM_SETTEXT, 0, (LPARAM)pszText); + break; + } + default: + break; + } +} diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,74 @@ +/*************************************************************************** +* Copyright (C) 2006-2008 by Thomas Schweitzer * +* thomas-schweitzer(at)arcor.de * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License version 2.0 as * +* published by the Free Software Foundation. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program in the file LICENSE.GPL; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + + + +#ifndef UNIVERSALINDENTGUI_NPPDIALOG_H +#define UNIVERSALINDENTGUI_NPPDIALOG_H + +#include "UniversalIndentGUI_NPP.h" +#include "DockingDlgInterface.h" +#include "Toolbar.h" + +#include "indenthandler.h" + +class UniversalIndentGUI_NPPDialog : public DockingDlgInterface +{ +public: + UniversalIndentGUI_NPPDialog(void); + ~UniversalIndentGUI_NPPDialog(void); + + void init(HINSTANCE hInst, NppData nppData, tPluginProp *pMgrProp); + + void destroy(void) {}; + + void doDialog(bool willBeShown = true); + +protected: + + /* get toolbar tooltips */ + void GetNameStrFromCmd(UINT resID, LPTSTR tip); + + virtual BOOL CALLBACK run_dlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + + /* initial dialog here */ + void InitialDialog(void); + + /* toolbar commands */ + void tb_cmd(UINT message); + +private: + /* Handles */ + NppData _nppData; + HWND _hEdit; + + /* classes */ + ToolBar _ToolBar; + ReBar _Rebar; + + /* settings */ + tTbData _data; + tPluginProp* _pPluginProp; + + IndentHandler *indentHandler; +}; + + +#endif // UNIVERSALINDENTGUI_NPPDIALOG_H + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.rc Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,178 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_ABOUT_DLG DIALOGEX 0, 0, 230, 123 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_BORDER | WS_SYSMENU +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + DEFPUSHBUTTON "&Ok",1,89,102,50,14 + LTEXT "jens.plugin.npp@gmx.de",30551,65,41,80,8 + LTEXT "Author:\t\tJens Lorenz",-1,12,31,183,9 + GROUPBOX "Menu entries",-1,7,65,216,32 + LTEXT "eMail:",-1,12,41,21,8 + LTEXT "Dockable View...\t\tViews the dialog with toolbar.\nAbout...\t\t\tShows this dialog.", + -1,15,77,203,17 + CTEXT "Plugin Template for Notepad++ v4.0 v1.0", + -1,7,7,216,17,SS_CENTERIMAGE,WS_EX_DLGMODALFRAME | + WS_EX_TRANSPARENT + LTEXT "http://sourceforge.net/projects/npp-plugins/",30552,65, + 52,158,8 + LTEXT "URL:",-1,12,52,21,8 +END + +IDD_DOCK_DLG DIALOGEX 64536, 0, 164, 267 +STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | + WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_TOOLWINDOW +CAPTION "Plugin Template" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + EDITTEXT 30501,0,0,163,266,ES_MULTILINE +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_DOCK_DLG, DIALOG + BEGIN + RIGHTMARGIN, 163 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040704b0" + BEGIN + VALUE "Comments", "Visit https://sourceforge.net/projects/npp-plugins" + VALUE "CompanyName", "Thomas Schweitzer" + VALUE "FileDescription", "UniversalIndentGUI Notepad++ Plugin : free source code" + VALUE "FileVersion", "1, 0, 0, 0" + VALUE "InternalName", "UniversalIndentGUI Notepad++ Plugin" + VALUE "LegalCopyright", "Copyright © 2007" + VALUE "OriginalFilename", "UniversalIndentGUI_NPP.dll" + VALUE "ProductName", "Thomas Schweitzer UniversalIndentGUI Notepad++ Plugin" + VALUE "ProductVersion", "1, 0, 0, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x407, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_TABBAR ICON ".\\res\\WndMgr.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_TOOLBAR BITMAP ".\\res\\ToolBar.bmp" +IDB_EX_UNDO BITMAP ".\\res\\undo.bmp" +IDB_EX_REDO BITMAP ".\\res\\redo.bmp" +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/res/ToolBar.bmp Binary file src/UniversalIndentGUI_NPP/res/ToolBar.bmp has changed diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/res/WndMgr.ico Binary file src/UniversalIndentGUI_NPP/res/WndMgr.ico has changed diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/res/redo.bmp Binary file src/UniversalIndentGUI_NPP/res/redo.bmp has changed diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/res/undo.bmp Binary file src/UniversalIndentGUI_NPP/res/undo.bmp has changed diff -r 0745e5a3a9df -r 5fe3aefed089 src/UniversalIndentGUI_NPP/resource.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/UniversalIndentGUI_NPP/resource.h Sun Jun 15 17:15:35 2008 +0000 @@ -0,0 +1,27 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by UniversalIndentGUI_NPPDialog.rc +// +#define IDI_TABBAR 101 +#define IDB_EX_UNDO 1001 +#define IDB_EX_REDO 1002 +#define IDB_TOOLBAR 1003 +#define IDM_EX_UNDO 2001 +#define IDM_EX_REDO 2002 +#define IDD_DOCK_DLG 30500 +#define IDC_EDIT_TEMP 30501 +#define IDD_ABOUT_DLG 30550 +#define IDC_EMAIL_LINK 30551 +#define IDC_NPP_PLUGINS_URL 30552 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 111 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff -r 0745e5a3a9df -r 5fe3aefed089 src/indenthandler.cpp --- a/src/indenthandler.cpp Fri Jun 13 12:13:27 2008 +0000 +++ b/src/indenthandler.cpp Sun Jun 15 17:15:35 2008 +0000 @@ -40,15 +40,21 @@ its \a indenterID, which is the number of found indenter ini files in alphabetic order starting at index 0. */ -IndentHandler::IndentHandler(QString indenterDirPathStr, QString settingsDirPathStr, QString tempDirPathStr, int indenterID, QMainWindow *mainWindow, QWidget *parent) +IndentHandler::IndentHandler(QString indenterDirPathStr, QString settingsDirPathStr, QString tempDirPathStr, int indenterID, QWidget *mainWindow, QWidget *parent) : QWidget(parent) { Q_ASSERT_X( indenterID >= 0, "IndentHandler", "the selected indenterID is < 0" ); setObjectName(QString::fromUtf8("indentHandler")); - this->mainWindow = mainWindow; + if ( mainWindow == NULL ) { + this->mainWindow = this; + } + else { + this->mainWindow = mainWindow; + } + parameterChangedCallback = NULL; indenterSettings = NULL; menuIndenter = NULL; actionLoad_Indenter_Config_File = NULL; @@ -92,6 +98,11 @@ // create a toolbox and set its resize behavior toolBox = new QToolBox(this); toolBox->setObjectName(QString::fromUtf8("toolBox")); + +#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS + connect( toolBox, SIGNAL(currentChanged(int)), this, SLOT(repaint()) ); +#endif // UNIVERSALINDENTGUI_NPP_EXPORTS + //toolBox->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); //toolBox->setMaximumSize(QSize(16777215, 16777215)); // insert the toolbox into the vlayout @@ -1011,6 +1022,9 @@ QObject::connect(comboBox, SIGNAL(activated(int)), this, SIGNAL(indenterSettingsChanged())); QObject::connect(chkBox, SIGNAL(clicked()), this, SIGNAL(indenterSettingsChanged())); +#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS + connect( comboBox, SIGNAL(activated(int)), comboBox, SLOT(repaint()) ); +#endif // UNIVERSALINDENTGUI_NPP_EXPORTS } } @@ -1060,10 +1074,12 @@ \brief Deletes all elements in the toolbox and initializes the indenter selected by \a indenterID. */ void IndentHandler::setIndenter(int indenterID) { - // TODO: This function is never called because out of the mainwindow object a new indenthandler object is created if another indenter is selected. - QApplication::setOverrideCursor(Qt::WaitCursor); +#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS + disconnect( toolBox, SIGNAL(currentChanged(int)), this, SLOT(repaint()) ); +#endif // UNIVERSALINDENTGUI_NPP_EXPORTS + // Generate the parameter string that will be saved to the indenters config file. QString parameterString = getParameterString(); if ( !indenterFileName.isEmpty() ) { @@ -1096,6 +1112,11 @@ paramMultiples.clear(); delete indenterSettings; +#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS + QWidget dummyWidget; + toolBox->addItem(&dummyWidget, "dummyText"); +#endif + readIndentIniFile( indenterDirctoryStr + "/" + indenterIniFileList.at(indenterID) ); // Find out how the indenter can be executed. @@ -1107,11 +1128,16 @@ emit( indenterSettingsChanged() ); QApplication::restoreOverrideCursor(); + +#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS + connect( toolBox, SIGNAL(currentChanged(int)), this, SLOT(repaint()) ); + toolBox->removeItem( toolBox->indexOf(&dummyWidget) ); +#endif // UNIVERSALINDENTGUI_NPP_EXPORTS } /*! - \brief Returns a string containing by the indenter supported file types/extensions devided by a space. + \brief Returns a string containing by the indenter supported file types/extensions divided by a space. */ QString IndentHandler::getPossibleIndenterFileExtensions() { return fileTypes; @@ -1419,3 +1445,26 @@ loadConfigFile("", true); } } + + +bool IndentHandler::event( QEvent *event ) { + if ( event->type() == QEvent::WindowActivate ) { + int i = 0; + event->accept(); + return true; + } + else if ( event->type() == QEvent::WindowDeactivate ) { + int i = 0; + event->accept(); + return true; + } + else { + event->ignore(); + return QWidget::event(event); + } +} + + +void IndentHandler::setParameterChangedCallback( void(*paramChangedCallback)(void) ) { + parameterChangedCallback = paramChangedCallback; +} diff -r 0745e5a3a9df -r 5fe3aefed089 src/indenthandler.h --- a/src/indenthandler.h Fri Jun 13 12:13:27 2008 +0000 +++ b/src/indenthandler.h Sun Jun 15 17:15:35 2008 +0000 @@ -57,7 +57,7 @@ Q_OBJECT public: - IndentHandler(QString indenterDirPathStr, QString settingsDirPathStr, QString tempDirPathStr, int indenterID, QMainWindow *mainWindow = 0, QWidget *parent = 0); + IndentHandler(QString indenterDirPathStr, QString settingsDirPathStr, QString tempDirPathStr, int indenterID, QWidget *mainWindow = 0, QWidget *parent = 0); ~IndentHandler(); QString generateCommandlineCall(QString inputFileExtension); @@ -73,9 +73,13 @@ QMenu* getIndenterMenu(); QList getIndenterMenuActions(); void contextMenuEvent( QContextMenuEvent *event ); + void setParameterChangedCallback( void(*paramChangedCallback)(void) ); signals: void indenterSettingsChanged(); + +protected: + bool event( QEvent *event ); private slots: void setIndenter(int indenterID); @@ -164,7 +168,7 @@ QString fileTypes; QString useCfgFileParameter; QString indenterShowHelpParameter; - QMainWindow *mainWindow; + QWidget *mainWindow; UiGuiErrorMessage *errorMessageDialog; QString indenterExecutableCallString; QString indenterExecutableSuffix; @@ -174,6 +178,7 @@ QAction *actionSave_Indenter_Config_File; QAction *actionCreateShellScript; QAction *actionResetIndenterParameters; + void(*parameterChangedCallback)(void); }; #endif // INDENTHANDLER_H