From 314267c6e7eda80bb19a1e5d756ba231a320f271 Mon Sep 17 00:00:00 2001 From: "smeredith%netscape.com" Date: Mon, 28 Jan 2002 19:09:00 +0000 Subject: [PATCH] Added way to delete user-added prefs from the pref editor. git-svn-id: svn://10.0.0.236/trunk@113047 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/cck/docs/prefstree/PrefsTreeEx3.jpg | Bin 17516 -> 19137 bytes .../docs/prefstree/PrefsTreeFileFormat.htm | 126 ++++++++++++------ mozilla/cck/driver/WizardMachine.aps | Bin 50672 -> 50896 bytes mozilla/cck/driver/WizardMachine.rc | 9 ++ mozilla/cck/driver/prefeditview.cpp | 52 +++++++- mozilla/cck/driver/prefeditview.h | 1 + mozilla/cck/driver/resource.h | 3 +- mozilla/cck/prefs/prefselement.cpp | 7 +- mozilla/cck/prefs/prefselement.h | 3 + 9 files changed, 153 insertions(+), 48 deletions(-) diff --git a/mozilla/cck/docs/prefstree/PrefsTreeEx3.jpg b/mozilla/cck/docs/prefstree/PrefsTreeEx3.jpg index f54d9e94d52bb750aacec6a044a91dbf31395df7..a07c735bd4dc9357d2983bbf6e112e2409b3b0a2 100644 GIT binary patch delta 10040 zcmc(EcU)85vi42_(m{$sD1s206lp?$2vMYo2ns3+N|h#EDN$huP(ciJ)1-r-R25XZ z6j6Eyr3*@x-Xkr!Ip@6RUVYEK_j}JG&GXF6T5HzKnh%E6#=s(;!%Pcb zY;%CrKCT7NLOz>3Wsaj^mFZ}8JA1s;sINQU5OyZOrZhk~!?~+5y>}c*Wn+k#NrT7R zY9=3++G)7x$u$cD$iR%oS{ht8O6eir%kJX$T(fQltNT*1)Cy>6BN_n&@vL%(UvhQ3 zJ&fDt;t^9x#Ytlu{8^ZQS37P~EqWWUSz{5dWYd>$4m&2@fUH4?q(ZO*+>r1Ac`)BZ zqYd`TYhYbk8BBjW{=DpS)v&9kVbAnDzTg8@-D=YWf z1C{4?weGE9vemjamx@BiqSw3+Zh57s`*4KrD!Sc?eBDXK9W-S1rXv3M*O#`F@dU9q zqUuMR)o%8>SIivoyq{TF;&X9%KvM-&yDsO-QjGN@ww1)M?H&gQpCTklLz6?eQKudA zMMXQmj-!sa#OfgL?T)u=w;CK14Z^;nUhZgoR!?-|_Lyv9LmcXKC*Cf;ZG)&li$w4k z8`7vh8yLRwJme9>mMEJJZ9@b}_q=RB+s*lbc5inM@m$}8lXgk1=k6|BMo>G0EfrMN z>e6Ij!-S@odC)?itu=?MJZe)9Q^n}s8eTCmRAVio{>gVyo#_qw^7!&3!4##n`s6b0 zC8>j)&wCGt3oyb}CYG554j!y8sLjA=b-#s=GZHMveY>fxBl%#90FOmkwp z$hFT^MzJv@aMx!_<6B2JUN~q0-1)j=Fz7c_&g(ofIsXp#xS=U&D;f7K{7Y63Yx@(Y z)q=hhDKoRz8TtVytsBjD-)i`NMz4PWG`!;URpMi3X6Ym+by+5<2LuQN(o*_~xem-! zGWT#n(r8s>tW-0W^-K_E;%;mA*ly(uL>TR`7`*kG>yUc4+Q_tvfdq00eC4<}T0+FN z?@p&0e92##ey^}zapwzr155mYENQdM4?!(!cB&q#7G4}MjN3^5XLr-&j)_b=DTu37 zbc)#DLM*Fw-ONdMO%S`N^j0^RaJ6vceTofEykfE*)4H(b-bXNkkGz)$ZDu!XZ9VC~ z0aop;jM(L~dUrp(^;I>#tkiYwgG3!;pU5cD6?G4D51MkRf5(#@eougLy;cEl7nhBb zXO(KQq&jgmre^TE?}W&FY(HleDJkHFhK?L+pR!HDnL^pukt&v0B)_awZ)&9nuBL_q zmJY#=9)uitj~VYPmke$ae4s@o_p(u_vnLzKz|)KU{RM+G4!qYAAJ?^Z$)2TE_s`(6 zDhbx4a^Sep#fn8Na{$|am%AZYc)poVBL;N~EhMyz@>2k2p)MZ2S9?4yFbE^g0f}J_ zL593YsGn5{;^JY1_<5-RACK^U!{+7`Q(5{9V-!@wb01KG-1%dmm;4uh^{B({LIqO1 z^c3vVKd0d2ieI$BZ>@Ey%tc++8N*bNILl#OKofF zSoB)))krPlezWHjo=Jt~5!G!m0HgS{=yoS{7tXP}fo=GmO^kQFfBjWo>>?V|V^#es z8Rg?L7Ac7I(uL6;H^AId0Gi&YqMh{{28ALORnxSo8ab{PueHmb_GFMU4$X?48aOL90+i?hH=W)|!BCdmG^1_$rbnkj_*fUL0tQt}Udt%t;$5stmC;SeDZFq(y?1HM zrIuBZ(y%W{g~M5jchlViQzdUk_C4e6D(R74TyHt7f?}dB5)_CGlx5<%+W@5R_4C>x zHz(khPju$QtRivC`aEB?b)y5m$}mq&mKwO!eSY}5;<0qf{5|PbgV;E^Q-C;^x(XqQ ztAlG=d7LYa;b8gQ*glyB6Drn>@MzvBPWu|=+Il~yX&MI_Ae03P6LyAFglm6!j>6!O zBX10N;-*(|8+ZI56AOS zRvr&!}@f zj04XQ6z=MB#e6^5C}Bhfp0iQ1o=75VyihrJY)T39q|`He!zl1heA1HB-gt>c2eD-5 z!p*#^Z<@k*;%lSxsJt%u$V=XM6MbaiOQS%P&#WvM#aQU+ixD)n_MUugw7@A>eu}m~ z^i6y^Pth*$LA#H_Id-X&+Y-Cr<`4 z+Zd*fcb|GumVP%p8XstPUgmwu@lcH$j0M@54jwCtbMN{uNaCCC!6NHVFg0S7N^207 zAD`QT#k!fLtOsws%eR=8)f&?BBeuR@pm9eI`qWnEUZr&{$bbxY7?1K2%*B*s#Qo!F z3Kd}3S?<6qn4;4Hwy_G3pO6XczS-)9!dUc{|11qn!kbJ?k0V=)Li*5rVc@G6_bI&x zP3KZ*3;|^nqZM9oM{j8Gu}K5kfb$I>lJ${Kg@;OAK?O$}Go<_NXBq5^>>;gw8R zI4>b|0&F9>FQzC+Cp|C{Gn?>F%9#adlzFZ2LftMdsq-RJAbR8qGI4^QBQ(DLxOWmb zjR})M=Xf%_xol~4Tgtg#x7^KWDF+ZSVI3)*TixLXGNC5kIJsk850qUZug6)O*uToL zScfQ)dgC@Q7gqT(*j3n>vAyJw!`c95_bBVu2k&LY<)mq@anTS!kEiTe?~{ivt)H5O zB?Rd2j!~JQ{KFVZx7>-i8OQc?uPzM8K$XTWfx?UI`hDw%KS^nJQ&tZJ&gl{D)7Txa zonfk0GOwt$ETQKOB`})=0P51{!?`1$znSZboa7pIkz{uPZ%ynLM9KHiM5bN=K9uxI z??#FaTHiZ+QP(a?GnjMra7~jI?_`+l&_@~0GK9v6!Ev|C}3wSbp%=8R~X-!fO@0uMBz{yX*4~k z`zW8}J}Gurjg%lNP|zN>PC1b3oD+_^V4iZu#md7?g~hTj+~ZCH;0vAO;en3xJ^EG3 zLxVhdr3D8VKajlo(}nC%V<{nYGc1!>23L2!X3pRwL;&)1QR+!%+Iif(rpo0gsl*}b zenEmwlrPPcFJ3e)4Xzxe9m87GrP#nVxJN^{xpi^JkP2If!@Gplu zq^`X)*dYTHM<3AM6&keLU4}?xpot88FogZ|HGsI2=_k>PVpP~dmZ;@fK#yL zDN!?u)9iWTgp=omy1h4q`UcZd^?Jqwv`vJEb9LJ4#?jl|r7ep5tMr9xFU8fbBt$@w zJn~>JcaofeRPe(ILP4#FPK_{4>^LSs)xU8Gd*Hd#qD6e7u4t5PNs9g?o<)(>$c^h- zAix?X-zSncIMhx&Sdm#4%TdM>8)mW@$@_S+zgTT%{%u)P8bf(Zeo=eN{^o1-Qcuz9 zf&pi>pEY+grhXk*GIV6|I;N9wR9Uf!`$#_Mq0)H&!4!(`QLW_~+|O(}5>LM=vO0P; zU?8J>jbSk6T@uRT6pv`h;o57J5W%Lm{QSs6dEBuUw!G=1F@pZmll62~wCzi!@NwmF z4p_yxt6)R^=%UhU8ZGtP4;!(`@GA|+E4{FduXMU3IQ0W>9Es8~mtk!frRiby&+|?{f*s4J zaZJih{Ov>d1rd4tC8U6(A&j!4QC`r%5jLokl~&4f?zV5$GnY?&x@9~l){ke$16Zst z5Bi0>K5>w%1BU1CHHq_T;5Wj>TXs#2{Z>A@*@Q_{J8Hom_;ds&FvdZG( z5UOt1)2IA73IovyUeab3sk4d?bu{>Wfq#&5be*g%h3&oCjyOBRO(16@qqs^?^rc#rspcqWfb*1xcg zYT=Fv0acEjEED*EzvMnx=WX^wST8GUA8BvGSEZRz|zT+?{it!zq- zb!a~VuD(U@SiP}Yy)B}Wl0|^>rQ|?ZNB^u*K{RKSKF%$JMRC%mgf=&wfi1`}z}te^ zfND>3>eGVtTRmO5sHoi9$8v-kOPvv@*8|48F*XK^yf&Hf^Bn1FRL z3*QQ1?UIYjZjeqlQZ%O4lK0MuL0KqPz?*Na4bWtMcA)OXz}Ezmv%{^qiaDSKEtQ?O zmQj+0U6RF@1pS?B4#lerxTJvmiz)lE=%fzU1-!Sp4c9SbL91H3B6+A5nr#=b3q%R%w~!P_yzsg)&bIgec4o9jd{^$g1A#S-DlUs6kZ?B=)lW;AxW22 ziY<5Suxc4_Yo`u9w+7w`oF!QpoF0QZ8!cmGp zGQcw7t0m&f|M_NdGprA3<=)4?b9BPjNA1Pbp`J#b24d1e5#F=jB+0XZ)Uw5YZQsh? zw5n4YpL?t*pF0^S0!i9^|6u1|3F6v^#AwW}KWs1q=c^+(#(uxr->enwZB;_ z_%|o~`D%Z&R`B1B*zY0R)461NZpU+o+DNL#IrjvDcy6Va45ZYh^@7hY=Fi(d_&^2@ zErWfOgKwwib)Qty3DLcctX|vR>bqchb)&HXF@sWe7gEY@D?Hynax^7TQ=7lk+>6^w zE!#~MY8;8Ia2csi5mVGy(3k6wlX&SJszW~y01#oFp+KRvYx~PW=j--8u zuK)5ffJKNOe5Y!3Hf5nObfY6FF`zA&NR4hDcae>uEQmQQm5R;9#cI1)`*fb0^e+cL zU;!v}Ean=F*$gY zjkt={-;BmsD^r4HO4?G3-WngiXz?jdBKgxQ!A@DDUOsh?x_Sxvrt#lt;9Xff_=7O` zZ%P08!r<>>{paxjvwr1}KTq{<(hUA*X#fB4Q23WA_BS4OH@+CQTz7j;d;PI-U@t3& zHJ`!R_=Oo2rt-C{vd&^C9DM*0cP?p!Xqn;Ysrze(iji=(sxS84nAch&`;^7 z2y@5?k%5S(d1Sy`f(&F>=ggYae}JCvmxJax=)ntD&vTY`FMfIGt&3s~ktalD(gU~p z+&hF@^fDcpr7cWQ`pbAjmvuI63JVtiZDSLpeI06UsA>X2c7J(XmLo*B=*A4-90lXqWK6 zYaxIVu&$vbn-vI8%?T%N4yUfuQL2!tbV?Bs4LVc02-w7>omqa8vSy8X@dTwl(I@V0 zPzn^@Cp#_%+f<|As393xX_kiVm5A=aU8|R}!S9p&LmptK$PQ`yZ?(%gHT|8Vv1Hx!doq+r50Qa~f91db$8f(k4*YAa`!(FZpi$=6U+&`n zjRg27$C>)V0Ix%Ymtc<2Q!Kpbt^uVYgh<<6y-YcN-^qX{81eL<9h1MeO#o>02qPqb z5dkSpl*@-GP09#LOVigL>#Rp?*vZ?yFZa*u%^xp1TVt1X6$*;cy%oH60AoVn!U`Ga zcuOP!ZDinmCv1~~H2s;<^8{?kz*qa7yWrXqWp}~LgDVOqh@XVJ{wWLoBK(qOXq*hB z-dWm(B~oVolb@w6SV|hmfEsc1J3@&JuxtM$n^B|d;K{U5G;CV+JrOOeGvnri**I_v z;8@|=&(aM077NF-h`%)=?eLFlM}N+tm>Is3hG=#*rc8kb?DwuorCe~-deCdJT`^f+|fO)!Murm*a9x}T9Y;RM&9xvo={Mb^m%39naZQ9>IMJ*#1@@HU& zk}zVR-W7@yg~`C)9f~K@5;_z2ZjymYFd2{w0UoT5&wrZ2R`eHTJa=P|r$!!spwqFD z>oFVZRJ2zlHts{v3~7m`T`Exx=9AIonpa*2DqJPb+#eL;hF14|3E7Su`qszQ&Ww%4 z(}&EFj#K>WUL6D2`IwWiGGMhRiQou+N`t460S|Q|n3J~e9F`;h`J!~JcxaK->t;T_ z>n(tm)}(-S_(_~vQg04uhq~r?wWcdTYehgvz=km0Y4;7we51v9)!Xb{6}X*Wx;Jf5 zG1q%*Bm4OVmsCc%1j@s}mHl*Q5YNkfI6iF`-x>G_2TZeiLM3%$esp_(UN2W(+|H3JO>(op2Lv9$^AdfymrM`*{|4KCYp$uq`qGD=|zL~>=S!0vcZnw)MWm_?V#Pgrmarc tpZgE^*Qx$Zn!&%!vfl)s4E|M){cZ5tENbcA?#M8QkNC_wbDS|POOy0~J=Q{Vze7>1`@B8C?-`V@@@Aq5lclKI)uf3a7VT&=a zq#~GdN%1#ch*2^F6=Er@z~kwMyAEhz&)#)liQ$MmR~@N&&+B#j-GONY(>Y6yjzavkcB&J{hgnX%2SjqiezOz375vgFD4*nobm{1t{UL-ZN3-$KqSApGkHi% z=kf*tZi(5=e(M)gnOh7;jDxgg+fHBho9K(w5(+d6Kqbmay4>@^DfLYvXAFRxMl#>P zE%yvKfIPgSSJC1{A88&R(02$5rdB^nYaexD)8cfxStu@OOhp{iDyx2+o?o zzc6Ewcpo7>sN@WnDs%VQ3>Seyd4bqehS)BmpP(jiMtsydhh;ueMFS%|Dn|qA0&9-M zmXys6N4u`BZ64wv7Ox2Lyjmqtj7Fbzsz+LPkJ-*?7D#TihH}{ zv>Df&nRZt3-ayt?qb#}CvUQn||CT>xb$rVHg$wUIM84TkuR9E*OsKtg?*06Q1}@y< zD5LnKdlAFRNKo}~HbuK3f6kjKI`K(&v%6pPv6rq^Ov(!qS1{G<>G`g7lrcx>;kNOQ z!wX5Ai<7r8Ue+@Bj!2VB+L^qSEeO}9d3XQ@aWbr8HhX|M*tsRfId#gPG9k73R8B2E z<4_RftD_`FSQed9KKQ1l7K^cHmt5@<7blS~rz6#Mbn+NfDLyHg;lqtxj+ILjn^liU z88qP5O#`;1#HrjwmEg7T@$KxIt%hel8ClXQiSM0teNG>O$}rsbOvSE0k}UWn^x*82 zGY5)&_KvP&=Cap9Z!w}^CT@LC%(>cV?RLmX?AL;q@uebFud1idY!l(=Ws4o;XM;qC zMamiBn>9pX^@QfI4ew^N5OVY+Yutj2d)9EaewV%dRsId%pecqgDSo^lTm{*%z{@ymh0|Kte(@NICt2H<4FA{b2KRm>Mr$}$R;czdV)25?ni3nPZcbU6!ygyB|LXHvWrpX zrsOEX7rJ^kpjUgPN0y=Fh6VqIb5Cu;vo3_=c!wkcXX^a|ps#Pcb*+Q9srBl+7StQv zZ0&PXrlvWdm^!Z}Z=j7d3wV!}g)?s)iKyTziP)WC*F6W0)E9+A^*qqhx67`Xav%3u zZ@yD1>fg9xAX%a{;k~E`NUJpP*6-8Sv8I8tHK@EODC|M8%z^BNV8$x5s8HlBZ*ZHL zeO_V2R3ANps;+^Vk000dH~^1GV+#@sY4!CpX6TW>uT#BN^x!H9R63_=pFzoJ4V55< z-_0%z;LTrChehg^W(Bi{2s{#z7^Z6x&934!ATS2=>u7ojyzxVFhLF&FsU#{6A-Jpa zg?OSqJ-*|BEP>%JMYMS2+2DqI_-h)_xwLaz>0PmzEW-s^a1YBS3(LD9_*~Y)M1xTT zp8~1ez6f|NUcCv^PcDAeb%-0hfky{yeJ@ zmMJ}d8&x*eFCSnJ@qQwF_}e1l_*c7l@k`ol_#|U#{G=QlZ_a-Ze@j>f|5TU@Keks1 zKd8us|E#A_7A|xK#-&`EoAydCFO?PbnRyDcvusk7ABHE0+5F}afFbddd&MAC?p!%z z-FsNkxemH7Na{D$kW#4Ehz6b|05Q*;HM)n(_l+`Tw$>rad>`zO9tHjNls_;+e~Fhr zQ2xLO{aM2P&y;^>WHj05--3redLUb9V3ifUT*$IBKm02VT!fMyS-?)DjT98_EZFqb zXA+RF5p~;VJ9A*o1;fY|(m^eU1)e@xUeZ#fm?7n`Lhws>w9vwFsSXt{5>3Q}t5L?$ z4k;KtF6&;=oj}>ktVh_|ZzE>rC~kgtv+@pvSN&SNRkq%s6^nPQx33InjVf7CRd<8bl6_Ce^h1E!zuxCsR%ITH9;e=9?EaY$rj%W?5 z0k_=W9O@K&aQX_5;n(C@@#=WSni_AO(WjgDy!OwT=GIBDm+{O#e3cB?47qyl%P_07 zYW4)T$}+qx%8{ygrDX$Sa=$+dM@5Y&a{Bt^WNJ2#9Bz`-#|xvn@iM4p`jdi}=2QM{ zghTWcVga)}b*lM7#F871R|fXLmyl!T4(sdYYtgeqnK*mn;#tr!4}z!9U3!P zFmjd!C@Qd%XRw&U>TtrEw^+~#ET8tsw>BqZC6f*cI#s1;I2*+w%j%%V%N&?a>9Hh6X9;ZQ9gP`=XW4o6 zLJsB34y9=oc6e{|n_at{`HeJ?-o&sk`}H0{`KL zjN!Pa79F!<*BGXZG$ks9ithSLI4U{J$?b8+Uc88#N^>0p$d4QT7^a+?41O4)lTu^p zj_%y2$g@cJZW5bWu&C1Lj8C?izp?n+hxBBCXA%)pWfrS)^(h?Tt-d|n^Gg>`s$39K zzkP!SzP!DZliQuUpj$Q%4+sO_|uhi!as)xn-WpTJI9h(@npn={7A{Ew41FavgA%AT14Jhz0EE!ZR zq(+Z-d-#tUiOBAa>S6YapLE4aQ%9~-!4xZj1H|6^9bFZ7O2Lg$+_H*7a;me%H-$ceyf-4YGZxo94u>JM==dIMPC+*k#guT43b6MngS7vo#Wh{G|=ah3oc8sVQ zFAvU0cls?>lKQ$rxxiyTY3Rk{lnfo1uUaJJugFTIFZrsJFSRAnwsST(wIsu9QEp(m zu_!EpX{8%DJU;nuE8+kRd>S#|X6oCavE}R|l3vW5DIrcSQ_L_%omC9Qy~gR75JldK zN%wmePT8%;TB)`4G;wYhiau5{y1DYR__KC*lLTCg3?;cqlup_}#1fBV|ikv#${;c4E|ITWe! zS|zh376;<&7sX=Kh8%Z-=cyz1ojAN4q}^Cc6dM#U2|a3<}n%`yb)hnWp-F8AoM zuVuehXUvAF&7@H}_n+W4BluWcs>DDR{#*zVtnxy=_s@gt3W)=&uo8J)^AVr(BwP zPeF@~8SDQ}8u3irKA`fs^*e;G$~z?Gz+9N7@P{2$TAorme(8)lel$=DQQi9Se}iZK zJ%mpT{}}1%%`dH|IKH$|yU00a=4Zq=V*Wb>9U=MmL^^cE#D9-q_}^%tpEvbSu@s_f z@{^|iDV9QihNyqH^v0p1lLJzXb;o2&$K>U*h+@ZrKf--p^d)z@+p3K9c{;8v!|~P_ zA$soQfncT-G!>OI{LE*oE=0_AV&f7Kv8`fh^1$$0a$O5kSwZ}1@P>f^_<9eo;#yXH z4Gn=<;D(Sv!_5HjnWeJ5Bk31D?RZ>Wn7fB*YcNsWBJ7@GyKuXfn%Wz~adOYGfSl)8 z?*5~pdrC%6k*dh-^3tbLkDnIS08t2Xn6D8eXungZoDxikJX5m!cq%^f1>#I^S8^84 z&{($)dtgw(gNjL~ZzxDI)JS*6)aZ|$eRCf|Ol}9IxkTBRE9ssaX=&{AJvYPi;wt{- z-cb2aJLinTC8_eGlleBb^7~%+R7*{t)yk83Q&+HfhM>2Pdy?Hp&V2tahF|)MKELX% zHY>|_=zPc<@21(tn6jcef3@D!XC^(=Zj+%Y^_K3cZOSuyxf#*1NxyFN<*B=wPZlX| z9W$$hr#HM|>sq>cMvU^a|9yCRz>Js2+2yV2lz(C>fe;b)U$0#!u`Ohsd3~ z3WkyeqnNUonLf*cF^CvX1Dmrn@I0Z78ceSs!X39{pE6I=fVLa`kl+B7*Biao3Q_21 zy;BBQbtHKjy-kKb-={B-cT{L#f}VKT_Q9&@6$pZU5ZOfoQNoE^D>>Ay#;=x6JO2yv z??lkwm~Mdo!ZiF1lO5x4QNMHDYx)j({OE~unZ^w`tC2?$5Pb|AQy&idjD!o;BzY+?{F-+61P>IYqwO3O| zpEJv^o2ABYJKN7MRPqsF#~8CT`x#wZU$#Zgo+)Qhjp3yW!WxUD+~_kR$>sj!D6hct zcWq#zhT&ELl;{2?A{?*|abe`BTH{(Lg->Tm^J8{3JmF#6_vHwM1ZUA(pW zj9v<{(n}#I4qfR55mPs*z?^=4W;o(!UymU#yUuOaGd@T(S9D296uhIa{awD_&+m11MU=7hf@&n4zciRk0(DEX3%RjMv9O~Oo zq*9w{piTBEe8jtPULb%5ASZeSelzURCu&3xdUJz|s%e1L?Y~F^n7SN@LV?qO$OCm- zIo3liO^hkOK802~_c4}JhQ6??*2X$mcEC9N4ctdT20NRMFq_Em=m#={t+ zqH1?eovml+$6IH}A)dO-r8ya`MGrzhrK=Qjfv1ryw$D zrf%hYQ+jd|!m@>K)7=@TKEfglfJOgYeN7yDt~&=00oo^FgE2JfP7&@WeA(E4sN#0s z0m)WVCYF^$B`9vi2X5K9BL0SOZ41Us>vD?+oxU$n*PNf8i*H2Ah$m)>a^1}(Nipvh~c=0m8h?x9Ic60Yvm{^jK_91M;rMiscg&T_dmQ@pDw`Cuc8+q z;$rLRQ_sP#ono%JK8?dD*xPSs`b&mSCnQgAJLbVD4T@R;qu?lJhXH-Ah?POr6P;L< zdU`b}E{LAM)901pK@SU1tWa+_os$FW~LpvflCKNg!6Pq9v%bokQKP1?zMGUrm)!g$WE-AiuE~(R2IsmODl5 zKHXLp8u%mFRXfG* zO~@M5djh?D|CspN96iEIp$Wr8T_5r%neBCV@CSB5eStructure of the Pref Editor XML File for the PrefsTree Widget -
Removed elements INSTALLATIONFILE and PREFFILE. Changed processPrefsTree() number of params.    02 Jan 2002
+
Added useradded attribute    28 Jan 2002
+Added the MANAGE element.    24 Jan 2002
+Removed elements INSTALLATIONFILE and PREFFILE. Changed processPrefsTree() number of params.    02 Jan 2002
Removed choose attribute.    13 Dec 2001
Original version.    11 Dec 2001
Steve Meredith
@@ -16,22 +18,45 @@ The name of the XML file is specified in the .ini section for the PrefsTree Widget. The default file must be located in the same directory as the WIZARDMACHINE.EXE . When used, a copy of the file is saved in the working config directory. This copy contains the changes made by the CCK/Factory user, and is used -by the install builder to write preferences in the install image. A SCRIPT.IB -entry must be made in order for it process the .XML file: processPrefsTree(,browser.xpi,bin/netscp6.cfg) -. Note that spaces are not allowed between the parameters. For details on +by the install builder to write preferences in the install image. A SCRIPT.IB +entry must be made in order for it process the .XML file: processPrefsTree(,browser.xpi,bin/netscp6.cfg). Note that spaces are not allowed between the parameters. For details on adding a PrefsTree control to wizard pages, see the document PrefsTree.htm +

