From 03dd8209c29e5440823803472c21b7d623714995 Mon Sep 17 00:00:00 2001 From: kichik Date: Sun, 19 Jan 2003 16:56:10 +0000 Subject: [PATCH] ListBox and state now play along git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2072 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/InstallOptions/InstallerOptions.cpp | 43 ++++++++++++++++---- Plugins/InstallOptions.dll | Bin 12800 -> 12800 bytes 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 1321c5cd..f9ad9d08 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -742,7 +742,7 @@ char old_title[1024]; int createCfgDlg() { - UINT nAddMsg; + UINT nAddMsg, nFindMsg, nSetSelMsg; g_is_back=0; g_is_cancel=0; @@ -965,10 +965,12 @@ int createCfgDlg() { SendMessage(hwCtrl, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); } - } else if ( - ((pFields[nIdx].nType == FIELD_COMBOBOX) && (nAddMsg = CB_ADDSTRING)) || - ((pFields[nIdx].nType == FIELD_LISTBOX ) && (nAddMsg = LB_ADDSTRING)) - ) { + } else if (pFields[nIdx].pszListItems && ( + ((pFields[nIdx].nType == FIELD_COMBOBOX) && (nAddMsg = CB_ADDSTRING) + && (nFindMsg = CB_FINDSTRINGEXACT) && (nSetSelMsg = CB_SETCURSEL)) || + ((pFields[nIdx].nType == FIELD_LISTBOX ) && (nAddMsg = LB_ADDSTRING) + && (nFindMsg = LB_FINDSTRINGEXACT) && (nSetSelMsg = LB_SETCURSEL)) + )) { // if this is a listbox or combobox, we need to add the list items. char *pszStart, *pszEnd; pszStart = pszEnd = pFields[nIdx].pszListItems; @@ -985,9 +987,34 @@ int createCfgDlg() pszEnd++; } if (pFields[nIdx].pszState) { - int nItem = SendMessage(hwCtrl, CB_FINDSTRINGEXACT, -1, (LPARAM)pFields[nIdx].pszState); - if (nItem != CB_ERR) { - SendMessage(hwCtrl, CB_SETCURSEL, nItem, 0); + if (pFields[nIdx].nFlags & FLAG_MULTISELECT && nFindMsg == LB_FINDSTRINGEXACT) { + SendMessage(hwCtrl, LB_SETSEL, FALSE, -1); + pszStart = pszEnd = pFields[nIdx].pszState; + while (*pszStart) { + char cLast = *pszEnd; + if (*pszEnd == '|') *pszEnd = '\0'; + if (!*pszEnd) { + if (pszEnd > pszStart) { + int nItem = SendMessage(hwCtrl, nFindMsg, -1, (LPARAM)pszStart); + if (nItem != CB_ERR) { // CB_ERR == LB_ERR == -1 + SendMessage(hwCtrl, LB_SETSEL, TRUE, nItem); + } + } + if (cLast) { + do { + pszEnd++; + } while (*pszEnd == '|'); + } + pszStart = pszEnd; + } + pszEnd++; + } + } + else { + int nItem = SendMessage(hwCtrl, nFindMsg, -1, (LPARAM)pFields[nIdx].pszState); + if (nItem != CB_ERR) { // CB_ERR == LB_ERR == -1 + SendMessage(hwCtrl, nSetSelMsg, nItem, 0); + } } } } else if (pFields[nIdx].nType == FIELD_BITMAP || pFields[nIdx].nType == FIELD_ICON) { diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 87596734c357882cc3080b9a93fbf3bb8b3966a8..1628031c3e60b2a88255c7a0139b1bec1746af3d 100644 GIT binary patch delta 2376 zcmZWqe^3QOf*azlW7~Ml*pJ7HGyVYo2E8XPY+X>N%5p9+qWFl z&g75X{k+e6@AG}%_uYM)XiK#HIF+;U<264?yQoj}JnD~@nlk+=^%_+;*k##jvv?VO zB7e0dmwBt;ZHuM8Xz-n)ja0mAst+O5$p3l0%lRZ?wl%l(xK3?DOpl9hMNIVG#?)&| z5PF|x!$HJc?*!a$1BZ0ho@@g{Lne9xkUB(5XHR%Q!=8K;>_j!PCu;$uHq07Ea>$;< zU^IrG2AxJjFc&i%2lcoe7Zrg6R;V*qxTz1>H#e`{=S56}G6Xk-onXz_2~8LQ@;yW$ z)Dr%9J5WM}>FsL*IN6T@OJ|j$P?k0vLlE5(W}w)tj4`S2V(u$$2@jYF!o29D-otoG zCi;VB@~Bd>m^`7MW7fvko&$--#)xmB+=<5Uo^mtSEMCj>#Mq|Dw+*2ZEW@EdEHt1L z4102SE<(LQ)(d)>Crs}}@M^-da9^P3_df|nHN<2MEy$8cX_ZL<3{=JEoeCQ;;DVN! z(uN}p8WE}`;$0vn79DNi2pJCATuH@KLr zD-uS(kBqK(*BZ2!>PMGW>Qf-(7p6fZ{e_3 zTdHO#`(X;aYNpWsqf8ETfDS}xD86p^Q;V_Jshvs%AS*EichF~z53>q@-TkI`HW&mA zW!P}v;AdyKsSkgEh5XI}*%z0fHSuuq42 z>8*f?c{Rfg8@T&3=s&=qezN52@x?RLV#B1{uqRhr5P}a+Ve2E_7Gq+*wRaDi9@gqS z-D90jEdb}eB*v(jym&zbHH7~F8-#exVYYoS;c_n|JYTBL<=T_Kf$vtGv)Yq`0JOTo z?lF6E9Thjp{Al_6LDsne9Pnhmm3>w`4$t&*b*{kPZOu~7#6rmNg^(BFsZFO>C)Oin z4T(jUCRQP7x;?)E8ll{A5&(v3)#Xp9kM2eqL=R07dLlAo3(HtH4}hyi+9CX z##|s8jTjLW?gsdkPH4(7t&Jx9FyrpP&JPtQ?!*q(vt`j7r~v5bI_XyXvQWebn@W(b zW(=hu6rmR75;3+6Dc1NxeWROTUPj-!{sxFOL<}h2nN6}Mj{+4zA)wgn8enxUN6Ay? zEcWgMSo|2+n%DlyaQ944J?m6ttR;zxC%F4{r&w zPli8uWPbRZfw2JNr7e`&16k?_43G56#?%@xV8CZKASPYZm|B)KKLs=O4Z!@+_Q1}k zcC>bl^ns=S)6ruYU#b7_zLS=j&-MGuCRg~=hG7U8rcH{Uht(#moQK4OE`6DEm1X9J zzSmho)2Y8^L1F5g2^^NwS=*L6dPD!Y^L|V8hCbpvZ5jMR|H0B`OY0Yd<4bo^Z&lD% z^Z%(YS+P97Xca=OaGh8+$gQ}XM>z*`J&#fGJn3G^DLo+hq{pN^Qo9tB4oC;3BT}Dq zQaU4zNav-Gq(4blrL;6H%}R*a2typiMJmZU!jp%|M)FP4Kw8LC!iINw{0n$r! z@-s3(-X!mmQF5OAh5VhQ$mb+OkZhGp<#Kts%*oZVU)~&-o8=eeF8Q$hvV2tTmwze0 zEuWV!%QxkJ$+NQ6U+5?PNBocbTl~-Zqy9sF-9O;}mH)+>V>R#9jMa?SOw|0X=2{K( z*o{yroV3+j=zYj5d&j+3yv4p!-;^)oGkh#p#d$fxZRWOc+qhP47q^@H9@oz8=i zUvOu+E8JD?Cif*r^Y`#&`~$p)7x*CmD8H3&<-`1Qd^;cG5AX;1m-v_Ya_q*du@8%w;0<^)4&i3}4E`?Oi#u=^K7wDt$MA7HfKTCf@em%x zm+%#Q4d32@zr;4dDSSWvH ysklO{60sm=bS`{}J5}4SF8@$nsyJhA1)s delta 2223 zcmZuye@q+q75|IcW^WNvZ@B7|62fKsaztS^upLGr-N-3+BO~p;mtk(WUy-uwh={L1nOgn7a zUvk!)u&W|g5*27yXZvT5B81xT=QX88KSuVB&PeHSJF-Vg&5t9yysAyV zkcH5BbGi2+WdCXy>_H0<{5f0b5I8C_tOH;vF*AQ|s1hV>p!?Sk(#nmYb;RJsBYXpzPfbw^xhKV67O7l{J_fnznLTcP|Af=Swbu`2^EoU1f498Ca6t+8mq1@#97$|7Yu zAONc@T5Uha87P3F=0=~H$QMVinaG|Z^*y}~vVybl9g*hAw3=rKM5LKPLpl{1HOGj5 z)Va*fra23d$J1QNGN=DPS8i~IRz#YMngbK*0#WNIj8o|;Li;T0q^o_BYM)VhoM>Mb zjF^&Um7Wr$wqFJEER3F#bfu@eG}at7 zw-Q+=@=Pa@mk1l4fdLbFUOS&(7PxaqYSRTFJP~O>+4{ ztrygm%JAjBGPM!zbwzKXvX~uMQ(4Lav4su;>O;+4-Yo!s^$K_j$?#_@#AFM< z3?7bwuh!TO#=-<1Mt`kZ?{w7{g=2jyZ`E^@Y*AavT`eVv47Gg$z$^pwXQC^oJfk{3b9sFZytbrmT3y>99ra$^oZ8s; z;2xsV(PsT=qsK8=w?svoUJeet4;LOp_C#Kr?nt}Wz}4%)#<8xtojV?%&_-8BOy8Dk zO@+rz<2SUMh0|;8v#{@+@iNpiQ>O90(~}7U6%6x+cD-obj&T6egH0`AdbiB_$-BW; z{k6Nnc3rs}Y|(cmwB2j&H#H=*Lu*c&!Z)?X;ttcsnaN+=ZW7uE|82%JzWNWu?=7NJwvE<7PTBRntk2mv81>=zCS zzY&fJ!@_Cdtni8OnecZZAgL_`?k4wEx7YogJLEp#KIVSM{ha4z&oR$io_9Te@QixS zd%pC1?V0x=Cqhu@CRYFXBEN!UOmSeghxJ@8S>eIXr-cLt zj|t9U9c;yRb^}|@KFl_;+u0{sKl>7^vIFd!>^tm9_5=14HqL&@&aesA!QIPk@%cx#mT~Y0--cmhM`M{LvzreFU AF8}}l