From 8760dd2c07cda889dd257eeddba00a537080fbc9 Mon Sep 17 00:00:00 2001 From: ozone10 Date: Mon, 17 Jun 2024 22:33:17 +0200 Subject: [PATCH] Replace tab bar close button BMP files with ICO ref #15298 Close #15317 --- PowerEditor/src/Notepad_plus.rc | 16 ++-- PowerEditor/src/NppBigSwitch.cpp | 2 + PowerEditor/src/WinControls/TabBar/TabBar.cpp | 79 ++++++++++++------ PowerEditor/src/WinControls/TabBar/TabBar.h | 3 + .../src/icons/dark/tabbar/closeTabButton.bmp | Bin 254 -> 0 bytes .../src/icons/dark/tabbar/closeTabButton.ico | Bin 0 -> 423 bytes .../dark/tabbar/closeTabButton_hover.bmp | Bin 246 -> 0 bytes .../dark/tabbar/closeTabButton_hover.ico | Bin 0 -> 420 bytes .../dark/tabbar/closeTabButton_inact.bmp | Bin 254 -> 0 bytes .../dark/tabbar/closeTabButton_inact.ico | Bin 0 -> 398 bytes .../icons/dark/tabbar/closeTabButton_push.bmp | Bin 246 -> 0 bytes .../icons/dark/tabbar/closeTabButton_push.ico | Bin 0 -> 427 bytes .../icons/standard/tabbar/closeTabButton.bmp | Bin 450 -> 0 bytes .../icons/standard/tabbar/closeTabButton.ico | Bin 0 -> 467 bytes .../standard/tabbar/closeTabButton_hover.bmp | Bin 450 -> 0 bytes .../standard/tabbar/closeTabButton_hover.ico | Bin 0 -> 467 bytes .../standard/tabbar/closeTabButton_inact.bmp | Bin 450 -> 0 bytes .../standard/tabbar/closeTabButton_inact.ico | Bin 0 -> 435 bytes .../standard/tabbar/closeTabButton_push.bmp | Bin 450 -> 0 bytes .../standard/tabbar/closeTabButton_push.ico | Bin 0 -> 456 bytes 20 files changed, 68 insertions(+), 32 deletions(-) delete mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton.bmp create mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton.ico delete mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton_hover.bmp create mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton_hover.ico delete mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton_inact.bmp create mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton_inact.ico delete mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton_push.bmp create mode 100644 PowerEditor/src/icons/dark/tabbar/closeTabButton_push.ico delete mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton.bmp create mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton.ico delete mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton_hover.bmp create mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton_hover.ico delete mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton_inact.bmp create mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton_inact.ico delete mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton_push.bmp create mode 100644 PowerEditor/src/icons/standard/tabbar/closeTabButton_push.ico diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index 5ec00c48e..5cb19c6fc 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -326,14 +326,14 @@ IDR_FUNC_LIST BITMAP "icons/standard/toolbar/funcList.bmp" IDR_FILEBROWSER BITMAP "icons/standard/toolbar/fileBrowser.bmp" IDR_FILEMONITORING BITMAP "icons/standard/toolbar/monitoring.bmp" -IDR_CLOSETAB BITMAP "icons/standard/tabbar/closeTabButton.bmp" -IDR_CLOSETAB_INACT BITMAP "icons/standard/tabbar/closeTabButton_inact.bmp" -IDR_CLOSETAB_HOVER BITMAP "icons/standard/tabbar/closeTabButton_hover.bmp" -IDR_CLOSETAB_PUSH BITMAP "icons/standard/tabbar/closeTabButton_push.bmp" -IDR_CLOSETAB_DM BITMAP "icons/dark/tabbar/closeTabButton.bmp" -IDR_CLOSETAB_INACT_DM BITMAP "icons/dark/tabbar/closeTabButton_inact.bmp" -IDR_CLOSETAB_HOVER_DM BITMAP "icons/dark/tabbar/closeTabButton_hover.bmp" -IDR_CLOSETAB_PUSH_DM BITMAP "icons/dark/tabbar/closeTabButton_push.bmp" +IDR_CLOSETAB ICON "icons/standard/tabbar/closeTabButton.ico" +IDR_CLOSETAB_INACT ICON "icons/standard/tabbar/closeTabButton_inact.ico" +IDR_CLOSETAB_HOVER ICON "icons/standard/tabbar/closeTabButton_hover.ico" +IDR_CLOSETAB_PUSH ICON "icons/standard/tabbar/closeTabButton_push.ico" +IDR_CLOSETAB_DM ICON "icons/dark/tabbar/closeTabButton.ico" +IDR_CLOSETAB_INACT_DM ICON "icons/dark/tabbar/closeTabButton_inact.ico" +IDR_CLOSETAB_HOVER_DM ICON "icons/dark/tabbar/closeTabButton_hover.ico" +IDR_CLOSETAB_PUSH_DM ICON "icons/dark/tabbar/closeTabButton_push.ico" IDR_DOCMAP_ICO ICON "icons/standard/panels/tabbar/docMap.ico" IDR_DOCMAP_ICO2 ICON "icons/light/panels/tabbar/docMap.ico" diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp index d57e5eedc..0a0fa1201 100644 --- a/PowerEditor/src/NppBigSwitch.cpp +++ b/PowerEditor/src/NppBigSwitch.cpp @@ -3678,6 +3678,8 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa _subDocTab.setFont(); _mainDocTab.resizeIconsDpi(); _subDocTab.resizeIconsDpi(); + _subDocTab.setCloseBtnImageList(); + _subDocTab.setCloseBtnImageList(); ::SendMessage(_pPublicInterface->getHSelf(), WM_COMMAND, IDM_VIEW_REDUCETABBAR, 0); changeDocumentListIconSet(false); diff --git a/PowerEditor/src/WinControls/TabBar/TabBar.cpp b/PowerEditor/src/WinControls/TabBar/TabBar.cpp index 73f6fcbcc..cac48ddeb 100644 --- a/PowerEditor/src/WinControls/TabBar/TabBar.cpp +++ b/PowerEditor/src/WinControls/TabBar/TabBar.cpp @@ -270,6 +270,12 @@ void TabBarPlus::destroy() TabBar::destroy(); ::DestroyWindow(_tooltips); _tooltips = NULL; + + if (_hCloseBtnImgLst != nullptr) + { + ::ImageList_Destroy(_hCloseBtnImgLst); + _hCloseBtnImgLst = nullptr; + } } @@ -339,6 +345,8 @@ void TabBarPlus::init(HINSTANCE hInst, HWND parent, bool isVertical, bool isMult _tabBarDefaultProc = reinterpret_cast(::SetWindowLongPtr(_hSelf, GWLP_WNDPROC, reinterpret_cast(TabBarPlus_Proc))); setFont(); + + setCloseBtnImageList(); } void TabBar::setFont() @@ -452,6 +460,34 @@ void TabBarPlus::currentTabToEnd() } } +void TabBarPlus::setCloseBtnImageList() +{ + if (_hCloseBtnImgLst != nullptr) + { + ::ImageList_Destroy(_hCloseBtnImgLst); + _hCloseBtnImgLst = nullptr; + } + + const int btnSize = _dpiManager.scale(g_TabCloseBtnSize); + + const auto idsCloseIcons = { + IDR_CLOSETAB, IDR_CLOSETAB_INACT, IDR_CLOSETAB_HOVER, IDR_CLOSETAB_PUSH, + IDR_CLOSETAB_DM, IDR_CLOSETAB_INACT_DM, IDR_CLOSETAB_HOVER_DM, IDR_CLOSETAB_PUSH_DM }; + + _hCloseBtnImgLst = ::ImageList_Create(btnSize, btnSize, ILC_COLOR32 | ILC_MASK, static_cast(idsCloseIcons.size()), 0); + + for (const auto& id : idsCloseIcons) + { + HICON hIcon = nullptr; + DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(id), btnSize, btnSize, &hIcon); + ::ImageList_AddIcon(_hCloseBtnImgLst, hIcon); + ::DestroyIcon(hIcon); + } + + _closeButtonZone._width = btnSize; + _closeButtonZone._height = btnSize; +} + void TabBarPlus::doVertical() { for (int i = 0 ; i < _nbCtrl ; ++i) @@ -1264,36 +1300,31 @@ void TabBarPlus::drawItem(DRAWITEMSTRUCT *pDrawItemStruct, bool isDarkMode) } // draw close button - if (_drawTabCloseButton) + if (_drawTabCloseButton && _hCloseBtnImgLst != nullptr) { // 3 status for each inactive tab and selected tab close item : // normal / hover / pushed - int idCloseImg; + int idxCloseImg = isDarkMode ? 4 : 0; // selected - if (_isCloseHover && (_currentHoverTabItem == nTab) && (_whichCloseClickDown == -1)) // hover - idCloseImg = isDarkMode ? IDR_CLOSETAB_HOVER_DM : IDR_CLOSETAB_HOVER; - else if (_isCloseHover && (_currentHoverTabItem == nTab) && (_whichCloseClickDown == _currentHoverTabItem)) // pushed - idCloseImg = isDarkMode ? IDR_CLOSETAB_PUSH_DM : IDR_CLOSETAB_PUSH; - else - idCloseImg = isSelected ? (isDarkMode ? IDR_CLOSETAB_DM : IDR_CLOSETAB) : (isDarkMode ? IDR_CLOSETAB_INACT_DM : IDR_CLOSETAB_INACT); - - HDC hdcMemory = ::CreateCompatibleDC(hDC); - HBITMAP hBmp = ::LoadBitmap(_hInst, MAKEINTRESOURCE(idCloseImg)); - BITMAP bmp{}; - ::GetObject(hBmp, sizeof(bmp), &bmp); - - _closeButtonZone._width = _dpiManager.scale(bmp.bmWidth); - _closeButtonZone._height = _dpiManager.scale(bmp.bmHeight); + if (_isCloseHover && (_currentHoverTabItem == nTab)) + { + if (_whichCloseClickDown == -1) // hover + { + idxCloseImg += 2; + } + else if (_whichCloseClickDown == _currentHoverTabItem) // pushed + { + idxCloseImg += 3; + } + } + else if (!isSelected) // inactive + { + idxCloseImg += 1; + } RECT buttonRect = _closeButtonZone.getButtonRectFrom(rect, _isVertical); - - // StretchBlt will crop image in RTL if there is no stretching, thus move image by -1 - const bool isRTL = (::GetWindowLongPtr(::GetParent(_hSelf), GWL_EXSTYLE) & WS_EX_LAYOUTRTL) == WS_EX_LAYOUTRTL; - const int offset = isRTL && (_closeButtonZone._width == bmp.bmWidth) ? -1 : 0; - ::SelectObject(hdcMemory, hBmp); - ::StretchBlt(hDC, buttonRect.left + offset, buttonRect.top, _closeButtonZone._width, _closeButtonZone._height, hdcMemory, offset, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); - ::DeleteDC(hdcMemory); - ::DeleteObject(hBmp); + + ::ImageList_Draw(_hCloseBtnImgLst, idxCloseImg, hDC, buttonRect.left, buttonRect.top, ILD_TRANSPARENT); } // draw image diff --git a/PowerEditor/src/WinControls/TabBar/TabBar.h b/PowerEditor/src/WinControls/TabBar/TabBar.h index 2e15b32cd..b907ad93d 100644 --- a/PowerEditor/src/WinControls/TabBar/TabBar.h +++ b/PowerEditor/src/WinControls/TabBar/TabBar.h @@ -229,6 +229,8 @@ public : void currentTabToStart(); void currentTabToEnd(); + void setCloseBtnImageList(); + protected: // it's the boss to decide if we do the drag N drop static bool _doDragNDrop; @@ -248,6 +250,7 @@ protected: int _currentHoverTabItem = -1; // -1 : no mouse on any tab CloseButtonZone _closeButtonZone; + HIMAGELIST _hCloseBtnImgLst = nullptr; bool _isCloseHover = false; int _whichCloseClickDown = -1; bool _lmbdHit = false; // Left Mouse Button Down Hit diff --git a/PowerEditor/src/icons/dark/tabbar/closeTabButton.bmp b/PowerEditor/src/icons/dark/tabbar/closeTabButton.bmp deleted file mode 100644 index ea6e6c4eb2cc5a7c98737bb59568ef1e3b2035ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmX|)!4ZNm5JfkEKrjm00Y?jf2E4$<8h|rYKvSUzheJXQl;Ss-=%4w!Z+8FeKAvy# znq9j)t6)abFI;`)-Z#gGyRL&V2HUow?|amBjj}AEwMNr4XxkR+x?&thOw)vY-?1zU zs;Yvu7Q-+gD!5m1C6)`XydWM>2!3!Pg}ek#GnL7}LYI@?-+y8 z2qFjqRW7^O?ILJKoB;72kU~PKm>P*>GJ%(VA7Z&&Dm!~cDki1fv_vmjb1V5#gW23C zye6Enc?)zpJ-iNv*nDkaSr!WSMbzq#M(X>7S9HG2W+_)lU8K->YQXb6IF5r>tA#KO zIYGjoP3gQ^EBi8|&t_aYokp!zN4ML-;%#yKQRDoZnK2mAIw_Eu5 zq_c@JKfpF)knZ(*7>~!;Y(omq;T8+1R;y5~bvD&8w6jfT(}V7sSq_m7mu9Mo5d`nb zbt{OX$Uq0yw8+Y_7Xryd0)ycYB7c`xrBVr}d<{id#(WH-{~i!An;H)K_yLjCnZRdm Rpy2=j002ovPDHLkV1m)!uPy)p literal 0 HcmV?d00001 diff --git a/PowerEditor/src/icons/dark/tabbar/closeTabButton_hover.bmp b/PowerEditor/src/icons/dark/tabbar/closeTabButton_hover.bmp deleted file mode 100644 index b5bc396eba9848dea56de64d2bb848829797ec5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmX|%y%mEn41{IzV-o_bK$#8b)0-856|xEJ0u!XiEWj9PFLLZ~@15?GbWi)CpqIo$ zTt+K0;UV)~2RFjr!!Tgqcbw;maU9{CL*Mt;&>p*bf%;6P!_b*YPVpO$BKt+N-7iR z7+dq^TIOl0y>18jI>!?&oi+#4QV|?34)M?h%~3(Z>d-I|!#Iz7*)6|TdU0_EAw@Y9 zUc<-+Cchb(o&NJA6>0Lz_*0x% N9FE3}h=so_q7S05FK7S& diff --git a/PowerEditor/src/icons/dark/tabbar/closeTabButton_inact.ico b/PowerEditor/src/icons/dark/tabbar/closeTabButton_inact.ico new file mode 100644 index 0000000000000000000000000000000000000000..caa5dabea390ade31b2f70cd8b916169bfa9d05e GIT binary patch literal 398 zcmV;90df8S0096201FEM0096X0C)ia02TlM0EtjeM-2)Z3IG5A4M|8uQUCw|3jhEB z3kU`P00611cP0P;0Y6DZK~xx5g^|rp!ax*-&j3D9OQTOvQdSb&7@|PjSfn(%H~y5k zB{4KWjV^S78;C2Vkr$9MoxYDjuG7Jvjl@~qx%ay#C-<;gZJ(SY7uhVs5&&ZvFp#Vu z|AdSzKWKqo?*=TIN7QUOm`4#)#2?StGRXIRFu^(LhOrj>-i;;45)qT8=M_92k0=-f zc%4p}X`0lq8z}FT)r|94!igYF(^bQ=EIL0s#r?w&)#@HR?+Rh~yn+*{%wtYQ{?~@v za>+e8#&xHIuJ8ZYQ#OPUr0XkXvrr)K@&d!hAu78SwA&tDCZU>%IFYba*1wd;Pb0bw z?l1`_tY{Uh}9!^@F-Rk&WC& sPDaI$=C_n| z2Z*8wJ--Ke|9I0(W&?-?Ffo*uxWkJ3u!J*TEF#Dx4Aqd$LRiq{&1wQ-sLI%Il1pa< zFPjPTJP&7;b7XT_1VMniejmQyg;mRD1DVc3H}? zV={-~M8QS=yI)>k(P?*4uV0{0*rO5!aY#8CQ-Y0UFGY?y`j*Va;y#AMCtNoh*xA}9 z(ABxkB%BfFdJVj)hm+F^^0^!(jdB0*h<3Mw6w8i`GD50N9^*`QHdr^*sT0!B@5CF( z=yRm2=`;&UI|96oG;=qiVFQPf*xLnp+t%mf<8d;NNT-7-sZam+g-#Pq_k3YtF Vp46P=yyA;lyM6Wxn--=Nqk%gpvN?XS`P18YxI9&z+=0SMgTz4y)>Pwym?IhpTwzWL_J&u_o9=>A3e zeSDVVLm*PnFtqK_f$eNS_V@{Md7P+=YlMe;Buh;Qgc5XU;c<57hY#G`_mQhl-__L~ zF}d=b$U)LPGdPDLXZEmx5@^lub2l8C^M`Yl@hZ>OUtlbzary3unS%yp9>ZJnd-Ssc zX|J7W6vuW~P~UoKVl-+g*9dLTZ6fw$FAYf2JXIIPs3@9yra!(eMermGyB0~U-E*6Q zwB8Dr9rIdyxFlj(6dQNd-bzQHKxA5gbPBD!1cxn_1#sYLphb} z#dW#^HRt6$t&G)}{<2~|LZ|r^@#dmAQwQ%6ar~HDqxa9Ikt}SgR%?hwF`M#R5d|T) z-)n};bDLsHH+2@{@It$Pej}AinboP{+z7POLpFNFd!nZk{0Hxr$i!k<>}mi2002ov JPDHLkV1kon&c^@% literal 0 HcmV?d00001 diff --git a/PowerEditor/src/icons/standard/tabbar/closeTabButton_hover.bmp b/PowerEditor/src/icons/standard/tabbar/closeTabButton_hover.bmp deleted file mode 100644 index 44490fd3ec73e06da02b721361c8a6c3d8c5de59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmYLE%TB^T6os`v;3xP4%1VhO0>)~v0-_BM8!EvP5tI}KQriFuq6QO5l$8rzxiv0H z{15{gqC`{O%k(&fCcT+^=bUrT%-nG;zu0Y~n4xuw=7gDc+vG@ZnEeqki(JW6U-yQw(@Y;M>bFhO#?SuN9>>m>u1{1>#k;HN&p^%-LzFpHfMQ8TN^y&Z| zEQPTtVjSr*q$ZBqCJo8@9H&v@7a-(Jk#5D7g<}=n8~=rjXd1gEWEHD5M&bo{RcC~6 zN|Sj=RbypU%O)s@l@QMB%+@DW_f@EuD4kh`G4hKDrpO}Kr!yDpIKQzB@dFF9apGBj zqx|$5?FUnrDo7Q;XHB{$kcB{x&U|~1$0wuG+bUO(8#p{cMnOVCC`nvwj~;mLpmm3G X(|9yjM&{V~CN)IT@bRSD{GpzI|CuA7 diff --git a/PowerEditor/src/icons/standard/tabbar/closeTabButton_hover.ico b/PowerEditor/src/icons/standard/tabbar/closeTabButton_hover.ico new file mode 100644 index 0000000000000000000000000000000000000000..92d3d8e273ead7ef3bdd0936a67d5b8dff171d9c GIT binary patch literal 467 zcmV;^0WAIi0096201FEM0096X0KEYK02TlM0EtjeM-2)Z3IG5A4M|8uQUCw|3jhEB z3kU`P00611cP0P;0fb3JK~xx59g$5-TR{|tpEGkwY-$pf{*Uh5c3J4M1e8*`(O9$; z7gh=dD;8QL>Pm!m)m8q2i!S^lg;GovqmrceTI2o5oSy3(W?;^F-!sq5h@Kp)_I{zm z5t3z4q=-$;6;1DO>6ma6GkiRcgzi_><|8B-AaM-ilu41{^Az%&@GrqxzSqAr@li*a zn?)9v(Ezf$iQZ=DIK~}($5PO4(To2gy0@h?nuL{&GHq^K-nWsxZz#?LFj;AFo+MV= z*-&XTjJ1GwpG+AnoP`ZLO5ZFHD$u_koAJY{hFSyXtwlN^Z13YrkqEl;+6+087F=D} z1L*oI)w(f99^LL((Ic1%Z%m3DytPZ;G5B+B+jdKtnT1ZtSO&Nw!&&=i;(HkQvP5!v zZsM2EG&E)BT;@x%pbQP^d$ns~)l{haL{X9eR=TB6o>$nFs)Op;)DxqG5DZ|mi zcyC}BbNRcE3_4pnI{86VsSv!wS4`w1suB3ey5`ya#}xBV`47CvzqLk=*sA~l002ov JPDHLkV1i)G(ER`a literal 0 HcmV?d00001 diff --git a/PowerEditor/src/icons/standard/tabbar/closeTabButton_inact.bmp b/PowerEditor/src/icons/standard/tabbar/closeTabButton_inact.bmp deleted file mode 100644 index 948cd6390d30b6c0db974ad9f359bed88ff2b7c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmYk2IdX$Q5Jg3-(20-W6X*cSeKSQA`;Lo!CxM6n-NLu=Gc8TgRXx?y^Z5On`}b43 z9C73PBCoI1E}uvL!TSfz|9rIT zAaGq542El#Wxq!hMUm&Zy86D48VmwuSqj5>uEQ{7C=4Igb=|hD!laOin1rdSs_Qx! zNQD7llE4xSudD{904V?<*$AfZ`+1%fz-U#&U>jzdre#^A&)>ka!qPMqopoKeZ39DX d97pD&i~)SIviRBe9RM|XLJISu#w_~G`U6rs|I7dY diff --git a/PowerEditor/src/icons/standard/tabbar/closeTabButton_inact.ico b/PowerEditor/src/icons/standard/tabbar/closeTabButton_inact.ico new file mode 100644 index 0000000000000000000000000000000000000000..8ec6a3ddf5b50ed8df1e33845378bf7f75236736 GIT binary patch literal 435 zcmV;k0Zje?0096201FEM0096X0G$B<02TlM0EtjeM-2)Z3IG5A4M|8uQUCw|3jhEB z3kU`P00611cP0P;0c1%;K~xx5B~jZ-12GUi$zFU?eC)djBHC8Fi@z#9C@NyDwxA-u zS}ePTTE(wWKS13}Cga&PVPKNXoXf;ar&Im@{z2_ZNG%ZYP(>R~91J|1ud%ke4)gH% zs4H=dqAZ}bgL48kEH=vAK}Atj6@Gt9nA^L14Z;AM8ykSNcwfFjv|&)B2Pv!r9htNG)ibLS5n5s#bqnQ60zIsw}n<%+nD5GKF>L& z3PQ8y?DSlt&>~3&#BKO3USAg&><#|aFlPA-WiyTAlVgpe7zb&}2aDx$(T)v7Ptt^p zil^x_>c-&V(UGo15dxZQhz&!iq1nREFw|a(ps0vEncV2d=NAz;DY_OK;wK_#Ot!hF dSC3AogFj`F%@V8PZ{kN`+-Q-?tq-*VR`4H@-D{| z+)e<=qK;b(2@K-K3&Cpk0TswP90H0fx}Q|?Jfq}wR?+h`kPA{{G!LkzbM7M`0ve*= zdR)o#G=vLO2IMj~3uC2bA05vWGq>cowg!4*hbAxr}*00sz9ji73on86%~8cFl5QkFZVt)Om`vE2t$!zjWapqwkB zJ5kJFuDJ1Xu%%n1t#$yt0Q4*{On~VB|NrTQ)A^OM1yqUz)vHCcyF_$)MD?cv14P_t MJ`e$8;s5`C0Lv1rU;qFB diff --git a/PowerEditor/src/icons/standard/tabbar/closeTabButton_push.ico b/PowerEditor/src/icons/standard/tabbar/closeTabButton_push.ico new file mode 100644 index 0000000000000000000000000000000000000000..795a5cf271ae0f82b3482dde9e52f54ae2d643ab GIT binary patch literal 456 zcmV;(0XO~t0096201FEM0096X0I~r902TlM0EtjeM-2)Z3IG5A4M|8uQUCw|3jhEB z3kU`P00611cP0P;0eMM8K~xx5Em1u$L_riicV^zMwVROm*n*JwS|1TYsa0zzwqyk% zmJmIqMnYt5vc<+mLKKKz?-%GuM6v~H1^eE+&U?(uWbVwIbKaSAy1_`5Z)vF@E>?)gW!LKm+A=y3k1eP@meb(P=y?hwdqjGLz4r> zS9W55LRQF+`gpxKjZZ@QkfZT-&1DjBJaAMVC~U#-*N_nPs}fh%8o>9dd^XXc{pm!U zK(0`v9@B{RqhauQLkoeR;ZwOX*{Qu5i;+coj9&rNFU#o8uS11uB){L5@$=n)RHw4q z(`+%c6!{JCc2S1M_?#1D7uG;LK5i@c2?9uMI;&kN7v~vGIAzY34KWaQBm##_;=AEP y9uGG4>){SIw!q8CDZ3XnLb!J%`AnjHb{@a#eRil27=H->0000