A Note on Prefs

The XML described herein contains elements for prefs and elements to control how they are +grouped in a UI. It was specifically designed for use in this Pref Editor +tree control, but a complete representation of prefs in XML could be useful +in other ways. But for this use, the only prefs which should be included +in this file are prefs which can be set in advance and saved to a .cfg or .jsc file. +Note that this excludes some prefs which might be found in a profile prefs.js +, such as those prefs which define specific mail and news accounts, servers, +and identities. These pref names are generated on the fly by the client. +If this XML is to be expanded for use in other ways, for example as described +in Bugzilla bug 17199 +, new tags could be added to each pref to indicate whether or not it could +be set in advance and stored in a .cfg file. The Pref Editor would have to +be modified to respect this new information and only present the appropriate +prefs for editting. Otherwise, any new elements and attributes are ignored +as long as the basic structure of the file remains valid (<PREF>s are grouped within <PREFSGROUP>s) and the required attributes and subelements exist.
+
+The following prefs should not be placed into this XML file for use in the +prefs editor because they are handled outside the prefs editor, and used +to point to the file created by the install builder and prefs editor.
+
    +
  • autoadmin.global_config_url
  • +
  • autoadmin.append_emailaddr
  • +
  • autoadmin.offline_failover
  • +

Who This Document is For

