changeset 489:5fe3aefed089

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
author thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
date Sun, 15 Jun 2008 17:15:35 +0000
parents 0745e5a3a9df
children 0d58db39775f
files UniversalIndentGUI.sln src/UniversalIndentGUI.vcproj src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Docking.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/DockingDlgInterface.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ImageListSet.cpp src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ImageListSet.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Notepad_plus_msgs.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Notepad_plus_rc.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/PluginInterface.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Scintilla.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/StaticDialog.cpp src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/StaticDialog.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/SysMsg.cpp src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/SysMsg.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ToolBar.cpp src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/ToolBar.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/Window.h src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/stdafx.cpp src/UniversalIndentGUI_NPP/NPPCommon/Ccpp/stdafx.h src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.cpp src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.h src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPP.vcproj src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.cpp src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.h src/UniversalIndentGUI_NPP/UniversalIndentGUI_NPPDialog.rc src/UniversalIndentGUI_NPP/res/ToolBar.bmp src/UniversalIndentGUI_NPP/res/WndMgr.ico src/UniversalIndentGUI_NPP/res/redo.bmp src/UniversalIndentGUI_NPP/res/undo.bmp src/UniversalIndentGUI_NPP/resource.h src/indenthandler.cpp src/indenthandler.h
diffstat 32 files changed, 4609 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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"
--- /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 <jens.plugin.npp@gmx.de>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 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
--- /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 <jens.plugin.npp@gmx.de>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 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 <shlwapi.h>
+
+#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
--- /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);
+}
+*/
+
--- /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 <windows.h>
+#include <commctrl.h>
+#include <vector>
+
+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<ToolBarButtonUnit> ToolBarIconIDs;
+
+typedef std::vector<IconList> 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
--- /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
--- /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 <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 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 */
--- /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 <windows.h>
+#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
--- /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 <neilh@scintilla.org>
+// 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 <BaseTsd.h>
+#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
--- /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, &center);
+
+	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<StaticDialog *>(::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);
+}
--- /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
--- /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 <memory>
+#include <string>
+#include <algorithm>
+
+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<TCHAR> 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);
+}
+
--- /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 <windows.h>
+
+
+void systemMessage(const char *title);
+DWORD ShortToLongPathName(LPCTSTR lpszShortPath, LPTSTR lpszLongPath, DWORD cchBuffer);
+
+#endif //M30_IDE_COMMUN_H
--- /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<LPARAM>(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<LPARAM>(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);
+}
+
--- /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 <commctrl.h>
+
+#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
--- /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 <stdlib.h>
+
+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
+
--- /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
+
--- /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 <afxwin.h>
\ No newline at end of file
--- /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)&currentEdit);
+
+    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;
+}
--- /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 <TCHAR.H>
+
+/* 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
+
--- /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 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8,00"
+	Name="UniversalIndentGUI_NPP"
+	ProjectGUID="{0A9F9D63-C282-4AE8-9F80-A6D5F541AD12}"
+	RootNamespace="UniversalIndentGUI_NPP"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+		<ToolFile
+			RelativePath="..\..\VS8QtRules.rules"
+		/>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)_npp"
+			IntermediateDirectory="$(OutDir)\tmp"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="MOC"
+			/>
+			<Tool
+				Name="QRC"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="UIC"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
+				Optimization="0"
+				AdditionalIncludeDirectories="&quot;$(QTDIR)\include\QtScript&quot;;.;AboutDlg;NPPCommon/Ccpp;.."
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;UNIVERSALINDENTGUI_NPP_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				ObjectFile="$(IntDir)\obj\"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="shlwapi.lib comctl32.lib qtmaind.lib QtGuid4.lib QtCored4.lib QtScriptd4.lib "
+				OutputFile="D:\Programme\Tools\Notepad++\plugins\$(ProjectName).dll"
+				LinkIncremental="2"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/UniversalIndentGUI_NPP.pdb"
+				SubSystem="2"
+				ImportLibrary="$(OutDir)/UniversalIndentGUI_NPP.lib"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="MOC"
+			/>
+			<Tool
+				Name="QRC"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="UIC"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories=".;AboutDlg;NPPCommon/Ccpp"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UNIVERSALINDENTGUI_NPP_EXPORTS"
+				RuntimeLibrary="0"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="shlwapi.lib comctl32.lib"
+				OutputFile="Release\$(ProjectName).dll"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				ImportLibrary="$(OutDir)/UniversalIndentGUI_NPP.lib"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\indenthandler.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\uiguierrormessage.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\uiguiIniFileParser.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\UniversalIndentGUI_NPP.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\UniversalIndentGUI_NPPDialog.cpp"
+				>
+			</File>
+			<Filter
+				Name="NPPCommon"
+				>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\ImageListSet.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\StaticDialog.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\stdafx.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\SysMsg.cpp"
+					>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\ToolBar.cpp"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\indenthandler.h"
+				>
+			</File>
+			<File
+				RelativePath=".\resource.h"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\uiguierrormessage.h"
+				>
+			</File>
+			<File
+				RelativePath="..\uiguiIniFileParser.h"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCustomBuildTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\UniversalIndentGUI_NPP.h"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\UniversalIndentGUI_NPPDialog.h"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<Filter
+				Name="NPPCommon"
+				>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\Docking.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\DockingDlgInterface.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\ImageListSet.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\Notepad_plus_msgs.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\Notepad_plus_rc.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\PluginInterface.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\Scintilla.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\StaticDialog.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\stdafx.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\SysMsg.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\ToolBar.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath=".\NPPCommon\Ccpp\Window.h"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+			<File
+				RelativePath="..\..\resources\Icons.qrc"
+				>
+			</File>
+			<File
+				RelativePath=".\res\redo.bmp"
+				>
+			</File>
+			<File
+				RelativePath=".\res\ToolBar.bmp"
+				>
+			</File>
+			<File
+				RelativePath=".\res\undo.bmp"
+				>
+			</File>
+			<File
+				RelativePath=".\UniversalIndentGUI_NPPDialog.rc"
+				>
+			</File>
+			<File
+				RelativePath=".\res\WndMgr.ico"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Generated"
+			>
+			<File
+				RelativePath="$(OutDir)\tmp\moc\moc_indenthandler.cpp"
+				>
+			</File>
+			<File
+				RelativePath="$(OutDir)\tmp\moc\moc_uiguierrormessage.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\debug_npp\tmp\qrc\qrc_Icons.cpp"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
--- /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;
+	}
+}
--- /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
+
--- /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
+
Binary file src/UniversalIndentGUI_NPP/res/ToolBar.bmp has changed
Binary file src/UniversalIndentGUI_NPP/res/WndMgr.ico has changed
Binary file src/UniversalIndentGUI_NPP/res/redo.bmp has changed
Binary file src/UniversalIndentGUI_NPP/res/undo.bmp has changed
--- /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
--- 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;
+}
--- 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<QAction*> 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