From 6f96381818e7372bfd0d730c94a9b38c0ccf9889 Mon Sep 17 00:00:00 2001 From: eccles Date: Sat, 21 Feb 2004 15:18:22 +0000 Subject: [PATCH] We now centre bitmaps manually, to avoid differences in behaviour between XP and everything else. git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3496 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/InstallOptions/InstallerOptions.cpp | 49 ++++++++++---------- Plugins/InstallOptions.dll | Bin 12288 -> 12288 bytes 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 154165d6..55d1da95 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -896,11 +896,11 @@ int WINAPI createCfgDlg() // Prevent WM_COMMANDs from being processed while we are building g_done = 1; - RECT dialog_r; int mainWndWidth, mainWndHeight; hConfigWindow=CreateDialog(m_hInstance,MAKEINTRESOURCE(IDD_DIALOG1),mainwnd,cfgDlgProc); if (hConfigWindow) { + RECT dialog_r; GetWindowRect(childwnd,&dialog_r); MapWindowPoints(0, mainwnd, (LPPOINT) &dialog_r, 2); mainWndWidth = dialog_r.right - dialog_r.left; @@ -924,21 +924,6 @@ int WINAPI createCfgDlg() return 1; } - // Init dialog unit conversion - - HDC memDC = CreateCompatibleDC(GetDC(hConfigWindow)); - SelectObject(memDC, hFont); - - TEXTMETRIC tm; - GetTextMetrics(memDC, &tm); - int baseUnitY = tm.tmHeight; - - SIZE size; - GetTextExtentPoint32(memDC,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 52, &size); - int baseUnitX = (size.cx / 26 + 1) / 2; - - DeleteDC(memDC); - BOOL fFocused = FALSE; #define DEFAULT_STYLES (WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS) @@ -962,8 +947,8 @@ int WINAPI createCfgDlg() 0, WS_EX_RTLREADING }, { "STATIC", // FIELD_BITMAP - DEFAULT_STYLES | SS_BITMAP | SS_CENTERIMAGE, - DEFAULT_STYLES | SS_BITMAP | SS_CENTERIMAGE, + DEFAULT_STYLES | SS_BITMAP, + DEFAULT_STYLES | SS_BITMAP, 0, WS_EX_RTLREADING }, { "BUTTON", // FIELD_BROWSEBUTTON @@ -1042,12 +1027,11 @@ int WINAPI createCfgDlg() // Convert from dialog units - RECT rect; - - rect.left = MulDiv(pField->rect.left, baseUnitX, 4); - rect.right = MulDiv(pField->rect.right, baseUnitX, 4); - rect.top = MulDiv(pField->rect.top, baseUnitY, 8); - rect.bottom = MulDiv(pField->rect.bottom, baseUnitY, 8); + RECT rect = pField->rect; + // MapDialogRect uses the font used when a dialog is created, and ignores + // any subsequent WM_SETFONT messages (like we used above); so use the main + // NSIS window for the conversion, instead of this one. + MapDialogRect(mainwnd, &rect); if (pField->rect.left < 0) rect.left += mainWndWidth; @@ -1234,6 +1218,18 @@ int WINAPI createCfgDlg() nImageType, nImage ); + if (pField->nType == FIELD_BITMAP) + { + // Centre the image in the requested space. + // Cannot use SS_CENTERIMAGE because it behaves differently on XP to + // everything else. (Thank you Microsoft.) + RECT bmp_rect; + GetClientRect(hwCtrl, &bmp_rect); + bmp_rect.left = (rect.left + rect.right - bmp_rect.right) / 2; + bmp_rect.top = (rect.top + rect.bottom - bmp_rect.bottom) / 2; + SetWindowPos(hwCtrl, NULL, bmp_rect.left, bmp_rect.top, 0, 0, + SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER); + } break; } @@ -1283,8 +1279,11 @@ void WINAPI showCfgDlg() while (!g_done) { MSG msg; int nResult = GetMessage(&msg, NULL, 0, 0); - if (!IsDialogMessage(hConfigWindow,&msg) && !IsDialogMessage(hMainWindow,&msg) && !TranslateMessage(&msg)) + if (!IsDialogMessage(hConfigWindow,&msg) && !IsDialogMessage(hMainWindow,&msg)) + { + TranslateMessage(&msg); DispatchMessage(&msg); + } } // we don't save settings on cancel since that means your installer will likely diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index d99b14d4a6c99d589c2461bba3a0bb53ad3978f3..52651bd8e1c3d2c771be71b1edf5e951f3e7f999 100644 GIT binary patch delta 5281 zcmd^DeRNaDm7izJMh4kW5I-=%fB+jPhEzuH2^=HY)OyAZxCk3tbonTdI0&svAiPJ| z#YQ5M6Kfyl>(Q^XERE}A7g~DO8`!gM;}SWT*yMOqC(9DjB`Gl2W6zgxTLb znWQJDf9=03pR2j|H+Sybxp(Hy$dS#F%}17T!$&>7@YCC72Y!>Y>kG2(dIIw0u z&}JrMZCk8rayMl$rH87_+xz|mRL^aN++dh|=&yo^M){s}ji>(r-a ztmd9MyFKGDcg$j)>U0wOD;5%MDY6hHn-&+Q# z^c(*KkO6)wFfDXz!ijCf?n<=1*|>kImU~=3V41n5AAKPXiq_D4Dy@Tp@jeEor?i?= zCfIN*bHU0rs!KFqQ9edP^L)YM#2&P8gmhREja2DdN`+qiV~dwNp*yo4(jIAxL$o{_Sz*wP;*^cUhJ18mPdO1DXLw|8urGycc4$--cQ2FAp}svt>T?Q{g@??S#*b zK{1Wm%$brxXARJDUy*%(HqB)`T~%bKzM{gYuc)8~i!Fp;FVAAJ;}3R!2Dc@q7Oa6C zc>lTe@E7KT^U+5IHbtZ1yGv;|_pMDE*GK#FFDyhN!v6-5N3pSG(t_15fjbYeEwsPD3u}j%lByGetkj1PqkLrV! zn8x@iOa&K$>r&8RoMd7l6ZbOlFcWP|Y++&qqU(RUBKkq=)G&*Iu@^{)21j79>-!AY zmIkgdAjW{kG%(D7b_U1*>Vrc}KFDMVa@P@Xoy=nSh5eJUf%>jn{Kg;ugdVoH%pTXJ z@(cW-^%>YOje!B*w4(ffvk)?Xd~~Dz1q)gyQ-1kIlU|V{JTjJxxQDGc*pK;)9oT0L zL2D)0O%n-eOT?=keC$`)gDDD9B%!hm1zw-v+q?`@uiy-*yjc3V2+cE4h!!VSpDY$_P00d>Yw(}1#^3L{Rv zKG*dKs})qJG>3_tQlUxh;89DY&FHC$Pd5+Km9(g(LR@enqCQq*-WtVrrpovbfX(`F z?pGdQ+G<_dbQX~K#=HAhVClBJimgm;`I+%E42TvpB|_DFs@kzss#>Y!2SkNtOkLJ$ z({8C^+o;rL`T-uYtvbD z8v`yH-#AqM>$rz4B<^8LQ0)QZm!IH_9>MOv`8`}boj$lKwKVXb2PI#_OdxdXoWJ+7vk!> zHb5C%W_=gSGDUj#qV0N&2@>lxUdKQxwU_|YF@9kJ5ffl~VdD&tPF5f)faYO6!d!FdPWJ^B|Vu8Vxm7 zQz?j%artUoVu`21_n{v~SXjFGm?sNYm)zs0>M#|KqYFYP!(Wd}gJn*u?bqZ)No{Wl z;QTdE>y68|;mq~0sC10z(Wv;d-UYh`4G8nJzfty-+G-V4v6-|wAofl1I@COg$F%wN? z?%y0ujpGj;Fr}Pui&iB@uRBWRRB{*CQqT%Ria&4;G)U7Q6pE$tx;#dW^s;{kmN*g7+Xv# zv89J1eMVl6oMPDEf%gbmY|W`nohF1Mn6Bwh_cXb`F}(>&9akg9m(Fchof>g{9>D((7 z*=4x9FnAGe1&pUyXX|yM&er5qF*dZ-!*;d$05WN9$qfw1*D)J08lb1G6npHD<_wk( zsyTGGC19)tOywI<*{IRv8~0zY(LXbzVOX7zzLt$COixl+B~yotnUKueU%yDz;T<)C3u7}b45JX3_GP3td( zFGM{)*dj_cd}nQ(Gf>| zL!&0KGZhHFI~7OFl73y#E3OZ^*t?)%%;{Vd*RhAktP$# z{XY4^v9v=}IE4XG54+Z=B6P9~>`OOW_$?~2;2Xogzn>xFqRF!R*7&)}wlMZzO_p7+ z#`9p)PwI=x*E^Oa;&^5Dy`O1bJkgJ8LfIYSxb-Wkc+&WLXqLaD{vo>Gk%=v{$43PV zb7{XLBQ1u7=OMG-LTVqCjx*~kFebe?Wn51WlA4@Uwun7Udb%N~Sv{xF_zfQK%=E7v z#|8X+vP3;r=#VZJKgiZDGr{nzi){iRwysrRlnKEE+bF~Mg>}LBBy2uW)KS0j-c3qx z5*YnI7>k+4{yA+6Z$Rb=bIN+(slV=vIw3gCbVg?5X)YUfb3b_ILRV0qG;Jd{r0<-z z9^XULL|xBV5e`a(>;_LSssTL){W{RsKoRIXjrJJY$)MRFABcUmCmEHCjbA8?T6fo<|nppXUqcW z8_$QH+aBu4^73B6JIg!YD|*Yl-|(*We$%_%t9ti)V_waB(tF1HOYeVs-}8=mNyWSh zXN9}MTj8tNQt{mi;vi%YuJ3U^?d){^*!f52J?Dzj+R_cBkCr}L`cmn)7x#r1Kk16O z4!cgcI$ft-|L*#^tIzee>jM`Nt)d`K6H7#=SSGF%*NEQ~w~E_EMGTA2iigGTi2o>_ z7SD+n#Vg`_;``!9;$6`q*`!HQf#i@LlHAgAX_XX^wo1)XSbAPME4?heCcPoOExjxK zR{BiJblcp5dxm>%vHR=p)$VofE$)zem-`v_QTO-U&$&;#yWPF+*W4et=P!vZA>?fA Kp%(6_)Aqk?vtE1v delta 5496 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