From 263636779be12814b808a6fc55459ca03599669d Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 16 Dec 2022 18:14:59 +0800 Subject: [PATCH] bugfix --- kivyblocks/imgs/.DS_Store | Bin 0 -> 14340 bytes kivyblocks/imgs/photo.png | Bin 0 -> 14394 bytes kivyblocks/pagescontainer.py | 13 +++++++------ kivyblocks/tab.py | 17 +++++++---------- kivyblocks/videobehavior.py | 18 +++++++++++++++++- kivyblocks/widget_css.py | 6 +++--- .../script/scripts/boxlayout/modalbehavior.ui | 2 +- test/script/scripts/video/behavior.ui | 3 ++- test/script/scripts/video/behavior1.ui | 2 +- 9 files changed, 38 insertions(+), 23 deletions(-) create mode 100644 kivyblocks/imgs/.DS_Store create mode 100644 kivyblocks/imgs/photo.png diff --git a/kivyblocks/imgs/.DS_Store b/kivyblocks/imgs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..797bc458a4ec8ac4af1d3b6de18ec8a98c5fa972 GIT binary patch literal 14340 zcmeHNO>ZMb5UmM8a>gI=g5U=7fh*Bw1&9+etL3lU#Y#Rpl0u?EdA+p~zhkY2l{q zckuX8WI$;ye$RX3dIKdH?uWSXxi4}l7gETPoXEjO?ahK66cN9RyDeuj^6+Oem&wCf zIX<41$EbnkcP6+W-{^&sT#n^jN_h&Mb7%}8_)Aw}ATf{_NDL$f zZYKkL_u^``olMWfKw=;ehh=U3h*^7hW%XhNG@!gGvr7dF`Y^ zfl(-=gJxBTkvTZZ2doY`tmL(m4lbF4OIB&lst6@h?Z6GRx@1Eq(=#!U7}#Xs0~GBc za(;q1dVxC_MeqE975=-6qHk`1xC6vg#z0&m0%ycu$TO5Je2%2aXNHkG@*QfAkUKd-7UhY4Vjn(4awcdgIc?a&VYmg_ z-LQpwkrpscjaoQ>JqsPd3qPmB@$y>eC=UfVSSW*$%no_?aD8Qc+?YM`|Eu9YhL3Qk z>~F`%?I!mY|F-G>qNx>JC$G>-#1z~^RBXgDfdYB$`O=W^r&XInG-C~ZlAGD3Edf2ys<-Rh1 zg`I+&{%km{Ya=p8l;fstL}m#0n}+>}&JWIbuZ=eNARBWqii|N>oZ!>x<}Tx*TG(Gk z*rSUY)~&U&(K@)7t}|O(nGX?C}HC%p67@;f++fx9;yQr{cC0==;1|tJbINLj_fRP?v%!r zdeD*H(y#RJR_{rCRFqZAOV{Wv(A#OulO>~B&oIjISoZi7xEYYl{{(p=yB<1+F3ug! z#Yjv+ZavH%FlBAj0#-dlM-f*T#afS>Y=XT0-s#oCCm%#@{s!hWK=Il#6#zbW|oNaC746zI`=Tl;HVSkJR|1Ki)> zUS6oH)$!1yc#wJ&5C8Be-lxlYl=yB~$!jMSigJZQx>J0woKIG6Z_Q2^%?s+XY|m0TWH?WuJ+Dvg{U7wE+>>P#I#a;rWd+_ zya|c8;Z#rY=|V?k#{!$v4P?_<%b(PNFpDTy&IZe6n$r$G#*L!|`w`_WEiVH3&sAU} zMz}w;B??1d!GJ{JvPcFXNjNAGqLoz0Bn#*#jb5P!ph>FlfwNF^8ZJN>x_XupDGcRv z{olp^52Vq%w>_X~eS}}D$&%MpRadunu(7ep6K`N&*h2<{>2G&cd~NhgxSAt7o`_4W0Am0ttS zuAEk8RQ@49cS_KS)m)SsaI?UU?#_2d`&PS??unwMD9Aw^?L&;koB4GNeur&iVcU+2 zd4+Ub6e)%YLLxsGFBQ4bnlh=QQj7@M#GxUxw*8t-Q*)umNa869MQwu~Ah+;nZy}+? z(wi0f^i-v_-+{~(5f{Kz*5_!=GK&?;#0u$$iC-zq@C9WaIY9C=$_7f&jNeHQQF^Mbpmqef{V zb0Sun!p0-#v^&@v%G3p279W(~QTn<)!;x-8}FBcOl{cogw-RC_Z( zW;#Uc%=W5drX&TjSpM~V&?=v(Uo z!G?fMamMsz_BWE?H-~(G7XHUC!ojY0NlD4t=bU$kCBo@)*%Zqk8Gx48N`A8pH~rtj zi{GM~nwl0dHBx)$=B+*C1eodi!8Hcp8d>)0G)sd1ry3=zr9y_0L*DCZzx?|FNLMzIm0SM#v)vK=AesyQDpUYc#rEeHhD=NifY%jU{Q0s15G*> z_;P+7d~u4k=u#^_tsM!}nlwP+aft+EqB{M`1qJ{w#a?7~?a%}|&v$Z!{^W?VaCmY1 z#NyswFz+cPapQQp>HDQcmsZURYg8Q*XNQd*6+p3BDeVtC+Q>JmZ8Mmx*2Ys%BHN$t z9x2&e;~z14loJ$v0?wP%j$)C1Mzu@P;WssEjT0NTu48E{T-D>2(j68lJRFVByX81i zpzqkT=;$|oT^w4=QuUg}N^s?!a`r|i% zMOz>P^p`?eMY=HiJXULU`!!}&7D@i|&qe!MWL-^ekN7;!k+HS0;new5m-@>>{2{+i znkoAH5$NlV=~@>+TMbuih$wt_<#x9E!YU%(c9`l5I?kIH-p=RGZ}m7!#(O)xVSf&f zTdRoxBMarxyY>RTA&$hBgHu~PlwKX~nlUjE%O8W+Z$N)p>1T5KQTmvv7cSqyJbr{S zHPz|S@E%m&5l}~c8Ozd$T;z9qk7?*an9J2P;WwfSb-zp$r^zco9NytCv+1UIJb6g; z0D$DR-Fh^3w>ow>YwnLLK-VZ0R0L;j+`bbWMA^VZVa?lGdYut+y(cBjLHO>AS4Bb(^};qQWcZ;UPEI=qRG`VmpZh2ooMAoXU^z$_DIFK>D*Ft?}~xRK6! z!3Y(gpUG_kA;kiDoyz-xrzmU%fNzH$zsDN9C&m}o+hocl?I=B9{MuR-lv?54SaMLv zjDOYJ+Z*JEPj+8B6n2XJb5h4bYuSqs|FDV?z%6df9F6oM5uI!5&tg!aX*-vhpuNhP zjGP#3M1j~jhqW8g$Q#s1{9;-`K|$!Y&wChyxIK;Qh<7{?<7 z0XHGLwnfi;FiJW8P=yx=dg`jXJ}7H-n5QFJ8n-rfsp{^{igSNHqFR9cRh zs(0eGdT>V7*GDMqQtRL+wa;+$?k+aET03bp^p^nTqYhnHdWyqe-BD3dj#EmQq0?3L z00ML+Fs1zo(Yd*ca!gu0bH(Ysdz+42-z`eEgFcC%3p-*}{3U9#}+@973_O3kkG&>2fa%I1$Bg{a4VbSxCMThT)(W&k&)si)uv7uBI@ zYlV; zB2eOUSt=F)rFlY375LGFUs|e~{ku&_D!in>|5Pr*WT*ttp+RbbRRNf&Pm8z72}A4q zX5~;ZSTKwu@GB*kM|D=sP}gWG&D4v8I~R{lP#EfHg(if7Us~H72IoX_RMU6?-RGhY z!!7Te*H8M`#s5b4#do2*U?6m6EqxF8XSah{plFgQQTWAE7E_&WG+)O`V4V`>U$I_j z$Qj-E3L-g?B^4UFTw1N?Xe*queD26>=L(z+iWi#MLR%A)3ZK>rSPgBm0@o*_$ID`e z3s|E$4oREdT-A)n`(}XVhh=AHzY)w?`2EVu1%+w~Fpkpj2Cb(BkBUH(=UAOOLL2q! zp9*O*4i>ORal9LdB_z4S4tX~Y{c>k_uxJD#VIm+tI;gqQUc2*mJdaZLj4Xq`mx`1@ z-w^0=l}~%^3fGX%A25hw8(90s@|&G_BF9`F>a-oiqGPPj$h2qIza`Els3hXuoCek)B18ZKT4Tv{imL^WGWSNz&=} z<0PUES|@{|S1t$lPn0Q&kNk;gpUO`yyrExb^7=Ph!xB5rRrwLWzh$dly-c;db@Ong zHnu0%p&-;CL*hWsJgaarr`rDAUvKEHcE2wmCJBELGw}`)8j63}ADj_wp`$smOLb^K z%NZ@qR_$=BmL%j?F$S7c-sarvb5n=UA1HSa6Ol#9fe2Gkx<;o68l_zz^`!XT_1qksdn}+zrBP6)V$l zV2_%zD7zv9IS$+ zenn!THWwf(3;gf^5(__Yl7H<3NJ15-C)@@SE#=1tBp84YPTtqqF z5sJeI#g^$6(-<64P|o=M+sX<&CuA()Lhg0U$&)7+fc2|KyEO8V7MbA^Wy$|JMmiJq z7W>#$gHr}stVOWojruaITcpE$!>xHuNegNjd#h_<4Ag3Al-Zw7c6BNjs{HqJQ|<{M z5vTXoX4}Kxg@Lhd~ozbt1X{0l3AfGk)ryUQ6q zRC4L}kX-?TOS{z-&RlHH(8fZdZ4XKAPA#0D7t-g&f#ke;C8E6#K1C4Lo?HV#AAsL6 zE}W(pYTa)*1Mj;5X?q`SO6ni{{TaD6);ISmmSgb2M6hAlHMxF$Vt?jx^9q7-p|<_G z{~9KqXW;g};zN2jl1`+<8J0;Uf0=}@&<{%*Nksyd>udL*l8h8n**!YS%l7oqUNqyM zj&0aBpn#@_x@54fM&(lz@&-S14d`9&~z`};D zhG5U{-b)o+_vVd!`UGqi-|!=yD2QH?7Q*MTV&eKw`7x_CE0iqgt~-%;bQy;U3JYu1 z*}iWebvZURc5S;UW}?QiZ7Xop5sgNFMwq)?%#LnVFvXtV{4vh^Oz_13Syq2f|LsJp z=U;zYx`g5(?$pI_Q^}v9M#i1KtwD{X4&G=P(BjjHe0cPf;83IVBm7&yXD;?gd?}j0 z9;~QRwx$LCO#4YsEfOSS(&N=2xy zJbHj?wpfMsMX3v+G_pgvkb!LcmJ*7@J`djAXq2u%c&jFoWmA*i07~|+QhA)C$>HXF zx8lN`sAw-b_UTBl@6_C^F_I7=Jra2F_(MCi!Nlx=Zymc@ekwQ2xRh*XS|aJm6-U-7 z0Z5$^)b-5=WA_IH1`lb7nio>sG6l8}HD52J*lKE^mkO-*+SC|LPlJMD05TOsgTHD_ zH(uw`>wygHBSSwQU>Dxck&uI!u$=Lj0@o9Ufm-j;9K>5f>RZYWQ=Fpcl|@#BXp3nKc_m6UK>Q-s0KPPGUFoqh5N zJ=s?oE9cG;JyK9hZ?o1uYBb;rkx{qf7te|wFg>jdzTGa8`;;7DJf|lspMbeAEAE{e ze`@~hj$Yin{pxsyBaFRWA+z@}B>OrcwIeblBwm5<_%x!5#eE*FSOK@m4FZ8<VC?p0a&cDCoiA&-fBH( z^$4$SkMYOPn`*ijKQe>MU4i#8Iw6t0n=<{yU=Nj#m)Kce_Dl$P+tqzDWbEMJV<2mJ zcSmAWz&ZEe?X$$A&f($V)z<8GF-Ef5ep+@cqOX^s)7{f-iCy1YbQ?_e<7I;`et80f zpMkwWQ7@%y#!tId4PBJzybPQJ-u8MKyB zJdW|EOt?iN*nQzYA~K>!cFLE`h&}GOae%leDCjiCl8cZd#Vb=Ux#>f!%uu7U$?PBH z=8Ww|-|-c65dUnU(FuYF?I40IZm}XR-=l%O-SOsCf#{@p`P_l;%{trsZW4RD3=n)A zPbLi1xvL`w4|X>;hJVpSE!{$keo9FQ zZVlT~9nvVY*Xd!}c28?jpoI`dMn>$j5rlV(H@5JV<`o5?|J4Qa0P-@J0mTIm&V6;~ zuqq3VyxCtWxV?C6I2iLU%3gSr2EU&F0wI+a6~cN7ZSneh1I|10a$LX-Qj%i#r$mY- z`Tq+0bonSgs2Z;)1GC#d(p7M}!bKHS*zoDF`TC4RtLRmS1j$S#@u^Ke)`l4GQ1H1T zc0G&$Uss_Wm^44E%z&K@b^W2f4dKI+Wl>mmhCglErhE5-AlGf9JjHbaBQfCYUFuMc0Ph+-`_bAd6dY-v-)fCiLQT!Fx^$ zn|j+2^yBJhb>!>7t0MbfYw*`-Zsd4JPCFkm!05jul&{I4O~gNpIz+;q=J|DsSvvB6 z69B$WAw+^K~sa>QWSozZG>v?gu;5`Qglg%We zs7wXJNxF>Y!Y8|~}C-{A9s>|9|5bF(bv}|Qk(bnpnt~aPsAw{7R5s}dSbaxACq)KTHdW9YU=m*2=|H}u3>d{YY+w;CZES4ApJ zy)IW?=^nImZY4>t8^}e#&hSaY|9Td`?dIgt6^;9ee~;i?Y5R`j42V(@YK^-ZUsswS zbiKo_D4~4tn^Ps}vPhl4Na!|r=7WpBBTd(2M6=~YLHTtHe-0fH7*Oe3B$iLC`PSye zX+zyw#RqvPmPp}>{R^Y$Jg8?bU=gq;UKRbU*k5?3ePe*rq-`I)+PvkFwiW^4e?JUY z0#PwAEZmlM<{$C-2uRbU`&=r+Kfm$z@*6HRREapu9vjjZOcu4gd+SWzIImM2d0Qt& zf!qXHdx8fKN8C(G7BM0rr}xEzvb>cs$KIv9OX?@m&lva7cxOW9ylt*2rC&^dE57i} zvyQ+$cny{f1Mt7+UfqwYVq^avAe<^)IXV#VYDt;CpDKK+Pd@s5|$%Vq75}t1a#u#N94!8y`_C%@Z#Wm` zBo~}A+)o>|a2U0)WkN+-1AIIJ0s_=0N>1MmitD7r%-Ls_1=CB@fajN4VF38jR#A8h zmEZX5IK>kSGrQ3zQ>4EUy4!DSl9QNBr-M1}+$%mzm-Oj{5RD?+0;7++2PgFe5`@+{ zs6yxm@5DVlE*x9H#u#$OHNjnCL)mttM8nqOlnrR9MiK`CXUzkbO4JtggRh=l`zn!F zL*H;Z5KT|1#ZQgA4ZE{$#whfhH(9cCs5T1`D{Pl6Wm#!lG3q5aUP`*N@Jkx)-oN35@9*u4Q+C{1MP;Hx&F~CF^f9KWDb$` z(=bNfp34N1U8h@RR-t24LE4=&u$;Xeg_G>J%pTlb8~q@?vRg_W5QOs}SS#ZNqHPlb zYDus=)s+`7Go?x;G%;Fi)JQc3V5WNvmk6yhmZQTAyh`Db8u07b{#u~&^dPR=-m4#i z(ax#cOmaURH%1dTW>%^|cI}pEIxD}#T`_UB0_;R-^87ximhY=cnjHQ73(jfflUwDj z%fx@07U|w1hU3H2ROzbssEsDoGp%17YEZp+$mkTmDlS5Yq3iAm7-ru={M$_z^<`IW z5a6F@3!hDRoc`;9Wn@!}o?4ouSHB>pS6L_`uh2iI?lq{L+>PTJXPI4eL`; zLwU{y1zTzCJRt4g<}R4QpV!uSCoFGBt_r9BAPtVJyEe9w6+|=7-!i&yOZm;s^;IKY zFcTcWY?$yk>k%Z^-}wA+iMivIt#7&kxCdt(WESyxCi-EIaB+3@x>a3uik3r8GqONf zBqaCp@*4EnB>D$i_)NkzQG%xsI@X%V*X<5Y7W^n{#d%+gf6FiH8d@S1Sxy#{PJ-b^ z^=09TQCCX!pVnmGTV8V(mYvr-L->ZEspE?KzItBAF$K?R7&1t{LK?VBne0iz^t!_F zp`gaHzlv42mu_tGKFKq2t|TF4@|cz-I`fnNb3Lmy))gId!B47n#6D#E8yEr>ypo=< zG;|mGafJ7hGQ0%$+SPyR)zZ`~$+7lS>~b~07hUEh?(Sz?f;;qHz}RYzLgRi?V*c2J ziC69!bsp$zvM#b*fGQGtSNBC16G1KR8ZB^DbXl>#BDgEirsM{VOsd}VW%<|u%hAwE zVm|sGtbq{s16(VG!?7tJNX_XTwp}i79MObN-r4g|$dBrxfcLfI&1@&oy&;XJY*tSs zZ|$aTH5zRXn`0w$??JgdozpM!u33|Hiev-=rJM!MYs$La$uYC%PF7h_r}ZkSc$QV; ztj5-$vW#9{BgdX^ybM5;3&pzmOo9B1Hwh{q`J`2LJso<_WOu7JsKy0d7>h?Ba+YchtC(O$2}1qx$b-0&E2TC&L2QiU zm&Q3MJ0>`RMS<|JpSx3NVcfOvA@(7^wutD^gTLz%qwwUoS2djVw`cNhkWdtnm-^I5 zZJCE(O3n2{asAunh;j9gMOzyj3J7_gxK|40B`FwQ3%7!re}eN9-$-|VDcpw7c5*?x z#Nn>K>ieok$^KUz9IsVxNLTme2^rU#ggpsxAvGc$VTR47#YcO5u#Iv*V`a>a*~c0x zcZTZIK)LC2Qof}1lZKG;WpA^VI3+;Hy8BDEZlJWfOQslMBpuNngBt)$rSZ+jp?zN$ z;FN`c=p*jgQQOBc{Cyd4tyDa=p!8|wl*=Kn`AngFP)=Q&VHL&Dz;O%lxiRS=?P<7f z5WL9PwV!>V1Vzo$eWK55D)Vn3oba`PwcrP%cK?fSXro_p<%So0g}mQ#YFf!pa!M&z ze;j|4W4MOpFX9yOWAUmUJ$m(HgpPEZ8zb@aj~2>(j1QXM9Icz7%vP!M00XzM{GD22q1JuYzc zM)^hN?F%M?9m(A-d8inG6E1(^@&|R2mTq7}!V~UrZE!k%8XeXv8?WYt-CC(NA&34k zVK6Xg8J{1B;!R#g`BAF5g!!5o3N+sfx;mn8v2S|pT7o&l`Jph_pV6$vs|M$qMTbPt zB~HyBBL% zt9LTDS7j`Gnyk2Y0!bEc?#m(#u$CGVZlOgsCmaz~(#~liUub4GOZ?z1GIma_Yz7*chs;VZFn_YGi@BLZXomR?BZ7u zzt`^=4y<*^cZ^{DpLYbINk1wi`-b_`K&p6iBFae zbPrtt4uyy@s`ERa_&=;Wd{oz}ZE?bT z8oN^u7PVk?kyx7p3kcX^XM!78^gZzhBe~porGgh*+)*`{VfDJ=I|0*LB|1N<9#YD& z%`ER(*gLfl9BX@m3{5OEi4JpF(O=%dNf(O47$$iBUNwMKK9~h2DRx5s<&>ejLg6k( zj@Z1^ViaywWo?YUAH&(LF2Pp4(&7e!+M+3t+;gY@HehLT%NF*~11?8N?)25xpzXXD zn=hVwEWvvQPO3$s&hLN|c6l}`q+sm6Vn1e2MaP#OuR31!uaa5#$7%6{7fTnTH%tvJ zI(2Ko3^UB>oxMS9q#~zuW=gF_`Bz3ce|!OB!|$8;XANE%wvvN)`;Qa&t#l)hkdnfh zJ-CD$NPcagb~{Jr_C)Cz#ZLIY({vq_hKu%qdfN(Q%CKqlG`Lx3BJ%DaCubYEKr}05 z14FA!onkr**ekdJo^+z4|7xNLY*FfKGX2NI#3UQ!9pHX5L7aHKPK;Ol+kZ42nRwA9 zhYydp{rG506-9;U%g4CS?GhUq2##d@Kx;Qxr|4~|-_d1N)zA-|w-%l06KqP}mX00c zfipdY+4s)LQlAeYmP<#iZ4N8*MKh;k>r|Z7)`yJTqH%CeFFrE#`n!Ci zRs)={>h%~Kz>MUtLsF>L%wJzRD%)=uTL-bdn5XW*vb5-g*y(Ug%Z+JQivy7C;L7Vu zB5eHZM@VA0t&RoKSU34Mfn(*rYqcQ#o%PC34jQ zDR{;$%U$-cHD5IQWA7f1w8LMpbeS!JxT;{IGk$cqP_mt`V$KlbpY?H7tAIiAy-Po*i+~ zuga%$DCX#3uvfNthP=QIiZ(qtk(#3=T5t1X+r?WJpHSh1MM!AnlqDQlU~!JHL-vNb z3NG?~2)9P)c14V|(V{jv&M(!$?yztNRY7Fyn>uuQ36{9(F6%O6)R>rxzkULd?-B(T55YC#(6ZhiZen{v-A;IYHi4B_NCObd5P6bbBRb&~e; z(X4yom@I2JpH)Hy@5aHz;ro@aW0++^dTX3?YZ*Z@V`0^0Msg{O$iLQ4&up>n3OA|y z4+P=|SKV)a0u5=Zt=+tE9!mg`TNZ>BzH2n zz(dyWsI%qg5Q63ymwTNaLkcq&(@UQqRh~cCUh?2*D7_#s{_0qGciD_E_T>-2&nurG zQ(@bPuzUC3p32y)cdX5=8MLIST_hDDAQ)3os`)AW-!z=v$mXh+VO_TCyRXD=mm`ko z^@yM-z~{MiaRYZnmUb!CN-`Le$1k1qdalaJ&&TKcI+fwvxrp|SgZszmuxO{uM&i>3 zV>zCP2!h*{UHi>X_uBV2>Yi0@N|)$W%G?@VWg(l2G3u!bN(~{sj2-8?b-mOoeS0Lg z1T@_VCYTfFD(`s4@i9iJ7S4a&r3^zs)j)ZN-u-kyfilaXc$J+!-UqT`K7+0L6)f|w zgWI4`dnj%LgFRmo5En3m^4cApAj3c)*s;Us)ow`J7V|kd{I`De0vKDlfKgWKN8zGV zkp8Tc%DwwcTs1s#3fR->5ApAb-Ovz{v!I16 z-Q(ck5D0ctR=?Q8T=rIMWNxu0f%E=xgb;fHj|N2V5yT(jKpN)8rfJ5@-8IqvD@M^- z=p#_z?}6Nu^h#3CIASUDM1X|~lUEr0U}@_n#t(OpwB61dMKzvseDoCVEKDM_(KxW2 zvyVsV_P5|WpBhha!-nh&rVDpqsO76li0~(MHslb7ypwK4+mXK2+9~?_>Md*e$b}=s zpx^ByJeaG%iP6tH{1k6NG|A{|dVsy3nAP&Tc`#6%#{?13 z2;-C)|NX~56?3Yt0c0kQ^k$uy+CykwzRZJRm|Y;U4s`nMjTDhh*wgk4TKla_YriU0 zSWlNUD#o5Y+G8{@))+moflrkE(crkK**`5uF$r=<(vD>ZhiNCcs3LSWUt_MY%qfR@ zI6NyDP$E1?5!`+dMYKenuROCxil+|$jQgfjB)6dD zFXLjAi#znhGU1J26I`R>Gwl`%vaI?I!X33BN;DDIdk;$=W%hgLv~Vu*M6?Ytm(r*W zxJ~!YHM;p$MXLQGk91dFW8;JKGu}=Vb18EmG&onW+sz+m^MU@l*2Qr%`96UGMl^>$$}G zvmP6`FcC*KiqiEjksZ?97f*xpwJ%4KN)i1@df~^tNB24K>5ZXYiKl0{UAHbu;ec4)AQ--;5or z$kc{hsmsLF&MSv})YLNP1;ky49(1-=i@oFDsOTsAOCixZhl%P6QU?|#>va3g&-F*) z*?zs->Na+Em8~BqTFIzxVtc%)bWDuK$q)26on~l86keH#Tr!uucrgyKHy<4-0Cp)z zqG&-iyZEzhJ>Xp7Hy%+64sgF;}|vmi3D*PpPlI2JF7xu zbB3Cik#{2uEh4K4WHEgtD>}(i;{V=)$%5I}dXghAV<2-pB$fX-FZO8c`LQ2P8e3O^$ZUB~@h z|N0a3sYdzp;865Q3Skt?wGtXS_Nhrxq95$JmF>>CgP&#-}? zAJI|I;J)-naLm}?oNz<_@3$$!4IB?f#DpSBj8^#|P8ltnBGgC;?yxU^&P1FBw@CG1 z#IQWVsJcnLOi!Ht(jO9i1O^tPjsE%;Aa!f=2$5s)Qx%ZkdJK|@?c+{UY7r=W&AHcb zq0G0j?dtTWw*__w|xQVaN%h_BKo__8-XZs1t2beY9^JKyKpFv6ov~u{ae6C(IHK5 z0n*6=7^j*V!J>IU#m?5YWkDP%ydp6fi~l8f3G5QT(&)@4-0%YQ|KvN)d4$lPg|;MJ zvnKYov)Q`>rCVJaB*;n^PzG68doQRInV?DS=jIt#dS~Mtd;pMO_8!w_EcXIsVpEhV zypq*KJ5#`YEpT`0!M(EBkpk9OCS{PZ1}_=}~?S0GNT zbhC)&j;CGo;7P3w4=xr9modE5V4l1Hj(JRf%n&(HOu*f1InO}Mo-1OOG#dAMs^qGl zlNSLra1*|faD|u&r z&^WdEbPF83{(b<<6%IQ2;L}_f_#%R{#KvC8g`(q?UUZtNTMBE!Z_ke=6_O@Pd%u49 zoIAbX@pduG^kpOEEZIJD;CU8fw|Bza1l#~z6`nC2c{ zr0L|#Pqm(&O=`dhiVnPg#j1L4K}a=@W(e3 zv}(32BBdhH?2RSJ$c;}%f}=i^Fw|n`Z$Ek*515{#iWBO#K4F-&bK&}lfax|y3u^AQ{dRw1Q3?QG!JyRckm?6t?nn}~ zA_k!q6p0dxpY5oTwuGN7;Pfnrb}wECI&8ImNlL1^VaqT=3U-^aBWhxw7*{I{|KgAO z*0S*zT@Lc78}O13K^}nQqYit1gQOiDpTkSwR8xcWY729)@`UOsK47)$j)Nr>NPO3WCJWbI9DuRf~sU^t*D6K_5j)-ETjgRG8|t9?>~%uXC;U z;J|94<}bPj@TUtp8%#VROp~Z_kcO^~a__4Th1rk_&9lGyMrlYaIZ`fbnMZ(N*h9Q- z7fAG6!UvhsLd|7y82(cWd*9N}5du7g)Ir6qa{ljIUH^Z-<95WH_>-SFJwM$Gz7q&Q Mbxf{RYdbyqKh#OH*#H0l literal 0 HcmV?d00001 diff --git a/kivyblocks/pagescontainer.py b/kivyblocks/pagescontainer.py index abf9b89..3108d6d 100644 --- a/kivyblocks/pagescontainer.py +++ b/kivyblocks/pagescontainer.py @@ -4,15 +4,16 @@ from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button from kivy.uix.label import Label from kivy.app import App -from .utils import CSize -from .bgcolorbehavior import BGColorBehavior +from .utils import CSize, SUPER +from .widget_css import WidgetCSS from .ready import WidgetReady -class PageContainer(WidgetReady, BGColorBehavior, FloatLayout): +class PageContainer(WidgetReady, WidgetCSS, FloatLayout): def __init__(self,**kw): - FloatLayout.__init__(self, **kw) - BGColorBehavior.__init__(self) - WidgetReady.__init__(self) + SUPER(PageContainer, self, kw) + # FloatLayout.__init__(self, **kw) + # BGColorBehavior.__init__(self) + # WidgetReady.__init__(self) self.show_back = True self.pageWidgets = [] self.backButton = Button(text='<',size_hint=(None,None), diff --git a/kivyblocks/tab.py b/kivyblocks/tab.py index b8cdde2..46f0054 100644 --- a/kivyblocks/tab.py +++ b/kivyblocks/tab.py @@ -24,18 +24,15 @@ from appPublic.uniqueID import getID from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem from kivy.clock import Clock from kivy.factory import Factory +from .utils import SUPER +from .widget_css import WidgetCSS -from .bgcolorbehavior import BGColorBehavior - -class TabsPanel(BGColorBehavior, TabbedPanel): - def __init__(self,color_level=-1, - radius=[], - tabs=[], - **options): +class TabsPanel(WidgetCSS, TabbedPanel): + def __init__(self, tabs=[], **options): self.tabs_list = tabs - TabbedPanel.__init__(self,**options) - BGColorBehavior.__init__(self,color_level=color_level, - radius=radius) + SUPER(TabsPanel, self, options) + # TabbedPanel.__init__(self,**options) + # BGColorBehavior.__init__(self) Clock.schedule_once(self.add_tabs,0) def newname(self): diff --git a/kivyblocks/videobehavior.py b/kivyblocks/videobehavior.py index c012111..2becbde 100644 --- a/kivyblocks/videobehavior.py +++ b/kivyblocks/videobehavior.py @@ -1,10 +1,13 @@ +import io from traceback import print_exc import time import numpy as np from ffpyplayer.player import MediaPlayer from ffpyplayer.tools import set_log_callback +from PIL import Image as PILImage +from ffpyplayer.pic import Image as FFImage from kivy.factory import Factory from kivy.app import App from kivy.core.window import Window @@ -12,11 +15,12 @@ from kivy.uix.image import Image from kivy.uix.widget import Widget from kivy.clock import Clock from kivy.properties import StringProperty, BooleanProperty, \ - OptionProperty, NumericProperty + OptionProperty, NumericProperty, ListProperty from kivy.graphics.texture import Texture from kivy.graphics import Color, Line, Rectangle from kivyblocks.ready import WidgetReady from kivyblocks.baseWidget import Running +from appPublic.registerfunction import getRegisterFunctionByName class VideoBehavior(object): v_src = StringProperty(None) @@ -31,6 +35,7 @@ class VideoBehavior(object): volume = NumericProperty(-1) timeout = NumericProperty(5) auto_play=BooleanProperty(True) + prehandlers = ListProperty([]) repeat=BooleanProperty(False) in_center_focus = BooleanProperty(False) renderto = OptionProperty('foreground', options=['background', 'foreground', 'cover']) @@ -62,6 +67,15 @@ class VideoBehavior(object): for k, v in kwargs.items(): setattr(self, k, v) + def prehandle(self, img): + if len(self.prehandlers) == 0: + return img + for her in self.prehandlers: + f = getRegisterFunctionByName(her) + if f: + img = f(img) + return img + def video_blocked(self, *args): self._play_stop() self.on_v_src(None, None) @@ -298,6 +312,7 @@ class VideoBehavior(object): self.is_black = True def show_yuv420(self, img): + img = self.prehandle(img) w, h = img.get_size() w2 = int(w / 2) h2 = int(h / 2) @@ -328,6 +343,7 @@ class VideoBehavior(object): # self.texture = texture def show_others(self, img): + img = self.prehandle(img) w, h = img.get_size() texture = Texture.create(size=(w, h), colorfmt='rgb') texture.blit_buffer( diff --git a/kivyblocks/widget_css.py b/kivyblocks/widget_css.py index 84072d0..644aa3b 100644 --- a/kivyblocks/widget_css.py +++ b/kivyblocks/widget_css.py @@ -52,7 +52,7 @@ class WidgetCSS(object): bg_func = Rectangle def on_canvas(self, o, s): - #Logger.info('WidgetCSS:on_canvas():%s',self.__class__.__name__) + Logger.info('WidgetCSS:on_canvas():%s',self.__class__.__name__) self.set_background_color() def on_size(self, o, s): @@ -164,8 +164,8 @@ class WidgetCSS(object): self.set_background_color() def set_background_color(self, *args): - if self.width == 100 and self.height == 100: - return + # if self.width == 100 and self.height == 100: + # return if not self.bgcolor: return if not self.canvas: diff --git a/test/script/scripts/boxlayout/modalbehavior.ui b/test/script/scripts/boxlayout/modalbehavior.ui index 33d9ae0..be146e4 100644 --- a/test/script/scripts/boxlayout/modalbehavior.ui +++ b/test/script/scripts/boxlayout/modalbehavior.ui @@ -4,7 +4,7 @@ "size_hint":[0.5, 0.5], "ModalBehavior":{ "auto_open":true, - "position":"tr", + "anchor":"br", "auto_dismiss":true } }, diff --git a/test/script/scripts/video/behavior.ui b/test/script/scripts/video/behavior.ui index ee6cc1b..c042bf6 100644 --- a/test/script/scripts/video/behavior.ui +++ b/test/script/scripts/video/behavior.ui @@ -2,8 +2,9 @@ "widgettype":"BoxLayout", "options":{ "VideoBehavior":{ - "v_src":"/home/ymq/c/songs/alone-braver.mkv", + "v_src":"/Volumes/data/share/songs/alone-braver.mkv", "renderto":"background", + "repeat":true, "auto_play":true } }, diff --git a/test/script/scripts/video/behavior1.ui b/test/script/scripts/video/behavior1.ui index 0d13c27..5ed444a 100644 --- a/test/script/scripts/video/behavior1.ui +++ b/test/script/scripts/video/behavior1.ui @@ -2,7 +2,7 @@ "widgettype":"BoxLayout", "options":{ "VideoBehavior":{ - "v_src":"/home/ymq/c/songs/undr-sky.mkv", + "v_src":"/home/ymq/d/share/songs/undr-sky.mkv", "renderto":"background", "auto_play":true }