From 19f40fdeae5bf11ae8905aa8de23b855d1a64792 Mon Sep 17 00:00:00 2001 From: Don Ho Date: Fri, 30 Jul 2021 15:59:27 +0200 Subject: [PATCH] Fix 2 panels' toolbar icons display issue under high DPI Improve Function list & Folder as Workspace toolbar icons display under high DPI. --- PowerEditor/src/Notepad_plus.rc | 2 -- .../WinControls/FileBrowser/fileBrowser.cpp | 26 +++++++++----- .../FunctionList/functionListPanel.cpp | 32 ++++++++---------- .../src/WinControls/ToolBar/ToolBar.cpp | 4 +-- PowerEditor/src/icons/funclstReload.bmp | Bin 1146 -> 1334 bytes PowerEditor/src/icons/funclstReload2.bmp | Bin 1334 -> 0 bytes PowerEditor/src/icons/funclstSort.bmp | Bin 1146 -> 1334 bytes PowerEditor/src/icons/funclstSort2.bmp | Bin 1334 -> 0 bytes PowerEditor/src/resource.h | 6 ++-- 9 files changed, 35 insertions(+), 35 deletions(-) delete mode 100644 PowerEditor/src/icons/funclstReload2.bmp delete mode 100644 PowerEditor/src/icons/funclstSort2.bmp diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index b06c0b2f0..741250e5b 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -368,8 +368,6 @@ IDI_FUNCLIST_LEAF BITMAP "icons/funcList_leaf.bmp" IDI_FUNCLIST_SORTBUTTON BITMAP "icons/funclstSort.bmp" IDI_FUNCLIST_RELOADBUTTON BITMAP "icons/funclstReload.bmp" -IDI_FUNCLIST_SORTBUTTON2 BITMAP "icons/funclstSort2.bmp" -IDI_FUNCLIST_RELOADBUTTON2 BITMAP "icons/funclstReload2.bmp" IDI_FUNCLIST_SORTBUTTON_DM BITMAP "icons/darkMode/panels/funclstSort.bmp" IDI_FUNCLIST_RELOADBUTTON_DM BITMAP "icons/darkMode/panels/funclstReload.bmp" diff --git a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp index c4b590b47..445f1a059 100644 --- a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp +++ b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp @@ -108,15 +108,23 @@ INT_PTR CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP NppDarkMode::setDarkTooltips(_hToolbarMenu, NppDarkMode::ToolTipsType::toolbar); NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); - TBBUTTON tbButtons[3]; // Add the bmap image into toolbar's imagelist - TBADDBITMAP addbmp = { _hInst, 0 }; - addbmp.nID = NppDarkMode::isEnabled() ? IDI_FB_SELECTCURRENTFILE_DM : IDI_FB_SELECTCURRENTFILE; - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); - addbmp.nID = NppDarkMode::isEnabled() ? IDI_FB_FOLDALL_DM : IDI_FB_FOLDALL; - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); - addbmp.nID = NppDarkMode::isEnabled() ? IDI_FB_EXPANDALL_DM : IDI_FB_EXPANDALL; - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); + int iconSizeDyn = nppParam._dpiManager.scaleX(16); + ::SendMessage(_hToolbarMenu, TB_SETBITMAPSIZE, 0, MAKELPARAM(iconSizeDyn, iconSizeDyn)); + + TBADDBITMAP addbmp = { 0, 0 }; + const int nbIcons = 3; + int iconIDs[nbIcons] = { IDI_FB_SELECTCURRENTFILE, IDI_FB_FOLDALL, IDI_FB_EXPANDALL}; + int iconDarkModeIDs[nbIcons] = { IDI_FB_SELECTCURRENTFILE_DM, IDI_FB_FOLDALL_DM, IDI_FB_EXPANDALL_DM}; + for (size_t i = 0; i < nbIcons; ++i) + { + int icoID = NppDarkMode::isEnabled() ? iconDarkModeIDs[i] : iconIDs[i]; + HBITMAP hBmp = static_cast(::LoadImage(_hInst, MAKEINTRESOURCE(icoID), IMAGE_BITMAP, iconSizeDyn, iconSizeDyn, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT)); + addbmp.nID = reinterpret_cast(hBmp); + ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); + } + + TBBUTTON tbButtons[nbIcons]; tbButtons[0].idCommand = FB_CMD_AIMFILE; tbButtons[0].iBitmap = 0; tbButtons[0].fsState = TBSTATE_ENABLED; @@ -141,7 +149,7 @@ INT_PTR CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP ::SendMessage(_hToolbarMenu, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(nppParam._dpiManager.scaleX(20), nppParam._dpiManager.scaleY(20))); - ::SendMessage(_hToolbarMenu, TB_SETPADDING, 0, MAKELONG(20, 0)); + ::SendMessage(_hToolbarMenu, TB_SETPADDING, 0, MAKELONG(nppParam._dpiManager.scaleX(10), 0)); ::SendMessage(_hToolbarMenu, TB_ADDBUTTONS, sizeof(tbButtons) / sizeof(TBBUTTON), reinterpret_cast(&tbButtons)); ::SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0); diff --git a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp index 9afa3d22d..0f9748acb 100644 --- a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp +++ b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp @@ -832,28 +832,26 @@ INT_PTR CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LPA NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); oldFunclstToolbarProc = reinterpret_cast(::SetWindowLongPtr(_hToolbarMenu, GWLP_WNDPROC, reinterpret_cast(funclstToolbarProc))); - TBBUTTON tbButtons[3]; // Add the bmap image into toolbar's imagelist - int icoID0 = IDI_FUNCLIST_SORTBUTTON; - int icoID1 = IDI_FUNCLIST_RELOADBUTTON; - if (NppDarkMode::isEnabled()) + int iconSizeDyn = nppParams._dpiManager.scaleX(16); + ::SendMessage(_hToolbarMenu, TB_SETBITMAPSIZE, 0, MAKELPARAM(iconSizeDyn, iconSizeDyn)); + + TBADDBITMAP addbmp = { 0, 0 }; + const int nbIcons = 2; + int iconIDs[nbIcons] = { IDI_FUNCLIST_SORTBUTTON, IDI_FUNCLIST_RELOADBUTTON }; + int iconDarkModeIDs[nbIcons] = { IDI_FUNCLIST_SORTBUTTON_DM, IDI_FUNCLIST_RELOADBUTTON_DM }; + for (size_t i = 0; i < nbIcons; ++i) { - icoID0 = IDI_FUNCLIST_SORTBUTTON_DM; - icoID1 = IDI_FUNCLIST_RELOADBUTTON_DM; + int icoID = NppDarkMode::isEnabled() ? iconDarkModeIDs[i] : iconIDs[i]; + HBITMAP hBmp = static_cast(::LoadImage(_hInst, MAKEINTRESOURCE(icoID), IMAGE_BITMAP, iconSizeDyn, iconSizeDyn, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT)); + addbmp.nID = reinterpret_cast(hBmp); + ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); } - else if (nppParams.getNppGUI()._toolBarStatus != TB_STANDARD) - { - icoID0 = IDI_FUNCLIST_SORTBUTTON2; - icoID1 = IDI_FUNCLIST_RELOADBUTTON2; - } - TBADDBITMAP addbmp = {_hInst, 0}; - addbmp.nID = icoID0; - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); - addbmp.nID = icoID1; - ::SendMessage(_hToolbarMenu, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); // Place holder of search text field + TBBUTTON tbButtons[1 + nbIcons]; + tbButtons[0].idCommand = 0; tbButtons[0].iBitmap = editWidthSep; tbButtons[0].fsState = TBSTATE_ENABLED; @@ -873,7 +871,7 @@ INT_PTR CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LPA tbButtons[2].iString = reinterpret_cast(TEXT("")); ::SendMessage(_hToolbarMenu, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); - ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(16, 16)); + ::SendMessage(_hToolbarMenu, TB_SETBUTTONSIZE, 0, MAKELONG(nppParams._dpiManager.scaleX(16), nppParams._dpiManager.scaleY(16))); ::SendMessage(_hToolbarMenu, TB_ADDBUTTONS, sizeof(tbButtons) / sizeof(TBBUTTON), reinterpret_cast(&tbButtons)); ::SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0); diff --git a/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp b/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp index 85a92791d..32301c60b 100644 --- a/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp +++ b/PowerEditor/src/WinControls/ToolBar/ToolBar.cpp @@ -340,8 +340,6 @@ void ToolBar::reset(bool create) int icoID = _toolBarIcons.getStdIconAt(static_cast(i)); HBITMAP hBmp = static_cast(::LoadImage(_hInst, MAKEINTRESOURCE(icoID), IMAGE_BITMAP, iconDpiDynamicalSize, iconDpiDynamicalSize, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT)); addbmp.nID = reinterpret_cast(hBmp); - - //addbmp.nID = _toolBarIcons.getStdIconAt(i); ::SendMessage(_hSelf, TB_ADDBITMAP, 1, reinterpret_cast(&addbmp)); } if (_nbDynButtons > 0) @@ -357,7 +355,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 = (_state == TB_LARGE ? 32 : 16); ::SendMessage(_hSelf, TB_SETBUTTONSIZE , 0, MAKELONG(btnSize, btnSize)); ::SendMessage(_hSelf, TB_ADDBUTTONS, _nbTotalButtons, reinterpret_cast(_pTBB)); } diff --git a/PowerEditor/src/icons/funclstReload.bmp b/PowerEditor/src/icons/funclstReload.bmp index 37994570d1dc611108ba53f86e6fb570695cad6b..0e3bb0be8f2da94f79c6e8ca0b2c7e8ddb5ed2fa 100644 GIT binary patch literal 1334 zcmeHH&29lv6#h_JKbcU`Kc$`NOk-v=Q!%j=X^2FW7qF06@DNsZ79C+D8U{rZlWK_YSm1Qg^vr2#jZp`32JmM|zpNt&j? zFbr6h1;=sVc^-lwKomttl7wh9idZa$cs!0oB7tNwiBu|ubUKYpCWCA?i(D>;d_Ipt zp@3qsh*GJ9a=DC3rGjd;idwCPdcBTDqk(3#iB_wHcDs#Er-N>{i(apXe!q{wV1VIp zh|y?-@pz2MWP<5*irH+2`FxJWVu9syiPdU_^?HrXW`pf^i`{OA{eF+b;eg}ucz){z zTsCmo!2cVN|Bi6zmo9l7CX?;)<0SDm_nQ>rJk|gaKJ8x3@L5U4^R0f>^Q0n*(K%;V zky-B}OQx{GEkWIvUsXiW8drWF)t3D(!e5L=gIS$Qq8^AKzgt136et%h2HCr7pHZ7y V@;faS$9+IPajjfAN&hn=;0MChgcJY( literal 1146 zcmbtQe^Aq97=PDyh~Gi7Ya|Vti(dlrb087nY3(%aT9Tcact%A_E4w5jmvqXNmnjy8 zAe>^Cg@T-hFh=Ov&f_-VFe$o-;iTfn7~?iJ#&=^3n4iAOzMa=!-Syl(@AKT}{d_*} z^SttBOZeokC}GdH*%bbrJn{(JvBBPpg6`&BfDrk{=ilS{|61?+7co;K$hsGb{+No1 zJV+HuDk)<`C2@<-5=MH4%%;?n-i*^knOI5ad->w306h2!Rp!T5R`XRWFD*g*uR(|! zqY-WnK$wXj%t|0(Yg8XWTrHVOIziTP9`QFry^@~g5FR9+*v??2+r)U(B0}1D0FuU+ zB5ooOktPZcj}U}gSg&D%6=w-jYe=@=Bl(92X5;*N$Sl#=Fr5sAEfM*y^-#_1!?xR5 zc)VvB(gp;GW@nL%vid&=ga+25jCj+|5W$*(1V-ii5CyJ0>~d~K>0&Wn>fMRtMt;L% zmxHobf5Vr`YWWpwuL)eMOo0eD@*uoL@IWiUs?Uh>iQiM06ZjIUxnk^_+k=vYH}UFt z0pgoNx)Lr?QQV%2b~^Q`&if%9TZ)i=3iM3^@gbghtts7AkMD6FEv!p3%9(1^SnD9y z$?rtg6a9vtgu$H0nr8ZZOgD{)4nCG&`@dE9IxW&EDfut&$L}>B*=(@2egLL(547({fl3+Bz6HLPr{PvVgWrzDf_tz3 zP+V|d=?eX5^X@y&{;x4>sDfwk0H(FMur`LFeFt$l^*bjp(*syf0k&F9ek-3dmdB=Y z9=bO~Q9mEf=(6i~!~R_k%ykls)Cgdz=HqHU#n@YA%Ed7atGx){=rJq~AHh&XlB+3q zS;aYdko060o!ziW&|uOOVW#V4Ok7BS`CKH%zY4*%SC%l2wj6=8W2+aQA^66susCuU zzL8H^ZUHP!xp3$T;W2&z*NxX;Rp(%`F%6^D5|~f3`usq~Kc~GVJ=@(|48I2~b(l9E zfY(qAZ+{`&H}c`^P+fw$9n{!qkFE1E2K@ ze3k|*3?GMg=qNk``(eAX6}OJBM%UhOm0zRI6P2~?2>Iu){g_>oNl&RWln(9oUdQ#f hW}W&XX0rK3x9NhyXedu9`fKLIhw?0NtI diff --git a/PowerEditor/src/icons/funclstReload2.bmp b/PowerEditor/src/icons/funclstReload2.bmp deleted file mode 100644 index 0e3bb0be8f2da94f79c6e8ca0b2c7e8ddb5ed2fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmeHH&29lv6#h_JKbcU`Kc$`NOk-v=Q!%j=X^2FW7qF06@DNsZ79C+D8U{rZlWK_YSm1Qg^vr2#jZp`32JmM|zpNt&j? zFbr6h1;=sVc^-lwKomttl7wh9idZa$cs!0oB7tNwiBu|ubUKYpCWCA?i(D>;d_Ipt zp@3qsh*GJ9a=DC3rGjd;idwCPdcBTDqk(3#iB_wHcDs#Er-N>{i(apXe!q{wV1VIp zh|y?-@pz2MWP<5*irH+2`FxJWVu9syiPdU_^?HrXW`pf^i`{OA{eF+b;eg}ucz){z zTsCmo!2cVN|Bi6zmo9l7CX?;)<0SDm_nQ>rJk|gaKJ8x3@L5U4^R0f>^Q0n*(K%;V zky-B}OQx{GEkWIvUsXiW8drWF)t3D(!e5L=gIS$Qq8^AKzgt136et%h2HCr7pHZ7y V@;faS$9+IPajjfAN&hn=;0MChgcJY( diff --git a/PowerEditor/src/icons/funclstSort.bmp b/PowerEditor/src/icons/funclstSort.bmp index c28f0967404800d683967c8911f8876e94f399b0..c32262bcabc89fb758cb8ad7f1c6739f6eff8620 100644 GIT binary patch literal 1334 zcmeH`Ic~yG5Qcx2C~?R_AbZGSuoJT4<>7(?2^SPd5u&2x0(2aK4rq`#01^eFp@Rwv zD3CY;5)BoI{RnwBCXgm4;7Rk(d^4lBjP%rRWe@sNtbmtBcEe0KSQV%`Z7YL`0yUOp z;dZ;haU6J_hbW4WBnh%CgAfA0-w#Dm5C{Yi3h(GrjRu;{ zCR(i)+U+(voesL)E_%Hl`u#ozg8_!aAx5JS#^W(2lL@BNDQ2@7=JPogiv^a;$B&x#Feb*WCtjFW4LuglNZdFia^fKt zAAh9nA$-~Iv_^|hZ@)LM_FJ=lj3!3i_D0D2Ax#*3aU}@1=bO5h-UrVcCTCCVDaCa^ Yd2l#g+w9x7erz+jzSNM|MBV+BAGOwjnE(I) literal 1146 zcmb8s(MwZN9Ki9jU6~tcCaX@}mm~(_n-B!OELcQ=M9^PQJp_VJR!|$1Z&nbf5OiU% zw;sY5;X+XQ5SCDcU?j;1QdmR}l0J06Iiy>QemDNxm!iz!Fnk=3>nvG%QRr-a2u&;?h~1+p zSN386r(*r&9wfd_fA_a4zT+4@7t#GiU-eBE)$CMJy^@+{;(pnDI=`90LM$U|E?!($ z8*?M-kC57}@66})?;~iS>UwYPsycqXt)w=wAvIQ9e`g-@n}aZrzcPw~mrEabQUSA3f2(lD?{%s;u@>ESWXZ$FgJ7ZIRPf7+{IV3C-Y zndjHi<5+>`&Y%uqko#IYs$pQUYyS0Z)q`~`<3ntV9Ljl(XTFAk#jbhT^Zvd!iUw}r z(fqA+lRPZFAJZo^3@rAXUwW9$U=3$542$Ufug{#+FtFHjUherkb?_=)BE-C`N&E~8 k8U_|^=f4Db47(?2^SPd5u&2x0(2aK4rq`#01^eFp@Rwv zD3CY;5)BoI{RnwBCXgm4;7Rk(d^4lBjP%rRWe@sNtbmtBcEe0KSQV%`Z7YL`0yUOp z;dZ;haU6J_hbW4WBnh%CgAfA0-w#Dm5C{Yi3h(GrjRu;{ zCR(i)+U+(voesL)E_%Hl`u#ozg8_!aAx5JS#^W(2lL@BNDQ2@7=JPogiv^a;$B&x#Feb*WCtjFW4LuglNZdFia^fKt zAAh9nA$-~Iv_^|hZ@)LM_FJ=lj3!3i_D0D2Ax#*3aU}@1=bO5h-UrVcCTCCVDaCa^ Yd2l#g+w9x7erz+jzSNM|MBV+BAGOwjnE(I) diff --git a/PowerEditor/src/resource.h b/PowerEditor/src/resource.h index e6771dbf3..51a1cbf88 100644 --- a/PowerEditor/src/resource.h +++ b/PowerEditor/src/resource.h @@ -280,10 +280,8 @@ #define IDI_FUNCLIST_SORTBUTTON 631 #define IDI_FUNCLIST_RELOADBUTTON 632 -#define IDI_FUNCLIST_SORTBUTTON2 633 -#define IDI_FUNCLIST_RELOADBUTTON2 634 -#define IDI_FUNCLIST_SORTBUTTON_DM 635 -#define IDI_FUNCLIST_RELOADBUTTON_DM 636 +#define IDI_FUNCLIST_SORTBUTTON_DM 633 +#define IDI_FUNCLIST_RELOADBUTTON_DM 634