From 28fa54583ee76ca6367cc56a0aa19d692cfc7d8c Mon Sep 17 00:00:00 2001 From: Don Ho Date: Wed, 13 Apr 2011 07:08:51 +0000 Subject: [PATCH] [NEW_FEATURE] Add Character Insertion Panel. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@745 f5eea248-9336-0410-98b8-ebc06183d4e3 --- PowerEditor/src/MISC/Common/Common.h | 2 + PowerEditor/src/Notepad_plus.cpp | 35 +++++- PowerEditor/src/Notepad_plus.h | 5 +- PowerEditor/src/Notepad_plus.rc | 1 + PowerEditor/src/NppCommands.cpp | 6 + .../src/WinControls/AboutDlg/AboutDlg.cpp | 2 +- .../WinControls/AnsiCharPanel/ListView.cpp | 118 ++++++++++++++++++ .../src/WinControls/AnsiCharPanel/ListView.h | 44 +++++++ .../AnsiCharPanel/ansiCharPanel.cpp | 94 ++++++++++++++ .../WinControls/AnsiCharPanel/ansiCharPanel.h | 57 +++++++++ .../AnsiCharPanel/ansiCharPanel.rc | 30 +++++ .../AnsiCharPanel/ansiCharPanel_rc.h | 25 ++++ .../WinControls/StaticDialog/StaticDialog.cpp | 4 + PowerEditor/src/menuCmdID.h | 1 + PowerEditor/src/resource.h | 5 + PowerEditor/visual.net/notepadPlus.vcproj | 26 +++- 16 files changed, 449 insertions(+), 6 deletions(-) create mode 100644 PowerEditor/src/WinControls/AnsiCharPanel/ListView.cpp create mode 100644 PowerEditor/src/WinControls/AnsiCharPanel/ListView.h create mode 100644 PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.cpp create mode 100644 PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.h create mode 100644 PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.rc create mode 100644 PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel_rc.h diff --git a/PowerEditor/src/MISC/Common/Common.h b/PowerEditor/src/MISC/Common/Common.h index d42e16f18..dbe799e70 100644 --- a/PowerEditor/src/MISC/Common/Common.h +++ b/PowerEditor/src/MISC/Common/Common.h @@ -40,6 +40,7 @@ const bool dirDown = false; #define generic_strtok wcstok #define generic_strftime wcsftime #define generic_fprintf fwprintf + #define generic_sprintf swprintf #define generic_sscanf swscanf #define generic_fopen _wfopen #define generic_fgets fgetws @@ -61,6 +62,7 @@ const bool dirDown = false; #define generic_strtok strtok #define generic_strftime strftime #define generic_fprintf fprintf + #define generic_sprintf sprintf #define generic_sscanf sscanf #define generic_fopen fopen #define generic_fgets fgets diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index c84462fe7..8ebbaa236 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -105,7 +105,7 @@ Notepad_plus::Notepad_plus(): _mainWindowStatus(0), _pDocTab(NULL), _pEditView(N _recordingMacro(false), _pTrayIco(NULL), _isUDDocked(false), _linkTriggered(true), _isDocModifing(false), _isHotspotDblClicked(false), _sysMenuEntering(false), _autoCompleteMain(&_mainEditView), _autoCompleteSub(&_subEditView), _smartHighlighter(&_findReplaceDlg), - _isFileOpening(false), _rememberThisSession(true) + _isFileOpening(false), _rememberThisSession(true), _pAnsiCharPanel(NULL) { ZeroMemory(&_prevSelectedRange, sizeof(_prevSelectedRange)); @@ -142,6 +142,9 @@ Notepad_plus::~Notepad_plus() (WcharMbcsConvertor::getInstance())->destroyInstance(); if (_pTrayIco) delete _pTrayIco; + + if (_pAnsiCharPanel) + delete _pAnsiCharPanel; } @@ -4556,3 +4559,33 @@ bool Notepad_plus::reloadLang() _lastRecentFileList.setLangEncoding(_nativeLangSpeaker.getLangEncoding()); return true; } + +void Notepad_plus::launchAnsiCharPanel() +{ + if (!_pAnsiCharPanel) + { + _pAnsiCharPanel = new AnsiCharPanel(); + + _pAnsiCharPanel->init(_pPublicInterface->getHinst(), _pPublicInterface->getHSelf(), &_pEditView); + + tTbData data = {0}; + _pAnsiCharPanel->create(&data); + + ::SendMessage(_pPublicInterface->getHSelf(), NPPM_MODELESSDIALOG, MODELESSDIALOGREMOVE, (WPARAM)_pAnsiCharPanel->getHSelf()); + // define the default docking behaviour + data.uMask = DWS_DF_CONT_BOTTOM | DWS_ICONTAB | DWS_ADDINFO; + data.hIconTab = (HICON)::LoadImage(_pPublicInterface->getHinst(), MAKEINTRESOURCE(IDI_FIND_RESULT_ICON), IMAGE_ICON, 0, 0, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT); + //data.pszAddInfo = _findAllResultStr; + + data.pszModuleName = TEXT("dummy"); + + // the dlgDlg should be the index of funcItem where the current function pointer is + // in this case is DOCKABLE_DEMO_INDEX + data.dlgID = 0; + ::SendMessage(_pPublicInterface->getHSelf(), NPPM_DMMREGASDCKDLG, 0, (LPARAM)&data); + } + //::SendMessage(_pAnsiCharPanel->getHSelf(), WM_SIZE, 0, 0); + + _pAnsiCharPanel->display(); +} + diff --git a/PowerEditor/src/Notepad_plus.h b/PowerEditor/src/Notepad_plus.h index c91dd8169..9c8aa3169 100644 --- a/PowerEditor/src/Notepad_plus.h +++ b/PowerEditor/src/Notepad_plus.h @@ -111,6 +111,7 @@ #endif //SIZE_DLG_H #include "localization.h" +#include "ansiCharPanel.h" #define MENU 0x01 #define TOOLBAR 0x02 @@ -165,7 +166,7 @@ struct VisibleGUIConf { class FileDialog; class Notepad_plus_Window; - +class AnsiCharPanel; class Notepad_plus { @@ -387,6 +388,7 @@ private: bool _rememberThisSession; // always true. except -nosession is indicated on the launch time + AnsiCharPanel *_pAnsiCharPanel; BOOL notify(SCNotification *notification); void specialCmd(int id); @@ -570,6 +572,7 @@ private: void wsTabConvert(bool whichWay); void doTrim(trimOp whichPart); + void launchAnsiCharPanel(); }; diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index 814f043e8..c23e91c31 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -275,6 +275,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "Column Mode...", IDM_EDIT_COLUMNMODETIP MENUITEM "Column Editor...", IDM_EDIT_COLUMNMODE + MENUITEM "Character Panel", IDM_EDIT_CHAR_PANEL MENUITEM SEPARATOR MENUITEM "Set Read-Only", IDM_EDIT_SETREADONLY MENUITEM "Clear Read-Only Flag", IDM_EDIT_CLEARREADONLY diff --git a/PowerEditor/src/NppCommands.cpp b/PowerEditor/src/NppCommands.cpp index f812873dc..3d107f2ab 100644 --- a/PowerEditor/src/NppCommands.cpp +++ b/PowerEditor/src/NppCommands.cpp @@ -281,6 +281,12 @@ void Notepad_plus::command(int id) } break; + case IDM_EDIT_CHAR_PANEL: + { + launchAnsiCharPanel(); + } + break; + case IDM_EDIT_DELETE: _pEditView->execute(WM_CLEAR); break; diff --git a/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp b/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp index 39e2e15e4..b3708618c 100644 --- a/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp +++ b/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp @@ -47,7 +47,7 @@ BOOL CALLBACK AboutDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) _emailLink.init(_hInst, _hSelf); //_emailLink.create(::GetDlgItem(_hSelf, IDC_AUTHOR_NAME), TEXT("mailto:don.h@free.fr")); - _emailLink.create(::GetDlgItem(_hSelf, IDC_AUTHOR_NAME), TEXT("http://notepad-plus-plus.org/members")); + _emailLink.create(::GetDlgItem(_hSelf, IDC_AUTHOR_NAME), TEXT("http://notepad-plus-plus.org/contributors")); _pageLink.init(_hInst, _hSelf); _pageLink.create(::GetDlgItem(_hSelf, IDC_HOME_ADDR), TEXT("http://notepad-plus-plus.org/")); diff --git a/PowerEditor/src/WinControls/AnsiCharPanel/ListView.cpp b/PowerEditor/src/WinControls/AnsiCharPanel/ListView.cpp new file mode 100644 index 000000000..ce1e82af3 --- /dev/null +++ b/PowerEditor/src/WinControls/AnsiCharPanel/ListView.cpp @@ -0,0 +1,118 @@ +//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 "precompiledHeaders.h" +#include "ListView.h" + + +void ListView::init(HINSTANCE hInst, HWND parent) +{ + Window::init(hInst, parent); + INITCOMMONCONTROLSEX icex; + + // Ensure that the common control DLL is loaded. + icex.dwSize = sizeof(INITCOMMONCONTROLSEX); + icex.dwICC = ICC_LISTVIEW_CLASSES; + InitCommonControlsEx(&icex); + + // Create the list-view window in report view with label editing enabled. + int listViewStyles = LVS_REPORT | LVS_NOSORTHEADER\ + | LVS_SINGLESEL | LVS_AUTOARRANGE\ + | LVS_SHAREIMAGELISTS; + + _hSelf = ::CreateWindow(WC_LISTVIEW, + TEXT(""), + WS_CHILD | listViewStyles, + 0, + 0, + 0, + 0, + _hParent, + (HMENU) NULL, + hInst, + NULL); + if (!_hSelf) + { + throw std::runtime_error("ListView::init : CreateWindowEx() function return null"); + } + + ::SetWindowLongPtr(_hSelf, GWLP_USERDATA, (LONG_PTR)this); + _defaultProc = reinterpret_cast(::SetWindowLongPtr(_hSelf, GWLP_WNDPROC, (LONG_PTR)staticProc)); + + DWORD exStyle = ListView_GetExtendedListViewStyle(_hSelf); + exStyle |= LVS_EX_FULLROWSELECT | LVS_EX_BORDERSELECT ; + ListView_SetExtendedListViewStyle(_hSelf, exStyle); + + LVCOLUMN lvColumn; + lvColumn.mask = LVCF_TEXT|LVCF_WIDTH; + lvColumn.cx = 45; + + lvColumn.pszText = TEXT("Value"); + ListView_InsertColumn(_hSelf, 0, &lvColumn); + + lvColumn.pszText = TEXT("Char"); + ListView_InsertColumn(_hSelf, 1, &lvColumn); + + lvColumn.pszText = TEXT("Ctrl char"); + lvColumn.cx = 90; + ListView_InsertColumn(_hSelf, 2, &lvColumn); + + //ListView_SetImageList(_hSelf, hImaLst, LVSIL_SMALL); + + //ListView_SetItemState(_hSelf, _currentIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED); + //ListView_SetBkColor(_hSelf, lightYellow); +} + +void ListView::resetValues(int codepage) +{ + ListView_DeleteAllItems(_hSelf); + for (int i = 0 ; i < 256 ; i++) + { + LVITEM item; + item.mask = LVIF_TEXT; + TCHAR num[8]; + generic_sprintf(num, TEXT("%d"), i); + item.pszText = num; + item.iItem = i; + item.iSubItem = 0; + ListView_InsertItem(_hSelf, &item); + + char ascii[8]; + ascii[0] = (unsigned char)i; + ascii[1] = '\0'; +#ifdef UNICODE + wchar_t wCharStr[10]; + MultiByteToWideChar(codepage, 0, ascii, -1, wCharStr, sizeof(wCharStr)); + ListView_SetItemText(_hSelf, i, 1, wCharStr); +#else + codepage = 0; // make it compile in ANSI Release mode + ListView_SetItemText(_hSelf, i, 1, ascii); +#endif + } +} +void ListView::destroy() +{ + ::DestroyWindow(_hSelf); + _hSelf = NULL; +} + + +LRESULT ListView::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) +{ + return ::CallWindowProc(_defaultProc, hwnd, Message, wParam, lParam); +} + diff --git a/PowerEditor/src/WinControls/AnsiCharPanel/ListView.h b/PowerEditor/src/WinControls/AnsiCharPanel/ListView.h new file mode 100644 index 000000000..229752ed6 --- /dev/null +++ b/PowerEditor/src/WinControls/AnsiCharPanel/ListView.h @@ -0,0 +1,44 @@ +//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 LISTVIEW_H +#define LISTVIEW_H + +#include "window.h" + +class ListView : public Window +{ +public: + ListView() : Window() {}; + + virtual ~ListView() {}; + virtual void init(HINSTANCE hInst, HWND hwnd); + virtual void destroy(); + + void resetValues(int codepage = 0); + +protected: + WNDPROC _defaultProc; + LRESULT runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam); + + static LRESULT CALLBACK staticProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { + return (((ListView *)(::GetWindowLongPtr(hwnd, GWL_USERDATA)))->runProc(hwnd, Message, wParam, lParam)); + }; +}; + + +#endif // LISTVIEW_H diff --git a/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.cpp b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.cpp new file mode 100644 index 000000000..dcbf36347 --- /dev/null +++ b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.cpp @@ -0,0 +1,94 @@ +/* +this file is part of notepad++ +Copyright (C)2011 Don HO + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a Copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "precompiledHeaders.h" +#include "ansiCharPanel.h" +#include "ScintillaEditView.h" + +BOOL CALLBACK AnsiCharPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_INITDIALOG : + { + TCHAR asciiStr[2]; + asciiStr[1] = '\0'; + + _listView.init(_hInst, _hSelf); + int codepage = (*_ppEditView)->getCurrentBuffer()->getEncoding(); + _listView.resetValues(codepage==-1?0:codepage); + _listView.display(); + + return TRUE; + } + + case WM_NOTIFY: + { + switch (((LPNMHDR)lParam)->code) + { + case NM_DBLCLK: + { + //printStr(TEXT("OK")); + LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE) lParam; + int i = lpnmitem->iItem; + + if (i == -1) + return TRUE; + + char charStr[2]; + charStr[0] = (unsigned char)i; + charStr[1] = '\0'; + wchar_t wCharStr[10]; + char multiByteStr[10]; + int codepage = (*_ppEditView)->getCurrentBuffer()->getEncoding(); + if (codepage == -1) + { + multiByteStr[0] = charStr[0]; + multiByteStr[1] = charStr[1]; + } + else + { + MultiByteToWideChar(codepage, 0, charStr, -1, wCharStr, sizeof(wCharStr)); + WideCharToMultiByte(CP_UTF8, 0, wCharStr, -1, multiByteStr, sizeof(multiByteStr), NULL, NULL); + } + (*_ppEditView)->execute(SCI_REPLACESEL, 0, (LPARAM)""); + int len = (i < 128)?1:strlen(multiByteStr); + (*_ppEditView)->execute(SCI_ADDTEXT, len, (LPARAM)multiByteStr); + + return TRUE; + } + default: + break; + } + } + return TRUE; + + case WM_SIZE: + { + int width = LOWORD(lParam); + int height = HIWORD(lParam); + ::MoveWindow(_listView.getHSelf(), 0, 0, width, height, TRUE); + break; + } + + default : + return DockingDlgInterface::run_dlgProc(message, wParam, lParam); + } + return DockingDlgInterface::run_dlgProc(message, wParam, lParam); +} diff --git a/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.h b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.h new file mode 100644 index 000000000..994117462 --- /dev/null +++ b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.h @@ -0,0 +1,57 @@ +/* +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 ANSICHARPANEL_H +#define ANSICHARPANEL_H + +//#include +#ifndef DOCKINGDLGINTERFACE_H +#include "DockingDlgInterface.h" +#endif //DOCKINGDLGINTERFACE_H + +#include "ansiCharPanel_rc.h" +#include "ListView.h" + +class ScintillaEditView; + +class AnsiCharPanel : public DockingDlgInterface { +public: + AnsiCharPanel(): DockingDlgInterface(IDD_ANSIASCII_PANEL) {}; + + void init(HINSTANCE hInst, HWND hPere, ScintillaEditView **ppEditView) { + DockingDlgInterface::init(hInst, hPere); + _ppEditView = ppEditView; + }; + + virtual void display(bool toShow = true) const { + DockingDlgInterface::display(toShow); + }; + + void setParent(HWND parent2set){ + _hParent = parent2set; + }; + +protected: + virtual BOOL CALLBACK AnsiCharPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam); + +private: + ScintillaEditView **_ppEditView; + ListView _listView; +}; +#endif // ANSICHARPANEL_H diff --git a/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.rc b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.rc new file mode 100644 index 000000000..8a46c902c --- /dev/null +++ b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel.rc @@ -0,0 +1,30 @@ +/* +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 +#include "ansiCharPanel_rc.h" + +IDD_ANSIASCII_PANEL DIALOGEX 26, 41, 142, 324 +STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_TOOLWINDOW | WS_EX_WINDOWEDGE +CAPTION "ANSI Characters" +FONT 8, "MS Sans Serif", 0, 0, 0x0 +BEGIN + //LISTBOX IDC_LIST_ANSICHAR,50,44,78,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP +END diff --git a/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel_rc.h b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel_rc.h new file mode 100644 index 000000000..15a9e5581 --- /dev/null +++ b/PowerEditor/src/WinControls/AnsiCharPanel/ansiCharPanel_rc.h @@ -0,0 +1,25 @@ +//this file is part of notepad++ +//Copyright (C)2003 Don HO +// +//This program is free software; you can redistribute it and/or +//modify it under the terms of the GNU General Public License +//as published by the Free Software Foundation; either +//version 2 of the License, or (at your option) any later version. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License +//along with this program; if not, write to the Free Software +//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#ifndef ANSICHARPANEL_RC_H +#define ANSICHARPANEL_RC_H + +#define IDD_ANSIASCII_PANEL 2700 +#define IDC_LIST_ANSICHAR (IDD_ANSIASCII_PANEL + 1) + +#endif // ANSICHARPANEL_RC_H + diff --git a/PowerEditor/src/WinControls/StaticDialog/StaticDialog.cpp b/PowerEditor/src/WinControls/StaticDialog/StaticDialog.cpp index c4da9f7ae..d25c3bd3c 100644 --- a/PowerEditor/src/WinControls/StaticDialog/StaticDialog.cpp +++ b/PowerEditor/src/WinControls/StaticDialog/StaticDialog.cpp @@ -99,6 +99,10 @@ void StaticDialog::create(int dialogID, bool isRTL, bool msgDestParent) if (!_hSelf) { + DWORD err = ::GetLastError(); + char errMsg[256]; + sprintf(errMsg, "CreateDialogParam() return NULL.\rGetLastError() == %d", err); + ::MessageBoxA(NULL, errMsg, "In StaticDialog::create()", MB_OK); return; } diff --git a/PowerEditor/src/menuCmdID.h b/PowerEditor/src/menuCmdID.h index c23cf0ae3..3071c1d66 100644 --- a/PowerEditor/src/menuCmdID.h +++ b/PowerEditor/src/menuCmdID.h @@ -104,6 +104,7 @@ #define IDM_EDIT_COPY_BINARY (IDM_EDIT + 48) #define IDM_EDIT_CUT_BINARY (IDM_EDIT + 49) #define IDM_EDIT_PASTE_BINARY (IDM_EDIT + 50) + #define IDM_EDIT_CHAR_PANEL (IDM_EDIT + 51) #define IDM_EDIT_AUTOCOMPLETE (50000 + 0) #define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (50000 + 1) diff --git a/PowerEditor/src/resource.h b/PowerEditor/src/resource.h index cd1a38b19..c5a9a68c9 100644 --- a/PowerEditor/src/resource.h +++ b/PowerEditor/src/resource.h @@ -284,9 +284,14 @@ //#define IDD_TASKLIST_DLG 2450 #define IDD_SETTING_DLG 2500 + + //See ShortcutMapper_rc.h //#define IDD_SHORTCUTMAPPER_DLG 2600 +//See ansiCharPanel_rc.h +//#define IDD_ANSIASCII_PANEL 2700 + // See regExtDlg.h //#define IDD_REGEXT 4000 diff --git a/PowerEditor/visual.net/notepadPlus.vcproj b/PowerEditor/visual.net/notepadPlus.vcproj index 16f996779..4e08267dd 100644 --- a/PowerEditor/visual.net/notepadPlus.vcproj +++ b/PowerEditor/visual.net/notepadPlus.vcproj @@ -133,7 +133,7 @@ Name="VCCLCompilerTool" Optimization="0" FavorSizeOrSpeed="0" - AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA" + AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel" PreprocessorDefinitions="WIN32;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL" MinimalRebuild="true" ExceptionHandling="2" @@ -228,7 +228,7 @@ FavorSizeOrSpeed="1" OmitFramePointers="false" WholeProgramOptimization="false" - AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA" + AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL" GeneratePreprocessedFile="0" StringPooling="true" @@ -325,7 +325,7 @@ FavorSizeOrSpeed="1" OmitFramePointers="false" WholeProgramOptimization="false" - AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA" + AdditionalIncludeDirectories="..\src\WinControls\AboutDlg;..\..\scintilla\include;..\include;..\src\WinControls;..\src\WinControls\ImageListSet;..\src\WinControls\OpenSaveFileDialog;..\src\WinControls\SplitterContainer;..\src\WinControls\StaticDialog;..\src\WinControls\TabBar;..\src\WinControls\ToolBar;..\src\MISC\Process;..\src\ScitillaComponent;..\src\MISC;..\src\MISC\SysMsg;..\src\WinControls\StatusBar;..\src;..\src\WinControls\StaticDialog\RunDlg;..\src\tinyxml;..\src\WinControls\ColourPicker;..\src\Win32Explr;..\src\MISC\RegExt;..\src\WinControls\TrayIcon;..\src\WinControls\shortcut;..\src\WinControls\Grid;..\src\WinControls\ContextMenu;..\src\MISC\PluginsManager;..\src\WinControls\Preference;..\src\WinControls\WindowsDlg;..\src\WinControls\TaskList;..\src\WinControls\DockingWnd;..\src\WinControls\ToolTip;..\src\MISC\Exception;..\src\MISC\Common;..\src\tinyxml\tinyXmlA;..\src\WinControls\AnsiCharPanel" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_64BIT_TIME_T;TIXML_USE_STL;TIXMLA_USE_STL" StringPooling="true" ExceptionHandling="2" @@ -499,6 +499,10 @@ RelativePath="..\src\WinControls\AboutDlg\AboutDlg.cpp" > + + @@ -595,6 +599,10 @@ RelativePath="..\src\lesDlgs.cpp" > + + @@ -817,6 +825,10 @@ RelativePath="..\src\icons\allChars_on.ico" > + + @@ -1350,6 +1362,10 @@ RelativePath="..\src\WinControls\AboutDlg\AboutDlg.h" > + + @@ -1466,6 +1482,10 @@ RelativePath="..\src\lesDlgs.h" > + +