+

You will need to understand the structure of the XML file if you want to -add or remove prefs to the Pref Editor or change how they are grouped.
+add or remove prefs to the Pref Editor or change how they are grouped.

Conventions

For XML item tags, we use ALL CAPS. For attribute names, we use lower case. “true” and “false” are also written in lower case. Generally, for PREF items, the attributes are those things about the pref which are fixed, and use elements for thing the CCK/Factory app will change. The exception is for <CHOICES>, which are difficult to represent as attributes, so these are elements.
-

General Structure

-

Example 1

+

General Structure

Example 1

The simplest file that may exist consists of one group containing one pref.

<?xml version="1.0"?>
@@ -106,19 +131,19 @@ Each <PREFSGROUP> element will make a new level of hierarchy in t - - - - - - @@ -130,36 +155,36 @@ the user can edit.These elements must be contained in some <PREFSGROUP>
Attribute
+
Attribute
Example
+
Example
Description
+
Description
uiname
+
uiname
uiname="Netscape Preferences"
+
uiname="Netscape Preferences"
This is the name of the group as it appears in the tree control.
+
This is the name of the group as it appears in the tree control.
- - - - - - - - - + - - - - - - - - - + + + + +
Attribute
+
Attribute
Example
+
Example
Description
+
Description
uiname
+
uiname
uiname="Open Browser on Startup"
+
uiname="Open Browser on Startup"
This is the name of the pref as is appears in the + This is the name of the pref as is appears in the tree control. It doesn't have to be the name of the pref--it should be something easy for the user to understand.
prefname
+
prefname
prefname="general.startup.browser"This is the real name of the pref as it is used by the Netscape client products.
+
prefname="general.startup.browser"This is the real name of the pref as it is used by the Netscape client products.
type
+
type
type="bool"
+
type="bool"
Must be one of int, bool, or string. This determines how the pref will be edited in the Pref Editor and how it is written to the prefs file in the install image.
+
Must be one of int, bool, or string. This determines how the pref will be edited in the Pref Editor and how it is written to the prefs file in the install image.

