diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp index e64db93ef..f89e768d3 100644 --- a/PowerEditor/src/NppBigSwitch.cpp +++ b/PowerEditor/src/NppBigSwitch.cpp @@ -3514,6 +3514,7 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa case WM_DPICHANGED: { const UINT dpi = LOWORD(wParam); + _toolBar.resizeIconsDpi(dpi); _statusBar.setPartWidth(STATUSBAR_DOC_SIZE, DPIManagerV2::scale(220, dpi)); _statusBar.setPartWidth(STATUSBAR_CUR_POS, DPIManagerV2::scale(260, dpi)); diff --git a/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp b/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp index a7241b3b2..3fa3f131c 100644 --- a/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp +++ b/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp @@ -125,7 +125,10 @@ bool ToolBar::init( HINSTANCE hInst, HWND hPere, toolBarStatusType type, ToolBar Window::init(hInst, hPere); _state = type; - int iconSize = NppParameters::getInstance()._dpiManager.scaleX(_state == TB_LARGE || _state == TB_LARGE2 ? 32 : 16); + + _dpiManager.setDpi(hPere); + + int iconSize = _dpiManager.scale(_state == TB_LARGE || _state == TB_LARGE2 ? 32 : 16); _toolBarIcons.init(buttonUnitArray, arraySize, _vDynBtnReg); _toolBarIcons.create(_hInst, iconSize); @@ -231,7 +234,7 @@ int ToolBar::getHeight() const void ToolBar::reduce() { - int iconDpiDynamicalSize = NppParameters::getInstance()._dpiManager.scaleX(16); + int iconDpiDynamicalSize = _dpiManager.scale(16); _toolBarIcons.resizeIcon(iconDpiDynamicalSize); setState(TB_SMALL); reset(true); //recreate toolbar if previous state was Std icons or Big icons @@ -240,7 +243,7 @@ void ToolBar::reduce() void ToolBar::enlarge() { - int iconDpiDynamicalSize = NppParameters::getInstance()._dpiManager.scaleX(32); + int iconDpiDynamicalSize = _dpiManager.scale(32); _toolBarIcons.resizeIcon(iconDpiDynamicalSize); setState(TB_LARGE); reset(true); //recreate toolbar if previous state was Std icons or Small icons @@ -249,7 +252,7 @@ void ToolBar::enlarge() void ToolBar::reduceToSet2() { - int iconDpiDynamicalSize = NppParameters::getInstance()._dpiManager.scaleX(16); + int iconDpiDynamicalSize = _dpiManager.scale(16); _toolBarIcons.resizeIcon(iconDpiDynamicalSize); setState(TB_SMALL2); @@ -259,7 +262,7 @@ void ToolBar::reduceToSet2() void ToolBar::enlargeToSet2() { - int iconDpiDynamicalSize = NppParameters::getInstance()._dpiManager.scaleX(32); + int iconDpiDynamicalSize = _dpiManager.scale(32); _toolBarIcons.resizeIcon(iconDpiDynamicalSize); setState(TB_LARGE2); reset(true); //recreate toolbar if previous state was Std icons or Small icons @@ -373,7 +376,7 @@ void ToolBar::reset(bool create) else { //Else set the internal imagelist with standard bitmaps - int iconDpiDynamicalSize = NppParameters::getInstance()._dpiManager.scaleX(16); + int iconDpiDynamicalSize = _dpiManager.scale(16); ::SendMessage(_hSelf, TB_SETBITMAPSIZE, 0, MAKELPARAM(iconDpiDynamicalSize, iconDpiDynamicalSize)); TBADDBITMAP addbmp = { 0, 0 }; @@ -398,7 +401,7 @@ void ToolBar::reset(bool create) if (create) { //if the toolbar has been recreated, readd the buttons _nbCurrentButtons = _nbTotalButtons; - WORD btnSize = (_state == TB_LARGE ? 32 : 16); + WORD btnSize = static_cast(_dpiManager.scale((_state == TB_LARGE || _state == TB_LARGE2) ? 32 : 16)); ::SendMessage(_hSelf, TB_SETBUTTONSIZE , 0, MAKELONG(btnSize, btnSize)); ::SendMessage(_hSelf, TB_ADDBUTTONS, _nbTotalButtons, reinterpret_cast(_pTBB)); } @@ -510,6 +513,14 @@ void ToolBar::doPopop(POINT chevPoint) } } +void ToolBar::resizeIconsDpi(UINT dpi) +{ + _dpiManager.setDpi(dpi); + const int iconDpiDynamicalSize = _dpiManager.scale((_state == TB_LARGE || _state == TB_LARGE2) ? 32 : 16); + _toolBarIcons.resizeIcon(iconDpiDynamicalSize); + reset(true); +} + void ToolBar::addToRebar(ReBar * rebar) { if (_pRebar) diff --git a/PowerEditor/src/WinControls/ToolBar/ToolBar.h b/PowerEditor/src/WinControls/ToolBar/ToolBar.h index 3f897db3b..e8b1b9cf1 100644 --- a/PowerEditor/src/WinControls/ToolBar/ToolBar.h +++ b/PowerEditor/src/WinControls/ToolBar/ToolBar.h @@ -21,6 +21,7 @@ #include "Window.h" #include "Notepad_plus_msgs.h" #include "ImageListSet.h" +#include "dpiManagerV2.h" #define REBAR_BAR_TOOLBAR 0 #define REBAR_BAR_SEARCH 1 @@ -101,6 +102,8 @@ public : void addToRebar(ReBar * rebar); + void resizeIconsDpi(UINT dpi); + private : TBBUTTON *_pTBB = nullptr; ToolBarIcons _toolBarIcons; @@ -116,6 +119,8 @@ private : TiXmlNode *_toolIcons = nullptr; + DPIManagerV2 _dpiManager; + void setDefaultImageList() { ::SendMessage(_hSelf, TB_SETIMAGELIST, 0, reinterpret_cast(_toolBarIcons.getDefaultLst())); };