From a443da65df759849ac5a9101b852b506152f6a4b Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sat, 5 Jun 2021 15:18:11 +0000 Subject: [PATCH] icons16.png: update folder and sys icons cedit: new version by akron1 eolite: fix scroll git-svn-id: svn://kolibrios.org@8762 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/common/icons16.png | Bin 8545 -> 8682 bytes data/common/settings/app.ini | 1 + programs/cmm/appearance/appearance.c | 2 +- programs/cmm/eolite/Eolite.c | 8 +- programs/cmm/eolite/include/about.h | 3 +- programs/cmm/eolite/include/settings.h | 2 +- programs/develop/cedit/CEDIT | Bin 28204 -> 28447 bytes programs/develop/cedit/CEDIT.INI | 2 +- programs/develop/cedit/SRC/CEdit.ob07 | 245 ++++++++-------------- programs/develop/cedit/SRC/Ini.ob07 | 4 +- programs/develop/cedit/SRC/KolibriOS.ob07 | 59 +++++- programs/develop/cedit/SRC/Languages.ob07 | 9 +- programs/develop/cedit/SRC/Menu.ob07 | 9 +- programs/develop/cedit/SRC/Text.ob07 | 10 +- programs/develop/cedit/SRC/scroll.ob07 | 21 +- programs/system/menu/trunk/menu.asm | 2 +- 16 files changed, 181 insertions(+), 196 deletions(-) diff --git a/data/common/icons16.png b/data/common/icons16.png index 1fe1536e4ecb620284e7496273bb2d5776846065..df2044fc6df03486c2be104ba2b25320953290ae 100644 GIT binary patch literal 8682 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.x+files.w) && (mouse.x<=files.x+files.w+16) && (mouse.y>files.y-17) && (mouse.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⩔&tlud4=U#DQC+~7L?0L$9}^4p$I5wyGi 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 S+_G5*fvNC#=>Ss?000RjE}F~$ literal 28204 zcmV(nK=Qv!P(w>>Zvg;-00001Mv*2LLXK;4&&M{gp_Mj?%OfFqYH$(^xMD4fX?T}s zucEplhdkhaV%!$Mt48ErB8B(NMGmKpKoxI%R?TzMKu&ATX#^bw?H0zI!%>7; z&Wif!+0RL{idW9S94G<}Fv=&9)Z(bwmJV{r36RRLOC#_C-v+Vp^ZZ)-rxItD4ospW z1JChMRe7|Jeuzi@{Op>rPrpf>OFGC+(lOFJz@PiMyN5rU~O0jX$KI_3Z4su zHwI>KZnnmU*Sqqx$QL<_Hz7O|=&`3uBcYh)$w&zRk;GxA62?;epDZwO+8A|uv*|;| zk)%ahQS`Q>p|tWHefKqx=31tM(&7+Vw<|i^aM{g~8{a%(>=ZH`sFg7(-d3%!0zI2d zpNz%SsnBNEb-$Dyrz#B3Miz^{U;d>;P7t91fYmf=S;sjZ2<-K)u%W1x0?hQe3 zRB%y|#5j+Lvk(zgzZq)Qk50}zL0EB%nibQ~iS9$47R^9|(0L3)d);Z(koop_KDEX# zeRgAvaFW8@K++&z4{Kk4Q^lQ@Y(@R8^s?@4m}P#M{daqUNKl~B9SR3NV+QQQBc&s$Vhxl#slv;lC;14`Rc) zUcn@Epd7z_N`rt}a>kfaY^uI5RI35xPFT7FyV0mI=R0LG|D6#Q*M@}(aAm?Rn-A`d z5y=2r@!z+;n{u3H2u~ZXn$<20SWqy5NWZ#!IVnZa3XW0_PUnN!P%`Q0}KIziuKzd z_CkW+Qi7NMq{Q<7;Gp5flisKOko16x28Y}1>)aIrCoqh+@PLf2HLb%(Y7L(FPX^0K zBH6&SFjeUMh#a&-1|3dg=_Ms12yW;}azYyi`vJTZH#7YRF#Ee7_oC}E29|G;TUqNM z1c#|x7dtD}8YNGU_$ybil_V+;R{X>II_etn(aPRmWB`I{7sP8=1WDij2p zQ+4|>rx>UJXG=Eg6kkO=4l`93?Jyw`OtRPjyHu)cvAJ{*9~zwfv0NRpfx(I(3kR6s zf@#rq z#KKA2pQS34Tmdc9Qn0u$-b??;OME2)_N6vlAq;{rlJxJBxCWw#a!s-4TfjFj{_+}{ zEOtyobh^?TPnQWfL8igWj{r0zO2KZW?Ikj*K(#V!ZAqrlA-Xv7aD-6p!(X1}lws_{ z=$uOWSzD^9rd>S-2%p;Kbe`xFb9!0SbJsdwE>6Rpum1>Jsz&DZs(1rhU7rRAu(Yk{ zjk#Z2f4@a|rU{wl*R{t7^NBusd=C2T+6odqImLEPhykxeb&oD=mSj96MkAO41_C?B z04FCO?l-xbd$4rzemT}LmVS=`eE+V0V@?;iV}|r4 zPlfv0lG6|xyLsf85k0M#1)$^Sjx$97?}wgXzAfNWv+og)8%rc2ZG!ua1ot#`0yq7F z*v#8vM*q5zD<;eQ^x06jW zUxelMQUGF<)%;F(Yi`}As|j9`#GW&754>)b7wI0ONRu=}?v6+|qe zm)S;E9noI?sasPADu&G(55#`4TaV-yU==##3`ZR(bO_JIglUSrMq-#8EurA1Hk7Ge z^)494HozUM4{i=5u{5QCbuR9+;5hQQ)z1A~W1ZZfbxg8@WWj!;hWMFJoyS`5hOFAFQT5uuDzqXk5U4ls8Z;p@yC^3YXtM1Lb+r`)Mkn{r zXKDY3ws;V0mx{NT) zK+@A>L(zh5OTIJy3IkLbfMpL@f!nh4+FO>qm)Yq;9m*h|ds zW%I`oA&9mw$4p9VZ{w2Fg(?d`-A%22jDz<&qu0j?8>`Cv;T#bzW#ARNt#@ywK7mYp z-U(C^ghlHwNMTU=;|SHU+gslwlXBQwgT@{d{D`$;L@(u`2Pa0lLkHT_9t$KQTjsgIexJ%pKalcw6DHU z4^f7#5afTMHbt z6NEoKFuf0ZREYSAVsT^kt@O)e>NMMknI*}4qT$6l1q)EdQ|mM?kC{)#v#)wKCx!sT zU}tW@@rT?qp`uO6?g2n|I5F+9ttu@RzAY5U5!_fU$73`bVbr?xgruZW(IGbr+2V}T z?&a@)vkP)7C(Zdj7XGmRz-i;Vr0!8Bon`702}T@y1cCiSx_Ckx@ALP?5{@!Y{t60k zTYPq3J=8QQP|4*y1xKdz`eD2TA`+__(n7Wy0tn+f`hK&zXc%;u+ z2VO1_XuTokH)fklC)2{kG99LeoDDd>Ep+tR&gd)QQ88m=K7W5fQMfsw+gd%f8msS= zNBr#hs2mfFX}0J!xlHcaG9omx%lbs5q(!2)O_27#dWRVmw8ih*%N!0?<>ut7s_dE4 z+`fu=*q#J2&$)pA2g#^4$+L8F)OvaF_E&aZ^&?WaiYUIgCVnEeHN2jA@V*nzDL)k- z2Dvs<_?^KiBQR&9oKxOtv=BzrlxJU=fBQKvGHl1qM*E{&;|aa2Civ+TDF~%9s(0ER z@8OC7`Bj@8X;d_!&;E1gCI|LnK{ExmDKaqaDCJM9jLH&4C zGG$fRutHa&7>XN4P@D`qv!8`NO1{kFw2(}A!+0I{Y|D=6>ZPg-bpJl4ir!1AyH&L7 zogV>GUHPN8%I8OV9n#YUCrPy%N*-@I<+ny^-5+!8PsfhuGA;RsH()4VQ2A8@Gy#0u z(tCxMgV7FsfFA?icm!)vpF-Zlp!w^jh#oD9NU55_ik{^Hy!3${bFRh#h%k*c!2kmr z+}}qw5f$uRC(Ezdo}}vFBfPSNv7L%K|E%-|>f-q~d zC|xkQ^Wf$uubKz3sVBET^<$FG&HHu@no|0V?=r>f)R`<%a3Np0 z_uokN3F`&osQRasOj>x%?m*(MM;Cv^Ruvmt<=Yi< zy{t|3h<%E#=Gv&_n(Vz)_xT3N3|zN0*7!^ntBbybzQw(WG6hfs=7Xm86VZHPumEzy;1jMG8^!PY24)x& zqe(LSY>J5{ibQnEqDKfwkxd}5H0uQL0BC0dCeEI=P*?-Zd!O1Nj+BAEPcCGSZ5CCy z+Z0@($t>@{V-lgBKi(em8!xdu;CBtyn9?ylPj=nE_$hjO59OtHadju*85Ap9*5dw# zz{jSw=u6Hw^_O)Nd0Z$7$NlE!WP{SGwPV6Nod@E-pJBj&0+)rKcOonez!HdvpG>?y ze;dNg*&!)L&ALV!k8gNHS7eW4BJ#QDVxXtkHI~)`GY0dSP%V{#a6ln=fE|w&yi8)M zm3{nA{7(PbP!^YCl}5SBzfpdIOQxDVdcv5rjpCpD%B?5yKY&TfhAwoQaf0{o)QKI}q{5^NPmSiCr(S)9|+JB&gH0jMGK z%@%dsIuZ;ww-D`9UW%>6L@Mbi`qJ=oc__r~UWj3MnMS(X&jKiu&oocjJh?L_3mKM> z|MWpJNO`B`+M5JDujsd>BmOP+ss#5}X$AS|g$&T-i~|d+y zN_*6LDt^Au*FrVKxsCHO8l`S(x^Bw9ow+PN&141oNOBDjaEj9wZ5eG4@0uc;?i-Oz zpgPx1=#V2ve@}I;#0M*5dj${f*f!LOjD_SOIA39ZV)v}|ipZly{@+X69;W~jSDa9U z#ZbpwnZdB<`p50bK}g!=9!*dKNq^l_QrL7rK_qGK5oq_>B-*r@UM(--veG3s^wi(YYH_`xOr17ZDlKMtozSnSx347!=m|)p8n+3O z_%njDR;bj7=tY@)E@s1Uv)PzH9SLTESver28{AAxguXhs5dC4;Muw;Z(6K?BKWA`+ zl3|Ad6)}9~`zQ>tHhv&wTij(NlzYhB&ss9mR)U7*aL2D{-wLKCoqPbXJ$T2HGb*m4 z{{Sitb*rG9NWXH!o+Y@Tvm>GMxFfs|x#m86U>S4Tv^j#5JjKL!q{!HjBv-Sct}jRi zWF}%!Sc~%e=%RefP*F+rN&_~OzEuDV4}(g~I?w5u3Aw4%fd!lnux!wvpeHeenb^@m zFdGTDE6DcdK}0o&JAGoF01j)n%A8P(z_uaWROt*j*uicuZ?~F#1eubS3#2`mS7`+1 z#R~@}J+;XI^`Ea;^*Q&4oD)s-XnfpAmL3;RNpIIt$C|yavzvzQYbn0Nn>)R% zBo1yKvn9)t8t}%31QPdzVSs|6Vi>3tH$jj!Wo&FqD0GOI*_>3yUZ1a_!xpJ7empt= zwkd1P=#HM-SP3*EAj|TW1v2b|p#mdu z*>nGAL9>5i>?aUerfgoU^vGbSNZ1jkn}AqKPE$OSni17!`+q5^n8kx|$5ke$aGg46uEt zol@XwNyD%a8t}q6e|FU>)Nh@Tym{2!C1K`^Tr&$C`0Ye(XEICg1?SLh zM8Qyof**xBUNbd;CoS2amAryx-0xA72m*b{YCy4&IlG?f zSWlS2Q}CAYuJy8Ci9saOfYG6M#sY^Qnkc}&=OIr#5A^`sof76xtC60?lDthJDwCBB zY|OqO%D5Yd=c2mBPC{hQ-2r6qL?NguKQqgQyu-y}cb?scyhrEVKNrkv1*BGz5ID@b z)OTL8inWfG{(M~Fj!Bm|f41h*#8-2-0*PE)J=TSNOcOeY!>yAF44}3bz3%m<@HjTVuqTdp~_K&z-dWOr$!;XD)JLM)<8LOycXEuf0C{Yt!7DT z%>zwdX)LP?JUM%u`47}xgAY#+t|Q123Bf;+k`c$4>9Dh~nM!-nVIm z>j|R6eds^8?5fGpm-^iz-*GEzX*R_IOTHk2C>fIibDs1cG#s8YOA*qYk#U>+sh=>n zd-aT5THDnL9oZw-Lnu9|>m1ft%8#Y#CR=o$C|;V74L20qy!pSEWTTCfbJZAELC%eQ zXIK-mE?80J0+I|3tdq!=7kv8&hj(3x2u^kKYDlE0nN*n&eT{ZV;ln@1fw<|H0wp}- z4vyg5Hrm7chi24xXn6jy43{8-$UKVOWfuA_gHm5?CzL6%bmi)5|5CMDuJ;^g<_`Ny zdqPP#-c7?SXZK4zlPuz2+b}I?_0ekAJ?2*3RsLP^kH2IdEif3(A#S>7RK>V$Sy-L; z#an-SN}va+SVc`MfwYeRd^8|&AtT)j=|CPf?7c+!*>(KIG^QP<^wvT2IsrM9_<@-DBu{c=o?Te5L7Y!;iRVx=F;oc$Tt?J>Q&ZWS)n z#;>EI;#%%7yt;sTrZRxYhw;1xzM!i|bnh`PXoG2MESce{Ssov+cnQ z>KZ`n3sIs}Au*Ee@Izh|z&H3-lZx$->d{3_npQhOE7W4nGa#c|ENII z&QW*{mnY_n97<`iPg&k`XSnfsvHSr4^DFLgCVW|%VTHqHD2O!MYWIAcmfIH}n<`nt zRG^oW5|UtJ2KBXT&~J7VQ^GL7p6~De-!B_JI~fv|r;}(4eiP}IoXMy3h&|-~9!uBx zV|yKYQWaguo+y0Cu*b9}H^-U|Kr3Qdq{2#R+41*aC^EO%CV<3#`2my4{daxSWTWwF zpRRXP5Zi8oCSw$#=@cG`xnUyRJVmOPoy_3e6VqZuduU9owGX-6@eNBqxH<^!DDoLb z{UWIpB3vobAdC*mh+d;MqI=o*`5}wH?vpf(n5?W(`~m3lnN@GU#+&A#BI|4u&KLu_M=E2HYV8<5$2mVbBMm=`kS0CUYYnQn ztL@F{xh>;%0I`bj=A(BMsFjVb4WV2% z{t?aEN|5jp2(`3|TMi;I@_jP%7|%Smej7j7uor7(g*Tz{et+Z11qdbkBH(y2>XI{8 zFzOMypCAn^8)Gc~NxfBvM$O&;ciUp8TqohHHHuSX{p0JF!;buTV_ zu@%tJmg|;S)TF#{Gf4$U$(HIwAAg%_cra z1Jvb&t&182I8n{H2jd(=F~pW+ZKAg|C6bXkO98ziNZ-x0Fn1?8*}*bA%bo~0LQ#Nz{}p?wVTVpxU0D#`D` z30uC_W3xA3PAp30NEaCN=GAv1#`hckApZpB8sdYw*}_l5`R*a%E;imoQZ8xrfm9 zpSzO#r>?@n{Qo16v)9lh{R59fp40aV>H+$bq3I&PfS(zMlCHHkMDO@jtY-r?+4-3< zLi6uor*uUDTPYJHPpv2T;|d_8OvB?hbQ=dbzwjTV4*SQ?jz`N4mPckFXID$+V5C1r z+3vvh9;g>}^PdeawGgV-?+F~8%~?qJjUqMREdYZe#3v29P8dDW%9URa*==t|m7(fpGHNICAbn@BNVkGLcgJ4CHj^fA^D+lNdSFII`AWbE+kXj7nX3Kh#XPY+bd7V&F5v1CN?o z@oL0dWFLfXGoP+0AxnGJnr3zY`4Gg;bi^W}kgMh5lS+`c!%&oSCTb+kIJ7z!LiZr1nA(bN4y=Fu4a8o6{;+<1Ye)^5M4N(FL{+_*re; zh%r?dd^16nZyVB97|u~6&>j^6Wk39sUTY^cg3u%d z@sf|UQ;-zH=k!PUkkO+E`oEz^st6mNY$$xuS0}2Y1U)O>?$XC`QP+u z=bLMMtF6mJze0Y9p-fCilGkq*np(|l+H=hv6E=s;v#W6tZ0~(7s5(ppHYRx*cYKOOZjA9hhvKqG$LMlnzXIq`Alwbh{t_rYrFZ(C0&IU;;vslK}ct9{h{RD-e#YF+bFOgG)%ormBT-#LgZ=kn@?+so=v3J`Gu+%dn`{2(p+0SR><&I(7G4C`JV1%5DfNmY)5w z5$RER-|sE_>)k8m%p)D4YF}?2-RB_>1>@r z;Tw}Bd*RyIfV~gbOQo{wxm^C{@xSw4`#WtEeV6m!-LC%C#7xH;NcL6eYt4`R?=)sR z0^zX{+7$bAlyPSIeC$g@iMJAi{Qjh=MXi2@(;#u_be+X%Tu%RkUqr~!alxyJ(=mLE zfl0|E8?p#AjU6L?*Co~oL%$rL`=)Hi;QlA8Tpa@skl%S83ZKLziKR7-*c`geNLHJA z*#47^tN!C}F#bc!w3+Z|aDBrS(RBc4lW%8| z4a+R@(ZK)_BYesi?V1P=*JW3J9|a^}=`tD_j!)#_b{#lfmE6mrZM!WT;I*E7jyy9x zO~;+VvCIe@sMkh=i1F9`cr*rEyzRf?N)FHZAbWY3%TzZ{4$A1P!-wH0cMy@GJyTTL zZJ=M&B2-g_r`(oxxwynMl752+<~NVs_NPcQr=(1zju%d?t0*ne)ODY{Fti>rCmj4UMO)60E0&aK4qi~xpyTlf9+f_c|9>2$isMLDZ>5MzK zeO~VR9(ovyJ;##ZUhL-?E>q&uB8}|aVMlm*h2~{cTLbOiFtA|6RS;6#QK?9`X-Nwp zt!^jPEo`496X`+n(N*|ky<=`waRdn4nZhdzCuNGy;JoD8`&e$9ZKX(X>tK8q2=1y} zwo@AGJ{U^CHd3eAa(7MP0K3>j9;ApBf3@{n>={) z+JhBkJI)5n3chWCJAH|n9ciH{GRQgiKZZ9Bv%Z)HuaJUU=k6`Z1l51AyB37>&|d5Q z?k!tmviz*Nv*y@M82i9=as_KN$0on8;(L_yf+Ri!cXm&=eFG7Osn6!q7mD^Qc@_3B zJL7ET^~xp!R2!nid9J%CefTrw>tDmNGK{pY7Y2hRI+{AQq=6|?? zd{4@JCqwV;6YCocbx*B-&h&; zzbzF&Of}YB%M)PW%ylytArSF`qrZ%W$lzmLFRY+iL}7rLEaaW`1^PXrMZGROP>``|>y zaGh|<;Lqchw!fT1JBGksxBntXmj^qh3pu)HXkc{=9~V^SB%A-c%Z{?~!g_ zHw)1;1^!a8v%QPXxLhSWI+7X{1EBVl54suF?#KO>arKnPGW_l9Sdk2h+FKwh!C?nd z1_k2PgFL{p_WRIe=GGjQrizIlX{Vr0{uI@in|_%ikAvS2lgm;-kKJVLSAYFKY+swu z=Dy=`o=qaGYML6h?#4rl$w@hqCYqquHRpHAXg8Y}GgLm8F>QIKbZ?{~e>g;3F8CY# zIfFFJQd1QxsNAk~)a^=Lj3G+F70Iao)xDZZB(0YM5-m0uWB&Yq+>5VQ=t{I8e1dUN z{v_GD^D2uRic9<;1e+GkXid(71ia7N>gjv2KJtxpI#J|(q%kFDmNau4hEgHK@`^Ro zuyN;z?UYMog>jDju>&eFIbi40L=P=!m}J(vuppw5Sdnep-MibOU_S!Y9)Z#P<4~zO z%?7%`QFprS1B#M4%=wOr)w?cTjquOq&#ah~(ViFF_&Lv-#NJ<6fWlI|JTko5P5h1e zN--+vW=EPosQE=d7*MetpXgTsrm@J?Rx*AtP5HNT{o7ZF3x=7lFy;CI8h7_MLHWpF4lPWA~-zQsKgb9D5AEjwEyB53?(LhY>aF+|M zsBAV2FwH$S6*h;~RTOaUdIMa^vjJEPeFYRw8|D} zTVtE^Nv-hdJ~O~#)9HbQ-rxK>>W3rqRLxd8T*=gHvq&bWtSgo*Y@l}?D44u{D6P;| z@h*Blx8eP=n(94}lO`Z=^K(@9CLZTqt(DnR&4qnpNK^8dVOu*9F1jL{}6b)6x>Z(OmArRt_b(M0c(&&vm^@>Tof!O25KGUmQ;I11L~R*GC&> z@5e`QNA4)IPd9{?ab`t~JrrzWxs(@*D3(s3WfoLj@;VzBYJ&1Q-wa=xm3*Rk2edMK zFvxA&iKCd`BPDXLFxg4YP6q$SBn{=TN<%5x{b+KUEyZwa^inYz84T{|Y~lTdbU0m* z7H}i3sQcJ}w5;T77^-W9Y->LS{mAe2o3*&B(e%>ON#M2r$LxUE)B z7{L&#R4mxHI#{v7e*P|nPFZnr7L@;h)bM1PP(BbN%Vs_s<3sD3qdaT>N0_6UzNdWl z#2=SCyvw*@%ky&2epnvZXiWtHMb=TfLcIT4IVxW*N6&RA5G`ZE8O6tLBv4UI_1w98$Vc~8NBxfL|nX)7)`itMB#9D#{TyPzeYx^HBR(kULumldjT}+ zDuYqNMpo3~`7;E?>$z9mZgnI_ju1Dhk!4`AK1$7JR4+L`8}c^w&~{sUEB*ePCx671 zVYu~%ne%HU+hM|`sSF>O=NmLZ(JOZ9WCHiV66?k^O9tu8lD2LM_!s7ZyylcS zRo$~7{TOcDHKY7GZKX;u=t?a9YiQoOD~fA>qOj$>>hl1n$z^xlZ#APT)*4PU?L_6S z;Lo8M4JGB^3I#KPeMY_PoD1QkpfZT!e;7wJfmj#I1ziwI^Sq{>55UrXr>=<%8@%0? zIi((>#;cE&)D;TUAdtw_V5Wmdq73zk{kf5|Slu9PQgTdieHu7vdE4G#iGYSi1DEdA z9N?1+1xJl-5Wm)Pyy-XIto@HdA`F?{%VTR_yTMH(N) zQ6&Fid*9)D+>OFbD}{*+QTp3Q<14FB<$vFUpY%N(&~`~MO~QL1(0FJpy?AScUY_!c z(eA7_39={v7fp|b6r=*g43i!+OnLXzlK7sZ7eaxYg7vRUE@DaVyA4^O8)b}@UsCAx z6CcJQ$r+GOne5B$xRE0DAjx%r2PvwFCxqhmhi2^Jv2WLAVV8?GA^=3YYoDGBx3p26 zJoXp>gp86LDO`YHU{G(CtZJ9KeY=)p8Nfa~IQ4dINNIA~M|bRsc2Zc0C9_L84OLee zr9L6OX2)J*WJrkmA?~JCBMJdXy8;Lb%Y9^WC6`@pI#TfpoP)2Ytq*zn1#xJjVpO{J z1^&lr#uSX*#RWJ8W8hZGmBYW$h=eBu_>u(J(|yjklf!5LN7PyMxcsrhnHNvvhAfu) z_h!5*!;SbtwDNWtr5a?V{`D#0DF-a$Wjd!aK|?hOjV-|O^QS?n3;e-I#U@DWzkovR zsm3h7r7)go^~gui+BHoc(!88yta8_yyl>*OH>o%;aXJ$1-}9!b1<=$(M|H~OVlX1mn};C~!%g=Xkl)|fQx#@JQ2k;mA8J4643QnG7D_1El` z)z;lg>1-{55nE#19p8Ca!kG}%Hxy#h09&X6LEMu;B(^oMZ=I-8MRbjS3-E7 zMlH~XKVD^2-qO&2l7EDFc8zi_^U4+%*J0pSnJLN#(Z#AAUoytBn_3~JN-uJ+(}jw7 zSrJ!r{7zCJ&GOD|)s>>m79m$7gCQ@W>3c0KO6ocCQC`D_eW{R7Cvu=EzyUnVY1uBV z!_s$_zL&7Gxid07T~&TA_G-$2*WQ#iB{4gVjLOv-g`QOYPe5&%xHjp3l;LG0aOJ4i z7Zl$WpcZAFG>^ns+aB(dfX8?K7a<=3e`sF}Cj?E$SZ(vH4Vl&o!W?HUks@fHgKrW~ z8H08`eXKO_UBDbC6xypY__d3Y;pfwhJW_|+Ky6_+iQGQ`IRpmSL*Sdk%42s3G+>>+ zM|6={25M0P9LA>Ms(+<~ywJ@qqG2&+EKryPCPCFR3EI0YXDo&Q={!kJb7YC3S?q(X zgN1^4S%Lumuf;%lT~(j{OqQkru!6pLe{@^)ZYAf+NoAu73g3N=D?C)W=ibxK z{4P@ANercCC=+JcItHD}YZYPQ(*#R*OE5Ln;5{L(E!T0kI%if+eo{}oqJCqdx~^5K z*;$8CYc2h+lel7cauOSGKR{#y*e#&`o_|!RUaaPaj!j7v~q;=zO1H5gttoASb?&_QP zkdd~TqCdE~ka3_zq2o++zu&(lzC5*}a+1I~MOB@*r$8T5P^+DN1=#mZM#B`ee z6ZG&w#Q-ULAwk7erzZd)atu05lj{mlKS3h3bG$z1FZ;ev#(!8eADR>Ly4AhRoabGpZv$E0HHY%i5R)BH5gVnHXR|t|3;+xoW z{YMoLGhJa9myRh0Yw~4&O0{tVLWnq*6^x8!MWaEZUc{w#FRsgsw^b6^0bpx45~_k(r?10?zt%kN_i( z9)0tW|DF38O2)R!Hy+ge{T%tfiEEe=va)?q|4|} zsIDR5b(uI+;Fq&*?mvimA@U@-6A+8n3FNdPu|>H;cZb*Q&UkZ^Qd};f*5jpO$yZVW zXF*S>Quxi2;-$i`3mHf*BxCabZfutRnKi<=9MjGpOiog^O)gj(63c?R@8c*LyaMnR zMS%VfbM^`D#0nl|O>l%k;YExOd1-F(&K?9(l7_~s!B9et9}ZzwY!E&gkYh|$7)4Yp zbC)mNySbN27f(BH=i?{5(ElZ{8IAz|!}3SM{X?Itu_Ra_;_}~Opq=FzSYHihy~IW|ThN<_^M-(t z)Y+oauMpPzOusOn5{pgNMTkNRbY8(E1Q_5LH$^^m2RBS0`pWs)-96 zFU!wkohx5MiDUBxifqDh1Iwjzl7&HOyeec_r*m=Tk-^Cg7>exKyS5NU@}ttbv4Ufb zQ3CR<;F0?jfOI$(o@v7KMDYd90Oo%ouwK$<_t#gHSJB8a}?YY#rOPXx5-JKxK+&7y7&v+;H z-jw1F{=U@)-Dg0_`&RFNNs9u(1@TO0A(zQ_nR4SvOBgVRy~1SXX2kLG648T;3~4-w zDb;XtIfSg-WIR~iqa>DJToaqu#qfS(;i%L7{U))e_J1ytIq)M)F%XPa(f;KttdAuq z1cm6D7YEzhehE=esY^#`HP6vT16c(m-#XSdH|t zQ~^8UAF2XnxT)h2Y(m{nP?8Ka{ro}#7^h#R1WG2Po-JIkjbLirb8M|%r${u;Z-R7^Cl*)9A2@=}$3vAE*aP^Wk8^kKah`f3 zw<@QMYr=Nm^`{8SlU*eG~HhWKp!xF!h7tp?A}|~<)R{I@I--pc%+De zQlz*NWBOby`LGH$ab26F%t*@t${tvCQ2-5Mkdb=5Hv`x-@7H^rcLkwIAw*QC7D4Qg zhB5YEaRJxQ%I;IUst`-*#pu*>Qc>W0`yj6hf$|v)geoh5)!$({6DSPG&&a&pwdeQZ zT2j`HV&>-DTzzDKNP@fL_}?BBJv*cAIw`F;3fU8&i|O|x2JqlsC(t%Ghm8y$j< z6)M6DQ!AeEJ{z&h^8tyeVn&su4``Hk^BVlltmjp>n`!iyIxt3}0LV*_>|%fYG+#?A zf3AT|ndYi|FtY^f6ZfQ3{Fqs?xlZ#TV(quDXwiDt;P;v#3;HDJDnm?a-BsDZpBv?^ zaG?jfQ~;><_}0AD$C}_G;y~kp{iu60z3JJB59fs{9n*YPY>R&l4;Jrx&54 zBUUYKS%eThyhOmu$rYepUs$`Jx~Ofsg(3g%^#@SeDa^b?bRdQ)=Q??$W5l@hKk0f+ zBJCuL1=yIgU^9eApN59adehOP|En2aZ9NVU%ZcRh2H_8va015M(#v_QG`oL~T_TbXztS_UNKvsEk-(Z#H+a zkC)6C$7@uS=-1tmO_0QlW$7lo=>2VT%*C~M+;7S_^U3#eBp$IHz4O_Y7^o*09>GB2 zwt<1sjRYWA#!EIU9~KUrOGKb$%M1Uf&PY0 zNqn4aq`=M1Q!UULMDj1F_#2k)< z%oKHUsVqxlx^I%uhmcWU5C|uX%z$RtF5IXN6FsCO*P73MT`(Hh&{)sqtam5ka*R-3 z#d&AR$JoC^NFJX)HHC@hfF~)mYd0s1R$mhVtpYWpVg{k*JOCzbG<;Ox3`2#OwB}pL z7uf#>er(R0vLPf=6?wC`q3DEJ`gBhoSm+mnz62EMZP^^Dot{pq|RpAyInIcPD8;X{VPmW&_n65L2kjpVBOINlOSpf4v!CUqe!Ftijq2bkLK#Q;C3 zZM~n!C=$xGdOgS%e$cazLd!X#*q zUrep!nc_P_SP$<+18+#wVah9%LZKJ)DUSarJZ^99sq^8%dLQ=&6QG14vmmuVKwZuC zfH>2l$O^d<_;x$Hd4d3%xnKx)3Ko_ara+$fC^&k)glFx9)wXGtEBTP0S&}QQ!Q(!2+q#4xr+E zbV~d@c&a=kp<-MBkXqAlMBrJ5%6}RmOKDORjm6@o z8o1r=s>ej^Y`w98!FJU_t`@Wf5(q&*_d&V2?|Lf_2Gwi z4x+DAG%{Bo9F=Jv2hwVZCn}U4awM^a%uD#-Qkuy#B3)u`*bc%06AWO1 zYU`YT?K+_AtxdZ4i6T4!?llkK{%6{cD~p2mu>DGsPr~vQ z3xi05E4H05Y>bFj=xx_cPKs~dL*RBM5@t8Xp~8cR_^0TR<&iBB24;*>8E!Y}3rx&e z38NK!|HWbpWzT(go&d<|EMwL3<&o-3-eAn9y5-s!+_^kJZq6RoyNO4o<)P>L?lq)% zt3@tYK)CAep+)*LK&QrvQE4}WcJ1M40Us{l(ayO|Vo}fl0)@=d{vr&&N|LyC4b90d z0Ao^ClHWVP5F`R&wW|_1zI-xEQcK83_h-TfYD$cW{^hGUEWUJWJZ{3 zkk{SiIjqf}B!gy3y@X;y&9!%aE1{>oaA4$+Bt#F0(ye|Q3-LVI3<_;@+^82-V0lcJ!1+>sEjvGKme>h zwAC6{M=E5n{?3t-Fh{>m;U$~+G4Q`A7+F)i%gBei#mUO$wN<1-ed%!U^TNB9S3EEM z@5#pkOk@sT#7A~nawXE2iPI4Uoi84dgf3J}>8k<$&GAh8I6cU$H^V`Iv_ zh4RW8B<7Rw6K2<9^}G@#jF{Tf+lQdW>J#n^yh*K~RM2hcp2T*vL`~Ok*dHT{D=&UU zhJ29FjEI`2B>!#v4wRSa}s(c$d;CWBeBqypV7 zX~E|}#b4EnX(%x8vNwqeh5m_(0adGU!Yfy$NR{8t* zfyH+u^@EMD6q#Ma@wEqR5rKPF<%BelM%`IMJI@A$+WcNUb%I zS(anwEF^My5B%?pLj0W^SmW?WcUt|$mE+s`eVxcr&eWWy9mCpL*ikN-kyQMVeqscU zy9Y5Es4OR`INV5u66^<#<0WWV9H$cYAJoPwYFdPJh~h4zIcWmcqsRA=y);$NhgQfd zxyNmMoMa|m{sxqmpSZUcJ-=}NrX^a11_DxYLHIe?^HuEBDczy^MFpgGaB=^JbIYDq zb)4BEv{c!6|6M-_)7i!Azk##& z`q@~*z-f7Mg?=i@%G4N`Ni_MoubIIKuP8vJM;m#6!7>|;^CaXoCWZ2c7Y`kCco2 zr>2FfEXbiVX=NK?F0@>IxY`0Px2q2cJ+!s;krYG#3c%BvF&R#p3^hVUvr;7tnx;53 zeek}Vn*nboed6?37n~AsKJq9vncMSB;FgXN&L9|`AvDeSytF8ieeSUfY%YOgPx;V` zmRp3gJ_5s$iy$>X{t)0b(4_B=8A~rFfB#y+z76Z;)v@pwZa5`C%pOi@4DpYb|6d=Sk2P&rb*qV0Or@96JHkI&y zkMM7tj)~<*Ll1C(55%cx)8!b8SOf~;{9*@uZ<`Bi>&KUhv*QZ&!5bb$jL&K zb$x}s)qP-E$r_=U!$7X~a8{-zgwE1?iPY$_J!(Sgt@|d3m@GDnnI!iN| zbaCQCo6|{&k;X{>Shr_TC6NKE3M;iCZ;A_8n5Utaxb<78zQ{xP>xuH6`~9lt*J4FE zt(WBDNvxa> zS<`~~xiCna$)&4ynULCU+fcPhQt|{2o0(;X`5pvD_~_>@7x`@JQ|p>E+zF}zLt++R zfRY$J6~hlH3#BLqluFLr0DIvskq`jva7eXDst%s7#&TN0E~hY~V!H{Wy(eXgGz!&R z76V_CH4|>iBgUP#S-)2h%@QI!X;f#nS3V^UC$S~gU3A(v=voi9ry9NIRZh4FlJqS? z6O8I!YtRd*U$?B!ep*&kVkN9bw~X)Xi1bCL1oWYZe!nRFG}D3|OzlCxFt-Of2Dn1> z)eKeQ4Gc(`sKEiw3&nY)I@6xMXUfGo1!Mo*7*EtJ50z|Lg5CvheSF5uWxdCI9UKe2o1v zyjsxsf0B1~C@m)otnlKB-r-285z>eq>vh^xtdrHlGr?tALexfFkeB@ba(#04 z!{MTuDQnf6i3WM6|nDLDNfmA$bI4*Y^OPcTQ)b^iUx+Ij~9VG_tn z9a8P*?h@voed`$zB6-m-6A})WjRTtF-7YRegcj*_=7Ut!gMOqpq>mHG7vZ(6=Ia(2 z$oEuW`HvrkZh~rWYO_F{cHBI>X9@d7$GUGq=(UEy)^elC#&33~8@R&Kk;D(x5}`GH(gI~PxDoaX_r^Ch{ljOiZ!Qa#xO3yWsg z>n(Y%Ye!ax?3ZJUj8(3Zm{;`)p0=xc2hgfsp1|@&vsTy^(1O*co}usbw)v)d{#BUR zD=_s1(gkg zk)MGitM(Ww=b-6|@`(>A_r8zU888g=%FPJxe+5q5rY}5T*ozGOk;5thxy{*~UCFe|*T( zkUXlo<2B43@;OOvIu1C|xnhzOQQ?|sH|Ptu zfBjBe08^<7Nd1iHAb<`HVwBjz|Gx2@0KU@ihuJ71fY51;&6a5x?lBF6Om zaNu>Q6FGuQ!TQ0@GEij}o1OhIMWJ*BuiqUWRn0^tydtCni>kYf0)`8h!FSa_MV$6B(wVjwQmn#kBhLv!rQ)qKdl_~<EAGn6 zd*^RpNa4Z=l|fTovY8))?>C+af)2~>5ATn z*G6gi3Qz`qTDfn~x9%S`oujKtnSSc7t4nDL#gq-)raom?z9`lR z1j|Dm&RF8`AOAFs;;r~U=H8=s7UnX?9x!iqT2f31?LX@uu`G_vBt$eL%(8Zo-!$0N zrr=FU&Lk0br1qh5BAH&`aD%=uw)E7fc8Bdrvrqx}Wu{q78$7_h0%q9^0)C`)+-CKV z8Z?^pu!?9~iJb3JZT?}(PPXo+_0^!fC)Q;^*#+HQ)9(IBtNe8VL;XaNwTHzT21PW4 z(p$+CA7_~kew-b=5)Xn(-vDj&vM09hs`p)sp@xb64NE!n+WU|8)TtvaIQ57Z$v;51 zex5Gnkca5j?+$XB>VL>Q5;^h1O@?^MX}mHXp7&ECW6{xdg>L5r!rpgykun(?8Iom9 z{ozmZqIqKkF+-JD2eMR43j0}^F@YAtYg2IQIFw6N*?kD-Oz8XssIdacVQa~KvJ8g25AKcAkH@?O7u6HM(WhgYP&doy< zy0!14=fJ9bbFnK&6;_xsYlr9@cr0FKV{T+T8e2pE9m65C&z(Jn{84r74rH@&_{yVg zCsV0NHq0TC1Eh0Xb@ghkE(YGrj%{vdYh`S`!S=NSLIx9jNzm+S%8NvIn+aaRFn~3_Ir$K7ozY)ipvmsO5 z5sqWPw&=rt{xu~sW`z~so_;MW+AdCIC~?O+h0>Ib@;ER#f47yS?E(*fuVUMLKfVWB zBNO!mAG2mC5*#GIy>PUi=_p-SxDxhT%eZdCNa&s5>$r_QVJXSAs zR-ngNH*}xK{*qJ>9zEJx(iu(*f=c+-HcS~Ft7E4BG(G4hv^}+U_20L4pH%INFF2 zCkQF9W&K1^#pw^b(B4diAz1VDg^eG?fLMR_yl_w8Y=KQuE$DTG1%f6E#9^Rg z8k6dY{n{_K3#I7_@h~xcwgslmz%kfMplu@EUuaKo6W1SVKgb2^Aaat3Ea{r{Y7;{Z zR8WuO`B8!vyB$BZj}16pN#$8i0@?r4I!EM$^7cd|2VtG0Z4qMK%x+D{aX9Ca`#;p9 zlonT+M@dVkn@lq>K8;KV21O#W@Uj|VzI_rfHYIP;=x6Jf`rjbPp1RUEZQ?+M;APj!83fM0J|^Ika@8*w`Ht2jKR z>XlIIO}=eVb3HU8a`^vf1Yp@aONpilm@ZwlGOisf)0b>0?i3w+Pi-~b-yHMS^)Tv< z`C?wJFLY7t-B4pMd_AqXW!d4N7G@Xi;0wa~v}{zZ&_MM*bcB~%ylCrh(o$Rl1WBkl zR4OI{okS&8xKiD2G&cj*7|x8VARr<`egKE zyaK?h4p6mlO<~M4k;WzD_*>Yfr-WnwJ6dxpLYK;w^X#j75N-jXHiPA`JSV7Oqt z>~d?9bKI4#>tQwCx9W#7sg9hd+QUQXlqGW}1XT}Z#=3)*r@y?#s#acxzbEp&V}S>A z!U--YAi&c7S&1E^KNAxmtxWI}zSj-)v=`*tlAnKRikDMVBhhCNYuXy*o?@ejfhiF;232Sy)_bR41AEV36Jq9B@O}#Y`y_?%Q}?;N>cwJ z^RVY$w61_QoT+bG|9wd-R{vJI{Tl;2;Z_0wIwq5mA@Gvpjf01_o0k=a^e{ry2ko)7 zs1X;<)nCrEm$)D)OD(Oo!y1=&M>v))>hFxOP``2^;k2MT-&OjX<-w7<8QHak-{Y zq8?96gCY1SvMedyGm^g{%*+aDlnvCpS*UnFG2@MKeCg`FJcdi>#YnZ;@-t3sx>IFK(npXnR)FA8A_)W=Ikdg{U zF(4kOG>AspDwd%kriCXjPKl<4n*nyhjZB4RSBZ^JLQ&s{q@O*1apDVjnQs>cv9rX; zqUHdefY;jm9eNV1S`wY?p8EU zLPr8R` zHDfIf0*u#M+Z{d8Y8&4=sGEsR_)~P)UQ8bPJr|Q?Z$c&8V9`P=q@8QB6_>+w;W={0 z2B{cx)fLg0wqgUrU8cCpQ-AkHo-Hu~K;WiELFgRYV(ro#5kNfDIv>}~A9FbP;8?|` zhrhVi4;pm47eCqpbtAZmU^Sh?aNxlnG!2Wa&hKv{a7rx01tXY95Tn(F`If_T&1K6U z?DxD_*ewjRGr<4FNS2nddU%WCZ>MwDc?NV8BUPP?t_#qpszMW%O@&hEX%;6;emnBx z%ZiE01gGVtesjrz#M$0Jy-($cw*}o*9XZ-NUDFDrS@J!b>0twQKa3qYV*yuPcg|j8 zY>HQ~P>+{B?P|vWkWm%;AE#Jk@`9kR3n;5H+Q|h7#V0qMjX#ZI$g=v}ePh56BY2TX zt+Eve?e~-hIZVO;GxeFx)`~JHbW(kFvQ`AGW#*3ifa*3h9I$gN6v2mMl*FCL;1N3q zAq)md{=(jy{jBEt%Bj1MTQTDu|C|rri#KWUo076irDn;~cBBuA?c%OWpNVuIM(w+K zq(235@l@X4%%@Fl16ol71)v`O)E>dmJJEhF^B#CvZGdGzxrRqQlW z>=BPf#vnns>+BV5MgJMQfS)r#5#Vfi@@1+_&=iV^`{OJ+;4;4N%xJzw)kPFN=&jU7 zSzU4<(Uh6iap~SPtuNSpWRA6_WfZaD|DJeX7d6)JJS< z7larW;2c{J2a~GMw1Nu%BFN3d^T}>wO0@(UH^%ZKyd$!A>Tz8j&UXO5$bX&mA0nzi zpX&R+YQ;$Zs+a7b%Cu zNuw*??`h8t3&RfVw%eo^!O!$~twr)Xd1x0qrRv!3Rxq)R21-A{(!E&|N$O7oEWeZX zgfq>Dqc4|WP2DG9c@;^>>iK{XNZBNDmgQ(Lq!){~rwnCiLXk|GfP(&H>pT|x`r-;t z)=XQkD>v+^mtK|b+^0GAF7Pmj>>cl1Rw0Sth3jAn#h?x zubZuQZaZK>M@^J|9+VG(h2VT75kGwJgI(6!HpLjwFmP@6QMy{*GpWNRwzN+92aTeR zs(7bFG=dv8?wQdrFt%)wasB5IlD0oN64QmWE1pV&&9$7Qlx^>c?%t!^FXqMXt!#rT z!DDR(Qq{H5%X>-*NfLFu0jT7TU!a8KHas3sbo3{;HD>O{_Ab&-8G>NZQfu$WT|CYr z9=k7^U(HnXMiUT^!Ph zINX6gccdt$DYRt{2epWz!rJXvnUn_8k#4wxH{=G#6Kch7eSVwH~j>IFdzsO#FwFi+A65$+?2AMJqZ>6A2 zQU~@USPl4aG81|{k+e~%0(@E4B25!ec1Gfg4ccxZj#zubX@gxkUY#RI&<;Yq{q45k zVW2d{N+|8WWACi5H+S)+%xx};bs4VD86HPUph9l^X**}qdXkB|GKnrCJ_UHjEppkO8w>%%(&LX zU`K-T*`TxZJ}8)LyHkl!t~OCOo8J$}a2ETw+<&GdanAVRh0kF1OGh^p1jAyhVf5@- z8n|ShQf4QIsx)=4sI4hNe6|MhbtV!SOaJOoLy{Hzxm>j=GWMc~-2-?l?jAq%dJtCq z>x*~NRK;x$bkzTh8QoPMvXv2|Rgh@w?eDpyMM@A#?J12t4V5J_Bf z1_ZxRWBDgD2GLSgx%WB@Iv22C1UKYW1R3zTXgyq786R130Lbaby5s3@vne1fyC2t1 zr~@k5uwgwaYe^dxGks(BQNro$+v?Dg-Rnl&Hi!myU_Vq0m@g6`OhRLv=mRNomcU4O zAnBs*-kLUWI@Ks2(t?RcHhpjqjqV5Q=UAzWB0_Osh{biW@}3kdn{#B3kyvHKcG`8n zx&Ymitaw|jXyg~XJ>sBb9q)hGmtJMp;hB`|yvC1!#j(KQ-zz`WG&bKsg0*~lAY0AKgS5Jh>+e|?j_*PGZv(zh&9qJiBGS%4Hk9=Ebc8M7W_}k*>3319ouO>KCu5}0SZ^Hkpe^=#irXuRAC5|Q?Q>|&8lQd%hV9jaDhkh zg_6bucMR^&tKqvSk%kK~u3lEZm5X5vBvcodP)}ZfCi@5~|1vai#3bZ-`At}gxM3ic z0|QS3>|(ae>P(nrQaW3uwWb( z@e%-#b1~*K@|azcvhfu6gBGyNjh7xQWo;7Gz*0ugU7y}FV9}pj$C$}I4XSrGU!O*j z5h?E7I(raui(SdfxtU(?LK8x%19I$X(pOduexd+}P5*-Gva)`&oaZN&Kl77xzIA1f zGeyo?-(o8i&h>t5yUQbmIF%k7IqifB>;{2if^pc%L|ZdyWYBX zXq4YrN}7xUMUWm6`g19gd{q;#U~M@>+QC?n`xZk{i~Enb6PRLP${>IZJU6<=q$S1P}8P79?(@V-OUTWSiSb;=LMb>M?IG zhL(diQ%6)Bx87?IjqOOjn{d1>aBRk@R(41B|;# zJ!sQ^dV>9LW5_LJHjYDu5QKZ$#;N_Ka8zgoTjUP^OA22wD__M*hbw13>h7S7dNFxf zC#2umLvN%~Gjk`+3h2g7J=*5OE=$hPr^Q)#eCt6{wOmnoQ-U*!58-$Nk6x@#I5kM} zGG*7QKV#OY8URWkIPEOy)2NIXLZH^$tc{H)rI`U=w}rA&_~@lzeIWU1dl4F3Rl#Fxy2D z1zdxTYAp+YFbOEoVw!_2=NW`lCdRx>?D#+IHaE3A-}rmPx}gZp|G!K(5-D#!1qm+i z0BZ>rmcaVl?y*bDlXug+W_|`L{(xYRClT;&A8=8`7ej`gEgY@sCkz~roZx*FgD^n5 zJ*)rIV)%6l8s>)SJgwnZ0rs)fg8r8~gjv*c;9uUYcm@|7KKFKe`sper)Awj*4)<#x zz&^W*NtgoAcEB7SIP~;E9KugC^-NsevjuJHI!_ESH_v)+X3vU<-t}J#lHeHeU@Vw? z2!xkqlRX_w084Vd8~=eNkaTk|RUGShNPYP1#Y*AUBO7=n=a@k-&ue~lkSG>jgxG`> zKqRFAiKM52?e5E-ziOh_E%_w1!{Eh~fA#Q@(21SN<$udKp59C*=&5X%1EQ@G>E*kl zYMP5lIkqDik%@tjS2p{HRJ`VLXXf=am4%a6*4abV{!CWXzfoXWzDYRlgnJfgU4ups zZmdI8e<@EQHNLbTSX?<{U1kf zzKr7(!+EDaFjRt0Y!)y7&4&H?05S>-9*X{|(#FR{cMlazFrMwUjPJ@OG15Z%0M)2@ z+e`b_iFq_FzJ*aON_HvXTX#2lE0H~lR>3)L7vMR4-Q2mrS}rkO`WPcz&`>&xtP-^K z(1Jlt%1I!t&DsAJAS?n^y#0K+IDH#lfP76c%)@K(F)V_p>VfP`OkkK%eOhCaX~8S} z4g?_((IU+_{Y5(8>E9l5zpH1Ex5|erpp(X7J;y708t!9Oj!w>#_g=K~9pq%Fq!;FP zfDg=$wF@H4O~7F0Iw*1$=K|{&9mgw-CKK0>>KTehFsDw2LM`_4elb2_27&+-efQGC ze94+pz6rH#(L!ALxw)K(to1}j*buFgAGJN@P#c9FS+m5p$4MFLjhKyNOnhus*`t! z&EWPX!LW_&LbvWky*(|0x``Z=~QnEQ=*haqn|_tgxzAt)VcBLd;lYv z7fyb*z=GI2Wh%eHI4WO_&yF^+fzX{d^Mhv*WOI>q;>T2V)PX}E%Xww16b(;46fWJc zgT%b29Z?<}=?`{?G7~Yh4^`d5$qr^h*YLqfXWok2AYd-^$Fh!pT#X9!fBE$T&p18# zeu!m({LeZ_h?KlG2Ibf7W+v$)sAA%$zCf!-yolt}7k!mSHh;X?@E0{Am$TYJq~KJD zHOckHsI=y|3kVu21fV4JF0z!To^xvw@LW(3fNYt-ICaC*e$AGyZHtfK(NUcA#AG@; z8cS>i#I0}nA{^$eUqUoq& z5~|Q(%@hHEE23zMvEAVPPBR%S1F5AS7im-p+S~(kvF_KxY zd^fSc>PI0prSvntGar~HDqQHh2=rMDY%v+UkkI`MQx2%&^Dh__QE9c&W(l2#leT9a9FV0> zuV6uYzK&{Sr;~J)_s^mkvQh&{U|US|0%Wv%Nl+ z=*r)+RR&#*gAt&?ceir3%OTKZxm0*Z7h=n^Z{Ht+7}CQmQevN^*#eO?I6$>~?z{^y zkY;Dl^&DLJHCb?A0F1f5yL-3&@S5}$wgFEr?a!_LI2 zWIOK%i_B$q>rB{!`~Y9Zd9QT989ln7rd9#?=m~D|+uwEnO(c?U@L7q$E#*8@Xpcjx zleB3~#c>4gPN=(=58L{h-?}Iv$oB6gHb4q>TL(Po9)_d>>$VHBMXdKsv8PoFeG1BL zDkl00A$bf;m}}OuK=0jlt@vi(T&?R!>>c6tQV0cLnZH1?7ea0Cna_0-NZPdjK_OvUv{7Z_!<-{Kb7sn-Buc7_6RFz0Hlz|G1XZ`mt% z^L6Ht=ThprPPf!7(e95ZrMNg}vQWJTe~%(l8-tr{LLCW;8)PNBN$we5PvB?;4(AbJ zC;WvLy-LsW5y$i**fI!-T?r^LJU*fg{ekTn5lZ;&d=7j;tOml$dA<+)IP-`b+ znP$~P?<4OF)i;X(9klqLWB0F@u%v;3l_Ch82vEBp;rd!o!v$!cCT|Kl7|>fFTj=`* z@u+((zyualKJ=4v6H@wUAfbI9X+dz7I1S9AH$OX?)y)s4ZD*em1SMJaU&k~Z3@Mz3 zTjerTZcju26YEdC!$1;rBV=hc<;Ut|3g{5bcgD@0hxNeV!H$Nl(yT*ohzv$-xdBmn z5eL%j=Ud={85D)qi2z-2jT<@rbPKx!Py417UJ6YfELkTQAtvAAekldNEY%XEs}tHa zKR`b;zD*^4;!fMpq3{T=G8#YSbvDr=`MOWu9bMcQnKFzYh^duG7~}M!+Ip~EKRdB- zLROTWvOxcsN3g=Fgst~X_Sm^oN$Lvv$LM5z8V3-Q%yA79gYw%LAZOiiDMdGZcYPT) zVDSG-!AEI2b3TE%QFUTW<%#fdFaYzDhX?x-k0tu>kL|zv-%`w3-A2EE%Zp_oV+5(} z9>LJlmr}f?l2P%P`w4UbE6bxg@F$0qVm>5>a=xM7q)#T!L<#Dcdr4M-c6h5HXfIat zq?t@;x~nZ`1}Yi9Y0NVId3IU;+htcNUz1hi|C$T#AiWbG&f}xIiAEDo1>>!Qj1KWx zt6WlzzdbSqywHhYE0JB7@~54)4(wIBc2~aaEE}Va&&$=>97@Ce2zE3W!YupN-ei!h zc0yf?Dkz3Zyt!_6da`>H?^V~j802y22Pb}BiYs_XgYfCcN!^t%WN&9ZCqeIlmU&|# jPJh8b8IiZlP+c;!ZCY?;w5F7Z=e=QG-I>Tq4*&oORH6cx diff --git a/programs/develop/cedit/CEDIT.INI b/programs/develop/cedit/CEDIT.INI index 99e98479ea..d26ed5c9f1 100644 --- a/programs/develop/cedit/CEDIT.INI +++ b/programs/develop/cedit/CEDIT.INI @@ -48,7 +48,7 @@ KW3 = [lang_C] KW1 = auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while -KW2 = #define,#error,#include,#elif,#if,#line,#else,#ifdef,#pragma,#endif,#ifndef,#undef +KW2 = define,error,include,elif,if,line,else,ifdef,pragma,endif,ifndef,undef KW3 = [lang_Lua] diff --git a/programs/develop/cedit/SRC/CEdit.ob07 b/programs/develop/cedit/SRC/CEdit.ob07 index d16d30b67b..7b9e722864 100644 --- a/programs/develop/cedit/SRC/CEdit.ob07 +++ b/programs/develop/cedit/SRC/CEdit.ob07 @@ -20,17 +20,17 @@ MODULE CEdit; IMPORT - SYSTEM, OpenDlg, K := KolibriOS, + OpenDlg, K := KolibriOS, U := Utils, Lines, Menu, List, G := Graph, T := Text, E := Encodings, CB := Clipboard, Languages, ChangeLog, Scroll, - RW, Ini, box_lib, LibImg; + RW, Ini, box_lib, Icons; CONST - header = "CEdit (24-may-2021)"; + header = "CEdit (03-jun-2021)"; - ShellFilter = "";(* "SH|"; *) + ShellFilter = ""; EditFilter = "SH|ASM|TXT|INC|OB07|C|CPP|H|PAS|PP|LUA|INI"; fontWidth = K.fontWidth; @@ -73,7 +73,6 @@ CONST MainMenuHeight = fontHeight + 7; - btnColor = 0CCCCCCH; btnHeight = 25; btnWidth = 75; btnTop = MainMenuHeight + 3; @@ -84,9 +83,7 @@ CONST RIGHT = scrollWidth - 2; BOTTOM = scrollWidth + 25; - winColor = K.winColor; minWinWidth = 635; minWinHeight = 542; - - toolbarColor = 0DFDFDFH; + minWinWidth = 635; minWinHeight = 542; SEARCH_PADDING = 10; searchLeft = 10; @@ -121,7 +118,6 @@ CONST menuExit = 15; menuNumbers = 20; - (*menuSettings = 21;*) menuColors = 1000; menuMaxColors = menuColors + Ini.MAX_SECTIONS - 1; @@ -148,6 +144,7 @@ CONST menuPipet = 70; menuSysFunc = 71; + VAR canvas: G.tCanvas; font: G.tFont; @@ -190,7 +187,7 @@ BEGIN U.int2str(col, s2); U.append(s1, ": "); U.append(s1, s2); - K.DrawText(LEFT, y, 0, s1) + K.DrawText(LEFT, y, K.textColor, s1) END WritePos; @@ -206,11 +203,6 @@ BEGIN ELSE edit.flags := ORD(BITS(edit.flags) - {1}) END; -(* IF value THEN - edit.color := 0FFFFFFH - ELSE - edit.color := 0D0D0D0H - END;*) IF search THEN box_lib.edit_box_draw(edit) END @@ -241,9 +233,9 @@ BEGIN right := left + width - 1; x := minWidth DIV 2 + left; y := (height - fontHeight) DIV 2 + top; - K.DrawRect(left, top, width, height, winColor); + K.DrawRect(left, top, width, height, K.winColor); Rect(left, top, right, bottom, borderColor); - K.DrawText(x, y, 0, s); + K.DrawText(x, y, K.textColor, s); END Message; @@ -276,15 +268,6 @@ BEGIN END Replaced; -PROCEDURE icons16 (icons, n, x, y: INTEGER); -VAR - sizeX, sizeY, data: INTEGER; -BEGIN - LibImg.GetInf(icons, sizeX, sizeY, data); - K.DrawImage(data + 16*16*3*n, 16, 16, x, y) -END icons16; - - PROCEDURE toolbarIcons; CONST iconPad = (toolBtnSize - 16) DIV 2; @@ -293,56 +276,51 @@ VAR BEGIN x := searchLeft + (toolBtnSize + 5)*2; IF text.modified THEN - icons16(icons, 5, x + iconPad, btnTop + iconPad) + Icons.draw(icons, 5, x + iconPad, btnTop + iconPad) ELSE - icons16(grayIcons, 5, x + iconPad, btnTop + iconPad) + Icons.draw(grayIcons, 5, x + iconPad, btnTop + iconPad) END; IF text.edition # NIL THEN x := searchLeft + (toolBtnSize + 5)*4 + toolbarDelim*2; IF ChangeLog.isFirstGuard(text.edition) THEN - icons16(grayIcons, 37, x + iconPad, btnTop + iconPad) + Icons.draw(grayIcons, 37, x + iconPad, btnTop + iconPad) ELSE - icons16(icons, 37, x + iconPad, btnTop + iconPad) + Icons.draw(icons, 37, x + iconPad, btnTop + iconPad) END; x := searchLeft + (toolBtnSize + 5)*5 + toolbarDelim*2; IF ChangeLog.isLastGuard(text.edition) THEN - icons16(grayIcons, 36, x + iconPad, btnTop + iconPad) + Icons.draw(grayIcons, 36, x + iconPad, btnTop + iconPad) ELSE - icons16(icons, 36, x + iconPad, btnTop + iconPad) + Icons.draw(icons, 36, x + iconPad, btnTop + iconPad) END -(* ELSE - x := searchLeft + (toolBtnSize + 5)*4; - icons16(grayIcons, 37, x + iconPad, btnTop + iconPad); - x := searchLeft + (toolBtnSize + 5)*5; - icons16(grayIcons, 36, x + iconPad, btnTop + iconPad)*) END; IF T.selected(text) THEN - color := 00000FFH + color := K.caseColor ELSE - color := 0808080H + color := K.disCaseColor END; x := searchLeft + (toolBtnSize + 5)*6 + toolbarDelim*3; - K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, toolbarColor); + K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, K.toolbarColor); K.DrawText69(x + (toolBtnSize - 12) DIV 2, btnTop + (toolBtnSize - 9) DIV 2 + 2, color, "AB"); INC(x, toolBtnSize + 5); - K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, toolbarColor); + K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, K.toolbarColor); K.DrawText69(x + (toolBtnSize - 12) DIV 2, btnTop + (toolBtnSize - 9) DIV 2 + 2, color, "ab"); x := searchLeft + (toolBtnSize + 5)*8 + toolbarDelim*4; IF buildScript # "" THEN - icons16(icons, 54, x + iconPad, btnTop + iconPad) + Icons.draw(icons, 54, x + iconPad, btnTop + iconPad) ELSE - icons16(grayIcons, 54, x + iconPad, btnTop + iconPad) + Icons.draw(grayIcons, 54, x + iconPad, btnTop + iconPad) END; INC(x, toolBtnSize + 5); IF runScript # "" THEN - icons16(icons, 53, x + iconPad, btnTop + iconPad) + Icons.draw(icons, 53, x + iconPad, btnTop + iconPad) ELSE - icons16(grayIcons, 53, x + iconPad, btnTop + iconPad) + Icons.draw(grayIcons, 53, x + iconPad, btnTop + iconPad) END END toolbarIcons; @@ -350,9 +328,9 @@ END toolbarIcons; PROCEDURE WriteModified (x, y: INTEGER); BEGIN modified := text.modified; - K.DrawRect(x, TOP + canvas.height + scrollWidth - 1, 9*fontWidth, BOTTOM - scrollWidth + 1, winColor); + K.DrawRect(x, TOP + canvas.height + scrollWidth - 1, 9*fontWidth, BOTTOM - scrollWidth + 1, K.winColor); IF modified THEN - K.DrawText866(x, y, 0, "modified") + K.DrawText866(x, y, K.textColor, "modified") END END WriteModified; @@ -370,7 +348,7 @@ BEGIN T.draw(text); K.ClientSize(width, height); y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2; - K.DrawRect(LEFT, TOP + canvas.height + scrollWidth - 1, 16*fontWidth, BOTTOM - scrollWidth + 1, winColor); + K.DrawRect(LEFT, TOP + canvas.height + scrollWidth - 1, 16*fontWidth, BOTTOM - scrollWidth + 1, K.winColor); WritePos(y); IF modified # text.modified THEN @@ -421,7 +399,7 @@ VAR BEGIN right := left + EditBox_Width + SEARCH_PADDING*2; bottom := top + 395 + btnHeight + SEARCH_PADDING; - color := T.colors.border; + color := K.borderColor; Rect(left, top, right, bottom, color); K.CreateButton(btnCloseFind, right - 20, top, 20, 20, 0EF999FH, ""); K.DrawLine(right - 14, top + 5, right - 5, top + 14, 0FFFFFFH); @@ -433,11 +411,11 @@ BEGIN INC(top, 15); INC(left, SEARCH_PADDING); - K.DrawText866(left, top, 0, "find"); - K.DrawText866(left, top + 55, 0, "replace with"); + K.DrawText866(left, top, K.textColor, "find"); + K.DrawText866(left, top + 55, K.textColor, "replace with"); K.CreateButton(btnFindEdit + ORD({30}), left, top + 20, EditBox_Width, fontHeight + 5, 0, ""); K.CreateButton(btnReplaceEdit + ORD({30}), left, top + 75, EditBox_Width, fontHeight + 5, 0, ""); - K.DrawText866(left, top + 330, 0, "go to line"); + K.DrawText866(left, top + 330, K.textColor, "go to line"); K.CreateButton(btnGotoEdit + ORD({30}), left, top + 350, EditBox_Width, fontHeight + 5, 0, ""); BKW.top_s := BKW.top_s MOD 65536 + (top + 110) * 65536; CS.top_s := CS.top_s MOD 65536 + (top + 140) * 65536; @@ -454,66 +432,19 @@ BEGIN box_lib.edit_box_draw(FindEdit); box_lib.edit_box_draw(ReplaceEdit); box_lib.edit_box_draw(GotoEdit); - box_lib.check_box_draw2(BKW); K.DrawText866(left + 20, top + 110, 0, "backward"); - box_lib.check_box_draw2(CS); K.DrawText866(left + 20, top + 140, 0, "match case"); - box_lib.check_box_draw2(WH); K.DrawText866(left + 20, top + 170, 0, "whole word"); + box_lib.check_box_draw2(BKW); K.DrawText866(left + 20, top + 110, K.textColor, "backward"); + box_lib.check_box_draw2(CS); K.DrawText866(left + 20, top + 140, K.textColor, "match case"); + box_lib.check_box_draw2(WH); K.DrawText866(left + 20, top + 170, K.textColor, "whole word"); y := top + 200; - K.CreateButton(btnFindNext, left, y, btnWidth, btnHeight, btnColor, "next"); INC(y, btnHeight + 10); - K.CreateButton(btnReplace, left, y, btnWidth, btnHeight, btnColor, "replace"); INC(y, btnHeight + 10); - K.CreateButton(btnReplaceAll, left, y, btnWidth + 5*fontWidth - 2, btnHeight, btnColor, "replace all"); - K.CreateButton(btnGoto, left, top + 380, btnWidth, btnHeight, btnColor, "go"); + K.CreateButton(btnFindNext, left, y, btnWidth, btnHeight, K.btnColor, "next"); INC(y, btnHeight + 10); + K.CreateButton(btnReplace, left, y, btnWidth, btnHeight, K.btnColor, "replace"); INC(y, btnHeight + 10); + K.CreateButton(btnReplaceAll, left, y, btnWidth + 5*fontWidth - 2, btnHeight, K.btnColor, "replace all"); + K.CreateButton(btnGoto, left, top + 380, btnWidth, btnHeight, K.btnColor, "go"); END SearchPanel; -PROCEDURE gray (icons: INTEGER); -VAR - sizeX, sizeY, data, x, y: INTEGER; - b, g, r, gr: BYTE; -BEGIN - LibImg.GetInf(icons, sizeX, sizeY, data); - FOR y := 0 TO sizeY - 1 DO - FOR x := 0 TO sizeX - 1 DO - SYSTEM.GET8(data, b); - SYSTEM.GET8(data + 1, g); - SYSTEM.GET8(data + 2, r); - gr := (r + g + b) DIV 3; - SYSTEM.PUT8(data, gr); - SYSTEM.PUT8(data + 1, gr); - SYSTEM.PUT8(data + 2, gr); - INC(data, 3); - END - END -END gray; - - -PROCEDURE iconsBackColor (icons: INTEGER); -VAR - sizeX, sizeY, data, x, y: INTEGER; - b, g, r: BYTE; -BEGIN - LibImg.GetInf(icons, sizeX, sizeY, data); - FOR y := 0 TO sizeY - 1 DO - FOR x := 0 TO sizeX - 1 DO - SYSTEM.GET8(data, b); - SYSTEM.GET8(data + 1, g); - SYSTEM.GET8(data + 2, r); - IF b + g + r = 765 THEN - b := toolbarColor MOD 256; - g := toolbarColor DIV 256 MOD 256; - r := toolbarColor DIV 65536 MOD 256 - END; - SYSTEM.PUT8(data, b); - SYSTEM.PUT8(data + 1, g); - SYSTEM.PUT8(data + 2, r); - INC(data, 3); - END - END -END iconsBackColor; - - PROCEDURE draw_window; CONST - selMenuColor = 0CCE8FFH; iconPad = (toolBtnSize - 16) DIV 2; VAR width, height, x, y: INTEGER; @@ -521,10 +452,10 @@ VAR PROCEDURE drawToolbarBtn (id, x: INTEGER); BEGIN - K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, toolbarColor); - K.DrawLine(x, btnTop + toolBtnSize, x + toolBtnSize, btnTop + toolBtnSize, 0808080H); - K.DrawLine(x + toolBtnSize, btnTop, x + toolBtnSize, btnTop + toolBtnSize, 0808080H); - K.CreateButton(id + ORD({30}), x, btnTop, toolBtnSize, toolBtnSize, btnColor, ""); + K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, K.toolbarColor); + K.DrawLine(x, btnTop + toolBtnSize, x + toolBtnSize, btnTop + toolBtnSize, K.shadowColor); + K.DrawLine(x + toolBtnSize, btnTop, x + toolBtnSize, btnTop + toolBtnSize, K.shadowColor); + K.CreateButton(id + ORD({30}), x, btnTop, toolBtnSize, toolBtnSize, K.btnColor, ""); END drawToolbarBtn; @@ -533,26 +464,27 @@ VAR menuColor, n: INTEGER; BEGIN IF menu.tid # 0 THEN - menuColor := selMenuColor + menuColor := K.selMenuColor ELSE - menuColor := winColor + menuColor := K.winColor END; n := LENGTH(caption); K.DrawRect(x, 0, n*fontWidth + 2, MainMenuHeight, menuColor); - K.CreateButton(btn + ORD({30}), x, 0, n*fontWidth + 2, MainMenuHeight, btnColor, caption); + K.CreateButton(btn + ORD({30}), x, 0, n*fontWidth + 2, MainMenuHeight, K.btnColor, ""); + K.DrawText(x + 1, (MainMenuHeight - fontHeight) DIV 2 + 1, K.textColor, caption) END drawMainMenu; BEGIN K.BeginDraw; - K.CreateWindow(50 + K.GetTickCount() MOD 128, 50 + K.GetTickCount() MOD 128, winWidth, winHeight, winColor, 73H, 0, 0, header); + K.CreateWindow(50 + K.GetTickCount() MOD 128, 50 + K.GetTickCount() MOD 128, winWidth, winHeight, K.winColor, 73H, 0, 0, header); IF (text # NIL) & ~K.RolledUp() THEN confirm := FALSE; K.ClientSize(width, height); - K.DrawRect(0, 0, width, TOP, winColor); - K.DrawRect(0, 0, LEFT, height, winColor); - K.DrawRect(LEFT + canvas.width - 1, TOP + canvas.height - 1, scrollWidth, scrollWidth, winColor); + K.DrawRect(0, 0, width, TOP, K.winColor); + K.DrawRect(0, 0, LEFT, height, K.winColor); + K.DrawRect(LEFT + canvas.width - 1, TOP + canvas.height - 1, scrollWidth, scrollWidth, K.winColor); drawMainMenu(menuFile, menuFileX, btnFile, "file"); drawMainMenu(menuEdit, menuEditX, btnEdit, "edit"); @@ -565,18 +497,18 @@ BEGIN x := searchLeft; drawToolbarBtn(btnNew, x); - icons16(icons, 2, x + iconPad, btnTop + iconPad); + Icons.draw(icons, 2, x + iconPad, btnTop + iconPad); INC(x, toolBtnSize + 5); drawToolbarBtn(btnOpen, x); - icons16(icons, 0, x + iconPad, btnTop + iconPad); + Icons.draw(icons, 0, x + iconPad, btnTop + iconPad); INC(x, toolBtnSize + 5); drawToolbarBtn(btnSave, x); INC(x, toolBtnSize + 5 + toolbarDelim); drawToolbarBtn(btnSearch, x); - icons16(icons, 49, x + iconPad, btnTop + iconPad); + Icons.draw(icons, 49, x + iconPad, btnTop + iconPad); INC(x, toolBtnSize + 5 + toolbarDelim); drawToolbarBtn(btnUndo, x); @@ -586,45 +518,46 @@ BEGIN INC(x, toolBtnSize + 5 + toolbarDelim); drawToolbarBtn(btnUpper, x); - K.DrawText69(x + (toolBtnSize - 12) DIV 2, btnTop + (toolBtnSize - 9) DIV 2 + 2, 0, "AB"); INC(x, toolBtnSize + 5); drawToolbarBtn(btnLower, x); - K.DrawText69(x + (toolBtnSize - 12) DIV 2, btnTop + (toolBtnSize - 9) DIV 2 + 2, 0, "ab"); INC(x, toolBtnSize + 5 + toolbarDelim); drawToolbarBtn(btnBuild, x); - icons16(icons, 54, x + iconPad, btnTop + iconPad); + Icons.draw(icons, 54, x + iconPad, btnTop + iconPad); INC(x, toolBtnSize + 5); drawToolbarBtn(btnRun, x); - icons16(icons, 53, x + iconPad, btnTop + iconPad); + Icons.draw(icons, 53, x + iconPad, btnTop + iconPad); INC(x, toolBtnSize + 5); - K.CreateButton(btnUp, LEFT + canvas.width - 1, TOP, scrollWidth - 1, scrollWidth, btnColor, 0X); - K.DrawText69(LEFT + canvas.width - 1 + (scrollWidth - 6) DIV 2, TOP + (scrollWidth - 9) DIV 2, 0, 18X); - K.CreateButton(btnDown, LEFT + canvas.width - 1, TOP + canvas.height - scrollWidth - 1, scrollWidth - 1, scrollWidth, btnColor, 0X); - K.DrawText69(LEFT + canvas.width - 1 + (scrollWidth - 6) DIV 2, TOP + canvas.height - scrollWidth + (scrollWidth - 9) DIV 2, 0, 19X); + K.CreateButton(btnUp, LEFT + canvas.width - 1, TOP, scrollWidth - 1, scrollWidth, K.btnColor, 0X); + K.DrawText69(LEFT + canvas.width - 1 + (scrollWidth - 6) DIV 2, TOP + (scrollWidth - 9) DIV 2, K.btnTextColor, 18X); + K.CreateButton(btnDown, LEFT + canvas.width - 1, TOP + canvas.height - scrollWidth - 1, scrollWidth - 1, scrollWidth, K.btnColor, 0X); + K.DrawText69(LEFT + canvas.width - 1 + (scrollWidth - 6) DIV 2, TOP + canvas.height - scrollWidth + (scrollWidth - 9) DIV 2, K.btnTextColor, 19X); - K.CreateButton(btnLeft, LEFT, TOP + canvas.height - 1, scrollWidth, scrollWidth - 1, btnColor, 0X); - K.DrawText69(LEFT + (scrollWidth - 6) DIV 2, TOP + canvas.height - 1 + (scrollWidth - 9) DIV 2 + 1, 0, 1BX); - K.CreateButton(btnRight, LEFT + canvas.width - scrollWidth - 1, TOP + canvas.height - 1, scrollWidth, scrollWidth - 1, btnColor, 0X); - K.DrawText69(LEFT + canvas.width - scrollWidth - 1 + (scrollWidth - 6) DIV 2, TOP + canvas.height - 1 + (scrollWidth - 9) DIV 2 + 1, 0, 1AX); + K.CreateButton(btnLeft, LEFT, TOP + canvas.height - 1, scrollWidth, scrollWidth - 1, K.btnColor, 0X); + K.DrawText69(LEFT + (scrollWidth - 6) DIV 2, TOP + canvas.height - 1 + (scrollWidth - 9) DIV 2 + 1, K.btnTextColor, 1BX); + K.CreateButton(btnRight, LEFT + canvas.width - scrollWidth - 1, TOP + canvas.height - 1, scrollWidth, scrollWidth - 1, K.btnColor, 0X); + K.DrawText69(LEFT + canvas.width - scrollWidth - 1 + (scrollWidth - 6) DIV 2, TOP + canvas.height - 1 + (scrollWidth - 9) DIV 2 + 1, K.btnTextColor, 1AX); + + K.PutPixel(LEFT + canvas.width + scrollWidth - 2, TOP, K.winColor); + K.PutPixel(LEFT, TOP + canvas.height + scrollWidth - 2, K.winColor); y := (btnHeight - fontHeight) DIV 2 + btnTop; CASE text.enc OF - |E.UTF8: K.DrawText866(width - 6*fontWidth, y, 0, "UTF-8") - |E.UTF8BOM: K.DrawText866(width - 10*fontWidth, y, 0, "UTF-8-BOM") - |E.CP866: K.DrawText866(width - 6*fontWidth, y, 0, "CP866") - |E.W1251: K.DrawText866(width - 13*fontWidth, y, 0, "Windows-1251") + |E.UTF8: K.DrawText866(width - 6*fontWidth, y, K.textColor, "UTF-8") + |E.UTF8BOM: K.DrawText866(width - 10*fontWidth, y, K.textColor, "UTF-8-BOM") + |E.CP866: K.DrawText866(width - 6*fontWidth, y, K.textColor, "CP866") + |E.W1251: K.DrawText866(width - 13*fontWidth, y, K.textColor, "Windows-1251") END; IF search THEN SearchPanel(searchLeft, TOP) END; y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2; - K.DrawRect(LEFT + 16*fontWidth, TOP + canvas.height + scrollWidth - 1, width - LEFT - 25*fontWidth, BOTTOM - scrollWidth + 1, winColor); - K.DrawText866(LEFT + 16*fontWidth, y, 0, text.fileName); + K.DrawRect(LEFT + 16*fontWidth, TOP + canvas.height + scrollWidth - 1, width - LEFT - 25*fontWidth, BOTTOM - scrollWidth + 1, K.winColor); + K.DrawText866(LEFT + 16*fontWidth, y, K.textColor, text.fileName); WriteModified(width - 9*fontWidth, y); repaint END; @@ -763,11 +696,11 @@ BEGIN top := (canvas.height - height) DIV 2 + TOP; right := left + width - 1; bottom := top + height - 1; - K.DrawRect(left, top, width, height, winColor); + K.DrawRect(left, top, width, height, K.winColor); Rect(left, top, right, bottom, lineColor); - K.DrawText866(left + (width - 10*fontWidth) DIV 2, top + 10, 0, "save file?"); - K.CreateButton(btnYes, left + 10, top + 35, btnWidth, btnHeight, btnColor, "yes"); - K.CreateButton(btnNo, left + 20 + btnWidth, top + 35, btnWidth, btnHeight, btnColor, "no"); + K.DrawText866(left + (width - 10*fontWidth) DIV 2, top + 10, K.textColor, "save file?"); + K.CreateButton(btnYes, left + 10, top + 35, btnWidth, btnHeight, K.btnColor, "yes"); + K.CreateButton(btnNo, left + 20 + btnWidth, top + 35, btnWidth, btnHeight, K.btnColor, "no"); END Confirm; @@ -1119,9 +1052,8 @@ VAR idx: INTEGER; BEGIN menu := List.create(NIL); - Menu.AddMenuItem(menu, menuNumbers, "line numbers"); + Menu.AddMenuItem(menu, menuNumbers, "line numbers"); Menu.delimiter(menu); - (*Menu.AddMenuItem(menu, menuSettings, "settings");*) colors := Ini.sections.first(Ini.tSection); idx := menuColors; @@ -1239,7 +1171,6 @@ BEGIN Menu.setCheck(menu, menuWin1251, ORD(text.enc = E.W1251)*2); INC(x, menuEncodingX) ELSIF menu = menuView THEN - (*Menu.setEnabled(menu, menuSettings, FALSE);*) Menu.setCheck(menu, menuNumbers, ORD(text.numbers)); FOR i := 0 TO Ini.sections.count - 1 DO Menu.setCheck(menu, menuColors + i, ORD(Ini.curSectionNum = i)*2) @@ -1280,20 +1211,16 @@ VAR scroll: INTEGER; err: INTEGER; fileName, filePath: RW.tFileName; + cliWidth, cliHeight: INTEGER; resized: BOOLEAN; firstClickX, firstClickY, time: INTEGER; BEGIN + K.GetSystemColors; + Icons.get(icons, grayIcons); modified := FALSE; mainTID := K.ThreadID(); K.SetIPC(IPC); U.ptr2str(K.GetName(), AppPath); -(* U.getPath(AppPath, fileName); - U.append8(fileName, "/Icons16.png");*) - icons := LibImg.LoadFromFile("/rd/1/Icons16.png", 16, y); - grayIcons := LibImg.LoadFromFile("/rd/1/Icons16.png", 16, y); - gray(grayIcons); - iconsBackColor(icons); - iconsBackColor(grayIcons); Ini.load(AppPath); K.SetEventsMask({0, 1, 2, 5, 6, 31}); LeftButtonUp; @@ -1301,6 +1228,8 @@ BEGIN shift := {}; winWidth := minWinWidth; winHeight := minWinHeight; + cliWidth := winWidth; + cliHeight := winHeight; LEFT := 10; canvas := G.CreateCanvas(winWidth - (LEFT + RIGHT + 10), winHeight - (TOP + BOTTOM + 4) - K.SkinHeight()); font := G.CreateFont(1, "", {}); @@ -1330,8 +1259,8 @@ BEGIN END; OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, ""); - vScroll := Scroll.create(scrollWidth, canvas.height - scrollWidth*2 + 1, 0A0A0A0H, winColor); - hScroll := Scroll.create(canvas.width - scrollWidth*2, scrollWidth, 0A0A0A0H, winColor); + vScroll := Scroll.create(scrollWidth, canvas.height - scrollWidth*2 + 1); + hScroll := Scroll.create(canvas.width - scrollWidth*2, scrollWidth); T.resize(canvas.width, canvas.height); T.SetPos(text, 0, 0); confirm := FALSE; @@ -1351,9 +1280,13 @@ BEGIN WHILE TRUE DO CASE K.WaitForEvent() OF |1: + K.GetSystemColors; + Icons.get(icons, grayIcons); IF ~K.RolledUp() THEN - K.WinSize(width, height); - IF (width # winWidth) OR (height # winHeight) THEN + K.ClientSize(width, height); + IF (width # cliWidth) OR (height # cliHeight) THEN + cliWidth := width; + cliHeight := height; resize; resized := TRUE END; diff --git a/programs/develop/cedit/SRC/Ini.ob07 b/programs/develop/cedit/SRC/Ini.ob07 index ecf1622b03..bc6524d56f 100644 --- a/programs/develop/cedit/SRC/Ini.ob07 +++ b/programs/develop/cedit/SRC/Ini.ob07 @@ -21,7 +21,7 @@ MODULE Ini; IMPORT - KOSAPI, SYSTEM, RW, Text, Utils, File, List, Languages; + KOSAPI, SYSTEM, RW, Text, Utils, File, List, Languages, KolibriOS; CONST @@ -141,7 +141,7 @@ BEGIN key3 := getColor("key3", 0008080H); Text.setColors(text, back, seltext, selback, modified, saved, curline, numtext, numback, - comment, string, num, delim, key1, key2, key3, 808080H); + comment, string, num, delim, key1, key2, key3); END selectSection; diff --git a/programs/develop/cedit/SRC/KolibriOS.ob07 b/programs/develop/cedit/SRC/KolibriOS.ob07 index adb5114ea8..930d4ec5f7 100644 --- a/programs/develop/cedit/SRC/KolibriOS.ob07 +++ b/programs/develop/cedit/SRC/KolibriOS.ob07 @@ -23,10 +23,30 @@ IMPORT KOSAPI, SYSTEM; CONST +(* winColor* = 0EEEEEEH; + textColor* = 0000000H; + btnColor* = 0CCCCCCH; + btnTextColor* = 0000000H; + toolbarColor* = 0DFDFDFH; + scrollColor* = 0A0A0A0H; + scrollBkColor* = winColor; + borderColor* = 0808080H; + selMenuColor* = 0CCE8FFH; + shadowColor* = 0808080H; + caseColor* = 00000FFH; + disCaseColor* = 0808080H; +*) fontWidth* = 8; fontHeight* = 16; +VAR + + winColor*, textColor*, btnColor*, btnTextColor*, + toolbarColor*, scrollColor*, scrollBkColor*, + borderColor*, selMenuColor*, shadowColor*, + caseColor*, disCaseColor*: INTEGER; + PROCEDURE GetCommandLine* (): INTEGER; RETURN KOSAPI.GetCommandLine() @@ -154,7 +174,7 @@ BEGIN KOSAPI.sysfunc5(8, LSL(Left, 16) + Width, LSL(Top, 16) + Height, id, Color); x := Left + (Width - fontWidth * LENGTH(Caption)) DIV 2; y := Top + (Height - fontHeight) DIV 2 + 1; - DrawText(x, y, 0, Caption) + DrawText(x, y, btnTextColor, Caption) END CreateButton; @@ -298,4 +318,41 @@ BEGIN END SendIPC; +PROCEDURE PutPixel* (x, y, color: INTEGER); +BEGIN + KOSAPI.sysfunc4(1, x, y, color) +END PutPixel; + + +PROCEDURE GetSystemColors*; +VAR + buf: ARRAY 10 OF INTEGER; +BEGIN +(* winColor := 0EEEEEEH; + textColor := 0000000H; + btnColor := 0CCCCCCH; + btnTextColor := 0000000H; + scrollColor := 0A0A0A0H; + scrollBkColor := winColor; + borderColor := 0808080H; + *) + selMenuColor := 0CCE8FFH; + toolbarColor := 0DFDFDFH; + shadowColor := 0808080H; + caseColor := 00000FFH; + disCaseColor := 0808080H; + + ASSERT(LEN(buf) >= 10); + KOSAPI.sysfunc4(48, 3, SYSTEM.ADR(buf[0]), 40); + + winColor := buf[5]; + textColor := buf[8]; + btnColor := buf[6]; + btnTextColor := buf[7]; + scrollColor := btnColor; + scrollBkColor := winColor; + borderColor := buf[9]; +END GetSystemColors; + + END KolibriOS. \ No newline at end of file diff --git a/programs/develop/cedit/SRC/Languages.ob07 b/programs/develop/cedit/SRC/Languages.ob07 index d949d51fcc..ca5e554a81 100644 --- a/programs/develop/cedit/SRC/Languages.ob07 +++ b/programs/develop/cedit/SRC/Languages.ob07 @@ -319,7 +319,7 @@ BEGIN END comments; -PROCEDURE EnterKW (s: ARRAY OF CHAR; VAR KW: tKeyWords); +PROCEDURE EnterKW (s: ARRAY OF CHAR; VAR KW: tKeyWords; CPrep: BOOLEAN); CONST SPACE = 20X; CR = 0DX; LF = 0AX; TAB = 9X; COMMA = ","; VAR @@ -333,7 +333,8 @@ BEGIN k := KW.cnt; i := 0; REPEAT - j := 0; + KW.words[k, 0] := "#"; + j := ORD(CPrep); WHILE (s[i] # 0X) & ~delim(s[i]) DO KW.words[k, j] := WCHR(ORD(s[i])); INC(i); @@ -360,8 +361,8 @@ BEGIN KW[i].cnt := 0; key[2] := CHR(ORD("1") + i); getStr(lang, key, s); - EnterKW(s, KW[i]) - END; + EnterKW(s, KW[i], (lang = "lang_C") & (i = 1)) + END END loadKW; diff --git a/programs/develop/cedit/SRC/Menu.ob07 b/programs/develop/cedit/SRC/Menu.ob07 index e19942bf0d..50c76fdaa1 100644 --- a/programs/develop/cedit/SRC/Menu.ob07 +++ b/programs/develop/cedit/SRC/Menu.ob07 @@ -48,7 +48,6 @@ TYPE END; tMenu* = POINTER TO RECORD - (*stack: POINTER TO RECORD stk: ARRAY 250000 OF INTEGER END;*) tid*: INTEGER; winX, winY, width*, height*: INTEGER; selItem, cliItem: INTEGER; @@ -163,7 +162,7 @@ VAR item: List.tItem; BEGIN item := List.getItem(m.items, i); - IF item(tItem).enabled THEN + IF (item # NIL) & item(tItem).enabled THEN m.click(m, item(tItem).id); exit(m) END @@ -304,10 +303,6 @@ BEGIN IF m.tid = 0 THEN m.winX := x; m.winY := y; -(* DISPOSE(m.stack); - NEW(m.stack); - SYSTEM.PUT(SYSTEM.ADR(m.stack.stk[LEN(m.stack.stk) - 1]), m); - lastTID := K.CreateThread(SYSTEM.ADR(window), m.stack.stk);*) SYSTEM.PUT(SYSTEM.ADR(stack[LEN(stack) - 1]), m); lastTID := K.CreateThread(SYSTEM.ADR(window), stack); m.tid := lastTID @@ -319,7 +314,6 @@ PROCEDURE close* (m: tMenu); BEGIN IF m.tid # 0 THEN K.ExitID(m.tid); - (*DISPOSE(m.stack);*) m.tid := 0 END END close; @@ -346,7 +340,6 @@ BEGIN m.height := items.count*fontHeight - 2; m.font := G.CreateFont(1, "", {}); m.canvas := G.CreateCanvas(m.width + 1, m.height + 1); - (*m.stack := NIL;*) G.SetFont(m.canvas, m.font); RETURN m END create; diff --git a/programs/develop/cedit/SRC/Text.ob07 b/programs/develop/cedit/SRC/Text.ob07 index 06608de3ee..321e07040d 100644 --- a/programs/develop/cedit/SRC/Text.ob07 +++ b/programs/develop/cedit/SRC/Text.ob07 @@ -26,6 +26,7 @@ IMPORT RW, Search, E := Encodings, CB := Clipboard, + K := KolibriOS, ChangeLog, Lang := Languages; @@ -91,7 +92,7 @@ VAR ShowCursor: PROCEDURE; colors*: RECORD - text, back, seltext, selback, modified, saved, curline, numtext, numback, border*: INTEGER; + text, back, seltext, selback, modified, saved, curline, numtext, numback: INTEGER; comment, string, num, delim, key1, key2, key3: INTEGER END; canvas: G.tCanvas; @@ -766,7 +767,7 @@ BEGIN ELSIF lang = Lang.langIni THEN IF depth = 0 THEN - IF c = ";" THEN + IF (c = ";") OR (c = "#") THEN PrintLex(text, line, i, n, y, colors.comment, backColor); i := n ELSIF c = '"' THEN @@ -1851,7 +1852,7 @@ BEGIN IF drawCursor THEN cursor(text) END; - G.SetColor(canvas, colors.border); + G.SetColor(canvas, K.borderColor); G.Rect(canvas, 0, 0, size.X - 1, size.Y - 1); END draw; @@ -1890,7 +1891,7 @@ END create; PROCEDURE setColors* (text, back, seltext, selback, modified, saved, curline, numtext, numback, - comment, string, num, delim, key1, key2, key3, border: INTEGER); + comment, string, num, delim, key1, key2, key3: INTEGER); BEGIN colors.text := text; colors.back := back; @@ -1908,7 +1909,6 @@ BEGIN colors.key1 := key1; colors.key2 := key2; colors.key3 := key3; - colors.border := border; END setColors; diff --git a/programs/develop/cedit/SRC/scroll.ob07 b/programs/develop/cedit/SRC/scroll.ob07 index 9cb778dfc1..f02ade3083 100644 --- a/programs/develop/cedit/SRC/scroll.ob07 +++ b/programs/develop/cedit/SRC/scroll.ob07 @@ -19,7 +19,7 @@ MODULE Scroll; -IMPORT G := Graph; +IMPORT G := Graph, K := KolibriOS; TYPE @@ -27,7 +27,6 @@ TYPE vertical, mouse: BOOLEAN; canvas: G.tCanvas; xSize*, ySize*, pos, mousePos: INTEGER; - color, bkColor: INTEGER; value*, maxVal*: INTEGER END; @@ -50,21 +49,25 @@ BEGIN pos := 0 END; canvas := scroll.canvas; - G.SetColor(canvas, scroll.bkColor); + G.SetColor(canvas, K.scrollBkColor); G.clear(canvas); - G.SetColor(canvas, 0808080H); + G.SetColor(canvas, K.borderColor); G.Rect(canvas, 0, 0, scroll.xSize - 1, scroll.ySize - 1); - G.SetColor(canvas, scroll.color); + G.SetColor(canvas, K.scrollColor); DEC(b, 2); IF scroll.vertical THEN G.FillRect(canvas, 1, pos + 1, b, pos + b); - G.SetColor(canvas, 0404040H); + G.SetColor(canvas, K.borderColor); + G.Rect(canvas, 0, pos, b + 2, pos + b + 1); + G.SetColor(canvas, K.btnTextColor); G.HLine(canvas, pos + 1 + b DIV 2, 4, b - 4); G.HLine(canvas, pos + 1 + b DIV 2 - 3, 6, b - 6); G.HLine(canvas, pos + 1 + b DIV 2 + 3, 6, b - 6); ELSE G.FillRect(canvas, pos + 1, 1, pos + b, b); - G.SetColor(canvas, 0404040H); + G.SetColor(canvas, K.borderColor); + G.Rect(canvas, pos, 0, pos + b + 1, b + 2); + G.SetColor(canvas, K.btnTextColor); G.VLine(canvas, pos + b DIV 2, 4, b - 4); G.VLine(canvas, pos + b DIV 2 - 3, 6, b - 6); G.VLine(canvas, pos + b DIV 2 + 3, 6, b - 6); @@ -74,7 +77,7 @@ BEGIN END draw; -PROCEDURE create* (xSize, ySize: INTEGER; color, bkColor: INTEGER): tScroll; +PROCEDURE create* (xSize, ySize: INTEGER): tScroll; VAR scroll: tScroll; BEGIN @@ -85,8 +88,6 @@ BEGIN scroll.maxVal := 30; scroll.value := 0; scroll.mouse := FALSE; - scroll.bkColor := bkColor; - scroll.color := color; scroll.canvas := G.CreateCanvas(xSize, ySize) RETURN scroll END create; diff --git a/programs/system/menu/trunk/menu.asm b/programs/system/menu/trunk/menu.asm index ee3a5797ea..d6c92953a6 100644 --- a/programs/system/menu/trunk/menu.asm +++ b/programs/system/menu/trunk/menu.asm @@ -22,7 +22,7 @@ ;****************************************************************************** BTN_HEIGHT = 26 BTN_WIDTH = 178 - TXT_Y = (BTN_HEIGHT)/2-6 + TXT_Y = (BTN_HEIGHT)/2-7 FONT_TYPE = 0x90000000 PANEL_HEIGHT = 20