bool Pref Editor user allowed to select “true” or “false” from a drop-down. No quotes are used when writing the pref in the pref file. @@ -172,23 +197,36 @@ For example, pref("general.startup.browser", true);
lockable
+
lockable
lockable="true"
+
lockable="true"
Determines whether or not the Pref Editor user can change the lock state the pref.
+
Determines whether or not the Pref Editor user can change the lock state the pref.
description
+
description
description="When the application starts, open a browser window."
+
description="When the application starts, open a browser window."
This is some text which further describes the pref + This is some text which further describes the pref to the Pref Editor user. It appears when the user selected the pref for editing. -Any text which helps the user under the pref should go here.
+Any text which helps the user under the pref should go here. + There is space in the editor for maybe 125 characters or so. Of course, +you can edit the dialog resource to hold more if this becomes a limitation.
+
useradded
+
useradded="true"
+
This pref is added by the Pref Editor for all new +prefs added by the user via the UI. It is normally not present, and is assumed +to be false if missing. User added prefs are deletable via the Pref Editor +UI.

<CHOICES>

@@ -207,27 +245,27 @@ This element appears in <CHOICES> elements to describe one item o - - - - - - - - - @@ -236,5 +274,9 @@ This element appears in <CHOICES> elements to describe one item o of type. This gets modified when the user edits the pref. Note that the modified file is saved to the working config directory.

