From 067e22eae82031d8809beef7ae7ca706779e3505 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Tue, 16 Apr 2019 21:21:19 +0000 Subject: [PATCH] Eolite File Manager 4.1: - show 8.3 names in title case at /rd/1, - add hotkeys to change sorting by Ctrl+Fn - change disk drive by Ctrl+number Kolibri Graphics Benchmark 0.9 (mgb): - big fonts and UI impovements - add second editbox to edit the Right comment - show difference in percent between two columns - if the difference is less or equal to 1% it is not shown - Russian translation by Daniel Ovchinnikov - add 16x16 icon for *.mgb files, add associations icons32.png: - add Pig icon, bought at http://porctrijambiste.e-monsite.com/contact/contact.html and a bit improved Kiv: - improve icons git-svn-id: svn://kolibrios.org@7628 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/common/File Managers/fNav/fnav.set | 2 +- data/common/File Managers/icons.ini | 3 +- data/common/File Managers/kfar.ini | 1 + data/common/File Managers/kfm.ini | 2 +- data/common/icons16.png | Bin 7489 -> 7583 bytes data/common/icons32.png | Bin 40014 -> 40533 bytes data/common/settings/assoc.ini | 1 + data/common/settings/games.ini | 2 +- programs/cmm/appearance/appearance.c | 1 - programs/cmm/eolite/Eolite.c | 97 +++++---- programs/cmm/eolite/include/settings.h | 7 - programs/cmm/eolite/include/translations.h | 4 +- programs/cmm/examples/rgb.c | 2 +- programs/cmm/lib/keyboard.h | 29 +-- programs/cmm/panels_cfg/panels_cfg.c | 4 +- programs/cmm/pixie2/pixie.c | 45 ++-- programs/cmm/tmpdisk/t_gui.c | 1 - programs/media/kiv/trunk/kiv.asm | 12 +- programs/media/kiv/trunk/kivicons.bmp | Bin 4330 -> 5078 bytes programs/system/mgb/trunk/mgb.asm | 238 +++++++++++++++------ 20 files changed, 286 insertions(+), 165 deletions(-) diff --git a/data/common/File Managers/fNav/fnav.set b/data/common/File Managers/fNav/fnav.set index b3a92e9a1a..1274c10529 100644 --- a/data/common/File Managers/fNav/fnav.set +++ b/data/common/File Managers/fNav/fnav.set @@ -1 +1 @@ -/sys/TinyPad: asm, inc, txt, mac, log, dat /sys/media/kiv: gif, bmp, png, tga, jpg, ico, cur, tif, tiff, jpeg, ppm, pgm, pbm, pnm, pcx, wbmp, xcf /sys/Network/Webview: htm, html, mht, xhtml /sys/fb2read: fb2 /sys/develop/cObj: obj /sys/skincfg: skn /sys/rtfRead: rtf /sys/develop/t_edit: cpp, h, c, c--, pas, set, ext, ini /sys/media/pixie/pixie: mp3 /sys/media/AC97SND: wav, xm /sys/media/MIDAMP: mid /sys/media/listplay: m3u, lap, asf /sys/shell: sh /sys/3d/view3ds: 3ds, asc /sys/graph: cvs /sys/unz: zip, 7z /sys/table: csv /kolibrios/media/updf: pdf /kolibrios/media/fplay: avi, mpg, mov, flv, wmv, vob, mkv, mp4, mpeg, divx, 3gp, webm /kolibrios/emul/zsnes: smc /kolibrios/emul/psx4all: mcr /kolibrios/emul/fceu/fceu: nes /kolibrios/emul/e80/e80: sna /kolibrios/emul/gameboy: gb, gbc /kolibrios/emul/pokemini: min /sys/develop/heed: \ No newline at end of file +/sys/TinyPad: asm, inc, txt, mac, log, dat /sys/media/kiv: gif, bmp, png, tga, jpg, ico, cur, tif, tiff, jpeg, ppm, pgm, pbm, pnm, pcx, wbmp, xcf /sys/Network/Webview: htm, html, mht, xhtml /sys/fb2read: fb2 /sys/develop/cObj: obj /sys/skincfg: skn /sys/rtfRead: rtf /sys/develop/t_edit: cpp, h, c, c--, pas, set, ext, ini /sys/media/mgb: mgb /sys/media/pixie/pixie: mp3 /sys/media/AC97SND: wav, xm /sys/media/MIDAMP: mid /sys/media/listplay: m3u, lap, asf /sys/shell: sh /sys/3d/view3ds: 3ds, asc /sys/graph: cvs, grf /sys/unz: zip, 7z /sys/table: csv /kolibrios/media/updf: pdf /kolibrios/media/fplay: avi, mpg, mov, flv, wmv, vob, mkv, mp4, mpeg, divx, 3gp, webm /kolibrios/emul/zsnes: smc /kolibrios/emul/psx4all: mcr /kolibrios/emul/fceu/fceu: nes /kolibrios/emul/e80/e80: sna /kolibrios/emul/gameboy: gb, gbc /kolibrios/emul/pokemini: min /sys/develop/heed: \ No newline at end of file diff --git a/data/common/File Managers/icons.ini b/data/common/File Managers/icons.ini index d97bd4d711..d5a8690a40 100644 --- a/data/common/File Managers/icons.ini +++ b/data/common/File Managers/icons.ini @@ -154,6 +154,7 @@ drv=18 iso=19 cue=19 mdf=19 +csv=21 xls=21 xlsx=21 nes=23 @@ -167,7 +168,7 @@ c=27 java=27 pas=27 fb2=29 -csv=21 +mgb=47 [icons32] =45 diff --git a/data/common/File Managers/kfar.ini b/data/common/File Managers/kfar.ini index 758d3486eb..360097ad80 100644 --- a/data/common/File Managers/kfar.ini +++ b/data/common/File Managers/kfar.ini @@ -61,6 +61,7 @@ min=/kolibrios/emul/pokemini nc=/kolibrios/utils/cnc_editor/cnc_editor kf=/sys/KF_VIEW csv=/sys/table +mgb=/sys/mgb [Menu] AsmMenu1=&Edit,/sys/TinyPad diff --git a/data/common/File Managers/kfm.ini b/data/common/File Managers/kfm.ini index 9d8d64dfb5..189d087d79 100644 --- a/data/common/File Managers/kfm.ini +++ b/data/common/File Managers/kfm.ini @@ -214,7 +214,7 @@ mht /sys/network/WebView fb2 /sys/fb2read kla /sys/games/klavisha bin /sys/develop/heed -mgb /sys/develop/heed +mgb /sys/mgb <>end <>files_association1 diff --git a/data/common/icons16.png b/data/common/icons16.png index 4877a5e0f71764ea7a011aa859671dbe5f28043a..5869f6c1d5a3fa0f7140755b07fe129054853a75 100644 GIT binary patch literal 7583 zcmV;Q9bn>#P)=1SW0*0_f zWC<9y5JE^oHUb2akPrd{2r(GI03if&v%veE{|RT9nLF#fL82x+FSDKZcmC(hIcMh1 zotZ1a%Rh4TjRR-}0cdJhGQg-W*l7bY!0X;vI{_{FMRIurAYv%bOB;F(k|6XTO>CCh37Xbk|#8hDL}7XXk}Ul9(U(= zdVXrEJ$tjQ0aaC1x|$UDl_A6p;BvXRlz_SO*CQ`4PZ#0_C@polK|+>AZ~)C~A#Q-; z;!-!r*QMa8<1ef#zyDJhA|6i`r5gww1k8-a>TtIPp;d8bVwmVn&c z0#k@3ASWl!6k-WTPtP%hSOQW~vdke?fW*XfQ-~!%$mL?KQX?{(0-UJUjt5s!wK=GI zs?ekTNFtfHW^72 z0Rbvgp5YLqqDXGJGo#W>I=|&%4$-RzNw4hOd>ue$q38baKjxK406k;&vWI!`C_>8! z2p~*C!b}kuHY76hnrFESlQ7aYJ+lnZnklhT6t>}^P0vh;l``#2yw){lN4?P-bIptg zl6lKR3&GlV)tQG?8<;EVL!@ZQc$sn0oNzuYC@(vz%^kTu1wm2vXErB zqLNX*Iu5P{F{s*>imJUw;aapEWm7ldvVSzn=f$`K%I8MG#m+)2Qx3uvk;HOJg==*( zDt2VxYWgu$#Acu>@gOel+>O-a5S<9dMB>8C&A2dWBZ}vI16Lp`&hl7PWwWy99zxaG zG?bml#q7=PF)rc}cfjcpVJKR>4p)}Oz_m3AR}SRh+JO_OEMWDJJp<*jEl|303I9g;-lkZc*aVw)J&T02XR&W%1ElQx2MUfyA$G?ScR=8hr&#$O z!IV`GVa}FEF_lff*w7Fmo1VlXmUG0qe_~HUGvpoJh84lx+yUd)K8S$D4G_4z5k6m4 zpU;n2(EuYCJcJQT>SIpmLzo`c2+@&qFm39;+yP!SWv@C@?fibB(a=a+G6gJ8I&G?s z(|4Hz+D=X|&7HQJ0z?j0+kZ{~Iwzd8HeIg77N13{0hD0E+5>p{lQ=GsKy2$WB^oQ^ zPvGFUCD^pLK-~@~!5dR|A}sj?juc)(WLg1-h`$DX)?nlQ?=gAf3HXN{#q@}LHK2aK za71OE!@TVU2#U(*Qzf9@2dlVg{5Quqpx?s1>LL(;Oo5wEV8VuD7!_->q1w<^g5T`?#rf+6!)~#Q@1K(oL?oHg2lLfLqrN zylTofbwK&rPvUY65XSPn5H2&2q%}tR)#tYh>4~;!L6R!R+__wokb?}Cl@UqYXmHbx zY&6(TUJf`F-C4V59i|KqZC{{aCa7PY~({K2R^{xK>~3`D}pP8?u) z{{e+fIbX=^jnIW-@&0Qqv20!dhv*f@4M1ijcjjG}=F6{~9w{3|P!#}jX|3K71{^~c7yP`c)2gHSTz{q$0W$*q2$o*1qo>O#z)dclJmsfS8Wke%4gVw7L=40n|lc5rN&^SGN~x zbp#&uMz6<%W+OK^mK&h3yvnu=0jo2LWho8X^@f19Q=?=FquzR5fDoO1C?gUEv0k?h zwBK^;0rb)t?nWbk?c>6a7$9m`7?o3P?HdB@wm{Pe?DPS{I?&$zV09-%-Tlfn`FWvp z@6mW?bf~N>c77-TmY)}h_znXU6csVKkeZc?!BfL9Ei_t&7=B(5<|9QF+)UHN)Kne; zL4txen}1#qIhV2xT0m%cB8QlMULZhpK@}I7Q<=HCGE0%TJB!zc>E{Iz0hK#~eNj6& zIE&|6P>_qz&Cz_`^z(wK0}7eW$O-V)q-{KRQ3sayD+>sfnam_I2ZtqcsIB{zwe27@ zESi5-aCE;i-Q+AJ3_pVVm3>DC!y9pcrh%^cVitBQKd z>KE2j9}pK8$F-_qL!5l98FKG?f@^HAh8UalqO9&;HstAa0pa1{nBJ-tLKsA7bf14> zd`b&hoo1K-A|oUDy{PNft&{c1gdu3|*HBhxzgB#`8^Eik>{Vy-x;qaU9t3a10iJ&Q zUvmJji{R;~tOBeL->Fi5e!i(}0TPoAsN@(>;}Iw$`ME?8wmw!CEz^3j>;~|vA$ir5 zy&exOGh~~B1m1#KO%$eg*iV_F_&0ikg z-%TQoZ2;{u<jT^b5-#6aE)#*RDl;d_31L{bN~2aVFpk*?e~L63+o-_BaAzzI73ZI`9fmBX!_)5okSc z%ANp(*&~3`ECZAxfKp^o>W8^snU4FjXV1pesZ%j_>{v{hGMO)%emx+JW5$fZv}u8e zh>T~~(=*w1)zdh9I1js0GBJI6AV!TErGIswRt5wFu)|vscJEHd-n|)!iAiP`XY-Mk zmV*Naj^I%Caje>yhyZ_o_s5m}*~$wSF3M+M(b0)aNgO~|d9xT`<@z{;goJR78Z}yd zVS3rJrQBFiQNcy?k*pXrc&6{q!Sb*ed>I^!1&fyAV%}B+PM=$Sjzoav%a^kco_l!6 zQBeukqo`1w6V98z2<1!HylZmZSd$=hz zH5(&Gj^uSf%hz&VK~+vWT+8-BD!xXK-s7qP{s9w!)ce?DSod;O#Q%;P$gG@3GH`Ts z29mK9X;_Z79S2ndCQO(L*G1rB5m3TZdbXS!()L$Ju%At7Icj?XD`pDfV)kGcduPa- z-A7adX3w65Lm7u~B%i%dCBGaC5{ofEu|!n|B}HXSE^LoZX7!bVsBJsZvtPiCy)b3+ zM1<_Qj9~V8FgT@z<&uE?saf2-a20!!U_pOWoC;=;a#UWbM7uW!-PjBC_sORdurU66 zEKR+F_&Ame+an_MkTCWvL-1hW%b}<`9fJJhXVKE9uX{`E*kur+x5pzXaSsnOpS`L8 zxQ3-`V-UKDJ=3w&7ZnS9(Xzt;{Rii1r4NIA`0;o)pN6AHbD5ppCCENte6=nH-TQuy zmlS5x-q@|@NObA(2|9Kif{xvWqWk-!tb5~4dHf)C-(hQj(Ptv@6`>i#5I|p2(w~4> z0_bb7^73-kSA+x+-!U2$O$J=LREDxLmpm3|?+#b~DT^j4?@PRR@iMMlDPz%;8v?XN zlL7hpXHi&q9_P-Lprqsq1Ko&5q~W)oYKkTUjvUFyi4%o5b?O|>p1sJ%$4l(7+%h?# zQPE@ojXLx$AcD}>WM|G?;1H3}sAw`EDJg>;2M%$_v16xrkxrk!ASW~`nyq{HDUDIl zY~Q@x-)0S-)SI z9z98(eLLDt_yszz_rbo(tr&l40J@#>!GmFcMawb2z&F$HFn+%>zT1q5gI}Tb$`&X< zI=(4egcVn2pu^!-c=fyH`2FI0@cFo38oyteiZGA8=iuEXP0)RD6YMTsiedYGFg?F7 zUSHS{?dCs-A#>{+zhC*xo>9n+^~KScVQ3QaB$7%)@Nvp(m~yf=I;?KO*Q<(P_I~9a zVa-*5_6*?Y{mNsvw#WW+L70%(35$>R#qiB7oxNXq;r1@bK0Sk*BTo*)oT!e@-me_L zy}e3tQSIyAuUzwh@WjTWp*E28%=tZJ4 zH3x+06h*Vnya;+`+YwmgY%c-}vs(n|pGxpXyeZR+VeSUv9?=(QL4;&iDuC5}%4YX2 z{}jf9FXqpOH{t+sAFfl$fJ29J(4avBJoeaQwnS;k!vR4-LCDTN#5Xi)(!`c1EqOSA zuGVH{9mM00Kh8JO$#l=2@0tQAEqN$&Y39tC$jr==0m1CDCw)5a-@mUZfIO7B6c`xD zF1n@Ri6@@m8((^<1&6p?WrhGsOP*=dra_uKc@n$yxerfX2auVH(W6H<+3+fR;*cbk zDJ^*@b7|tl3G6!Z9z6NvlX4xr@kVSQE1$#5uULLptR(n>#dTnuP?T4jYQ+djqL+iTJlilQonwE z@y$2k*uFg)$;rEHiPDniqmTMQYSX3-yiwizP=2WQp#=Bqg3isF@TsHsU<~wmgp16; z51<+QM905zL zir~6g6@gww#cvLk>)?b!x^-YwQ366xG8^s%vx>6S4$La*NAy0Fx(A|enB<6`7eR?A;q_Y&n4`k|HyEAS#(9IB>n( zr~CHBsb0NMwrdx%TeLtlTep$cn>`Q}!xHSG2s(Ab)nms{%)UY{V>QiO$YF>6wQQT| z15sO8f^AGVc@l+l<{+b8JH+09KQ`WW8`iP)E2xgl9*A1c5|B1rS2zJy-=qlu$y&@|u zBU7d5n4Me`rq0BGA;Z;xz<)o7@g1KtG@C&<;Oj20a{z@mr&(i5DT^XUK#CaA%a$lZ z6<|=K$9M#^LBPyp3aH90<)Vao^CU_~MN#bq8IVAvEt%Qx*`90RrL`pmv<0 zC_9bE0IPAq5#3?iBJcWRl`xy&FOKz*D<{hj(f^?xxIh#qPLkpX7?UyKoY5E(%I zoccTUd*1)qI6&ip5<<~vAu>R(+tPSI;{uHjVyvKXgFLnXdeZh04j5PPscxUA@jz*& zy`t?O(&Nh?HSF({*eGXP4M_mZy0#_2YFw}cSd9s_d_1soj$nF%K~2`9N>m;%Mbovt z8?^^pYX3&9(DDR>BmhPYN-{IkGWA5$&SZ3UBE|vg&SpJQQtmDx8p^~8hB!x{o+(d1+UwI*DcZOzTmhwYR`)tj|bv(&f^iu>oKuLM&%kg zF4V}8sYZ^CHF9*mwI>)a^jd9eoi2b98UggyOWH)I*dw_{0KILJHo<`t#d2<1(Kana z(wa#J^GlG$e$vZ3!+_nH@{Ej{6zG73RDMT_e zQaYMc@cP zBav4C$3@UqQr5{5=aonsXjjGV`%YB^QrM28?3a~e?TrTlA^=8a(>f3kGqYu9B8Zv! z=5}Yt1B%g5E@XK_6D2xcSgI>=tT4Tyi4yEcJ>@2=)~Et#4`q%4N(~6y!^5`?(A$MS zJV09vJ%F}Hnsz4bz^d0TEIX4`kF@MeRz1?PGg&WajCW_v-Kli+?BeUt@-OiEO zazwH+TaHLpX3G)D%KRf84|2xFB4f-p&j6pWr^pI76(VhECNjoFIRgw0n2s~&FT!tZ z0FoysW7CMONcCN950EsxAxckf!f^j7*p-@&&nAt-y8auH(sPbAAYnNB$~5&QV9Uce zwtXf>j+==!8@Hg(@WJXgbs3uXwPNO{ffWw`^KL`h$`R;4)KC9KTl!}9T+51j!2Eld zeudx<8d^W+>Tdo$@WpR1uTN9so4&2gL4BUHep6SxL$eAHJNR*6?@QM!%$`{Wd>_`5 zJ#Mf9i2MhzjB5KHTV@$>_Nx}adG-@Jr`7-q?`65)Wy>rBz8KX78d+&CB$jR&RfWUX(eK)(YRYJXb^_&67{M+CD z7DI*%!O)>Y;p5{YLu>;cc;ErdojVs@x^&?`H}~|@Pvf3@?lA^XsH8jC(>0X)z<~qN zwOcp5@n&cCIPXjBLE1*R_uhMr0hH^Vcizczoy|?HTED_`ZrQRGUU;E7{`R+e)&Pp& zH^2EK-s;*79XfTyBab}7bH3}YyZF3m9gunA#EE?R>tFv7o&Hl@?uP8=1T1%>FmK4L z!Yfl;eEF`s{(xr9nyGf7EADq_$=#MrSnMIK(P4&1b0MZ!M zfJzCpW)YPztM`Hepa-G14Um*(`H3nrYXM4#ky+6j^#MwVo>_HxHv%XR|E7Jx={Rs} zKe2fAi?Uw*B(2hHdA4rHY#U%?wgoUVTLP@irT{x;Lx5egF2IS|4dB$Q0(fGU0iK%O z0G@Q|pVIHWdm{PMyK;pcnF5@2?>ayoKo{V3Q}!63cMZX=ern@E9iR^Ia|hh|@j#LS zxUR8x;y9UC0UYP71Q6BfpYYU71a(EID?*JG!K=Uu}^7SADbad z3Dc82q|w5uq7ug?DWPq5V4Wc~|NQ5hP zqX?b0srG`Hp_M{npZ6Q!C+|jziq?rVDuA{R*j3FPoof$3oVpYi7XH8h?a31X%ucS9 z8Pp7bRwzwkSt~<;-8!fPIJ}wNpcPl5hwvllSdIa0{ny`a4OxV?8Hoe{|^N}#<-TRFChQ`002ovPDHLkV1n(Z BO8o!; literal 7489 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 F`9HV30we$c diff --git a/data/common/icons32.png b/data/common/icons32.png index 43c7352c21f2005f6e50a98505f85614fdb3420f..172f0dd950d6f9122a010059f1ab1d59194ae82c 100644 GIT binary patch delta 38495 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 r4kRm6t= SystemDiscs.list.count) break; + if (!two_panels.checked) { - if (!two_panels.checked) - { - DrawRectangle(17,key_scancode*16+74,159,16, 0); //display click - pause(7); - } - SystemDiscs.Click(key_scancode); + DrawRectangle(17,key_scancode*16+74,159,16, 0); //display click + pause(7); } + SystemDiscs.Click(key_scancode); break; case SCAN_CODE_KEY_X: Copy(#file_path, CUT); @@ -704,6 +699,22 @@ void List_ReDraw() if (new_element_active) && (col_selec != 0xCCCccc) NewElement_Form(new_element_active, #new_element_name); } +bool file_name_is_8_3(dword name) +{ + int name_len = strlen(name); + int dot_pos = strrchr(name, '.'); + if (name_len<=12) + { + if (dot_pos) { + if (name_len - dot_pos > 3) return false; + } + else { + if (name_len>8) return false; + } + return true; + } + return false; +} void Line_ReDraw(dword bgcol, filenum){ dword text_col=0, @@ -753,6 +764,7 @@ void Line_ReDraw(dword bgcol, filenum){ if (TestBit(attr, 1)) || (TestBit(attr, 2)) text_col=0xA6A6B7; //system or hiden? if (bgcol==col_selec) { + file_name_is_8_3(file_name_off); itdir = TestBit(attr, 4); strcpy(#file_name, file_name_off); if (!strcmp(#path,"/")) sprintf(#file_path,"%s%s",#path,file_name_off); @@ -815,6 +827,8 @@ void Open_Dir(dword dir_path, redraw){ SystemDiscs.Draw(); files.visible = files.h / files.item_h; if (files.count < files.visible) files.visible = files.count; + if (!strncmp(dir_path, "/rd/1/",5)) + dir_at_fat16 = true; else dir_at_fat16 = false; if (redraw!=ONLY_SHOW) Sorting(); list_full_redraw = true; if (redraw!=ONLY_OPEN)&&(!_not_draw) {DrawStatusBar(); List_ReDraw();} @@ -841,7 +855,7 @@ inline Sorting() } for (j=files.count-1, file_off=files.count-1*304+buf+32; j>=0; j--, file_off-=304;) //files | folders { - if (!show_real_names.checked) strttl(file_off+40); + if (dir_at_fat16) && (file_name_is_8_3(file_off+40)) strttl(file_off+40); if (TestBit(ESDWORD[file_off],4)) //directory? { file_mas[d]=j; @@ -908,7 +922,7 @@ void SelectFileByName(dword that_file) int ind; files.KeyHome(); Open_Dir(#path,ONLY_OPEN); - if (!show_real_names.checked) strttl(that_file); + if (dir_at_fat16) && (file_name_is_8_3(that_file)) strttl(that_file); for (ind=files.count-1; ind>=0; ind--;) { if (!strcmp(file_mas[ind]*304+buf+72,that_file)) break; } files.cur_y = ind - 1; files.KeyDown(); @@ -1075,12 +1089,12 @@ void FnProcess(byte N) if (!active_about) { about_stak = malloc(4096); - about_window = CreateThread(#about_dialog,about_stak+4092); + about_thread_id = CreateThread(#about_dialog,about_stak+4092); break; } else { - ActivateWindow(GetProcessSlot(about_window)); + ActivateWindow(GetProcessSlot(about_thread_id)); } break; case 2: @@ -1208,4 +1222,15 @@ void EventRefreshDisksAndFolders() } } +void EventSort(dword id) +{ + char selected_filename[256]; + if (sort_type == id) sort_desc ^= 1; + else sort_type = id; + strcpy(#selected_filename, #file_name); + DrawList(); + Open_Dir(#path,WITH_REDRAW); + SelectFileByName(#selected_filename); +} + stop: diff --git a/programs/cmm/eolite/include/settings.h b/programs/cmm/eolite/include/settings.h index 014f4fd415..75b3bbb1e9 100644 --- a/programs/cmm/eolite/include/settings.h +++ b/programs/cmm/eolite/include/settings.h @@ -2,7 +2,6 @@ #ifdef LANG_RUS ?define TITLE_SETT "Настройки" ?define SHOW_DEVICE_CLASS "Выводить названия класса устройств" - ?define SHOW_REAL_NAMES "Показывать имена файлов не меняя регистр" ?define SHOW_STATUS_BAR "Показывать статус бар" ?define NOTIFY_COPY_END "Уведомлять о завершении копирования" ?define SHOW_BREADCRUMBS "Использовать 'хлебные крошки'" @@ -18,7 +17,6 @@ #else ?define TITLE_SETT "Settings" ?define SHOW_DEVICE_CLASS "Show device class name" - ?define SHOW_REAL_NAMES "Show file names in original case" ?define SHOW_STATUS_BAR "Show status bar" ?define NOTIFY_COPY_END "Notify when copying finished" ?define SHOW_BREADCRUMBS "Show breadcrumbs" @@ -40,7 +38,6 @@ edit_box path_start_ed = {290,50,57,0xffffff,0x94AECE,0xffffff,0xffffff,0x100000 more_less_box font_size = { NULL, 9, 22, FONT_SIZE_LABEL }; more_less_box line_height = { NULL, 16, 64, LIST_LINE_HEIGHT }; checkbox show_dev_name = { SHOW_DEVICE_CLASS }; -checkbox show_real_names = { SHOW_REAL_NAMES }; checkbox show_status_bar = { SHOW_STATUS_BAR }; checkbox info_after_copy = { NOTIFY_COPY_END }; checkbox show_breadcrumb = { SHOW_BREADCRUMBS }; @@ -86,7 +83,6 @@ void settings_dialog() break; } show_dev_name.click(id); - if (show_real_names.click(id)) action_buf=109; info_after_copy.click(id); two_panels.click(id); show_breadcrumb.click(id); @@ -133,7 +129,6 @@ void DrawSettingsCheckBoxes() int x=11, frx=26, but_x; y.n = 0; show_dev_name.draw(x, y.inc(14)); - show_real_names.draw(x, y.inc(25)); show_status_bar.draw(x, y.inc(25)); info_after_copy.draw(x, y.inc(25)); show_breadcrumb.draw(x, y.inc(25)); @@ -160,7 +155,6 @@ void LoadIniSettings() ini.section = "Eolite"; files.SetFont(6, 9, 10000000b); - show_real_names.checked = ini.GetInt("RealFileNamesCase", true); show_dev_name.checked = ini.GetInt("ShowDeviceName", true); show_status_bar.checked = ini.GetInt("ShowStatusBar", true); info_after_copy.checked = ini.GetInt("InfoAfterCopy", false); @@ -188,7 +182,6 @@ void SaveIniSettings() { ini.SetInt("ShowDeviceName", show_dev_name.checked); ini.SetInt("ShowStatusBar", show_status_bar.checked); - ini.SetInt("RealFileNamesCase", show_real_names.checked); ini.SetInt("InfoAfterCopy", info_after_copy.checked); ini.SetInt("BigIcons", big_icons.checked); ini.SetInt("TwoPanels", two_panels.checked); diff --git a/programs/cmm/eolite/include/translations.h b/programs/cmm/eolite/include/translations.h index ac86b25da1..6855bd9a76 100644 --- a/programs/cmm/eolite/include/translations.h +++ b/programs/cmm/eolite/include/translations.h @@ -1,5 +1,5 @@ -#define TITLE "Eolite File Manager 4.07" -#define ABOUT_TITLE "EOLITE 4.07" +#define TITLE "Eolite File Manager 4.1" +#define ABOUT_TITLE "EOLITE 4.1" #ifdef LANG_RUS ?define T_FILE "Файл" diff --git a/programs/cmm/examples/rgb.c b/programs/cmm/examples/rgb.c index 502652c327..809eaf32fb 100644 --- a/programs/cmm/examples/rgb.c +++ b/programs/cmm/examples/rgb.c @@ -41,7 +41,7 @@ int id; if (id==SETBG_BTN) EventSetBackground(#image,256,256); break; case evKey: - if (GetKey()==27) ExitProcess(); + if (GetKeys()==27) ExitProcess(); break; case evReDraw: system.color.get(); diff --git a/programs/cmm/lib/keyboard.h b/programs/cmm/lib/keyboard.h index e08a5392c5..5393e627f8 100644 --- a/programs/cmm/lib/keyboard.h +++ b/programs/cmm/lib/keyboard.h @@ -58,6 +58,17 @@ #define SCAN_CODE_F11 087 #define SCAN_CODE_F12 088 +#define SCAN_CODE_1 002 +#define SCAN_CODE_2 003 +#define SCAN_CODE_3 004 +#define SCAN_CODE_4 005 +#define SCAN_CODE_5 006 +#define SCAN_CODE_6 007 +#define SCAN_CODE_7 008 +#define SCAN_CODE_8 009 +#define SCAN_CODE_9 010 +#define SCAN_CODE_10 011 + #define SCAN_CODE_KEY_A 030 #define SCAN_CODE_KEY_B 048 #define SCAN_CODE_KEY_C 046 @@ -94,24 +105,6 @@ #define KEY_LWIN 01000000000b #define KEY_RWIN 10000000000b -inline fastcall word GetKey() //+Gluk fix -{ - $push edx -GETKEY: - $mov eax,2 - $int 0x40 - $cmp eax,1 - $jne GETKEYI - $mov ah,dh - $jmp GETKEYII //jz? -GETKEYI: - $mov dh,ah - $jmp GETKEY -GETKEYII: - $pop edx - $shr eax,8 -} - :unsigned char key_ascii; :dword key_scancode, key_modifier, key_editbox; :int GetKeys() diff --git a/programs/cmm/panels_cfg/panels_cfg.c b/programs/cmm/panels_cfg/panels_cfg.c index 9e538997cc..960df86e9d 100644 --- a/programs/cmm/panels_cfg/panels_cfg.c +++ b/programs/cmm/panels_cfg/panels_cfg.c @@ -135,8 +135,8 @@ void main() break; case evKey: - key = GetKey(); - if (key==27) ExitProcess(); + GetKeys(); + if (key_scancode == SCAN_CODE_ESC) ExitProcess(); break; case evReDraw: diff --git a/programs/cmm/pixie2/pixie.c b/programs/cmm/pixie2/pixie.c index e515c0c2ce..9b56e97bd7 100644 --- a/programs/cmm/pixie2/pixie.c +++ b/programs/cmm/pixie2/pixie.c @@ -30,23 +30,23 @@ char default_dir[] = "/rd/1"; od_filter filter2 = { 15, "MP3\0WAV\0XM\0\0" }; -#define ABOUT_MESSAGE "Pixie Player v2.93 Final +#define ABOUT_MESSAGE " v2.94 Final - A tiny music folder player. - Supports MP3, WAV, XM audio file formats. + A tiny music folder player. + Supports MP3, WAV, XM audio file formats. Hot keys: - Open file: O key - Play/Stop: Space or P key - Start playing selected file: Enter - Goto next/previous track: Ctrl + Left/Right - Change sound volume: Left/Right key - Remove from the list: Delete - Permanently delete file: Shift + Delete - Show file info: I - Repeat: R - Shuffle: S - Mute: M + Open file: O key + Play/Stop: Space or P key + Start playing selected file: Enter + Goto next/previous track: Ctrl + Left/Right + Change sound volume: Left/Right key + Remove from the list: Delete + Permanently delete file: Shift + Delete + Show file info: I + Repeat: R + Shuffle: S + Mute: M kolibri-n.org & aspero.pro" @@ -133,7 +133,6 @@ void main() WaitEventTimeout(10); switch(EAX & 0xFF) { case evMouse: - if (!CheckActiveProcess(Form.ID)) break; mouse.get(); scrollbar_v_mouse (#scroll1); if (list.first != scroll1.position) @@ -148,10 +147,10 @@ void main() if (mouse.dblclick) EventStartPlayingSelectedItem(); if (mouse.down) && (mouse.key&MOUSE_LEFT) && (list.ProcessMouse(mouse.x, mouse.y)) DrawPlayList(); - if (mouse.down) && (mouse.key&MOUSE_RIGHT) EventShowAbout(); } if(mouse.key&MOUSE_LEFT) && (mouse.x<14) && (window_mode == WINDOW_MODE_SMALL) EventDragWindow(); + if (mouse.down) && (mouse.y>skin_height) && (mouse.key&MOUSE_RIGHT) EventShowAbout(); break; case evButton: switch(GetButtonID()) { @@ -555,19 +554,23 @@ void ShowAboutThread() if (key_scancode == SCAN_CODE_ESC) ExitProcess(); break; case evReDraw: - DefineDragableWindow(150, 200, 400, 368); + DefineDragableWindow(150, 200, 400, 400); GetProcessInfo(#pop_up, SelfInfo); DrawBar(0, 0, pop_up.width, pop_up.height, theme.color_top_panel_bg); DrawRectangle(0, 0, pop_up.width, pop_up.height, theme.color_list_border); DefineHiddenButton(pop_up.width - 27, 1, 26, 15, BUTTON_WINDOW_CLOSE); - img_draw stdcall(skin.image, pop_up.width-28, 0, 28, 18, skin.w - 29, 0); + //img_draw stdcall(skin.image, pop_up.width-28, 0, 28, 18, skin.w - 29, 0); DrawCaptButton(pop_up.width-10-80, pop_up.height - 34, 80, 24, 2, - theme.color_list_active_bg, theme.color_top_panel_song_name, "Cool"); + 0x171717, 0xF5EFB3, "Cool"); - WriteTextLines(10, 10, 0x90, theme.color_top_panel_song_name, ABOUT_MESSAGE, 19); - DrawIcon32(10, 48, theme.color_top_panel_bg, 65); + WriteText(131,16, 0x81, 0x8E7C61, "Pixie Player"); + WriteText(130,15, 0x81, 0xF5EFB3, "Pixie Player"); + + WriteTextLines(10, 40, 0x90, theme.color_top_panel_song_name, ABOUT_MESSAGE, 19); + DrawIcon32(45, 15, theme.color_top_panel_bg, 65); + DrawIcon32(pop_up.width-32-45, 15, theme.color_top_panel_bg, 65); } } diff --git a/programs/cmm/tmpdisk/t_gui.c b/programs/cmm/tmpdisk/t_gui.c index 55c944ac1d..ae8885f0fd 100644 --- a/programs/cmm/tmpdisk/t_gui.c +++ b/programs/cmm/tmpdisk/t_gui.c @@ -63,7 +63,6 @@ void Main_Window() switch(WaitEvent()) { case evMouse: - if (!CheckActiveProcess(Form.ID)) break; edit_box_mouse stdcall (#edit_disk_size); break; diff --git a/programs/media/kiv/trunk/kiv.asm b/programs/media/kiv/trunk/kiv.asm index fe9b4dc999..2c45f45b6d 100644 --- a/programs/media/kiv/trunk/kiv.asm +++ b/programs/media/kiv/trunk/kiv.asm @@ -1002,15 +1002,15 @@ draw_window: imul ebx, 10001h mcall - mcall SF_DEFINE_BUTTON, <5 + 25 * 0, 20>, <5, 20>, 'opn'+40000000h - mcall , <10 + 25 * 1, 20>, , 'bck'+40000000h - mcall , <10 + 25 * 2, 20>, , 'fwd'+40000000h - mcall , <15 + 25 * 3, 20>, , 'bgr'+40000000h - mcall , <15 + 25 * 4, 20>, , 'sld'+40000000h + mcall SF_DEFINE_BUTTON, <4 + 25 * 0, 21>, <4, 21>, 'opn'+40000000h + mcall , <9 + 25 * 1, 21>, , 'bck'+40000000h + mcall , <9 + 25 * 2, 21>, , 'fwd'+40000000h + mcall , <14 + 25 * 3, 21>, , 'bgr'+40000000h + mcall , <14 + 25 * 4, 21>, , 'sld'+40000000h pop ebx add ebx, 5 shl ebx, 16 - mov bl, 20 + mov bl, 21 mcall , , , 'flh'+40000000h add ebx, 25 * 65536 mcall , , , 'flv'+40000000h diff --git a/programs/media/kiv/trunk/kivicons.bmp b/programs/media/kiv/trunk/kivicons.bmp index 0a2502bebf345c501bb24c69b9e18df3b721b1c7..816ae2a34c3f18cf6fbb6d7d3a41f061e9ce6259 100644 GIT binary patch literal 5078 zcmdUyO=ufO6vyAnmR8bQvEq$CByVIzQ8zLqA*GI+lt4oerL->O5NHoeNK%#7P2w2G zRZo8nZP#P4^YC|eY|$yr9qtan}b}4A59ef{rxaCH3j`gPJrV$ zP$`$8R<_{Q3|&Q7KDP)~&BCh)d+$uafgcXRkwzKHjTt!6biip=puJp#cKr%mX)Qx> ztqqmNCe&&*xckL2)Nj?Gxqb(3JiZOhyKB&@ufux#F4Q*KP_NgaL06*z&1MrGv>(A{ zs|oeZHndtT*xYDAYhx4I?Y1xQXTN&$_`ypm%807Sa`lhLI#uUSO&e6H;B|d%TKK0{ z;Nidub+cXn`p4Cu@0Y8uqy9UVB*q6EQ~4F=%?syd&n(P37prs5{KAFz7fzqQ=$wDAGJD!N zJ6m-Y7e1OhOSRc|FU(!sf9Cu=jeU6LY9BxjHg@Ky2^(8mpBz8Q>%##osXoCy0KBPyVqx(&Bl2JdE6}%7EjQv|9nyj@Ze8R4O$nEFn2e(M+XN12W@?gKmjnksOGT;VjU7cRz*-216a3bIgZ9iwIrd zutJUmLKfmcj1iY3H;f?Casq^R13}mZ6-PEL6;thq%Rwwdf&(!uYmCjZ+yE&W=3oH% z6NU>b>>9I*x;`4_Kn%^}AP~=JV8Srd>A`KiIMSwRB*?ED2Vsb8rkok|o|mx@2hI?N z3oGarvvhLx=N0CbHZr31jbMo$b_7#O9FT~Oh7xj^yR%u-L>R>J_JiALq%e1zy*WxU znJJ-*rKjfTid(>J404QUOu^4zmqTP#gc<0^Rv;L%>EocLX=byC!N77qw$mX|c~yuZ zNU?-Qg?AXjx1J6WCX0KQ#q!KCN_}oPq7vkoq_ZL4B7y@UWLEK`l?Mrson%>$BP#?K zgY$~cIAh53fk{v*M)g=skNPk$@uM8F@0{!7_$Z|$3`EQv*fH)`C9?9woWcW+NhORp z_(ezwMJa`!lJXV8APGa5K$DFD4}&=8H}* z?IE+gw+yY5mvYhPsgMI4NaEiQjuC$VU*2GYYVN`v5f5CYh|)IjZ0wR+ukVrq9}C~v zAb$q&2N%QS!}JScAPA|b`-e+5<*E{@8;6Zag{kG4o#1DZCveR+49~0QcVfpN(L@kG zMpvI6qCj>(*q+3p@~g*8UFD9?cJF()tG7(I?tM?Cc6_#r^YK(OJgd&nH~&v!0!&g_gKAP*+; z-%MuaJ7>q8kT>hWNsvH}Odtrwh=oI3JYM(klW z#6|n#m?~jOzu+LXJOw1FKrj^#b|f41bTE$`FC4|V-&;W|bLn&kRocq|hRsPh#~^|T z4GIu+Lu!rW=#drI5y`<}1P7_zz*Eqe+@L_{Z2FLcyCXcJR5=eEVm{!hu%0B>PDquH z1Atp1I1oe$FAQ02i9~(PN;dHdj+Hg_iA0+f!hS&<)D2A<2%)+1a?lYt2aYA>uh15f zBQ^=(05eZ5ksK5R<%Y@*rM7lwQ>pdqRyVC}P#g_wn^vz|pGsxBx26*s#vb17r1ABRAHN5#fAVs%vO9tI0uCgsnRY)knUn}%fRLy#nH2QU`w&s z?P4GY6Xl?L_c_lyI1NHH3_N9i(7n73!KE}^X%gem7g_9%mj^r_ELDO7UxadG`XMb3 z5hP@B@tQcPRv7j_t-Cx;L<^No3Jxw!$vPLqCTuYc;NXj_>PR^dtiq2jQ!c#B4>@tR zR~#5Eu~2z>*p>_xE#K06us}IBY8W&@Oi9wL-=SHQ>65L*k-h6KCW_0$fldJZ33XAB zU=I3-cZp87_FYnNbT@cdFfbkr+iu1hN=}9D1)J;|^gefcYoX$`5L=Vnc5z@?s#5Wp tDBtI*gXf48bT>RrH#^~A62q?eO!WA1v!U)lyXP;y1LNHt;y?Qj{0&8Q|Hl9T diff --git a/programs/system/mgb/trunk/mgb.asm b/programs/system/mgb/trunk/mgb.asm index 9c6164aff9..dfb5a4b994 100644 --- a/programs/system/mgb/trunk/mgb.asm +++ b/programs/system/mgb/trunk/mgb.asm @@ -1,10 +1,16 @@ ;============================================================================= -; Kolibri Graphics Benchmark 0.82 +; Kolibri Graphics Benchmark 0.9 ;-------------------------------------- ; MGB - Menuet Graphics Benchmark 0.3 ; Compile with FASM ; ;============================================================================= +; version: 0.9 +; last update: 15/04/2019 +; written by: Kiril Lipatov aka Leency +; changes: use big fonts, editing two comments, improve UI, show delta % +; Russian translation by Daniel Ovchinnikov +;--------------------------------------------------------------------- ; version: 0.82 ; last update: 03/11/2014 ; written by: Marat Zakiyanov aka Mario79, aka Mario @@ -75,9 +81,9 @@ use32 dd cur_dir_path include '../../../config.inc' ;for nightbuild -include '..\..\..\macros.inc' -include '..\..\..\proc32.inc' -;include '..\..\..\debug.inc' +include '../../../macros.inc' +include '../../../proc32.inc' +;include '../../../debug.inc' include '../../../develop/libraries/box_lib/trunk/box_lib.mac' include '../../../develop/libraries/box_lib/load_lib.mac' include 'lang.inc' ;language support @@ -152,8 +158,8 @@ key: jz ActionTest cmp ah,'c' jz ActionComment - cmp ah,'p' - jz ActionPattern + cmp ah,'m' + jz ActionPatternMove cmp ah,'o' jz ActionOpen cmp ah,'s' @@ -185,9 +191,9 @@ ActionComment: jmp still ;--------------------------------------------------------------------- NotComment: - cmp ah,4 - jnz NotPattern -ActionPattern: + cmp ah,6 + jnz NotPatternCopy +ActionPatternMove: test dword [wFlags],1 jnz still mov esi,results_table @@ -204,8 +210,8 @@ ActionPattern: call DrawBars jmp still ;--------------------------------------------------------------------- -NotPattern: - cmp ah,5 +NotPatternCopy: + cmp ah,4 jnz NotOpen ActionOpen: test dword [wFlags],1 @@ -226,7 +232,7 @@ OpenDialog_Start_1: ret ;--------------------------------------------------------------------- NotOpen: - cmp ah,6 + cmp ah,5 jnz still ActionSave: test dword [wFlags],1 @@ -280,36 +286,36 @@ align 4 draw_window: mcall 12,1 mcall 48,4 - mov ebx,100*65536+72*5+14 - mov ecx,80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35 + mov ebx,460*65536+(LINE_DESCRIPTION_CHARS+5)*8+16 + mov ecx,80*65536+TESTS_NUM*(LINE_HEIGHT+2)+15+38 add cx,ax xor eax,eax xor esi,esi mcall ,,,34000000h,,aCaption mov eax,8 - mov ebx,050036h+12 - mov ecx,5*65536+20 + mov ebx,20*65536+84 + mov ecx,4*65536+24 mov edx,2 mov esi,0x00007F7F @@: mcall - add ebx,72*65536 + add ebx,96*65536 inc edx cmp edx,7 jb @r - mov ecx,31 + mov ecx,33 mov edx,0x00007F7F - mov esi,(72*5)/2 + mov esi,(LINE_DESCRIPTION_CHARS*8)/2+20 call drawSeparator - mcall 4,<27,12>,0x80DDEEFF,aButtonsText + mcall 4,<46,9>,0x90DDEEFF,aButtonsText call DrawBars - mov ecx,TESTS_NUM*LINE_HEIGHT+15+21 + mov ecx,TESTS_NUM*LINE_HEIGHT+15+23 mov edx,0x00007F7F - mov esi,(72*5)/2 + mov esi,(LINE_DESCRIPTION_CHARS*8)/2+20 call drawSeparator mcall 12,2 ret @@ -584,7 +590,7 @@ DrawBars: add ecx,-2 shl ecx,16 mov cx,LINE_HEIGHT - mov ebx,0*65536+72*5+5 + mov ebx,0*65536+LINE_DESCRIPTION_CHARS*8+5 xor edx,edx mcall 13 pop ebx @@ -592,7 +598,7 @@ DrawBars: and ebx,0x0000FFFF or ebx,5*65536 mov edx,[edi+TEST_REC_SIZE-4] - mcall 4,,0x8000CCCC + mcall 4,,0x9000CCCC push '=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F mov eax,[edi+0] @@ -612,42 +618,90 @@ DrawBars: @@: pop ecx call int2str - add ebx,(72*5-6*8*2-6-10-5)*65536 ; 196 + add ebx,(LINE_DESCRIPTION_CHARS*8-8*8*2-20)*65536 ; 196 + add ecx,0x10000000 ;big font mcall 4,,,textarea,8 pop ecx mov eax,[edi+4] call int2str - add ebx,(6*8+6+10)*65536 + add ebx,(6*8+26)*65536 + add ecx,0x10000000 ;big font mcall 4 - pop ecx - add ebx,(-6-5)*65536 - mov edx,esp + ;pop ecx + ;add ebx,(-15)*65536 + ;mov edx,esp + ;mov esi,1 + ;add ecx,0x10000000 ;big font + ;mcall + + + ; draw difference + pop ecx + add ecx,0x10000000 ;big font + + pusha + mov esi,ecx + mov eax,[edi+0] + mov ecx,[edi+4] + cmp ecx,0 + je .difference_end ; no div by zero + imul eax,100 + xor edx,edx + div ecx + mov ecx, eax + sub ecx,100 + mov [sign],'+' + cmp ecx,0 + jge @f ; no need to invert positive rumber + neg ecx + mov [sign],'-' + @@: + cmp ecx,1 ; do not show <=1% results + jle .difference_end + cmp ecx,100 ; do not show >=100% results + je .difference_end + + push ecx esi + add ebx,(10*8)*65536 + mov ecx,esi + mov edx,sign mov esi,1 - mcall + mcall 4 + pop esi ecx + + add ebx,(1*8)*65536 + mov edx,ebx + mcall 47, 10000000000001000000000000000000b + + .difference_end: + popa + add esp,4 add edi,TEST_REC_SIZE add bx,LINE_HEIGHT jmp .next_result .exit: - mov ebx, 0*65536+72*5+5 - mov ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26 + + + mov ebx, 0*65536+LINE_DESCRIPTION_CHARS*8+5 + mov ecx, (TESTS_NUM*LINE_HEIGHT+15+27)*65536+LINE_HEIGHT*2 xor edx, edx mcall 13 mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27) - mcall 4,,0x8000CCCC,aLeft + mcall 4,,0x9000CCCC,aLeft - add ebx, (6*10)*65536 - mcall ,,0x80FFFF00,comment_string_1 + add ebx, (8*10)*65536 + mcall ,,0x90FFFF00,comment_string_1 - mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12) - mcall ,,0x8000CCCC,aRight + mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+LINE_HEIGHT) + mcall ,,0x9000CCCC,aRight - add ebx, (6*10)*65536 - mcall ,,0x80FFFF00,comment_string_2 + add ebx, (8*10)*65536 + mcall ,,0x90FFFF00,comment_string_2 ret ;--------------------------------------------------------------------- int2str: @@ -682,7 +736,21 @@ thread_comment: mov edi, edit1 mov [edi+48], eax ;ed_size mov [edi+52], eax ;ed_pos -;--------------------------------------------------------------------- + + mov esi,comment_string_2 + cld +@@: + lodsb + test al,al + jne @r + sub esi,comment_string_2 + mov eax,esi + dec eax + mov edi, edit2 + mov [edi+48], eax ;ed_size + mov [edi+52], eax ;ed_pos + + ;--------------------------------------------------------------------- .red: call .draw_window .still: @@ -694,7 +762,9 @@ thread_comment: cmp eax,3 ; button in buffer ? je .button - push dword name_editboxes + push dword edit1 + call [edit_box_mouse] + push dword edit2 call [edit_box_mouse] jmp .still ;--------------------------------------------------------------------- @@ -705,7 +775,9 @@ thread_comment: cmp ah,27 je .close - push dword name_editboxes + push dword edit1 + call [edit_box_key] + push dword edit2 call [edit_box_key] jmp .still ;--------------------------------------------------------------------- @@ -721,8 +793,10 @@ thread_comment: mcall 12,1 xor eax,eax xor esi,esi - mcall ,<100,300>,<100,80>,0x34780078,,aComment - push dword name_editboxes + mcall ,<110,300>,<120,120>,0x34C0C0C0,,aCommentT ; 0x34780078 + push dword edit1 + call [edit_box_draw] + push dword edit2 call [edit_box_draw] mcall 12,2 ret @@ -749,7 +823,7 @@ locLoadFile: locSaveFile: mov [stFileInfoBlock], 2 or dword [wFlags],1 - mov esi,results_table+4 + mov esi,results_table ;+4 to save Right Bar mov edi,mgb_data cld @@: @@ -793,8 +867,9 @@ results_table dd \ ?,?,testDrawPixel,aDrawingPixel,\ 0,0,0,0 ;--------------------------------------------------------------------- -LINE_HEIGHT = 13 +LINE_HEIGHT = 17 TEST_REC_SIZE = 16 +LINE_DESCRIPTION_CHARS = 58 TESTS_NUM = ($ - results_table) / TEST_REC_SIZE - 1 ;--------------------------------------------------------------------- if lang eq it @@ -814,16 +889,43 @@ if lang eq it aDrawingNumber db 'Decimal Number, 8 digits',0 aDrawingPixel db 'Singolo pixel',0 - aTestText db 'This is a 34-charachters test text' - aButtonsText db 'Test Commenti Pattern+ Apri Salva',0 - aCaption db 'Kolibri Graphical Benchmark 0.82',0 + aTestText db 'This is a 34-charachters test text' + aButtonsText db 'Test Commenti Apri Salva Move >',0 + aCaption db 'Kolibri Graphical Benchmark 0.9',0 aLeft db 'Sinistra:',0 aRight db 'Destra :',0 - aComment1 db 'Attuale ',0 - aComment2 db 'no pattern',0 - aComment db 'Commento',0 + aComment1 db 'Attuale test',0 + aComment2 db 'previous test',0 + aCommentT db 'Commenti',0 +else if lang eq ru + aDrawingWindow db 'Системное окно со скином, 325x400 px',0 + aDrawingBar db 'Закрашенный прямоугольник, 100x250 px',0 + aDrawingPicture db 'Картинка, 90x123, px',0 + aDrawingPictF73 db 'Картинка для блиттера, 90x123, px',0 + aGetScreenF36 db 'Чтение экрана из видеопамяти, 90x123, px',0 + aGetScreen_GS db 'Чтение экрана из видеокарты, 90x123, px',0 + aDrawingVLine db 'Больший катет, 350 px',0 + aDrawingHLine db 'Меньший катет, 270 px',0 + aDrawingFLine db 'Гипотенуза, 350 px',0 + aDrawingText1 db 'Системный текст маленький, 34 знака',0 + aDrawingText1m db 'Системный текст маленький (буф), 34 знака',0 + aDrawingText2 db 'Системный текст большой, 34 знака',0 + aDrawingText2m db 'Системный текст большой (буф), 34 знака',0 + aDrawingNumber db 'Десятичное число, 8 цифр',0 + aDrawingPixel db 'Одиночный пиксель',0 + + aTestText db 'This is a 34-charachters test text' + aButtonsText db 'Тест Названия Из файла В файл Вправо >',0 + aCaption db 'Графический бенчмарк для Колибри v0.9',0 + + aLeft db 'Слева:',0 + aRight db 'Справа:',0 + + aComment1 db 'этот тест',0 + aComment2 db 'предыдущий тест',0 + aCommentT db 'Редактировать комментарии',0 else aDrawingWindow db 'Window Of Type #3, 325x400 px',0 aDrawingBar db 'Filled Rectangle, 100x250 px',0 @@ -835,22 +937,22 @@ else aDrawingHLine db 'Horizontal Line, 270 px',0 aDrawingFLine db 'Free-angled Line, 350 px',0 aDrawingText1 db 'Fixed-width Text, 34 chars',0 - aDrawingText1m db 'Fixed-width Text(m), 34 chars',0 + aDrawingText1m db 'Fixed-width Text(mem), 34 chars',0 aDrawingText2 db 'Proportional Text, 34 chars',0 - aDrawingText2m db 'Proportional Text(m), 34 chars',0 + aDrawingText2m db 'Proportional Text(mem), 34 chars',0 aDrawingNumber db 'Decimal Number, 8 digits',0 aDrawingPixel db 'Single Pixel',0 - aTestText db 'This is a 34-charachters test text' - aButtonsText db 'Test Comment+ Pattern+ Open Save',0 - aCaption db 'Kolibri Graphical Benchmark 0.82',0 + aTestText db 'This is a 34-charachters test text' + aButtonsText db 'Test Comments Open Save Move >',0 + aCaption db 'Kolibri Graphical Benchmark 0.9',0 aLeft db 'Left :',0 aRight db 'Right :',0 - aComment1 db 'current',0 - aComment2 db 'no pattern',0 - aComment db 'Comment',0 + aComment1 db 'current test',0 + aComment2 db 'previous test',0 + aCommentT db 'Edit comments',0 end if ;--------------------------------------------------------------------- system_dir_Boxlib db '/sys/lib/box_lib.obj',0 @@ -919,9 +1021,11 @@ db 'MGB',0 .end: db 0 -start_temp_file_name: db 'pattern.mgb',0 +sign db ?,0 -path4 db '/rd/1/pattern.mgb',0 +start_temp_file_name: db 'results.mgb',0 + +path4 db '/rd/1/results.mgb',0 ;--------------------------------------------------------------------- align 4 params_f73: @@ -1037,14 +1141,16 @@ aEdit_box_mouse db 'edit_box_mouse',0 ;--------------------------------------------------------------------- ; for EDITBOX align 4 -name_editboxes: -edit1 edit_box 200,10,30,0xffffff,0xbbddff,0,0,0,255,comment_string_1,mouse_dd,ed_focus+ed_always_focus,0 -name_editboxes_end: +editboxes: +edit1 edit_box 260,12,15,0xffffff,0xbbddff,0xFF00FF,0x7F7F7F,\ + 0x90000000,43,comment_string_1,0,ed_focus,0 +edit2 edit_box 260,12,50,0xffffff,0xbbddff,0xFF00FF,0x7F7F7F,\ + 0x90000000,43,comment_string_2,0,0,0 +editboxes_end: ;--------------------------------------------------------------------- IM_END: align 4 -mouse_dd rd 1 area_for_f36 rd 1 dwTestEndTime rd 1 dwMainPID rd 1