diff --git a/PowerEditor/src/Notepad_plus_Window.cpp b/PowerEditor/src/Notepad_plus_Window.cpp index 5814a964c..7c575268f 100644 --- a/PowerEditor/src/Notepad_plus_Window.cpp +++ b/PowerEditor/src/Notepad_plus_Window.cpp @@ -90,6 +90,8 @@ void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLin nppGUI._isCmdlineNosessionActivated = cmdLineParams->_isNoSession; + _hIconAbsent = ::LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICONABSENT)); + _hSelf = ::CreateWindowEx( WS_EX_ACCEPTFILES | (_notepad_plus_plus_core._nativeLangSpeaker.isRTL()?WS_EX_LAYOUTRTL:0), _className, diff --git a/PowerEditor/src/Notepad_plus_Window.h b/PowerEditor/src/Notepad_plus_Window.h index 6fce60d81..d8a39aa6c 100644 --- a/PowerEditor/src/Notepad_plus_Window.h +++ b/PowerEditor/src/Notepad_plus_Window.h @@ -16,8 +16,6 @@ #pragma once #include "Notepad_plus.h" - - const TCHAR COMMAND_ARG_HELP[] = TEXT("Usage :\r\ \r\ notepad++ [--help] [-multiInst] [-noPlugin] [-lLanguage] [-LlangCode] [-nLineNumber] [-cColumnNumber] [-pPosition] [-xLeftPos] [-yTopPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [-alwaysOnTop] [-openSession] [-r] [-qn=\"Easter egg name\" | -qt=\"a text to display.\" | -qf=\"D:\\my quote.txt\"] [-qSpeed1|2|3] [-quickPrint] [-settingsDir=\"d:\\your settings dir\\\"] [-openFoldersAsWorkspace] [-titleAdd=\"additional title bar text\"][filePath]\r\ @@ -53,9 +51,6 @@ filePath : file or folder name to open (absolute or relative path name)\r\ "); - - - class Notepad_plus_Window : public Window { public: @@ -63,40 +58,39 @@ public: bool isDlgsMsg(MSG *msg) const; - HACCEL getAccTable() const - { + HACCEL getAccTable() const { return _notepad_plus_plus_core.getAccTable(); - } + }; - bool emergency(const generic_string& emergencySavedDir) - { + bool emergency(const generic_string& emergencySavedDir) { return _notepad_plus_plus_core.emergency(emergencySavedDir); - } + }; - bool isPrelaunch() const - { + bool isPrelaunch() const { return _isPrelaunch; - } + }; - void setIsPrelaunch(bool val) - { + void setIsPrelaunch(bool val) { _isPrelaunch = val; - } + }; - generic_string getPluginListVerStr() const - { + generic_string getPluginListVerStr() const { return _notepad_plus_plus_core.getPluginListVerStr(); - } + }; - virtual void destroy() - { + virtual void destroy() { + if (_hIconAbsent) + ::DestroyIcon(_hIconAbsent); ::DestroyWindow(_hSelf); - } + }; - static const TCHAR * getClassName() - { + static const TCHAR * getClassName() { return _className; - } + }; + + HICON getAbsentIcoHandle() { + return _hIconAbsent; + }; static HWND gNppHWND; //static handle to Notepad++ window, NULL if non-existant @@ -112,4 +106,6 @@ private: QuoteParams _quoteParams; // keep the availability of quote parameters for thread using std::wstring _userQuote; // keep the availability of this string for thread using + + HICON _hIconAbsent = nullptr; }; diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp index 47ad855a4..f760a89a3 100644 --- a/PowerEditor/src/NppBigSwitch.cpp +++ b/PowerEditor/src/NppBigSwitch.cpp @@ -2157,7 +2157,7 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa case NPPM_ADDTOOLBARICON: { - _toolBar.registerDynBtn(static_cast(wParam), reinterpret_cast(lParam)); + _toolBar.registerDynBtn(static_cast(wParam), reinterpret_cast(lParam), _pPublicInterface->getAbsentIcoHandle()); return TRUE; } diff --git a/PowerEditor/src/WinControls/DockingWnd/Gripper.cpp b/PowerEditor/src/WinControls/DockingWnd/Gripper.cpp index 0696a9376..8a10b815f 100644 --- a/PowerEditor/src/WinControls/DockingWnd/Gripper.cpp +++ b/PowerEditor/src/WinControls/DockingWnd/Gripper.cpp @@ -551,11 +551,11 @@ void Gripper::drawRectangle(const POINT* pPt) // finally ::LockWindowUpdate(NULL) will be called, to enable drawing for others again. if (!_hdc) { - HWND hWnd= ::GetDesktopWindow(); + HWND hWnd = ::GetDesktopWindow(); #if defined (USE_LOCKWINDOWUPDATE) - _hdc= ::GetDCEx(hWnd, NULL, ::LockWindowUpdate(hWnd) ? DCX_WINDOW|DCX_CACHE|DCX_LOCKWINDOWUPDATE : DCX_WINDOW|DCX_CACHE); + _hdc = ::GetDCEx(hWnd, NULL, ::LockWindowUpdate(hWnd) ? DCX_WINDOW|DCX_CACHE|DCX_LOCKWINDOWUPDATE : DCX_WINDOW|DCX_CACHE); #else - _hdc= ::GetDCEx(hWnd, NULL, DCX_WINDOW|DCX_CACHE); + _hdc = ::GetDCEx(hWnd, NULL, DCX_WINDOW|DCX_CACHE); #endif } @@ -598,25 +598,25 @@ void Gripper::drawRectangle(const POINT* pPt) rc.right -= rc.left; rc.bottom-= rc.top; } - else rc= rcNew; // only new rect will be drawn + else rc = rcNew; // only new rect will be drawn } - else rc= rcOld; // only old rect will be drawn - to erase it + else rc = rcOld; // only old rect will be drawn - to erase it // now rc contains the rectangle wich encloses all needed, new and/or previous rectangle // because in the following we drive within a memory device context wich is limited to rc, // we have to localize rcNew and rcOld within rc... // - rcOld.left= rcOld.left - rc.left; + rcOld.left = rcOld.left - rc.left; rcOld.top = rcOld.top - rc.top; - rcNew.left= rcNew.left - rc.left; + rcNew.left = rcNew.left - rc.left; rcNew.top = rcNew.top - rc.top; - HDC hdcMem= ::CreateCompatibleDC(_hdc); - HBITMAP hBm= ::CreateCompatibleBitmap(_hdc, rc.right, rc.bottom); - hbrushOrig= (HBRUSH)::SelectObject(hdcMem, hBm); + HDC hdcMem = ::CreateCompatibleDC(_hdc); + HBITMAP hBm = ::CreateCompatibleBitmap(_hdc, rc.right, rc.bottom); + hbrushOrig = (HBRUSH)::SelectObject(hdcMem, hBm); ::SetBrushOrgEx(hdcMem, rc.left%8, rc.top%8, 0); - hbmOrig= (HBITMAP)::SelectObject(hdcMem, _hbrush); + hbmOrig = (HBITMAP)::SelectObject(hdcMem, _hbrush); ::BitBlt(hdcMem, 0, 0, rc.right, rc.bottom, _hdc, rc.left, rc.top, SRCCOPY); if (_bPtOldValid) @@ -641,14 +641,15 @@ void Gripper::drawRectangle(const POINT* pPt) #if defined(USE_LOCKWINDOWUPDATE) ::LockWindowUpdate(NULL); #endif - _bPtOldValid= FALSE; + _bPtOldValid = FALSE; if (_hdc) { ::ReleaseDC(0, _hdc); - _hdc= NULL; + _hdc = NULL; } } - else _bPtOldValid= TRUE; + else + _bPtOldValid = TRUE; } diff --git a/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp b/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp index d0d66c9b6..7453b5af9 100644 --- a/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp +++ b/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp @@ -25,16 +25,6 @@ const int WS_TOOLBARSTYLE = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS |TBSTYLE_FLAT | CCS_TOP | BTNS_AUTOSIZE | CCS_NOPARENTALIGN | CCS_NORESIZE | CCS_NODIVIDER; -ToolBar::ToolBar() -{ - _hIconAbsent = (HICON)::LoadImage(_hInst, MAKEINTRESOURCE(IDI_ICONABSENT), IMAGE_ICON, 16, 16, 0); -} - -ToolBar::~ToolBar() -{ - ::DestroyIcon(_hIconAbsent); -} - void ToolBar::initTheme(TiXmlDocument *toolIconsDocRoot) { _toolIcons = toolIconsDocRoot->FirstChild(TEXT("NotepadPlus")); @@ -382,7 +372,7 @@ void ToolBar::reset(bool create) } } -void ToolBar::registerDynBtn(UINT messageID, toolbarIcons* tIcon) +void ToolBar::registerDynBtn(UINT messageID, toolbarIcons* tIcon, HICON absentIco) { // Note: Register of buttons only possible before init! if ((_hSelf == NULL) && (messageID != 0) && (tIcon->hToolbarBmp != NULL)) @@ -390,7 +380,7 @@ void ToolBar::registerDynBtn(UINT messageID, toolbarIcons* tIcon) DynamicCmdIcoBmp dynList; dynList._message = messageID; dynList._hBmp = tIcon->hToolbarBmp; - dynList._hIcon = tIcon->hToolbarIcon ? tIcon->hToolbarIcon : _hIconAbsent; + dynList._hIcon = tIcon->hToolbarIcon ? tIcon->hToolbarIcon : absentIco; _vDynBtnReg.push_back(dynList); } } diff --git a/PowerEditor/src/WinControls/ToolBar/ToolBar.h b/PowerEditor/src/WinControls/ToolBar/ToolBar.h index f7c9dc942..40e765510 100644 --- a/PowerEditor/src/WinControls/ToolBar/ToolBar.h +++ b/PowerEditor/src/WinControls/ToolBar/ToolBar.h @@ -49,8 +49,8 @@ class TiXmlNode; class ToolBar : public Window { public : - ToolBar(); - ~ToolBar(); + ToolBar() = default; + ~ToolBar() = default; void initTheme(TiXmlDocument *toolIconsDocRoot); virtual bool init(HINSTANCE hInst, HWND hPere, toolBarStatusType type, @@ -94,7 +94,7 @@ public : return _toolBarIcons.replaceIcon(whichLst, iconIndex, iconLocation); }; - void registerDynBtn(UINT message, toolbarIcons* hBmp); + void registerDynBtn(UINT message, toolbarIcons* hBmp, HICON absentIco); void doPopop(POINT chevPoint); //show the popup if buttons are hidden @@ -113,7 +113,6 @@ private : REBARBANDINFO _rbBand; std::vector _customIconVect; TiXmlNode *_toolIcons = nullptr; - HICON _hIconAbsent = nullptr; void setDefaultImageList() { ::SendMessage(_hSelf, TB_SETIMAGELIST, 0, reinterpret_cast(_toolBarIcons.getDefaultLst())); diff --git a/PowerEditor/src/resource.h b/PowerEditor/src/resource.h index 8a4a5bdcd..01cec804b 100644 --- a/PowerEditor/src/resource.h +++ b/PowerEditor/src/resource.h @@ -33,13 +33,13 @@ #define IDC_STATIC -1 #endif -#define IDI_M30ICON 100 -#define IDI_CHAMELEON 101 -//#define IDI_JESUISCHARLIE 102 +#define IDI_M30ICON 100 +#define IDI_CHAMELEON 101 +//#define IDI_JESUISCHARLIE 102 //#define IDI_GILETJAUNE 102 -//#define IDI_SAMESEXMARRIAGE 102 +//#define IDI_SAMESEXMARRIAGE 102 #define IDR_RT_MANIFEST 103 -#define IDI_ICONABSENT 104 +#define IDI_ICONABSENT 104 // // TOOLBAR ICO - set 1