<LOCKED>

One and only one must appear in a <PREF> element. This is true or false, depending on whether the pref is locked or not. If locked, prefs are written as lockPref() instead of pref(). See also <PREF lockable="true">.
-
+

<MANAGE>

+This pref is added by the pref editor, and is normally absent in a prefs +XML file until it has been processed by the prefs editor. If the <MANAGE> + tag is present, and its value is true, then this pref will be written to +the output prefs file when the XML is processed by the install builder app.
\ No newline at end of file diff --git a/mozilla/cck/driver/WizardMachine.aps b/mozilla/cck/driver/WizardMachine.aps index 550004acdb6a1ae1a311ac2126d64ebdd20ec039..65390e3cfac6508c41d487533af48d110a1cdc22 100644 GIT binary patch delta 423 zcmX|*y-Px26vof{+6`(br3kqV*Cl@3;vMi>~}@ zxYi>it~Tva3#qiIZ!Ro`^iVLi5{?EJXnM-$n<0|aYzi7|4g_?)-SZK<|BHHXsqOno z3KA!AP0Z#U@zjR2OB@%TkSp|KyLixN&?@awl6EOT363NsP%bR@cBe;4=PJe8rzAvi zE&o%j3I6x7G$tDvTxDFH14QIC@R@Nbh9F8~{b5?Tk$up_H%#UPo|!4snGM*=nplE| zd5%ac-(mWZWjbM&HEF%X+l8vc`0gF*Y>_hX+)TF*kL-6Wq!b{XhR)2qTgSI y1>PfaTe~`13FCz|fjZARV5>Ht@KopJ*)6tiRmCoeDmZ2P2iH|ij+8Kdul@nvh>3gv delta 379 zcmYk#ze_?<6bJBguL{->3L^3{ZojB0$dn|gAbbigk7qbIWn<7J)L&3T5s~txu`L{; zGI5H)%%?6zsACv7M?*HX+0h}om-FFr&b{~BJhgqD*s{8cFwSF`SD%#3P0AY3CvkuvBRgJ@F8O<(M68+pvWfC zVms)uA-HQw93jAlkYFc~VO_}8)YMO&sNZ*R9n)Yfx<>571C!#qM2qkG(PO)C*A-_5 z*jXf47c%S%a&;v?3-~B#jy6B?pv7$`dTa;oMr8W%VGtv^4u-$~k1+(%bs1M>4cUgB Nv(6hz>J^MWX}{{tf4l$y diff --git a/mozilla/cck/driver/WizardMachine.rc b/mozilla/cck/driver/WizardMachine.rc index 09caa77a4ba..48a24e5a06d 100644 --- a/mozilla/cck/driver/WizardMachine.rc +++ b/mozilla/cck/driver/WizardMachine.rc @@ -516,6 +516,15 @@ BEGIN MENUITEM "&Find Pref\tCtrl+F", ID_FINDPREF MENUITEM "Find &Next Pref\tF3", ID_FINDNEXTPREF END + POPUP "UserAddedItemSubMenu" + BEGIN + MENUITEM "&Edit Pref", ID_EDITPREFITEM + MENUITEM "&Add Pref", ID_ADDPREF + MENUITEM "&Delete Pref", ID_DELPREF + MENUITEM SEPARATOR + MENUITEM "&Find Pref\tCtrl+F", ID_FINDPREF + MENUITEM "Find &Next\tF3", ID_FINDNEXTPREF + END END diff --git a/mozilla/cck/driver/prefeditview.cpp b/mozilla/cck/driver/prefeditview.cpp index 00d21bb6b89..86e4f9917b6 100644 --- a/mozilla/cck/driver/prefeditview.cpp +++ b/mozilla/cck/driver/prefeditview.cpp @@ -27,6 +27,10 @@ const int bm_lockedPad = 2; const int bm_unlockedPad = 3; const int bm_unlockedPadGray = 4; +// submenus +const int menu_pref = 0; +const int menu_group = 1; +const int menu_userAddedPref = 2; ///////////////////////////////////////////////////////////////////////////// // CPrefEditView @@ -42,6 +46,7 @@ BEGIN_MESSAGE_MAP(CPrefEditView, CTreeView) ON_COMMAND(ID_FINDPREF, OnFindPref) ON_COMMAND(ID_FINDNEXTPREF, OnFindNextPref) ON_COMMAND(ID_ADDPREF, OnAddPref) + ON_COMMAND(ID_DELPREF, OnDelPref) ON_WM_KEYDOWN() //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -610,8 +615,10 @@ void CPrefEditView::OnFindNextPref() // User added prefs go into the root group. HTREEITEM CPrefEditView::AddPref(CString& rstrPrefName, CString& rstrPrefDesc, CString& rstrPrefType) { - // Modify it. + // Create it. CPrefElement* newPref = new CPrefElement(rstrPrefName, rstrPrefDesc, rstrPrefType); + + newPref->SetUserAdded(TRUE); // Add it to the tree. CTreeCtrl &treeCtrl = GetTreeCtrl(); @@ -664,6 +671,28 @@ void CPrefEditView::OnAddPref() } +// Delete the user-added pref. +void CPrefEditView::OnDelPref() +{ + CTreeCtrl &treeCtrl = GetTreeCtrl(); + HTREEITEM hTreeCtrlItem = treeCtrl.GetSelectedItem(); + + // Can't edit a pref group--only a pref (leaf). + if (treeCtrl.ItemHasChildren(hTreeCtrlItem)) + return; + + // If user added-pref, delete the CPrefElement that was created with new. + CPrefElement* pe = (CPrefElement*)treeCtrl.GetItemData(hTreeCtrlItem); + ASSERT(pe); // There must be a CPrefElement object for each pref in the tree. + if ((pe == NULL) || !pe->IsUserAdded()) + return; + + delete pe; + + // Remove item from the tree. + treeCtrl.DeleteItem(hTreeCtrlItem); +} + // Open the edit dialog box for the selected pref item. A pref should be selected, // not a group. void CPrefEditView::EditSelectedPrefsItem() @@ -759,9 +788,21 @@ void CPrefEditView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult) int submenu; if (!treeCtrl.ItemHasChildren(hTreeCtrlItem)) // no children == leaf node == pref - submenu = 0; + { + CPrefElement* pe = (CPrefElement*)treeCtrl.GetItemData(hTreeCtrlItem); + ASSERT(pe); // there must be a CPrefElement object for each leaf node. + if (!pe) + return; + + if (pe->IsUserAdded()) + submenu = menu_userAddedPref; + else + submenu = menu_pref; + } else - submenu = 1; + { + submenu = menu_group; + } ShowPopupMenu(pt, submenu); } @@ -782,6 +823,11 @@ void CPrefEditView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) OnFindPref(); } + else if (nChar == VK_DELETE) + { + OnDelPref(); + } + else { CTreeView::OnKeyDown(nChar, nRepCnt, nFlags); diff --git a/mozilla/cck/driver/prefeditview.h b/mozilla/cck/driver/prefeditview.h index 73b1a3c4982..9fc47f04dac 100644 --- a/mozilla/cck/driver/prefeditview.h +++ b/mozilla/cck/driver/prefeditview.h @@ -68,6 +68,7 @@ protected: afx_msg void OnFindPref(); afx_msg void OnFindNextPref(); afx_msg void OnAddPref(); + afx_msg void OnDelPref(); afx_msg void OnRclick(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); diff --git a/mozilla/cck/driver/resource.h b/mozilla/cck/driver/resource.h index 4fdf10c91a5..6e015e250d3 100644 --- a/mozilla/cck/driver/resource.h +++ b/mozilla/cck/driver/resource.h @@ -58,13 +58,14 @@ #define ID_FINDPREF 32774 #define ID_FINDNEXTPREF 32776 #define ID_ADDPREF 32777 +#define ID_DELPREF 32778 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 148 -#define _APS_NEXT_COMMAND_VALUE 32778 +#define _APS_NEXT_COMMAND_VALUE 32779 #define _APS_NEXT_CONTROL_VALUE 1020 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/mozilla/cck/prefs/prefselement.cpp b/mozilla/cck/prefs/prefselement.cpp index de680857ded..f09a9f69451 100644 --- a/mozilla/cck/prefs/prefselement.cpp +++ b/mozilla/cck/prefs/prefselement.cpp @@ -49,6 +49,7 @@ void CPrefElement::ReInit() m_bLocked = FALSE; m_bLockable = TRUE; m_bManage = FALSE; + m_bUserAdded = FALSE; m_iChoices = 0; } @@ -143,6 +144,8 @@ void CPrefElement::startElement(const char* name, const char** atts) m_bLockable = (stricmp(attrVal, "true") == 0); else if (stricmp(attrName, "description") == 0) m_strDescription = attrVal; + else if (stricmp(attrName, "useradded") == 0) + m_bUserAdded = (stricmp(attrVal, "true") == 0); } } @@ -316,9 +319,9 @@ CString CPrefElement::XML(int iIndentSize, int iIndentLevel) int iIndentSpaces = iIndentSize * iIndentLevel; CString strRet; - strRet.Format("%*s\n", + strRet.Format("%*s\n", iIndentSpaces, " ", GetUIName(), GetPrefName(), GetPrefType(), - IsLockable()?"true":"false", GetPrefDescription()); + IsLockable()?"true":"false", GetPrefDescription(), IsUserAdded()?"true":"false"); CString strTmp; if (IsChoose()) diff --git a/mozilla/cck/prefs/prefselement.h b/mozilla/cck/prefs/prefselement.h index 479729b3546..524ebf01611 100644 --- a/mozilla/cck/prefs/prefselement.h +++ b/mozilla/cck/prefs/prefselement.h @@ -26,6 +26,8 @@ public: void SetLocked(BOOL bLocked) { m_bLocked = bLocked; }; BOOL IsManage() { return m_bManage; }; void SetManage(BOOL bManage) { m_bManage = bManage; }; + BOOL IsUserAdded() { return m_bUserAdded; }; + void SetUserAdded(BOOL bUserAdded) { m_bUserAdded = bUserAdded; }; CString GetUIName() { return m_strUIName; }; CString GetPrefValue() { return m_strPrefValue; }; void SetPrefValue(CString strValue); @@ -59,6 +61,7 @@ private: BOOL m_bLocked; BOOL m_bLockable; BOOL m_bManage; + BOOL m_bUserAdded; CString m_astrChoiceName[MAX_CHOICES+1]; // Array of possible choice names. Last is empty string. CString m_astrChoiceVal[MAX_CHOICES+1]; // Matching values for the above names.
Attribute
+
Attribute
Example
+
Example
Description
+
Description
uiname
+
uiname
uiname="Blank Page"
+
uiname="Blank Page"
The text of this choice in the list box for this choice.
+
The text of this choice in the list box for this choice.
value
+
value
value="0"
+
value="0"
The value saved in the <VALUE> element for the <PREF> when the pref is edit and this choice is selected in the list box. The type of the value must be correct for the enclosing <PREF> element.
+
The value saved in the <VALUE> element for the <PREF> when the pref is edit and this choice is selected in the list box. The type of the value must be correct for the enclosing <PREF> element.