From 9c733fcf7358f09834c9385045fada14a1c3f02d Mon Sep 17 00:00:00 2001 From: MeowOS Date: Sun, 30 Aug 2026 22:33:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(sdk):=20=E6=8E=A7=E4=BB=B6=E5=BA=93?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=89=B9=20Material=20=E5=AD=90=E9=9B=86(age?= =?UTF-8?q?nt-152)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增控件: Button五型(filled/tonal/outlined/text/elevated)/TextField(接IME: round外框idle-outline/focused-primary+占位+光标)/Card/Divider/Badge/Checkbox/Radio/ProgressBar(线圆, value=-1不定)/FAB/TopAppBar(标题+‹返回+动作)/NavigationBar(TabBar pageSwitcher)+TabBar(下划线)/LazyColumn/LazyRow(虚拟化+scroll clamp) - Dialog(B③同构阻塞模态)/BottomSheet(B④), meow_ui_dialog.c - meow_gfx 新增 fill_circle/line/ring_arc(无-lm, COS90象限查表) - 结构体尾缀(对外opaque/calloc归零), 旧字段与create签名零破坏; meow_widget 类型扩到W_TEXTFIELD..W_FAB(17种) - meow_ui.a=18c21da5 hello=5e31d919 launcher=4952261d(重编重链无回归); build_sdk 0warning; 宿主 test_meow_ui_widgets 全PASS+test_sb_collapse PASS+PPM目检正确 - 与 §5.8/§5.2-5.7 一致; 遗留真机观感/性能 --- patch_v2/hello_app/hello | Bin 226076 -> 240844 bytes patch_v2/meow_launcherd/meow_launcherd | Bin 507116 -> 509196 bytes patch_v2/sdk/build_sdk.sh | 2 +- patch_v2/sdk/meow_ui.h | 114 +++++ patch_v2/sdk/meow_ui_dialog.c | 293 +++++++++++ patch_v2/sdk/meow_ui_gfx.c | 100 +++- patch_v2/sdk/meow_ui_internal.h | 7 + patch_v2/sdk/meow_ui_widget.c | 664 ++++++++++++++++++++++++- patch_v2/sdk/test_host_stub.c | 24 + patch_v2/sdk/test_meow_ui_widgets.c | 180 +++++++ 10 files changed, 1360 insertions(+), 24 deletions(-) create mode 100644 patch_v2/sdk/meow_ui_dialog.c create mode 100644 patch_v2/sdk/test_host_stub.c create mode 100644 patch_v2/sdk/test_meow_ui_widgets.c diff --git a/patch_v2/hello_app/hello b/patch_v2/hello_app/hello index 615ea6ad89ab4f976ae77c79d15e48bd7f6b0c31..11374f93963f61c5f1b911c84307a7e78fe326fa 100755 GIT binary patch delta 68561 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�e_?MvMhpTzEoK(%7%5+8_Mu}OxlhgTtQyo)FLvC;G2QPx=S8mg@DlQOVURg@LiZWQGt zB_+iSgBM21X=9>tWtm1fc`sy3hDYj74AfmUa^Oymiy)8kRQZZ3o;X978NBTu^oWcY zrRE{I(ZrU3`W(u{X2Z!1SrffJ@_aIXbW$>d`%5P!Dq$!$`#+nMX#OX2Kz*W@jTiZL ziN}biVIO{E!e`2`fz6VG$GOd)f@0|78@-ru+LY8F2-S2Ec8um)L}}Kj4NEB&tA6s1 z<&DtCMa8TpLf{QTZ1vtV>LgCHNt-DaX=CAo^MnmI9Dx$svyIKE19 zXl6A9xevfGP~Y|3I>H1ZPYUw9$}ZE=oaRo~f!R;oh>2cf!*IhD%c;)zZayBDiixX(!9ZbM8{&*NKC$|Ns_^FpI~|jjvD#RD;YToDBmcnxTq9^*vqeLpwhe{rBO-v!v~5>pN=`msu+589O3Wfz+F?v zS~nK29L`TBXyp7fU|a~M1^&ujthS<+gkgx-%AA&mz<5D01uHN324q$dNn>`njFrLWK78wzp87p)9Hm(wJuRIlsEvf<1_{!-7pn)wP;~P!eXgac z)_>8OvRhd)YG3PxEMqdX3iLwVTDKV4LoioQG1rhuBXdP_Tr(qvb3bx~qPYrMfk3(DV zhpiP8N4k)KIrM*3_C9b?7Tf>$GxIF$3J8dZh={w(vkM~PiiAjr%VK8c$H>g<^=pRa zH8WE)uh+~3&Aes=XzK9sniv0MULvtF@tPT_*UY?XW@Tz+=Euy;tjx^R{k_l3^T6uo z_I-VS@Y>fi|L4q^GiT16nK`3a+vw)*7S;FT+EC3R=)Itp*{}$Ex_|yoTwetB@t?nI z3@m1MF=#Hq*7M7TV^FMxwxw3v-mpSzY^c#TH!Q)?v}&B(sK5!11vtqu4<|axf!I&O z%H`mod7cnUf(_(zER%~e4~41bY}4W^%OMzHIR)E^AlHXn=vXKGE3++iCahGToHzsO z%=U7rOva4KY7I_E%K2sKMKNIsOU8nhG@YmeEmJ8Vy2uov;ow42vdE||(ze0v&_??p zqQo=oz}6ri-AC{^vH?Pl4~Jf`wB^PP8c_@w$~On+-Sf;96Zd2`Qf?JsG zVDKp{K}Tm^GySA)rL%6-{};{n63{u2!hH~Xu&SV|HXuwUjc#}T3GKlq)y;|*h%}XC z$AUCon0hM9$m$azu^27Dx)(B3Jc!n)q)PyR_z!8~vamW<^%9A9hNpYroTsLZb2j^mtE+2#g1nnSuNX`c#*=uzJNl?#8M z?K;Cahr(^3YOc-AKB%<=npVkk!8WZOR%>xUxl$c%;(pmZGf=oH_>Be+%--B3&6vR) zEy^RzT+ljH7KMqFr7WTBWr+<9i)#iQF!WtqE$&shZDpfNP#(@|nZRW8mGQG?`( ze?OlFqgrJB;|NA^Z<}8Zjz?@nWg0|pi0P)V*@Q3Ideh>R*#7O^{MLfbPX}^3U?7v_ znnYl59hRA7GBp-+L!cF?2o?XQ%6|G$gbUV-y)Fs`y9b}ef)z(@Que7ou{E_9Cj@hr zS$hFiJIev%dp5shNg8W|ElX0O8)#>_gm?FMisUIB9eE}bBELYwhQ`ZlmBFNCkg12&o)M4cE%0Iw(;~tF+?Dwj2y$8sc}GnF)q+Ty`nVT`5My z1)96sS8~Vosi)91HFaTjO`Hpmb@UOYF3>v7lce5=bmB!K=<6~PpVlJNQxUFY){feC z@WCcMu7+mm7aLrVTa&cHG8Kp}47E>~;rI)m-Mm0}CoKm}4LDLDEv{%v!~`krl8696k45a zRtlAf?!nLo77%ueW>pOOkrh*= zbQ{cb;RMbEH&(s%y&A2=i-NS zEog4Q4n4F1u5<#lpSKQX#F~Lem{p$%ysJS$Z^uHC%%S{+KWCal!BO(6GrBWgj>hJl zxtD(uxl37Jwn)(!Dz3={0Q=cfEwCD$^4+U{9i15 zI8aIaVini`T}iTOOS9)X+Tqa&8fTD6V3Q9V9Yp4?AZ$%!wKTTqq2(4OJPk(Tm{h=Q zlVh&evMULYDDybqLAXgL7K#3D0+EcwJQD#!fGI!Xpg^_rhVrPQQUFF6A_60Y#sXb& zAR^Ett<0^FiAtKJhzmltZMew%=>0elM%x?u2^x#a9;Uq~q_2XdIZ9vE2H&{#8ZbEK z1_Fe}13J`fV@FIow0spW-pI6btgSZ(+7GI4s8;Aj``a5dG&XXezV;nt_$mSCvvs00 zA6PPBBoZhjrT&@VJTG27z)Tu$5SkOfqG;&FgMhHLRiTCu%?*C}ngHEPac%qvirrsG z-2zJflEaWtd?M(Ch)51SLeZ=nhJoE6W=lj9UpC+-m^0dA&PXvfLe1oLe4r0C$tyyV*BFo&-D-aj zgN!ypRyDZRpX4s*W)6l~WpRN>?E`x54wS-x1CD|F0Mf1jLoL#-2R#rNAP`{gKK6Q< zng?84ev~aB+oMnk=_e!-mq;WM{;Yy#g%lJ-LDs;uCa)vRUU{0IkdyR0ko9?XLQZ_N zb<_&aRrs~n(}>a1L1Vfs2;SytRtphDKv!HDiKSFL#s|)QH`wu*3@%6;5$XLfc-I+$ z*l;b?IY#>#m0J`-?8c$RHg^ZLoG502+3A*rR}!^S(;26UPGPE)H;X8?ZC`xlRbq?s-kcbZ<@OmhAgSv`^`KpgL@1Hx2>$wi7^o2 z?59nj(Ou(&m~x|hMXkh*3Y?%%0Cw8LuD+|1)_KH=sPb0YDQ_F?U)~t)CvSW0u$RV! zGDKR=DQySsv^P?FR|#J+Mp& zDfB1cnwmiSu3Zz0AYa|cp(7#nQ^V-$7t>xet_OD;)cotguMHA@_OQ6hQF6I~bqpkP z4BDc_w39prYZJ02aKdEm*jK{63${4I#O;olwixWAxgy0PT*?mj#)4EyVy9V%lbLrl#!%GOi}hi{VlRGNn;{QL0{bD5A-rW)XfqQ}z01P)f@fqj5o%QAJqL8*(~^ zU_%mRYV90wlDRi<*PB(ZR<~LV!AaxBVlDrPBZyfwtW%_<;U?_0{GQ}YNF>B9U~%3B zi~*S(d(8oZ?E4Ot2yTy=U=1eSc#QS7s4@jJ!Z2{c5J3rTQ*zQxVn$6*49O*4OV9_R z?}fbK=WR4OLqo-WLQ27eDB4gZJvEVsRXCl)p-WAc6z6gdm69}ZKe}c~V#wb>hH^&n z)67XsdW0OLs~c`!B#e|q*+Otcs5A-EKqs+4T>Nj=JJysDXmCRA_eF?4%UMTX;!S0i zGgb-Bxw+u5fiaZJ5n?SgM9y;7CDJTw=5fD53!lnZCP@*|hQ)3}mJBuVo z^kB_EWK68P5${$1=XEXZInq7g7Hx+v-K6dCp;;tek-$gkNLrn|DzTYO+y?+T-cE+<3!Sy5ig?;H0FI9SDF5oJ2rZ&iBAFEH zlJ!NltZp`op3AWZBstIKh6u5$hNbqiI3W~{RZu)uK>=9>MPwBel2uSlRzX2o1w~~Q z6qZ#`TuS}*z8}Gw1@woBJ4A z@{Nxiyw4R2{OXz#&Iz+CdEfw6y6tDew>yZ`U(r4 ziAokzUtsR>iOF*+6135>=aQ*9r&XPS>TIZP9?VtE0nPWUmGS9Tyayo7!SKkg|4-o# z4c2{=i>;SlIGxXY-g(85?{vGX34erJ!`))RIo)(S-L7h^oB$9vtbLpt%tMQ*E7{<1 zpL>kQ=N7wH;yz-Ydu*-K-LKYgE883CZm&G{SYZ17@ZVU({J*nh-1u3f)UuSqJa-ea z*CKmyeY!i<%&I!i?{?M`Bm}X~ZPfeRbTsFL4z7T7yr7?3%&f)X(T%Wc*Uw#COX&u< z4O-$BTt4gtTMRQAJBin7*`yd+<#_VI<+0)+yFA@ju^xP5YcXaOx)W_#xQb=yKiimS zT*Zp`XFhRd6%J~*yCeduSyox^OR8^k!3!UfM;tZn7P#kXt0cd3y5}sOY0^AFk>^f@ zVe3*ENB(rTQQ>jSMIlZbu`mkrqeb*BaFYd0^`;Z@)q)>3r$HZ4nx07H0b#DnG@w=e zlh&)bV8iXj*2Frk)U15OMbgmPj2@SSdkyoBaJrv@{5IM*8p5zuah}@=lnZI+khV0; zN&uv+40W}jA9rV~ETd4hxXet(pzv}>74GY=UW0uOVD9u9mRr^X2(sb8D6QkaR_A;#&EHi5E+L zdXmWReh+csK$dX7$lQbT+}f%l?Ms}Yqfw)2R3AqNyny<`wFKMW~=G+Cv3nrvG>=KbjUqf&g_Vj>rc7b&ch zeh4}dLpKeapF`(32iuH|t>3A9^SYu$EOBMS>Bx?20pk!4DlL&dvg#uP?tj8o( zuZi>PaFb<_TXhS~p}SrGho zSZ5$Zi76GSgT;-tC!eq(c|3{J(Sp0GEf`u7P;$Lw%f{hQwCXZxRz2d z1nNr*tpv?}uVOiZD3q;g`J6i?iz06`G zs32NAB67&fxD@;UQlM49#+Pw=_x}$h7Rn6>MotJu*w&PToB){kD~YM49JgX*cTm_r zzfxg14=KY4eRO7wT5Qukh5YCgz3N#TYSO@ZmXwcv+CY6ruktB*PxamHrUiD`?`&qj zH}&1hdR(ai7Q$b_Z7a~8_Z3{j8Sl=)WV=fC2{y7YckqH4?xKpWiF5c2x0w10bnr9W zo9fB1p-sEH{*c)nQD(y|)RP!VKvOr-*XkykQK_5g>01jqg=X5{r!#9%t*YW_Otjs= z?u#gQ_Xitw6qI8M-@vklm%DAR?72)p71vv@^Fknm?2i|w!9B_gZIYMVYOwRan^=b(#!NmQw%r<78nzCHHL%VuEV1ZeW730WK@Un<7P-@) z(opX{!YsBIn{zjHjSd-}j!&ZD_+#bO;B_pee!wQPSiO;rD5PZo<@=+VkCqK&dWXX4 zCE?KU+cwnN&aA7!m)eeuWZ3AB`BGEn^ez{w;F5C2FeO zV(=zd$6TA~!@++|5+#Hz`7*#Fw+E+D#X?HI!bC07Z`cHLh-)*IgttCZnNFtZD%N}| zQ^Kx=d4pJK5K2)-#2YNTtlIrbXO==4lmElR8!|E11?F`ZBv=U|I}= zTs2&4McdF}L{B^3zVwJ?9snzjvZhL1i)ZCU1|Y9 z{-sA^;L~I3EDHlb? zR^}c>QvuO7adMASTGNp*LA}`jKueEAivqtd+PAXi!ff&_bEYz=3GdZyOtsVHJAkHPsMWlOE~zR0U)* zoJJ~bW{0R?^EQ@MXcbU&O$~OeJd7jV=3x1+E=nHn_5cWPG@9wI4+GJ)(TbZ_B^SC0 z_ggGGI$P$YOOvpa*-eaj3(GKk>)v8>voDxHV;KdYo#?~t3QBK-`*LtdMN@5CjZ}5z z|7a@_d9bw@wH*TWg>EkzuG+PzchLriHh%-cmu-g?Ex9Pf9!)8>2BM%pjmUe6mxG=$ z1zg__D_&N-#^zybK*jrHJoq5;5sXdUME={bnn-Q;u{j&4)5c#H2w<7JD*!?!^)d6;gNa;t#StvJ~pU}jzlAI=9;+v4oix& z{5ozT5c?KEk+FmIZ>A7P{N|00B95&f+~|lisNBfvBH0t@!R0$xR<>2nKC?+aHUzzR zwr15d-vS>oo>sDOUqJ!SWvXq{$2N6O8- zpZ|-cWDRd7xU`BTvIThEF-R?GgO;#@6nmQC#3_$NRbR$#mNL*Hay0<{%4Zq<854tKxH=pf=~t_u`>2Xs zfQ$GGxO{km@~DQ@(( z#i2cHg5D2Z()T^qE&>jWYmJW!ic#;e5vkH}G*FC-r7~k{Q`G${Q0l6=2M7C^IQAav z)TRmnv;d{AhOZ`mn1f4VnR{8H#76_JD@DJA$Pj!?+6$xDz=vqq%Q_?tL}P8F+X#`S z34S1B;664&6ui$INft&dJJSCntCJWQ^*%5_v?Z%TU*B9+ZYb(YLQrp@@2Gai@76x% ze^uNU z-O03fD@Y~4K6(MhU=UCIj&4#VI>Ip9`{mRLX|;X{Fc7n!eH2Nmh|~qTwiN;2?`IzV zQ?^Jr0AX@kktjTXd(f~rJmvt))-NJ~IKckorg2vzsRa7vqHIhsMU~g(fk5>x)X;!P zImiYMs|dL3*F&#wEe46zc4y2n0O91W2srE4f?OlYeE^dcq{fi7IbJX{5HS4E-zQ^< zLvfV0BtUNf@q$4xgL#mpqz*tigx5iV;(8cw2dW-0dZH!iSRYnkt&M|pB6yJ95T#u$_*uxt)awj!3U32M-Qajl=GL*lie9b(dl%o{Tx zFuDSJTN`Xz?1o=Z>Y5MPZ3M&F4`Ip!FbzJ8u?+vX!?3!wBwB1g%yK*5$C)EFk5p-X z+|;5~@%!!Qi+khGAx^aYh;^gHfsdFwe^!wTotugk?G9)p-1YI=u8L&1NkknQco7^e z9MG;qyu1D{C^$-6C3|32ky!Z=wW`%sPcn= z{(+C#<9Y)i_~K*c=?I5Bdi^TCl%jjA`r>$#===$5r+)%RuTR*2@wIL-{}Yy_2NBTt z3G1d4Px$&1His{mASN7PDINRk%<(m>17kxL-Q}0N)x>1((t)!htWP8yP#NO2ALRTN z*HF7s0LcSi1=o6Qng_?Q!o615F9_?0umLJe{Owcb(s!b$w?Ad~meC5smCkVtu`Lc# ztgRwHu~3(@mweNh4yt%e8#N>(Zvbr6K9`fD%P4Ou^7ew3T-mXqG%jabTxwiJEVyB3 z4812zhh1K5E}PCN?GCP5+|}{U9lA~X%KIS(jYAvb-C`C_yNfi|F&KyiC#3pza+fpJ ztdMg+|G$8EzWhMCd_Y-59b*If(r6|)6Ho-kWqpE;$qRVFGSXhUa=PL=0G(MU<55;x z(597EJb#S2_`RuO^D#ET0X&lmNf#Fu;A(NnaZKfi8h4zzWiLK^ob`@e>t;~{V{Nie z4jgAoBPr8aD6n9*Urhdt-7Ay6`x$$+?UR5dBJp;OQp{H=8lU|fV^1cj`hwjeOB-pG z_66$=do?2B1WVGFgfWqJg7prs4v@W0G42G$PBk7|I056tLjx}0%vB9lakG?M8xY}N zVmW~Cz%QA*?b<+UeGCvYDNNz;&nU3$OV)`7;L0!Ah*-JiL@%mFW1U&ukSLrd*`NpZ zh7lT+)VV&;)3`2Qz9OMk*>%pKc+jb*9IqxMQ`%B~+|0AXtj@x<)h`rICL(D67Wu`2 zldOk5aiRz9u!-OR-cBTc#T@qZ&=CJutf1{h6s*PCjUUW{0d8Z}SF8`yy)b=x;1r1b zlW^Af(<$~4(-RSN|7qsYH-|Iv*VC*I#ff)Mvs+}M;Az$aV4ypQWJCpLJ~93bJ12u^ z{F5vurhLPqbW|(KzF~d-kY+w7QEn%udru}QQ5(z${%F35!U<(kbP~UXUMhhOOiVZP zU{gUZ;gZaLnquZ#g9k6#o@IR!UO_?vr4%Y|%Z@m#hm1SR26tB#JNdh^;vtzd8`KAi zD!QBN&H6yU3Ic@kUqHLRI?LvishXXE2AxWRKFdaxS^$QjE}WAGX5z$G-?BDc6?&iyLLtye%Z&gFfIO{7 z<+nkn3`6Th=X2~n9VLmfbIcQIAUF4wr`+3$|4VNGNSdL-4SdB<7uX|r9x0^BkQZz!4B)F5q$87o>9@MiXo&PQ4MUvh-@%ayIg7K29X>4sBjLK7oD?d~t&RXpaBJp&; zCj6tBOFZ`@>lL#@CWq~RB&8nx@JH4y=8y~=QtQEz4S7V&PY}Tr<@k9-1VoOXSRd-l ztc#eJTg8gO7g=FPMF)O<&fhMwZg{UEa${OuCh$`X`% z>=OH^r_~fH^<657=5h3JD_L5pSsD(8Myi$|jri&p)~EaT(!xKTZj8k>YR)xnY&uY=wy0kp=J}6|=R7SC=Or#%*bU1ru z5F35?D!BckC?=l2ikV;|9F12&!jR?9US%oX!^lGWb{OpOo?5@QBw7_Q17eFGG*4uS z0he`+CG=X0IH=iB{o2ZPF-p9(81!6#3@kQ_5Ei*1Ts(1&b?T`S#A1-e8&)Q(GG$&H z8?qq<6H9sj8hePIvBEY|_ZVK3bo#pEL5%9}(_K>^Ot@ayj{52ez0_)_j zH>8_e5{ik4xk2o-PeeL0|47{#I&Bk4S}3-*Z>(wCqB4k16*;Y$BayFaAbt^li(w@5 zRcTth$C$xhN~-`N#1(}bv)I}yxyHmSXO$77`Dwp)X)oTokk-W{8b)gONZt~!)#9k^ zi&DJ(i;3S%)I+#Tb;N1praBXOZNq~FOXqTLG&O^|A)c?TDs?a2%qMiG1y}`wY?`mK z0y7YVPTY^o#bLu&8|dbiwLXN!>ogZ8?zQzHB% zjQ@$OYZr#|#d3Q3Fr42JM-nIwtWW^48*N9l$g=ag2urSk|D>H~Nk0iS@FzI{DZaBE zJSDp&o$3d=p_J;tK{6~sx%NQb4nPzUn<~Xt>L=ve@8AitJQ8%_KMy~j-%*6O;$A)^ zMr5_(DH6cDTJguFYa=@ZK$_;l{Ccg zpLxk6VqGjB!JU%@Z^Jk9X>G*THt4ly+o)c7wvG6)4KL)IlSFnLAH}z{5sTyaYrJEe z=--wH_&+;{h4g(FZ&0-5xk;VlR6ZBJ^y~#>Ph%Gv;ffO}@qBUgBWAoOua-}V!+Sh@ z0(~>u@r<}hX519Yi}*=#Vq81G^fK}$0C;>06VR9sJBV=!d>Jp9D6S^}wq@-^VSBXU zYFn|qJ)e-2)|NSN5~P6+_0@u^=!`q&+T3hA3qn0L2cw+B=Vxc73g(OxszELK|4ld`7PSgc;+b3Ha6fjlqy|&&FgVC zNhRa}Y^`Q$>#OD^QH7Z0O~7d-G^0q&@4(&ES#=%IDfpi6z?0&vv|Sw~{2&Zx0})9{ zd@%2kASNUMu@!}4VG=J)c(5;(2}Jk+JT(Saf2R2HS`LO8(q2m9?vyhj4C*o{^dU(o zIrV#R7Bix~$n6N`^kssm>j*@LbreTCqMmt4A|n}a!9O?|<7hL%?rY**9ohUlslkf% z4r?zKC-c>DUnZdQW1CnFl&VxF%Ie>Vr+AmOBf^R>JR8g9^ygX7#5Ap6#h)NC0Lz+Z zijz-^7YjRqN&cm$*o-_$aqXES2ZT@qmQn#&$xUU(wHN0RPjE)3@cdyvpo2&cOA^zY z-Nx{(0|3~^)RScoA*g8=+TH{YH> zROi&zH&_+pFcwF}yHokXjEQKxO&fp-=Y&);)1_}krCM`CDD1($Vy1ykyE8$YH~5&W zsDOzKG`1c{qhrHRz*K)oh*|Hu2{B@}2gCsaTIRvXMBUpx7?Jp1_n`6U_?cd`1%$ZV z%ah2z8U7@T08)Lg0+uGJwx^KUdHHM zU3J_H_mujzmN2nDgZJmh+lz#*d^S%@6wA6|!i>fXk6rn80&r`lYRpmk!ha=`ujGG8 z6wA8-`A^|3s&3%d?0-TSzw>|UdclEA3BJv?tC5hbPykR2Vo&R&ZoGd*Rm#yY(PMMu=^tI8%!aZuq4MPd_JKM)=#8K!3ZAkpu5O-*}bl;rszX8)-Fi4Q3R%_ym z9=u1|haEt@pmsXBN4M#J3HlT0CjARY%pfdN1`>vQW%DBbLI*K3n`f83ib&ADW|c_a z1SGV+lsOoTZ}wa1Lc^(GEBxj!rK6+!R`@T$)dm^Sh*A@d=-QLF=8i`i^Lz61oOE&- zux&{FHY^v60^j+$pp&afBD@#x@BTT7N^5I`E{UKpfdH(QL_3qjq+aNEta9smfj(k8 zic7ut%%m|LaS|M9cC-r9-e$OHVVX7>(@`wUvs{k3+L@{`xOa711@=@5e3Jvn=vq<+mhHm6n}}+~llhY! z#mBw*sAv*@NC`o5|E@_QkdG!p1u!+APa=>{!m2WTlWql%l4p9#%dvF3TfRj{>nFRl zL<8UQK>0w5MOuga+ELWqipd8`_Wif=A@p?@@L_yZvY1%_Gz?A_y9@ZZgt5u0vuWje zD%fPBj_;E!0)3G8{^Z7SeRv_um{COM@U!Kjf~34%0eO1IIE2h_*Uu;_fkF$f9iy^B z%$6U76zVZ&>J_O<9B4`w(S5nMXjh;Z%CAznMMQTCb_H7Q77#F`Ae&L-mugg1whPvo zoihE5qJ9PwZ34WbsP4<-ZL}vMPV|A2si`j?8Tm5SOVo}JvCv5K^B%lgCo#g$-MRNl z7&L99cDGmQRh|45Gcj!3RX(a^%kpD2{|2?da`Hz~#cO`PIc0{K*DBol5^O;3{3708 z--`+l6!9*6L1%HLh>uBI)k$IZh*^nMD9C>UDQ&SCkVZQ`PX+j+y@?bIkOH-QXrQQi znkj%0QNa&ot*bg8lwDo*7_Gi#6E)b4aEQ^xynRw0oL9^vF4iKLfNKhfQN>_p_2#!a zTC6PQ1LF=tk4=s6!?3^Eh%3e1ok0{tU|0>bj#g2cCDE=5l55Fb6D|7p0|Q3mC-uW@ zxDQBxKYw4qRgqfm;;9!%uR>1+H|f+gS}os0D`?ykdLl*PrEh2E_#+09S^w#NpnjB- za2wAm!xQ3B++oMUphR|xXQLk*B11vtCpexhi^ACz`GyxA6`-fDm86 z(Va>N$L%jF!L|OdT<4Q64^{#zQZF#m--G;>*uWBL{rS^zAV5e}P5Ol(8HjAsF_5?S z2dZ9479aQL8Tm7c0;o>eTcKq&EvdbZVonOhu}}7sip73U;)*BO#*;v~7URvKeWHqF zk$*eiUucafo94&DOw*h|Cw+g$OHB%;Zj@0Zt=xgT!iY*yy%%Yq7p`@77X1fs_XvwL zi5&4RTAJ1E*j$%o8gh>6RZm?-Jk_Q(#Zet-7k6R@AL2fzxK!L!4h?%bS?m~qWzN-P zk#z?j5kauhOSX@77K`uTS!(w@EpOmVeY7x94?JBuL$`SiF& zPE|jJX;447UE=6KFf@F#@5IuqXR0`TC(nv=y9nn_zCSorlFcG#qjwM=!uaD(G4sFp zu>76?M2h>+oh?FxE(Mjv9aRD81j)*dYlBsg6~4$RA_hYs+2<5{2lFv;=Kv7B)D*8Z z)oXrM@S9T<-o-ai{Q0{ec;M?U;oj_hNEZu@KYdB_ZyD=?O|9w}%|*tVB%m)i)sW70 ziJ2vQYs4}arB61dxkTaJm;k|uCfto#VMeMrdN=Bs?Gg)zV7%bFbqEmgtxLq+1Fqc` z2j1`Dxso^t;d^8`N;6FQktqv2Xy0p6E7ac&TtJ}l>~Tt~E`(YLGkmbSvF;w8z~cJ3 z2?$NIfZpa3hlX;uV?!qb7Iud%-DCuRy;Eb#y?hkjhINbC!_f0zq>8h{AcJ z{Enxu*l|B3iq0MpT}rE>9N{g+DhS`zrF=TS%_EXVW8Cb>5JyMzl(x$~isr0iKO{g! zj^Y32qXXjT7%Xw{&3%BMJefV&()O%O2!jcUQzmCK^~Iv4Wq{m?J|oa_+}$7KM6t z!uC|xbn*FvJZXqk2i128=@O#oW$^&iRt$EF-5RC!As>}TBh+T*x5DVu0rH}+*#;`3 zBwY*~&yylj2tFqsr^pbK#&dUql^;TYtY769>&Ej!c}8+9W?azGh7!uR-pMU^RstU7 z77-8eq-YCX)h?0!5MLNg$In{wi@gu=!huxZT+E#K4}pz2egZzNKA}?uq3uxZF3NoJ zhCUEOCh%-Kl^2od5l=kGJLHZI5J$1!klArV!$@AYOGLIHP#m4W$E8?+IU&Q%GIfJ^ zBUTPJSGpMWFi*&!G?YIXX_)3VTFRjL&~8xUyP!i)cM&U*-m7;(erTEqfpokr1c@Py z7e^n4-Su83>{cCAmg=mc=8h%4nMh1Q+=3AJ?s5=mz`j*3LcH2)J%ZdgH)Hc#_U{ zbrIvHfFI;`5zD6VKt!iJymAfM>W(hrajc)5!hIF-+(Rm%RU;Eo3nPu%N+E`mSChd2n4xct&UuT@}w|1l0RD?==P3^T;Y z$Hn!>pzzQ#AV0*oB~iM;!O4v@S<`qzp%rJ--l5xkat%W5vBG8BkblbKDt|Y)A2Zzz zGsWC#yuX*0USPbij;0v2b%)joO{1s0TvHce#rbJ`gL^vCxY995yW6y1x)bP7e^z60 zRZ~jos@}*D+y9J(>8_b#!*o79i`EeruuFFm^oD-Ix`h>7#QF&PX_Cp4Kd0CW;Su*w zi^Y(?fK^`(h=qUQbzXm01<%fyR+^{D$0jAwvT)68(ngR~=NKu>WsAePSnd*3hP z=mowx#^20)u9WUn052t>o4`H89|zO=rMvJxj(qrzdz`xqwPM2v(3nVXk~HS2EtRmw zhlIDm5elmfCm_btxiVM!DxO{}c0bPN^S8T-!87^bGKxzD5rj#rAgko^A-!0IX?V?# z;5mad3f6as{^XdUa4TJCUaP#2ykLs13Qc=QE;VS`L^#I#yf~-#>hllojS(47Kri1V zQ!IRfdy}pKDLlu8191_gsbiiJr)(UMw)Y9hV$qr6`V*jKPggN%79W!6LHY>amskV* z3GMY(lONhJY^dY7LmNk}MpUu0dl-6rT^cYL_arY&TAE3t3MXt~^dJgm2Z$Pi!Np!s z#Dpi&tC%KMKZyx%X{Jb;%@>wk2>8s?I~upBgQ)f5%pTxEcS|Xn7AI!{ML6P7B>iy9 zmbWqegt3djq;-##{8weq@Pf=@GIv{qt-K=Wl-=s2)dIg{^Pgt2wir@93^*LvSm*S6 zFj?f5VVO$jQOnABr^1Uf0}u`Lf{5}Wtv32kSdZ7n;*sVC`J}c};}J~JFx2*GiFk5^ zYS)UDI1yhgj+XJ1F&DApV>4~4P&};(e8rv$#ltktV~a8&;x>=li!*)n%yt9mPN?p+ z(PJyRI{Fdxm|BL&I%=_N)YdGsM>jE|96AL$$$_->G>)krspJJZC~UkrE~zJQzP~wqj2RAH(&Bv3>!-odvPY;)Pc@`S z{H|-Gv$LdNrj`r@2Q30&ex^Ft6yvGf39VGQfE5Z?KP*7uk0RbeVT1tdc9tRs9}bKZ zWd_Uw=r99iq@yfZn86F=#ysU82XWS^G(72k?sD|R~6Y@k_K8ZkIaSjID z=*4OeXOL#jC~9^|m1kx^5}0k2x=2;H8{CdomoCSj`Gp|eSnX-7m#tSAN3R;YyNgkC zc|sZWFsR}Nj=UR>TNB_NFniH9^vDnnNa^Kj5%Hmj2nG6Lz*$d}L0By)CMuzue;R)~ zi{PTI^|lx*Q#M@6V#Q$RPPqUG*Wz&%mld3V8meFMVqnPMoZ(DhG!_Bb2%obU#&w(7 zF+&%EUFJT;bG;}`9^?I<8d|OzO72qt=E4uL@-i9N-{PmZJ6r<-26Y!($sMoUC!fO1 zc`+d3=3(IH6pMxPz=D0nV#7Ra_~aGOdBx>O1D8p~FCAt^GBmLBA1MtuQ^M28n^`RS zKg}~T-bS6O@!@Ds7#dnzpI+QlPj{tG1hiMewN_y9&R5Q08h9Ga2H!)-AHF7wIZlA( z&qo;AR5%~|4S;vVeC{6jD&j24yExM@&IH!hlZZw5N-s`B*^*5g;Yf!A$@Qu;@OqIG z`X9vo94u{fCV3!mX}j5l@{Ll#2jzk~s| zkPlXS%Fpt4`YC9{dOgd#NJYv6&vF;P&|S=b7K^D#K9O62RUzi9Q5Aed#tfeVHW&;T zAK>~OT?&sj!=zj8Jll*CpEy~;k8*ssKgaWBRlhyQpZ3wJi+0Exk;!uccCzHHNR3;5 zYgI;ZShwrXZ^Y}_3wns%mFT)gpD3&{4*;x*Q3p&XSK$Cacn|S0Ma0SbqG1L~5%y~S z0++<=_#_7^X#}?1PN?9*{~s{VOtd8Q13dn(J;mx3ynlkkIMUPAP>Ct9!)55M6%g>yZG|uJB)7u66XMCL=W$X=ay#@u z)gw6&Xk!_F1VZg|=1`g;rS--s zEBPtLALu29)uK-#ZV}UKQNpxdVt+048Pj?JGyZZO4DL!}+HTN5lTLkz`0KUcL-;1G z;sc`}pmf-O3~%)zVq^aP4a#~GvnfRrrnx@za}mv0eASM#}EipxWs zs}|#D;|KiUEg0D_16+Wf8w3ML{m^?eZxM6XfG456&(~mEuyd}My%u||D)06Nd#<9C ze%hugCzM5><%rE|!GDqd=vr*jkIWSrFG729U#^(`B33U}zQ$Zp_o7O-|3&D6p3W6< z>+oHgD~7G(Zka9}XTs*@in;JpdF$3eBK z{4hsMUk@1YUA`VL4Cw_^6+Aa?v@EN9EtZ+E`7vkx=w2f54}OJUEv!SE@m*MlrQid- z8V}WB-&Qs%8O9q=_Y%?dSlVUfiIw#L?v6Yn_jU&44Ji{rp1A2`Y#ZZEq|u;X){suq z<}MzbC$7}b&X4=)`}$?q*TYy=Wx2pBu-+PO3uaO$9x7hj`&(0kSc0(+K4tcp^ z@0LUUAY@r1y-3?3>uAxgl7vKQKkY5tuk)-Z;`ii-f~SIpX@dBC1rHZ9UdIMvIk@=i zd|{G5U!|c5o6JKJ%vXb92IBKK@yh6!d};^XXJQ2i`*;(MIla<{MPb!zpq}VAFtD+7 z&w7K`QJF{S3)tsxMmYTIHiPK>`Qq$m^x2ktF|&~m%;;pc^#@rtHa8u2quzHmkiwF} zrfAw~TrDW*bgMYu$dgj7Fp4MmEWf2yroQaDh2KHb*YqtsCC-k8K`_`JR2y#49#HL5 zV%-+3TxdJy`z^f3i2H7(R>jiptHjV$>Bn(I$8@|Ofi0TyVoWJKF14D|@X-k4G`vz{ zv$0m13+AsFq{|u4DK0gAC{`f2zgiww-#cq6n z&LHFSwC@n66-mC0%@_HldI)7!GimfM&c_9%H-W5|dW-XK^8U?~*SbIyZo@=|GprM~ zVbPmgAXaYUNgXZ9%#}d$<_!qCHTB^(>{dcpxV{Yn0KU0z@!9gORO4GX5rBXzZy{pr z6C!&%rkc)u#MJFPJ8~OJqBSG+Tf=sKcarakmh+o5s3<`&=*ubZBa+^R=2B&VO{PAg z@NHgLNQeT<2)bNiFQM_ zIaVn6yF4pDy)Wppd==z`d0<#`(yfK}1@sA+wxQw~Pc~nVvR#`yi)@K?=qn~5KTq!~ zmcPq0Qmk}X5g4ghp8BDDYi-ItNOSUC92K_G&>r?53q`^nUf2IF9Ho=eASAr;L3M3_ z!W>8wg_BGU?bWLFg`ofHAsXesTozjp`c*JChQG&;GX6Cx+6#IfhdM{vEQkL~$K zW7!0#5-L+`i0_M;%Xj)UXO}n!gf+a$3`YZRpjx@N_)$j{Xf;peM zqr5X7`5t%-NUnZEoF#9g^6qOC8OPv#lf339g(q)Qv3c7>9R+U_d+GDGI7^=<5pf)! z9U=pt@PDbQCZ9r8yTt^G*)0~*=iTS$BqRv`HQvhpu1r)eE_}ul^^5Ov@p7h~!uH4n zCqCm2-t?YI{4H2Q0zxyAp-255GdGjyznFMz>bKz&v97$;HO;N>C!v#O~kV_)tBu}wVyGmh9+;xn1 z;PbAvR9LOtrQZYIYbs65mpsXSo!rzT$9SUM5e~tUNcSjm*M^I_Z-G1+7Gt8O*8cpe zjtPQ*wb$DzwOw?-%#*^gZAA5U|AKdLR7j7N#c0)>g)eDw>z7;UBJvdP_&8hXFZFO-cl{+saaIG0=KipR3A}reT;>iP~P&1`lp;tc@Z+}m1*pJCeXLMpIAuWtG9_deDx#!6|LCE z-cH&3itmYx{R1ROav&+E#K6!Nw|&6?N{=4C2ILMeaa#; zL3K!Ay&34(w}{Fz3Dt3YG5IW#7_gLls%IV5(o?2-%~7+AqD-HCtRP=!aUfam$W-g> z`)Vjm6W@Oe9{u0s#z3lWrFXC|56yZ``9u}wvhcrAOkdGG3f;eg+!hDkwxYRhj+_@l z^Iu&_K2Sa}x}3k0#{_tV^aK^#vahIZiQ=|Z&BdkWt)d8f`PE=BNF~vq50^4J;oBL% z1*^?5nX`rx_FeitC}&M`e#cc6Y~p3(T1sT`e&34<^^SQjh6Foo>q33=q_3}8K);t{ zEy|}~e#tCgAtBd3=tEh&X!r_fKWw(-@?kOI5_sT% zW6gy*h99GZ<{ZVHUnv=5m`q}_Z<9Vu2?@XiG)c0#;6Rr9`$%vjJtT*IQJ3p0DMRX4 zLp%i*K)i6z1WKGUaUe4DF%7 zqnQ6oaA!qQm?WR{_6k-KZ@B3u`9_}->ZxvTlhUq!5RPXdbL%z9&24n(<2#wrHI}2P zQ%kgCPbafR8e5KSDda;Z!Pmj=Bu~(!<%w>9PvJ8KMhbS3c0+u0v*+TC>uIPqK7mWRJa^5q{^UaNDgMhuZr&;uJ^WYGd+YK zyRS&a5E^-r1Zdeqdb%S%K;f#(6Zs67^$Ekkih>x9uRiF(md5kg38Ic7kHFMmm|m#I zPgEdt|3r}yj({bPm~FWDNJzG;kH}b_I7yrh*Haw3CQ*$hkI`35#+bSak$WlpQFJIMCr6X!BB_?!+!-Uebm&m7xnAf}{X~g09hpa?Z z?HC|^=5W^!*R_--2DtQiarJYKi!-l^y4HH3eamYS6sa+>zfSJH0P7T(!PTuT8TBJ? zws`Emw`6rnvyu3=EI`drj^om2v6_qTP#hQ%P4+t!oj9iLlz|FZ`$pwcBYv0J(F1l- zlA!2LL-5qUR3Qy01ggBf89Fq2jeBGCLauMy-2#?=TzMM(ak_)+S9jawQcHKf+ngq% zabdhZO6SM-h_mhWmG;E^@Diuc9Bjyi6Lye|eOqx!skR78xJ zJV@^*Mjqo)_9HUHEY$gLRfAlS4*IuQb$dNoB%=rI$IWO0fG6)4dpm*2oPzGLlfII} zhWEl0eYV~90hOUE<=5~JL`G+{f6oUk5ZZl*Cmu z8q;&&f6x_ k+Og7#TUVS0t-`4TFp&qRg`Amx1_2D4F-(-gJBbSI4N9p~30lj+kK6>os5QJui zdd8X_;@o^M@?3)~601}jJU=}|v zJ>a_@c*f%nFU1`A9(<@3pm|t-(h(m)f#7yhYIH=Y3W3f&oCvbEar|Wc49ht51Z7o! zgarC?;fEDH?R;n>pJe!H+VMy+^HDt|JMS5$TaI+5Apd_-5d5R*78q?MN{>*{~tBKdUXH* delta 56863 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⁢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
?^OT9qACW*s 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 delta 140373 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 / + * surfaceContainer / outline / ...)+ 风格参数(radius/radius_card/spacing/stroke_w)+ 通用 + * Options(meow_widget_set_opts 对它们同样生效)+ 状态机(enabled/selected/pressed/focused)。 + * 向后兼容:既有 create 签名一字不改;本批只在其上扩展。 */ +/* ============================================================ */ + +/* ---- Button 五型(meow_btn 扩展;既有 meow_btn_create = FILLED)---- */ +enum { + MEOW_BTN_FILLED = 0, /* primary 底 / onPrimary 文 */ + MEOW_BTN_TONAL = 1, /* secondaryContainer 底 / onSecondaryContainer 文 */ + MEOW_BTN_OUTLINED = 2, /* 透明底 / primary 文 / primary 描边 */ + MEOW_BTN_TEXT = 3, /* 透明底 / primary 文 / 无描边 */ + MEOW_BTN_ELEVATED = 4, /* surfaceContainerLow 底 / primary 文 */ +}; +meow_widget *meow_btn_create_variant(int x, int y, int w, int h, const char *label, int variant); +int meow_btn_set_variant(meow_widget *w, int variant); /* 越界 clamp;0=成功 */ + +/* ---- TextField(单行文本输入,接 IME §5.1)---- */ +/* placeholder=提示文案;buf=App 持有的文本缓冲(组件不回拷,只绘制/编辑其上);maxlen=含 NUL 预算 */ +meow_widget *meow_textfield_create(int x, int y, int w, int h, const char *placeholder, + char *buf, int maxlen, meow_ime_mode mode); +void meow_textfield_set_placeholder(meow_widget *w, const char *placeholder); +/* 聚焦并打开**阻塞** IME(同 meow_ui_text_input 内层轮询);返回 1=确认 0=取消;buf 已回填 */ +int meow_textfield_activate(meow_widget *w); +const char *meow_textfield_text(meow_widget *w); + +/* ---- Card(圆角容器卡片;surfaceContainerLow 底 + 可选描边/状态层)---- */ +meow_widget *meow_card_create(int x, int y, int w, int h); +/* 内容子控件:绘制时递归绘到卡片内(卡片 hit 仍为矩形;子控件独立命中) */ +void meow_card_set_content(meow_widget *card, meow_widget *child); + +/* ---- Divider(分隔线;vertical=1 纵向)---- */ +meow_widget *meow_divider_create(int x, int y, int len, int vertical); + +/* ---- Badge(角标;count=0 红点 / >0 数字 / <0 隐藏;cx,cy=锚点=角标中心)---- */ +meow_widget *meow_badge_create(int cx, int cy); +void meow_badge_set(meow_widget *w, int count); + +/* ---- Checkbox / Radio(勾选态走 meow_widget_set_selected/meow_widget_selected)---- */ +meow_widget *meow_checkbox_create(int x, int y); +meow_widget *meow_radio_create(int x, int y); + +/* ---- ProgressBar(线性/圆形;value=0-100 确定性,-1=不定)---- */ +meow_widget *meow_progress_create(int x, int y, int w, int h, int value); /* 线性 */ +meow_widget *meow_progress_circular_create(int cx, int cy, int r, int value); /* 圆形 */ +void meow_progress_set(meow_widget *w, int value); /* -1=不定 */ + +/* ---- FloatingActionButton(悬浮按钮;圆角胶囊,无投影仅状态层近似)---- */ +meow_widget *meow_fab_create(int x, int y, int size, const char *label); + +/* ---- TopAppBar(顶部标题栏:标题 + 返回 + 动作)---- */ +meow_widget *meow_topappbar_create(int x, int y, int w, int h, const char *title); +void meow_topappbar_set_title(meow_widget *w, const char *title); +void meow_topappbar_set_back(meow_widget *w, int on); /* 1=显示返回箭头 */ +int meow_topappbar_add_action(meow_widget *w, const char *label); /* 返回动作下标 */ +#define MEOW_TOPBAR_BACK (-2) +int meow_topappbar_hit(meow_widget *w, int x, int y); /* MEOW_TOPBAR_BACK=返回 idx>=0=动作 -1=无 */ + +/* ---- NavigationBar(底部导航栏)---- */ +meow_widget *meow_navigationbar_create(int x, int y, int w, int h); +int meow_navigationbar_add_item(meow_widget *w, const char *label); +void meow_navigationbar_set_selected(meow_widget *w, int idx); +int meow_navigationbar_selected(meow_widget *w); +int meow_navigationbar_hit(meow_widget *w, int x, int y); /* 返回项下标/-1 */ + +/* ---- TabBar(顶部分页页签;swipe 联动 §5.2 由 App 在 on_swipe 驱动)---- */ +meow_widget *meow_tabbar_create(int x, int y, int w, int h); +int meow_tabbar_add_tab(meow_widget *w, const char *label); +void meow_tabbar_set_selected(meow_widget *w, int idx); +int meow_tabbar_hit(meow_widget *w, int x, int y); /* 返回页签下标/-1 */ + +/* ---- 列表容器(LazyColumn/LazyRow:数据源回调 + 可见区虚拟化;复用 meow_list_source) + * meow_lazycolumn_create=纵向(item_h=行高);meow_lazyrow_create=横向(item_w=列宽)。 + * 滚动由 App 在 on_swipe 里用 meow_list_scroll_by/set_scroll 驱动。 */ +meow_widget *meow_lazycolumn_create(int x, int y, int w, int h, int item_h, int count, + meow_list_source src, void *ctx); +meow_widget *meow_lazyrow_create(int x, int y, int w, int h, int item_w, int count, + meow_list_source src, void *ctx); +void meow_list_set_scroll(meow_widget *w, int offset); /* clamp 到 [0, max_scroll] */ +int meow_list_scroll(meow_widget *w); +int meow_list_max_scroll(meow_widget *w); /* max(0, count*item - viewport) */ +void meow_list_scroll_by(meow_widget *w, int dy); /* 相对滚动(App on_swipe 用) */ +int meow_list_set_item_h(meow_widget *w, int item); /* 改行高/列宽 */ +int meow_list_hit_index(meow_widget *w, int x, int y); /* 命中项下标(含滚动换算);-1=未命中项/越界 */ + +/* ============================================================ */ +/* §5.8.6 模态(App 层,非系统叠加):Dialog / BottomSheet + * 复用 §5.6 B③ 弹窗 / §5.7 B④ 底部面板模板(与 launcher s_dd_modal 同构),控件化。 + * 阻塞式(内层 meow_input_pop 轮询,与 meow_ui_text_input 同构);打开前排空残留触摸。 + * 关闭途径:点卡片内选项=确认、点卡片外=取消、左缘返回手势=取消。不压状态栏(y 钳制)。 */ +/* ============================================================ */ + +/* ---- Dialog(弹窗:确认/选择/输入/信息)---- */ +typedef enum { MEOW_DLG_CONFIRM, MEOW_DLG_SELECT, MEOW_DLG_INPUT, MEOW_DLG_INFO } meow_dlg_t; +typedef struct meow_dialog meow_dialog; +meow_dialog *meow_dialog_create(meow_dlg_t t, const char *title); +void meow_dialog_set_items(meow_dialog *d, const char *const *item, int n, int cur); /* SELECT 型 */ +void meow_dialog_set_ime(meow_dialog *d, meow_ime_ctx *ime); /* INPUT 型 */ +void meow_dialog_show(meow_dialog *d); /* 阻塞到确认/取消 */ +int meow_dialog_result(meow_dialog *d); /* SELECT=选项下标;CONFIRM/INFO 确认=1、取消=0 */ +void meow_dialog_close(meow_dialog *d); /* 程序化关闭(App 亦可驱动) */ +void meow_dialog_free(meow_dialog *d); +/* CONFIRM 型便捷:点「确定」返回 1,取消/遮罩=0 */ +int meow_dialog_confirm(meow_dialog *d); + +/* ---- BottomSheet(底部面板:标题 + 选项列表;open 阻塞返回选中 idx/-1)---- */ +typedef struct meow_sheet meow_sheet; +meow_sheet *meow_sheet_create(const char *title, int h); +int meow_sheet_add_item(meow_sheet *s, const char *label); /* 返回项下标 */ +int meow_sheet_open(meow_sheet *s); /* 阻塞;返回选中 idx / -1=取消 */ +void meow_sheet_free(meow_sheet *s); + /* ============================================================ */ /* §9 应用日志(统一日志 API,M2.51 最小可用版) */ /* ============================================================ */ diff --git a/patch_v2/sdk/meow_ui_dialog.c b/patch_v2/sdk/meow_ui_dialog.c new file mode 100644 index 0000000..3facc68 --- /dev/null +++ b/patch_v2/sdk/meow_ui_dialog.c @@ -0,0 +1,293 @@ +/* + * meow_ui_dialog.c — §5.8.6 模态控件化(App 层,非系统叠加):Dialog / BottomSheet。 + * + * 复用 §5.6 B③ 弹窗 / §5.7 B④ 底部面板模板(与 launcher s_dd_modal 同构):遮罩压暗 + + * 圆角卡片 + 标题 + 内容 + 操作;返回手势=取消;不压状态栏。阻塞式(内层 meow_input_pop + * 轮询,与 meow_ui_text_input 同构),打开前排空残留触摸(goodix 长尾免疫)。 + * 命中一律用抬手最新坐标;即画即显(打开一次性绘制,仅高亮变化才重绘,逐帧不重画静态内容)。 + * + * 属 App 层模态:不注册进系统顶条/通知中心渲染(系统级控件归属不动)。物理键在 B1 未下发 + * 给 App(on_key 无键),故本层关闭途径=触摸 + 左缘返回手势;音量/电源高亮导航为后续批次。 + */ +#include "meow_ui.h" +#include "meow_ui_internal.h" +#include +#include +#include +#include + +#define MEOW_MODAL_MAX_ITEMS 32 +#define MEOW_MODAL_ROW 48 +#define MEOW_MODAL_BTN 44 + +/* ---- Dialog ---- */ +struct meow_dialog { + meow_dlg_t type; + char title[96]; + char items[MEOW_MODAL_MAX_ITEMS][64]; + int nitems; + int cur; /* SELECT 预选/高亮项 */ + int result; + int done; + meow_ime_ctx ime; /* INPUT 型(拷贝) */ + int has_ime; +}; + +/* 卡片几何:返回标题之后内容起点(行/按钮相对坐标)。 */ +typedef struct { int dx,dy,dw,dh; int row_y,rowh; int btn_y,btn_w,btn_h; } dlg_geom; + +static void dlg_calc(meow_dialog *d, const meow_theme *th, dlg_geom *g) +{ + int W = meow_ui_width(), H = meow_ui_height(); + int sb = meow_ui_statusbar_height(); if (sb < 0) sb = 0; + int pad = 24; + int tH = meow_ui_text_height(th->font_title); + int bH = meow_ui_text_height(th->font_body); + int select = (d->type == MEOW_DLG_SELECT); + int nrows = select ? d->nitems : 0; + int nmsg = (d->type == MEOW_DLG_INFO) ? (d->nitems > 0 ? d->nitems : 1) + : (select ? 0 : (d->nitems > 0 ? d->nitems : 1)); + int have_btns = !select; + g->dw = 348; if (g->dw > W - 40) g->dw = W - 40; + g->dx = (W - g->dw) / 2; + int content = nrows * MEOW_MODAL_ROW + nmsg * (bH + 8); + g->dh = pad + tH + 12 + content + pad + (have_btns ? 16 + MEOW_MODAL_BTN : 0); + int avail = H - sb - 20; + if (g->dh > avail) g->dh = avail; + g->dy = (H - g->dh) / 2; if (g->dy < sb) g->dy = sb; + g->row_y = g->dy + pad + tH + 12; + g->rowh = (MEOW_MODAL_ROW < 0) ? 40 : MEOW_MODAL_ROW; + g->btn_y = g->row_y + content + 16; + g->btn_h = MEOW_MODAL_BTN; + g->btn_w = (g->dw - 2 * pad - 12) / 2; +} + +static void dlg_paint(meow_dialog *d, const meow_theme *th) +{ + int W = meow_ui_width(), H = meow_ui_height(); + meow_ui_fill_rect_alpha(0, 0, W, H, 0x000000, 150); /* 遮罩压暗 */ + dlg_geom g; + dlg_calc(d, th, &g); + int pad = 24; + meow_gfx_fill_round(g.dx, g.dy, g.dw, g.dh, th->radius_card, th->surfaceContainerHighest); + meow_ui_draw_rect_round(g.dx, g.dy, g.dw, g.dh, th->radius_card, th->outline); + meow_ui_text(g.dx + pad, g.dy + pad, d->title, th->font_title, th->onSurface); + + if (d->type == MEOW_DLG_SELECT) { + for (int i = 0; i < d->nitems; i++) { + int ry = g.row_y + i * g.rowh; + if (ry + g.rowh > g.dy + g.dh - 12) break; + if (i == d->cur) { + meow_ui_fill_rect(g.dx + 8, ry, g.dw - 16, g.rowh, th->primary); + meow_ui_text(g.dx + pad, ry + (g.rowh - meow_ui_text_height(th->font_body)) / 2, + d->items[i], th->font_body, 0xFFFFFF); + } else { + meow_ui_text(g.dx + pad, ry + (g.rowh - meow_ui_text_height(th->font_body)) / 2, + d->items[i], th->font_body, th->onSurface); + } + meow_ui_fill_rect(g.dx + pad, ry + g.rowh - 1, g.dw - 2 * pad, 1, th->outlineVariant); + } + } else { + /* INFO/CONFIRM:正文行;INPUT:文本预览 */ + int nmsg = (d->type == MEOW_DLG_INFO) ? (d->nitems > 0 ? d->nitems : 1) + : (d->nitems > 0 ? d->nitems : 1); + int y = g.row_y; + if (d->type == MEOW_DLG_INPUT) { + char buf[300]; + snprintf(buf, sizeof buf, "%s", d->ime.buf[0] ? d->ime.buf : "(tap OK to edit...)"); + meow_ui_text(g.dx + pad, y, buf, th->font_body, th->onSurfaceVariant); + } else { + for (int i = 0; i < nmsg; i++) { + if (i < d->nitems && d->items[i][0]) + meow_ui_text(g.dx + pad, y, d->items[i], th->font_body, th->onSurfaceVariant); + y += meow_ui_text_height(th->font_body) + 8; + } + } + /* 取消(左,text 型)/ 确定(右,filled) */ + int bx = g.dx + pad, cx = bx + g.btn_w + 12, by = g.btn_y; + meow_ui_draw_rect_round(bx, by, g.btn_w, g.btn_h, 10, th->primary); + meow_ui_text_center(bx + g.btn_w / 2, by + (g.btn_h - meow_ui_text_height(th->font_body)) / 2, + "CANCEL", th->font_body, th->primary); + meow_gfx_fill_round(cx, by, g.btn_w, g.btn_h, 10, th->primary); + meow_ui_text_center(cx + g.btn_w / 2, by + (g.btn_h - meow_ui_text_height(th->font_body)) / 2, + "OK", th->font_body, th->onPrimary); + } +} + +meow_dialog *meow_dialog_create(meow_dlg_t t, const char *title) +{ + meow_dialog *d = (meow_dialog *)calloc(1, sizeof *d); + if (!d) return NULL; + d->type = t; + if (title) { strncpy(d->title, title, sizeof d->title - 1); d->title[sizeof d->title - 1] = 0; } + d->cur = -1; d->result = 0; d->done = 0; + return d; +} +void meow_dialog_set_items(meow_dialog *d, const char *const *item, int n, int cur) +{ + if (!d) return; + d->nitems = 0; + if (item) for (int i = 0; i < n && i < MEOW_MODAL_MAX_ITEMS; i++) + if (item[i]) { strncpy(d->items[d->nitems], item[i], 63); d->items[d->nitems][63] = 0; d->nitems++; } + d->cur = cur; +} +void meow_dialog_set_ime(meow_dialog *d, meow_ime_ctx *ime) +{ + if (!d || !ime) return; + d->ime = *ime; + d->has_ime = 1; +} + +void meow_dialog_close(meow_dialog *d) +{ + if (d) d->done = 1; +} + +void meow_dialog_show(meow_dialog *d) +{ + if (!d) return; + const meow_theme *th = meow_theme_get(); + /* INPUT 型若未带 ime,用空 ctx 兜底 */ + if (d->type == MEOW_DLG_INPUT && !d->has_ime) { + memset(&d->ime, 0, sizeof d->ime); + d->ime.maxlen = 255; + } + meow_input_start(); + meow_input_drain(); /* 排空残留触摸(goodix 长尾) */ + d->done = 0; d->result = 0; + dlg_paint(d, th); + meow_ui_flush(); + + while (!d->done) { + meow_input_ev e; + while (meow_input_pop(&e)) { + if (e.type == MEOW_EV_TAP) { + int x = e.a, y = e.b; + dlg_geom g; + dlg_calc(d, th, &g); + int in_card = x >= g.dx && x < g.dx + g.dw && y >= g.dy && y < g.dy + g.dh; + if (!in_card) { d->done = 1; d->result = 0; break; } /* 遮罩外=取消 */ + if (d->type == MEOW_DLG_SELECT) { + int idx = (y - g.row_y) / g.rowh; + if (idx >= 0 && idx < d->nitems) { d->cur = idx; d->result = idx; d->done = 1; } + break; + } + /* 非选择:按钮命中 */ + int pad = 24, by = g.btn_y; + int bx = g.dx + pad, cx = bx + g.btn_w + 12; + if (y >= by && y < by + g.btn_h) { + if (x >= bx && x < bx + g.btn_w) { /* CANCEL */ + d->done = 1; d->result = 0; + } else if (x >= cx && x < cx + g.btn_w) { /* OK */ + if (d->type == MEOW_DLG_INPUT) { + d->result = meow_ui_text_input(&d->ime); /* 阻塞编辑 */ + } else { + d->result = (d->type == MEOW_DLG_CONFIRM) ? 1 : 1; + } + d->done = 1; + } + break; + } + } else if (e.type == MEOW_EV_SWIPE && e.a == MEOW_SWIPE_LEFT) { + d->done = 1; d->result = 0; /* 返回=取消 */ + } + } + if (d->done) break; + usleep(16000); + } +} + +int meow_dialog_result(meow_dialog *d) { return d ? d->result : 0; } +int meow_dialog_confirm(meow_dialog *d) +{ + if (!d || d->type != MEOW_DLG_CONFIRM) return 0; + meow_dialog_show(d); + return d->result == 1; +} +void meow_dialog_free(meow_dialog *d) { if (d) free(d); } + +/* ---- BottomSheet ---- */ +struct meow_sheet { + char title[96]; + char items[MEOW_MODAL_MAX_ITEMS][64]; + int nitems; + int h; + int result; + int done; +}; + +static int sheet_h(meow_sheet *s, const meow_theme *th) +{ + int H = meow_ui_height(); + int sb = meow_ui_statusbar_height(); if (sb < 0) sb = 0; + int avail = H - sb - 20; + int title_h = meow_ui_text_height(th->font_title); + int min_h = 24 + title_h + 12 + MEOW_MODAL_ROW + 20; + int want = (s->h > 0) ? s->h : min_h; + int est = 24 + title_h + 12 + s->nitems * MEOW_MODAL_ROW + 20; + if (est > want) want = est; + if (want > avail) want = avail; + if (want < min_h) want = min_h < avail ? min_h : avail; + return want; +} + +meow_sheet *meow_sheet_create(const char *title, int h) +{ + meow_sheet *s = (meow_sheet *)calloc(1, sizeof *s); + if (!s) return NULL; + if (title) { strncpy(s->title, title, sizeof s->title - 1); s->title[sizeof s->title - 1] = 0; } + s->h = h > 0 ? h : 0; + return s; +} +int meow_sheet_add_item(meow_sheet *s, const char *label) +{ + if (!s || s->nitems >= MEOW_MODAL_MAX_ITEMS) return -1; + if (label) { strncpy(s->items[s->nitems], label, 63); s->items[s->nitems][63] = 0; } + int idx = s->nitems; + s->nitems++; + return idx; +} +int meow_sheet_open(meow_sheet *s) +{ + if (!s) return -1; + const meow_theme *th = meow_theme_get(); + meow_input_start(); + meow_input_drain(); + s->done = 0; s->result = -1; + int W = meow_ui_width(), H = meow_ui_height(); + int ph = sheet_h(s, th); + int py = H - ph, pad = 24; + /* 首次绘制:遮罩 + 底部面板(顶部圆角) */ + meow_ui_fill_rect_alpha(0, 0, W, H, 0x000000, 150); + meow_gfx_fill_round(0, py, W, ph, th->radius_card, th->surfaceContainerHighest); + meow_ui_text(pad, py + pad, s->title, th->font_title, th->onSurface); + for (int i = 0; i < s->nitems; i++) { + int ry = py + pad + meow_ui_text_height(th->font_title) + 12 + i * MEOW_MODAL_ROW; + if (ry + MEOW_MODAL_ROW > H - 8) break; + meow_ui_text(pad, ry + (MEOW_MODAL_ROW - meow_ui_text_height(th->font_body)) / 2, + s->items[i], th->font_body, th->onSurface); + meow_ui_fill_rect(pad, ry + MEOW_MODAL_ROW - 1, W - 2 * pad, 1, th->outlineVariant); + } + meow_ui_flush(); + + while (!s->done) { + meow_input_ev e; + while (meow_input_pop(&e)) { + if (e.type == MEOW_EV_TAP) { + int y = e.b; + if (y < py) { s->done = 1; s->result = -1; break; } /* 点面板外=取消 */ + int title_h = meow_ui_text_height(th->font_title); + int cy = py + pad + title_h + 12; + int idx = (y - cy) / MEOW_MODAL_ROW; + if (idx >= 0 && idx < s->nitems) { s->result = idx; s->done = 1; } + break; + } else if (e.type == MEOW_EV_SWIPE && e.a == MEOW_SWIPE_LEFT) { + s->done = 1; s->result = -1; + } + } + if (s->done) break; + usleep(16000); + } + return s->result; +} +void meow_sheet_free(meow_sheet *s) { if (s) free(s); } diff --git a/patch_v2/sdk/meow_ui_gfx.c b/patch_v2/sdk/meow_ui_gfx.c index fc359cc..b3b3ba5 100644 --- a/patch_v2/sdk/meow_ui_gfx.c +++ b/patch_v2/sdk/meow_ui_gfx.c @@ -311,7 +311,6 @@ void meow_ui_fill_rect(int x, int y, int w, int h, uint32_t color) { if (!g_init_ok) return; if (w <= 0 || h <= 0) return; - int x0 = x, y0 = y; if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if (x >= g_xres || y >= g_yres) return; @@ -394,6 +393,105 @@ void meow_ui_draw_rect_round(int x, int y, int w, int h, int r, uint32_t color) dirty_add(x1, y1, x2 - x1, y2 - y1); } +/* ================= §5.8.6 batch2:圆形/线段/圆弧环(软渲,无 -lm) ================= + * 无 GPU 合成、构建只链 libz+pthread(无 -lm),故不用 math.h:COS 用象限对称查表、 + * 圆用 bbox 距离测试、弧带用「沿弧采样成粗线(圆帽)」近似。 */ +static const int m_cos90[91] = { + 1024,1024,1023,1023,1022,1020,1018,1016, + 1014,1011,1008,1005,1002,998,994,989, + 984,979,974,968,962,956,949,943, + 935,928,920,912,904,896,887,878, + 868,859,849,839,828,818,807,796, + 784,773,761,749,737,724,711,698, + 685,672,658,644,630,616,602,587, + 573,558,543,527,512,496,481,465, + 449,433,416,400,384,367,350,333, + 316,299,282,265,248,230,213,195, + 178,160,143,125,107,89,71,54, + 36,18,0, +}; + +static int m_cos_deg(int deg) /* 任意角度(可负)→ cos(deg)*1024 */ +{ + int a = deg % 360; + if (a < 0) a += 360; + if (a <= 90) return m_cos90[a]; + if (a <= 180) return -m_cos90[180 - a]; + if (a <= 270) return -m_cos90[a - 180]; + return m_cos90[360 - a]; +} +static int m_sin_deg(int deg) { return m_cos_deg(90 - deg); } + +void meow_gfx_fill_circle(int cx, int cy, int r, uint32_t color) +{ + if (!g_init_ok || r <= 0) return; + int x1 = cx - r, y1 = cy - r, x2 = cx + r + 1, y2 = cy + r + 1; + if (x1 < 0) x1 = 0; if (y1 < 0) y1 = 0; + if (x2 > g_xres) x2 = g_xres; if (y2 > g_yres) y2 = g_yres; + if (x2 <= x1 || y2 <= y1) return; + int r2 = r * r; + for (int py = y1; py < y2; py++) { + int dy = py - cy; + for (int px = x1; px < x2; px++) { + int dx = px - cx; + if (dx * dx + dy * dy <= r2) put_px(px, py, color); + } + } + dirty_add(x1, y1, x2 - x1, y2 - y1); +} + +void meow_gfx_line(int x0, int y0, int x1, int y1, int th, uint32_t color) +{ + if (!g_init_ok) return; + int dx = x1 - x0, dy = y1 - y0; + int adx = dx < 0 ? -dx : dx, ady = dy < 0 ? -dy : dy; + int steps = (adx > ady ? adx : ady) + 1; + if (steps <= 1) { meow_gfx_fill_circle(x0, y0, th / 2 + 1, color); return; } + int cap = th / 2; + if (cap < 1) cap = 1; + for (int i = 0; i <= steps; i++) { + int x = x0 + dx * i / steps; + int y = y0 + dy * i / steps; + if (cap <= 1) put_px(x, y, color); + else meow_gfx_fill_circle(x, y, cap, color); + } +} + +void meow_gfx_ring_arc(int cx, int cy, int r, int th, int start_deg, int sweep_deg, uint32_t color) +{ + if (!g_init_ok || r <= 0) return; + int sw = sweep_deg % 360; + if (sw < 0) sw += 360; + if (sw >= 360) { /* 整环:bbox 距离带(无角度判定,最快) */ + int r1 = r - th / 2, r2 = r + th / 2; + if (r1 < 0) r1 = 0; + int x1 = cx - r2, y1 = cy - r2, x2 = cx + r2 + 1, y2 = cy + r2 + 1; + if (x1 < 0) x1 = 0; if (y1 < 0) y1 = 0; + if (x2 > g_xres) x2 = g_xres; if (y2 > g_yres) y2 = g_yres; + if (x2 <= x1 || y2 <= y1) return; + for (int py = y1; py < y2; py++) + for (int px = x1; px < x2; px++) { + int dx = px - cx, dy = py - cy; + int d2 = dx * dx + dy * dy; + if (d2 >= r1 * r1 && d2 <= r2 * r2) put_px(px, py, color); + } + dirty_add(x1, y1, x2 - x1, y2 - y1); + return; + } + /* 弧带:沿弧采样相邻点、粗线连接(圆帽)近似。方向:deg 右(0)→上(90)→左(180)→下(270),顺时针。 */ + int n = sw / 2 + 1; + if (n < 2) n = 2; + int px = cx + (m_cos_deg(start_deg) * r) / 1024; + int py = cy - (m_sin_deg(start_deg) * r) / 1024; /* 屏幕 y 向下 → sin 取负 */ + for (int i = 1; i <= n; i++) { + int deg = start_deg + sw * i / n; + int nx = cx + (m_cos_deg(deg) * r) / 1024; + int ny = cy - (m_sin_deg(deg) * r) / 1024; + meow_gfx_line(px, py, nx, ny, th, color); + px = nx; py = ny; + } +} + void meow_ui_fill_rect_alpha(int x, int y, int w, int h, uint32_t color, int alpha) { if (!g_init_ok) return; diff --git a/patch_v2/sdk/meow_ui_internal.h b/patch_v2/sdk/meow_ui_internal.h index a38a059..9a4a610 100644 --- a/patch_v2/sdk/meow_ui_internal.h +++ b/patch_v2/sdk/meow_ui_internal.h @@ -112,6 +112,13 @@ unsigned char *meow_ui_back_buf(void); /* 实心圆角矩形(控件按钮底色用;公共 §3 只有空心 draw_rect_round)。[D3] */ void meow_gfx_fill_round(int x, int y, int w, int h, int r, uint32_t color); +/* §5.8.6 batch2:软渲圆形/线段/圆弧环原语(无 GPU、无 -lm,内部整数/查表实现)。 + * 供 Radio(外圈/内点)、Badge(红点)、ProgressBar(环形轨道/进度弧)、Checkbox(勾线段)使用。 */ +void meow_gfx_fill_circle(int cx, int cy, int r, uint32_t color); /* 实心圆(bbox 距离测试) */ +void meow_gfx_line(int x0, int y0, int x1, int y1, int th, uint32_t color); /* 粗线(Bresenham + 圆帽) */ +void meow_gfx_ring_arc(int cx, int cy, int r, int th, int start_deg, + int sweep_deg, uint32_t color); /* 圆弧环(查表采样成粗线) */ + /* 是否运行于真实 fb 之上(0 = 头less/离屏,qemu/宿主)。 */ int meow_gfx_is_device(void); diff --git a/patch_v2/sdk/meow_ui_widget.c b/patch_v2/sdk/meow_ui_widget.c index dd5d8e0..f4f5bb3 100644 --- a/patch_v2/sdk/meow_ui_widget.c +++ b/patch_v2/sdk/meow_ui_widget.c @@ -8,13 +8,20 @@ #include "meow_ui_internal.h" #include #include +#include enum { W_BTN = 0, W_SLIDER = 1, W_SWITCH = 2, W_LIST = 3, - W_CUSTOM = 4, W_LAYOUT = 5, W_SPACER = 6 }; + W_CUSTOM = 4, W_LAYOUT = 5, W_SPACER = 6, + W_TEXTFIELD = 7, W_CARD = 8, W_DIVIDER = 9, W_BADGE = 10, + W_CHECKBOX = 11, W_RADIO = 12, W_PROGRESS = 13, + W_TOPAPPBAR = 14, W_NAVBAR = 15, W_TABBAR = 16, W_FAB = 17 }; /* 布局子项数组上限(固定尺寸子项先做;超出静默拒收)。 */ #define MEOW_LAYOUT_MAX_CHILD 32 +/* 容器(TopAppBar 动作 / NavigationBar 项 / TabBar 页签)子项上限。 */ +#define MEOW_CONTAINER_MAX 8 + /* 按钮「按住」(长按)判定阈值(ms):超过即进入更强态(更深状态层)。 * 视觉区分「短按按下」与「按住」;触发语义不变(on_tap 仍按抬手判定)。 */ #define MEOW_BTN_HOLD_MS 500u @@ -51,6 +58,21 @@ struct meow_widget { int spacing; /* W_LAYOUT:项间间距 */ meow_widget *children[MEOW_LAYOUT_MAX_CHILD]; /* W_LAYOUT:子控件 */ int nchildren; + + /* §5.8.6 batch2 Material 子集(尾缀追加;calloc 归零,安全) */ + int variant; /* W_BTN:MEOW_BTN_* 变体; W_PROGRESS:0=线性/1=圆形 */ + char placeholder[64]; /* W_TEXTFIELD 提示文案 */ + char *buf; int buflen; /* W_TEXTFIELD 文本缓冲(App 持有)+ 当前长 */ + int maxlen; /* W_TEXTFIELD 上限(含 NUL) */ + meow_ime_mode ime_mode; /* W_TEXTFIELD IME 模式 */ + int value; /* W_PROGRESS:0-100 / -1=不定; W_BADGE:计数 */ + int item_h; /* W_LIST:行高/列宽(lazy),默认 44 */ + int scroll; /* W_LIST:滚动偏移(lazy) */ + int horizontal; /* W_LIST:1=横向(LazyRow) */ + int back_on; /* W_TOPAPPBAR:显示返回箭头 */ + char items[MEOW_CONTAINER_MAX][24]; /* W_TOPAPPBAR 动作 / W_NAVBAR 项 / W_TABBAR 页签 */ + int nitems; /* 上述项数 */ + int selected; /* W_NAVBAR / W_TABBAR 选中下标 */ }; /* ---- §5.8 batch1 内部辅助:opts 取值(opts_used==0 时按控件内建默认)---- @@ -391,6 +413,384 @@ void meow_layout_arrange(meow_widget *layout) } } +/* ============================================================ */ +/* §5.8.6 batch2 Material 组件子集 API(create/setter/getter/hit) */ +/* ============================================================ */ + +/* ---- Button 五型(既有 meow_btn_create = FILLED) ---- */ +meow_widget *meow_btn_create_variant(int x, int y, int w, int h, const char *label, int variant) +{ + meow_widget *t = meow_btn_create(x, y, w, h, label); + if (!t) return NULL; + if (variant < MEOW_BTN_FILLED || variant > MEOW_BTN_ELEVATED) variant = MEOW_BTN_FILLED; + t->variant = variant; + return t; +} +int meow_btn_set_variant(meow_widget *w, int variant) +{ + if (!w || w->type != W_BTN) return -1; + if (variant < MEOW_BTN_FILLED || variant > MEOW_BTN_ELEVATED) return -1; + if (variant == w->variant) return 0; + w->variant = variant; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); + return 0; +} + +/* ---- TextField ---- */ +meow_widget *meow_textfield_create(int x, int y, int w, int h, const char *placeholder, + char *buf, int maxlen, meow_ime_mode mode) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_TEXTFIELD; t->x = x; t->y = y; t->w = w; t->h = h; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + if (placeholder) { + strncpy(t->placeholder, placeholder, sizeof t->placeholder - 1); + t->placeholder[sizeof t->placeholder - 1] = 0; + } + t->buf = buf; t->buflen = buf ? (int)strlen(buf) : 0; + t->maxlen = (maxlen > 0 && maxlen <= 256) ? maxlen : 256; + t->ime_mode = mode; + return t; +} +void meow_textfield_set_placeholder(meow_widget *w, const char *placeholder) +{ + if (!w || w->type != W_TEXTFIELD) return; + if (placeholder) { + strncpy(w->placeholder, placeholder, sizeof w->placeholder - 1); + w->placeholder[sizeof w->placeholder - 1] = 0; + } + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +const char *meow_textfield_text(meow_widget *w) { return (w && w->type == W_TEXTFIELD && w->buf) ? w->buf : ""; } +/* 输入中实时把 IME 文本同步到字段缓冲 + 只刷字段区(字段在顶部,IME 键盘在底部覆盖层) */ +static void textfield_change_cb(const char *text, void *ctx) +{ + meow_widget *w = (meow_widget *)ctx; + if (!w || w->type != W_TEXTFIELD) return; + if (w->buf && text) { + strncpy(w->buf, text, w->maxlen - 1); + w->buf[w->maxlen - 1] = 0; + } + w->buflen = text ? (int)strlen(text) : 0; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +int meow_textfield_activate(meow_widget *w) +{ + if (!w || w->type != W_TEXTFIELD) return 0; + w->state |= MEOW_WS_FOCUSED; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); + meow_ime_ctx ctx; + memset(&ctx, 0, sizeof ctx); + ctx.mode = w->ime_mode; + ctx.maxlen = w->maxlen; + ctx.on_change = textfield_change_cb; + ctx.ctx = w; + if (w->buf) strncpy(ctx.buf, w->buf, sizeof ctx.buf - 1); /* 预填当前文本 */ + int r = meow_ui_text_input(&ctx); + if (r && w->buf) { + strncpy(w->buf, ctx.buf, w->maxlen - 1); + w->buf[w->maxlen - 1] = 0; + } + w->buflen = w->buf ? (int)strlen(w->buf) : 0; + w->state &= ~MEOW_WS_FOCUSED; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); + return r; +} + +/* ---- Card ---- */ +meow_widget *meow_card_create(int x, int y, int w, int h) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_CARD; t->x = x; t->y = y; t->w = w; t->h = h; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + return t; +} +void meow_card_set_content(meow_widget *card, meow_widget *child) +{ + if (!card || card->type != W_CARD || !child) return; + card->children[0] = child; + card->nchildren = 1; +} + +/* ---- Divider ---- */ +meow_widget *meow_divider_create(int x, int y, int len, int vertical) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_DIVIDER; t->x = x; t->y = y; + t->w = vertical ? 1 : (len > 0 ? len : 1); + t->h = vertical ? (len > 0 ? len : 1) : 1; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->variant = vertical ? 1 : 0; + return t; +} + +/* ---- Badge ---- */ +meow_widget *meow_badge_create(int cx, int cy) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_BADGE; t->x = cx; t->y = cy; t->w = 24; t->h = 24; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->value = 0; /* 红点 */ + return t; +} +void meow_badge_set(meow_widget *w, int count) +{ + if (!w || w->type != W_BADGE) return; + w->value = count; + meow_gfx_mark_dirty(w->x - 16, w->y - 16, 32, 32); +} + +/* ---- Checkbox / Radio ---- */ +meow_widget *meow_checkbox_create(int x, int y) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_CHECKBOX; t->x = x; t->y = y; t->w = 34; t->h = 34; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + return t; +} +meow_widget *meow_radio_create(int x, int y) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_RADIO; t->x = x; t->y = y; t->w = 34; t->h = 34; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + return t; +} + +/* ---- ProgressBar ---- */ +meow_widget *meow_progress_create(int x, int y, int w, int h, int value) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_PROGRESS; t->x = x; t->y = y; t->w = w; t->h = h > 0 ? h : 4; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->variant = 0; /* 线性 */ + t->value = value < 0 ? -1 : (value > 100 ? 100 : value); + return t; +} +meow_widget *meow_progress_circular_create(int cx, int cy, int r, int value) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_PROGRESS; t->x = cx; t->y = cy; t->w = r; t->h = r; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->variant = 1; /* 圆形 */ + t->value = value < 0 ? -1 : (value > 100 ? 100 : value); + return t; +} +void meow_progress_set(meow_widget *w, int value) +{ + if (!w || w->type != W_PROGRESS) return; + w->value = value < 0 ? -1 : (value > 100 ? 100 : value); + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} + +/* ---- FAB ---- */ +meow_widget *meow_fab_create(int x, int y, int size, const char *label) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_FAB; t->x = x; t->y = y; t->w = size > 0 ? size : 48; t->h = t->w; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + if (label) { strncpy(t->label, label, sizeof t->label - 1); t->label[sizeof t->label - 1] = 0; } + return t; +} + +/* ---- TopAppBar ---- */ +meow_widget *meow_topappbar_create(int x, int y, int w, int h, const char *title) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_TOPAPPBAR; t->x = x; t->y = y; t->w = w; t->h = h; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->back_on = 0; t->nitems = 0; + if (title) { strncpy(t->label, title, sizeof t->label - 1); t->label[sizeof t->label - 1] = 0; } + return t; +} +void meow_topappbar_set_title(meow_widget *w, const char *title) +{ + if (!w || w->type != W_TOPAPPBAR) return; + if (title) { strncpy(w->label, title, sizeof w->label - 1); w->label[sizeof w->label - 1] = 0; } + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +void meow_topappbar_set_back(meow_widget *w, int on) +{ + if (!w || w->type != W_TOPAPPBAR) return; + w->back_on = on ? 1 : 0; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +int meow_topappbar_add_action(meow_widget *w, const char *label) +{ + if (!w || w->type != W_TOPAPPBAR || w->nitems >= MEOW_CONTAINER_MAX) return -1; + if (label) strncpy(w->items[w->nitems], label, 23); + w->items[w->nitems][23] = 0; + int idx = w->nitems; + w->nitems++; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); + return idx; +} +int meow_topappbar_hit(meow_widget *w, int x, int y) +{ + if (!w || w->type != W_TOPAPPBAR) return -1; + if (x < w->x || x >= w->x + w->w || y < w->y || y >= w->y + w->h) return -1; + if (w->back_on && x >= w->x && x < w->x + 44) return MEOW_TOPBAR_BACK; + const meow_theme *th = meow_theme_get(); + int ax = w->x + w->w - 10; + for (int i = w->nitems - 1; i >= 0; i--) { + int aw = meow_ui_text_width(w->items[i], th->font_body) + 12; + ax -= aw; + if (x >= ax && x < ax + aw && x >= w->x + 100) return i; /* 不压标题区/返回区 */ + } + return -1; +} + +/* ---- NavigationBar ---- */ +meow_widget *meow_navigationbar_create(int x, int y, int w, int h) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_NAVBAR; t->x = x; t->y = y; t->w = w; t->h = h; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->nitems = 0; t->selected = 0; + return t; +} +int meow_navigationbar_add_item(meow_widget *w, const char *label) +{ + if (!w || w->type != W_NAVBAR || w->nitems >= MEOW_CONTAINER_MAX) return -1; + if (label) strncpy(w->items[w->nitems], label, 23); + w->items[w->nitems][23] = 0; + int idx = w->nitems; + w->nitems++; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); + return idx; +} +void meow_navigationbar_set_selected(meow_widget *w, int idx) +{ + if (!w || w->type != W_NAVBAR) return; + if (idx < 0) idx = 0; + if (idx >= w->nitems) idx = w->nitems - 1; + w->selected = idx; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +int meow_navigationbar_selected(meow_widget *w) { return (w && w->type == W_NAVBAR) ? w->selected : 0; } +int meow_navigationbar_hit(meow_widget *w, int x, int y) +{ + if (!w || w->type != W_NAVBAR || w->nitems <= 0) return -1; + if (x < w->x || x >= w->x + w->w || y < w->y || y >= w->y + w->h) return -1; + int iw = w->w / w->nitems; + int idx = iw > 0 ? (x - w->x) / iw : 0; + return (idx >= 0 && idx < w->nitems) ? idx : -1; +} + +/* ---- TabBar ---- */ +meow_widget *meow_tabbar_create(int x, int y, int w, int h) +{ + meow_widget *t = (meow_widget *)calloc(1, sizeof *t); + if (!t) return NULL; + t->type = W_TABBAR; t->x = x; t->y = y; t->w = w; t->h = h; + t->owner = meow_ui_activity_active(); + t->state = MEOW_WS_ENABLED; + t->nitems = 0; t->selected = 0; + return t; +} +int meow_tabbar_add_tab(meow_widget *w, const char *label) +{ + if (!w || w->type != W_TABBAR || w->nitems >= MEOW_CONTAINER_MAX) return -1; + if (label) strncpy(w->items[w->nitems], label, 23); + w->items[w->nitems][23] = 0; + int idx = w->nitems; + w->nitems++; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); + return idx; +} +void meow_tabbar_set_selected(meow_widget *w, int idx) +{ + if (!w || w->type != W_TABBAR) return; + if (idx < 0) idx = 0; + if (idx >= w->nitems) idx = w->nitems - 1; + w->selected = idx; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +int meow_tabbar_hit(meow_widget *w, int x, int y) +{ + if (!w || w->type != W_TABBAR || w->nitems <= 0) return -1; + if (x < w->x || x >= w->x + w->w || y < w->y || y >= w->y + w->h) return -1; + int iw = w->w / w->nitems; + int idx = iw > 0 ? (x - w->x) / iw : 0; + return (idx >= 0 && idx < w->nitems) ? idx : -1; +} + +/* ---- 列表容器(LazyColumn/LazyRow:虚拟化 + 滚动;复用 W_LIST 与 meow_list_source)---- */ +meow_widget *meow_lazycolumn_create(int x, int y, int w, int h, int item_h, int count, + meow_list_source src, void *ctx) +{ + meow_widget *t = meow_list_create(x, y, w, h, count, src, ctx); + if (!t) return NULL; + t->item_h = item_h > 0 ? item_h : 44; + t->scroll = 0; t->horizontal = 0; + return t; +} +meow_widget *meow_lazyrow_create(int x, int y, int w, int h, int item_w, int count, + meow_list_source src, void *ctx) +{ + meow_widget *t = meow_list_create(x, y, w, h, count, src, ctx); + if (!t) return NULL; + t->item_h = item_w > 0 ? item_w : 60; + t->scroll = 0; t->horizontal = 1; + return t; +} +static int list_item(const meow_widget *w) { return (w->item_h > 0) ? w->item_h : 44; } +int meow_list_max_scroll(meow_widget *w) +{ + if (!w || w->type != W_LIST) return 0; + int vp = w->horizontal ? w->w : w->h; + int ms = w->count * list_item(w) - vp; + return ms < 0 ? 0 : ms; +} +void meow_list_set_scroll(meow_widget *w, int offset) +{ + if (!w || w->type != W_LIST) return; + int maxs = meow_list_max_scroll(w); + if (offset < 0) offset = 0; + if (offset > maxs) offset = maxs; + if (offset == w->scroll) return; + w->scroll = offset; + meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); +} +int meow_list_scroll(meow_widget *w) { return (w && w->type == W_LIST) ? w->scroll : 0; } +void meow_list_scroll_by(meow_widget *w, int dy) { if (w) meow_list_set_scroll(w, w->scroll + dy); } +int meow_list_set_item_h(meow_widget *w, int item) +{ + if (!w || w->type != W_LIST) return -1; + if (item > 0) { w->item_h = item; meow_gfx_mark_dirty(w->x, w->y, w->w, w->h); } + return w->item_h; +} +int meow_list_hit_index(meow_widget *w, int x, int y) +{ + if (!w || w->type != W_LIST) return -1; + if (x < w->x || x >= w->x + w->w || y < w->y || y >= w->y + w->h) return -1; + int item = list_item(w); + int idx = w->horizontal ? (x - w->x + w->scroll) / item + : (y - w->y + w->scroll) / item; + return (idx >= 0 && idx < w->count) ? idx : -1; +} + static int hit(meow_widget *w, int x, int y) { if (!w) return 0; @@ -453,27 +853,50 @@ void meow_widget_draw(meow_widget *w) int press = (w->state & MEOW_WS_PRESSED) || w->pressed || live; int hold = live && meow_input_touch_hold_ms() >= MEOW_BTN_HOLD_MS; if (disabled) press = 0; - /* 底色:选中态用 primaryContainer(onPrimaryContainer 文字);否则 primary(onPrimary 文字)。 - * 可被 opts.bg 覆盖(此时文字用 opts.fg 或 onPrimary)。 */ + /* §5.8.6 五型:filled=primary/onPrimary;tonal=secondaryContainer/onSecondaryContainer; + * outlined=透明底+primary 文+outline 描边;text=透明底+primary 文;elevated=surfaceContainerLow+primary 文。 + * 选中态优先生效(primaryContainer / onPrimaryContainer);opts.bg/fg 可覆盖。 */ int selected = (w->state & MEOW_WS_SELECTED); - uint32_t base, default_fg; - if (selected && !(w->opts_used && w->opts.bg)) { base = th->primaryContainer; default_fg = th->onPrimaryContainer; } - else { base = widget_bg(w, th, th->primary); default_fg = th->onPrimary; } + int variant = w->variant; + if (variant < MEOW_BTN_FILLED || variant > MEOW_BTN_ELEVATED) variant = MEOW_BTN_FILLED; + int fill = 1, stroke_draw = 0, stroke_w = 1; + uint32_t base, default_fg, stroke_col = 0; + if (selected && !(w->opts_used && w->opts.bg)) { + base = th->primaryContainer; default_fg = th->onPrimaryContainer; + } else { + switch (variant) { + case MEOW_BTN_TONAL: + base = th->secondaryContainer; default_fg = th->onSecondaryContainer; break; + case MEOW_BTN_OUTLINED: + fill = 0; base = 0; default_fg = th->primary; + stroke_draw = 1; stroke_col = th->outline; stroke_w = 1; break; + case MEOW_BTN_TEXT: + fill = 0; base = 0; default_fg = th->primary; break; + case MEOW_BTN_ELEVATED: + base = th->surfaceContainerLow; default_fg = th->primary; + stroke_draw = 1; stroke_col = th->outlineVariant; stroke_w = 1; break; + default: + base = th->primary; default_fg = th->onPrimary; break; + } + } + if (w->opts_used && w->opts.bg) { base = w->opts.bg; fill = 1; } + if (w->opts_used && w->opts.fg) default_fg = w->opts.fg; uint32_t bg; - if (hold) bg = state_tint(base, th, 24); /* 按住 = 深状态层 */ - else if (press) bg = state_tint(base, th, 12); /* 按下 = 状态层 */ - else bg = base; + if (fill) bg = (hold) ? state_tint(base, th, 24) : (press ? state_tint(base, th, 12) : base); + else bg = 0; int r = widget_radius(w, 10); - meow_gfx_fill_round(w->x, w->y, w->w, w->h, r, bg); + if (fill) meow_gfx_fill_round(w->x, w->y, w->w, w->h, r, bg); + else if (press) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->primary, 12); /* transparent ripple */ /* 内容区受 pad 垂直内缩(水平居中文本,pad_x 不影响中心) */ int pady = widget_pady(w); int cx = w->x + w->w / 2; int cy = w->y + pady + (w->h - 2 * pady - meow_ui_text_height(th->font_body)) / 2; - uint32_t tc = widget_fg(w, th, default_fg); + uint32_t tc = default_fg; meow_ui_text_center(cx, cy, w->label, th->font_body, tc); - /* opts 描边 / 焦点外圈 */ - if (w->opts_used && w->opts.stroke && w->opts.stroke_w > 0) - meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, w->opts.stroke); + /* opts 描边(优先)/ 变体内建描边 / 焦点外圈 */ + int sw = (w->opts_used && w->opts.stroke && w->opts.stroke_w > 0) ? w->opts.stroke_w : (stroke_draw ? stroke_w : 0); + uint32_t sc = (w->opts_used && w->opts.stroke) ? w->opts.stroke : stroke_col; + if (sw > 0 && sc) meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, sc); if (w->state & MEOW_WS_FOCUSED) meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, th->primary); /* 禁用:整体变暗(状态层向 onSurface 叠 α) */ @@ -503,18 +926,41 @@ void meow_widget_draw(meow_widget *w) break; } case W_LIST: { - int rowh = 44, pad = 16; - for (int i = 0; i < w->count; i++) { - int ry = w->y + i * rowh; - if (ry >= w->y + w->h) break; - if (i == w->sel) meow_ui_fill_rect(w->x, ry, w->w, rowh, th->primary); + /* §5.8.6 列表容器(LazyColumn/LazyRow):只画可见项(虚拟化)+ 滚动偏移。 + * 纵向=行高 item_h(默认 44,兼容既有 meow_list_create);横向=LazyRow(列宽=item_h)。 */ + int pad = 16; + int item = list_item(w); + int vp = w->horizontal ? w->w : w->h; + int off = w->scroll; + if (off < 0) off = 0; + int maxs = w->count * item - vp; /* max_scroll(与 meow_list_max_scroll 同式) */ + if (maxs < 0) maxs = 0; + if (off > maxs) off = maxs; + int first = (item > 0) ? off / item : 0; + int last = (item > 0) ? (off + vp) / item + 1 : 0; + if (first < 0) first = 0; + if (last > w->count) last = w->count; + for (int i = first; i < last; i++) { char label[64] = ""; - if (w->src && w->src(i, label, (int)sizeof label, w->ctx)) { + if (!w->src || !w->src(i, label, (int)sizeof label, w->ctx)) continue; + int pos = i * item - off; /* 相对容器起点的可视位置 */ + if (w->horizontal) { + int rx = w->x + pos; + if (rx >= w->x + w->w) break; + if (i == w->sel) meow_ui_fill_rect(rx, w->y, item, w->h, th->primary); uint32_t col = (i == w->sel) ? 0xFFFFFF : th->onSurface; - meow_ui_text(w->x + pad, ry + (rowh - meow_ui_text_height(th->font_body)) / 2, + meow_ui_text_center(rx + item / 2, w->y + (w->h - meow_ui_text_height(th->font_body)) / 2, + label, th->font_body, col); + meow_ui_fill_rect(rx + item - 1, w->y, 1, w->h, th->onSurfaceVariant); + } else { + int ry = w->y + pos; + if (ry >= w->y + w->h) break; + if (i == w->sel) meow_ui_fill_rect(w->x, ry, w->w, item, th->primary); + uint32_t col = (i == w->sel) ? 0xFFFFFF : th->onSurface; + meow_ui_text(w->x + pad, ry + (item - meow_ui_text_height(th->font_body)) / 2, label, th->font_body, col); + meow_ui_fill_rect(w->x, ry + item - 1, w->w, 1, th->onSurfaceVariant); } - meow_ui_fill_rect(w->x, ry + rowh - 1, w->w, 1, th->onSurfaceVariant); } if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->onSurface, 90); break; @@ -529,6 +975,180 @@ void meow_widget_draw(meow_widget *w) for (int i = 0; i < w->nchildren; i++) if (w->children[i]) meow_widget_draw(w->children[i]); break; + case W_TEXTFIELD: { + /* MD3 输入框:圆角外框(surfaceContainerLowest 底 + outline 描边;focused=primary 2px)+ 提示/文本 + 光标。 */ + int r = widget_radius(w, 8); + int focused = (w->state & MEOW_WS_FOCUSED) != 0; + meow_gfx_fill_round(w->x, w->y, w->w, w->h, r, th->surfaceContainerLowest); + uint32_t bcol = focused ? th->primary : th->outline; + int bw = focused ? 2 : 1; + if (bw >= 2) meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, bcol); + else meow_ui_draw_rect_round(w->x + 1, w->y + 1, w->w - 2, w->h - 2, + r > 1 ? r - 1 : 0, bcol); + int has = w->buf && w->buf[0]; + uint32_t col = has ? th->onSurface : th->onSurfaceVariant; + const char *s = has ? w->buf : (w->placeholder[0] ? w->placeholder : ""); + int tx = w->x + 12; + int ty = w->y + (w->h - meow_ui_text_height(th->font_body)) / 2; + meow_ui_text(tx, ty, s, th->font_body, col); + if (focused && has) { + int tw = meow_ui_text_width(w->buf, th->font_body); + meow_ui_fill_rect(tx + tw, ty, 2, meow_ui_text_height(th->font_body), th->primary); + } + if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->onSurface, 90); + break; + } + case W_CARD: { + int r = widget_radius(w, th->radius_card); + uint32_t base = widget_bg(w, th, th->surfaceContainerLow); + meow_gfx_fill_round(w->x, w->y, w->w, w->h, r, base); + if (w->opts_used && w->opts.stroke && w->opts.stroke_w > 0) + meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, w->opts.stroke); + if (w->state & MEOW_WS_SELECTED) + meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->primary, 24); + if (w->nchildren > 0 && w->children[0]) meow_widget_draw(w->children[0]); + if (w->state & MEOW_WS_FOCUSED) meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, th->primary); + if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->onSurface, 90); + break; + } + case W_DIVIDER: { + uint32_t c = widget_bg(w, th, th->outlineVariant); + if (w->variant) meow_ui_fill_rect(w->x, w->y, 1, w->h, c); + else meow_ui_fill_rect(w->x, w->y, w->w, 1, c); + break; + } + case W_BADGE: { + int count = w->value; + if (count < 0) break; /* 隐藏 */ + uint32_t bgc = th->error; /* MD3 角标用 error */ + if (count == 0) { + meow_gfx_fill_circle(w->x, w->y, 5, bgc); + } else { + char s[16]; + snprintf(s, sizeof s, "%d", count); + int tw = meow_ui_text_width(s, th->font_body); + int pw = tw + 12; if (pw < 18) pw = 18; + meow_gfx_fill_round(w->x - pw / 2, w->y - 11, pw, 22, 11, bgc); + meow_ui_text_center(w->x, w->y - meow_ui_text_height(th->font_body) / 2, s, th->font_body, th->onError); + } + break; + } + case W_CHECKBOX: { + int sel = (w->state & MEOW_WS_SELECTED) != 0; + int sz = w->w; + int r = widget_radius(w, 4); + if (sel) { + meow_gfx_fill_round(w->x, w->y, sz, sz, r, th->primary); + int ax = w->x + 9, ay1 = w->y + 17, ay2 = w->y + 23, bx = w->x + 15, cx = w->x + 25, cy = w->y + 11; + meow_gfx_line(ax, ay1, bx, ay2, 3, th->onPrimary); + meow_gfx_line(bx, ay2, cx, cy, 3, th->onPrimary); + } else { + meow_ui_draw_rect_round(w->x, w->y, sz, sz, r, th->outline); + } + if (w->state & MEOW_WS_FOCUSED) meow_ui_draw_rect_round(w->x, w->y, sz, sz, r, th->primary); + if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, sz, sz, th->onSurface, 90); + break; + } + case W_RADIO: { + int sel = (w->state & MEOW_WS_SELECTED) != 0; + int ccx = w->x + w->w / 2, ccy = w->y + w->h / 2; + meow_gfx_ring_arc(ccx, ccy, 12, 2, 0, 360, sel ? th->primary : th->outline); + if (sel) meow_gfx_fill_circle(ccx, ccy, 6, th->primary); + if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->onSurface, 90); + break; + } + case W_PROGRESS: { + if (w->variant == 1) { /* 圆形 */ + int ccx = w->x, ccy = w->y, rr = w->w; + int thk = 4; + meow_gfx_ring_arc(ccx, ccy, rr, thk, 0, 360, th->surfaceVariant); + if (w->value < 0) { /* 不定:按时间推进一段弧(App 在 on_tick 里重绘驱动) */ + int start = (int)((meow_ui_time_ms() / 30) % 360); + meow_gfx_ring_arc(ccx, ccy, rr, thk, start - 90, 90, th->primary); + } else if (w->value > 0) { + int sweep = w->value * 360 / 100; + if (sweep > 0) meow_gfx_ring_arc(ccx, ccy, rr, thk, -90, sweep, th->primary); + } + } else { /* 线性 */ + int thk = w->h > 0 ? w->h : 4; + int yy = w->y + w->h / 2 - thk / 2; + meow_ui_fill_rect(w->x, yy, w->w, thk, th->surfaceVariant); + if (w->value < 0) { /* 不定:移动块 */ + int fw = w->w / 3; + int pos = (int)((meow_ui_time_ms() / 12) % (w->w + fw)) - fw; + meow_ui_fill_rect(w->x + pos, yy, fw, thk, th->primary); + } else if (w->value > 0) { + int fw = w->value * w->w / 100; + if (fw > 0) meow_ui_fill_rect(w->x, yy, fw, thk, th->primary); + } + } + if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->onSurface, 90); + break; + } + case W_FAB: { + int r = widget_radius(w, w->w / 2); + uint32_t base = widget_bg(w, th, th->primaryContainer); + if (w->state & MEOW_WS_PRESSED) base = state_tint(base, th, 12); + meow_gfx_fill_round(w->x, w->y, w->w, w->h, r, base); + uint32_t tc = widget_fg(w, th, th->onPrimaryContainer); + meow_ui_text_center(w->x + w->w / 2, w->y + (w->h - meow_ui_text_height(th->font_body)) / 2, + w->label, th->font_body, tc); + if (w->state & MEOW_WS_FOCUSED) meow_ui_draw_rect_round(w->x, w->y, w->w, w->h, r, th->primary); + if (disabled) meow_ui_fill_rect_alpha(w->x, w->y, w->w, w->h, th->onSurface, 90); + break; + } + case W_TOPAPPBAR: { + meow_ui_fill_rect(w->x, w->y, w->w, w->h, th->surfaceContainerHigh); + int mid = w->y + w->h / 2; + int tx = w->x + 16; + int ty = mid - meow_ui_text_height(th->font_title) / 2; + if (w->back_on) { + int bx = w->x + 22, by = mid; + meow_gfx_line(bx + 4, by - 7, bx - 4, by, 2, th->onSurface); + meow_gfx_line(bx - 4, by, bx + 4, by + 7, 2, th->onSurface); + tx = w->x + 48; + } + if (w->label[0]) meow_ui_text(tx, ty, w->label, th->font_title, th->onSurface); + int ay = mid - meow_ui_text_height(th->font_body) / 2; + int ax = w->x + w->w - 12; + for (int i = w->nitems - 1; i >= 0; i--) { + int aw = meow_ui_text_width(w->items[i], th->font_body) + 12; + ax -= aw; + meow_ui_text_center(ax + aw / 2, ay, w->items[i], th->font_body, th->onSurface); + } + meow_ui_fill_rect(w->x, w->y + w->h - 1, w->w, 1, th->outlineVariant); + break; + } + case W_NAVBAR: { + meow_ui_fill_rect(w->x, w->y, w->w, w->h, th->surfaceContainer); + if (w->nitems <= 0) break; + int iw = w->w / w->nitems; + int ay = w->y + (w->h - meow_ui_text_height(th->font_body)) / 2 + 12; + for (int i = 0; i < w->nitems; i++) { + int ix = w->x + i * iw; + int sel = (i == w->selected); + if (sel) meow_gfx_fill_round(ix + iw / 2 - 24, w->y + 8, 48, 22, 11, th->secondaryContainer); + uint32_t col = sel ? th->onSecondaryContainer : th->onSurfaceVariant; + meow_ui_text_center(ix + iw / 2, ay, w->items[i], th->font_body, col); + } + meow_ui_fill_rect(w->x, w->y, w->w, 1, th->outlineVariant); + break; + } + case W_TABBAR: { + meow_ui_fill_rect(w->x, w->y, w->w, w->h, th->surface); + if (w->nitems <= 0) break; + int iw = w->w / w->nitems; + int ay = w->y + (w->h - meow_ui_text_height(th->font_body)) / 2; + for (int i = 0; i < w->nitems; i++) { + int ix = w->x + i * iw; + int sel = (i == w->selected); + meow_ui_text_center(ix + iw / 2, ay, w->items[i], th->font_body, + sel ? th->primary : th->onSurfaceVariant); + if (sel) meow_ui_fill_rect(ix, w->y + w->h - 2, iw, 2, th->primary); + } + meow_ui_fill_rect(w->x, w->y + w->h - 1, w->w, 1, th->outlineVariant); + break; + } case W_SPACER: break; /* 不可见空白 */ default: diff --git a/patch_v2/sdk/test_host_stub.c b/patch_v2/sdk/test_host_stub.c new file mode 100644 index 0000000..da41ebf --- /dev/null +++ b/patch_v2/sdk/test_host_stub.c @@ -0,0 +1,24 @@ +/* test_host_stub.c — 宿主逻辑测试打桩:meow_font_* / meow_ui_global_render。 + * 供 test_sb_collapse.c 链真实 meow_ui_gfx.o/meow_ui_sys.o 时提供(无 /dev/fb0、无字库的宿主环境)。 + * 仅为宿主单测编译;不进 meow_ui.a(build_sdk.sh 的 OBJS 不含本文件)。 */ +#include "meow_ui.h" +#include "meow_font.h" /* 原型(meow_ui_gfx.c include 的同款头) */ +#include + +void meow_font_set_fb(unsigned w, unsigned h, unsigned pitch) { (void)w;(void)h;(void)pitch; } +int meow_font_load(const char *p, const char *i) { (void)p;(void)i; return -1; } /* 无库:g_mfont_ready=0 → 5x7 回退 */ +void meow_font_unload(void) {} +int meow_font_reload_tier(int t, const char *p, const char *i) { (void)t;(void)p;(void)i; return -1; } +void meow_font_drawtext(uint16_t *fb, int x, int y, const char *s, uint16_t c, int size) { (void)fb;(void)x;(void)y;(void)s;(void)c;(void)size; } +int meow_font_width_text(const char *s, int size) { (void)size; return (int)strlen(s) * 6; } +int meow_font_line_height(int size) { (void)size; return 20; } +int meow_font_config_multifont(int on, const char *gp, const char *gi, + const meow_font_class_cfg cfg[MEOW_FCLS_COUNT], + int *distinct, int *truncated) +{ (void)on;(void)gp;(void)gi;(void)cfg;(void)distinct;(void)truncated; return -1; } + +/* present() 的 App 跨 Activity 全局渲染骨架(宿主无控件,no-op) */ +void meow_ui_global_render(void) {} + +/* meow_ui_run 触摸分流调用 meow_ui_global_hit(全局控件命中;宿主无全局控件 → 不消费) */ +int meow_ui_global_hit(int x, int y) { (void)x; (void)y; return 0; } diff --git a/patch_v2/sdk/test_meow_ui_widgets.c b/patch_v2/sdk/test_meow_ui_widgets.c new file mode 100644 index 0000000..168ef5b --- /dev/null +++ b/patch_v2/sdk/test_meow_ui_widgets.c @@ -0,0 +1,180 @@ +/* test_meow_ui_widgets.c — 宿主验证 §5.8.6 Material 子集纯逻辑(create/hit/state/滚动/选中)+ + * 各组件绘制(5x7 字库兜底)dump PPM 目检。不依赖 /dev/fb0/字库(meow_font 打桩)。 + * + * 编译(宿主 gcc,链真实 gfx/sys/theme/vol/log/widget/input/activity/dialog/ime + 打桩 font/global): + * gcc -o test_meow_ui_widgets test_meow_ui_widgets.c test_host_stub.c \ + * meow_ui_gfx.c meow_ui_sys.c meow_ui_theme.c meow_ui_vol.c meow_ui_log.c \ + * meow_ui_widget.c meow_ui_input.c meow_ui_activity.c meow_ui_dialog.c meow_ui_ime.c \ + * -I. -I../meow_launcherd -DMEOW_UI_HOST_TEST -pthread + * 运行:MEOW_UI_DUMP=/tmp/b2.ppm ./test_meow_ui_widgets (可选,dump 屏幕) + */ +#include "meow_ui.h" +#include +#include +#include +#include + +/* 测试数据源(列表容器) */ +static int list_src(int idx, char *label, int len, void *ctx) +{ + (void)ctx; + if (idx < 0 || idx >= 100) return 0; + snprintf(label, (size_t)len, "item %d", idx); + return 1; +} + +static meow_widget *g_w[64]; +static int g_wn = 0; +static meow_widget *W(meow_widget *w) { g_w[g_wn++] = w; return w; } + +static void free_all(void) +{ + for (int i = 0; i < g_wn; i++) meow_widget_free(g_w[i]); + g_wn = 0; +} + +int main(void) +{ + setenv("MEOW_UI_DUMP", "/tmp/b2.ppm", 1); + meow_ui_opts o = { 480, 720 }; + assert(meow_ui_init(&o) == 0); + int xres = meow_ui_width(), yres = meow_ui_height(); + assert(xres == 480 && yres == 720); + + /* ---------- Button 五型:create_variant/set_variant + 命中 ---------- */ + meow_widget *bf = W(meow_btn_create_variant(10, 10, 200, 56, "FILLED", MEOW_BTN_FILLED)); + meow_widget *bt = W(meow_btn_create_variant(10, 80, 200, 56, "TONAL", MEOW_BTN_TONAL)); + meow_widget *bo = W(meow_btn_create_variant(10, 150, 200, 56, "OUTLINED", MEOW_BTN_OUTLINED)); + meow_widget *bx = W(meow_btn_create_variant(10, 220, 200, 56, "TEXT", MEOW_BTN_TEXT)); + meow_widget *be = W(meow_btn_create_variant(10, 290, 200, 56, "ELEV", MEOW_BTN_ELEVATED)); + assert(meow_btn_set_variant(bt, MEOW_BTN_TONAL) == 0); /* 同值 */ + assert(meow_btn_set_variant(bo, MEOW_BTN_OUTLINED) == 0); + assert(meow_widget_hit(bf, 100, 30) == 1); + assert(meow_widget_hit(bf, 5, 5) == 0); /* 越界 */ + meow_widget_set_enabled(bf, 0); + assert(meow_widget_hit(bf, 100, 30) == 0); /* 禁用不命中 */ + meow_widget_set_enabled(bf, 1); + meow_widget_set_selected(be, 1); + assert(meow_widget_selected(be) == 1); + printf("PASS button-variant: create/set/hit/disabled/selected\n"); + + /* ---------- TextField ---------- */ + char tfbuf[32] = ""; + meow_widget *tf = W(meow_textfield_create(10, 360, 300, 44, "Type here...", tfbuf, 32, MEOW_IME_ASCII)); + strcpy(tfbuf, "abc"); + assert(strcmp(meow_textfield_text(tf), "abc") == 0); + assert(meow_widget_hit(tf, 20, 380) == 1); + meow_textfield_set_placeholder(tf, "placeholder"); + printf("PASS textfield: create/text/placeholder/hit\n"); + + /* ---------- Card + content ---------- */ + meow_widget *card = W(meow_card_create(240, 10, 220, 180)); + meow_widget *inner = W(meow_btn_create_variant(260, 40, 180, 44, "IN CARD", MEOW_BTN_FILLED)); + meow_card_set_content(card, inner); + assert(meow_widget_hit(card, 250, 20) == 1); + printf("PASS card: create/content/hit\n"); + + /* ---------- Divider / Badge ---------- */ + meow_widget *dv = W(meow_divider_create(10, 470, 200, 0)); + meow_widget *dv2 = W(meow_divider_create(230, 470, 8, 1)); + meow_widget *bd = W(meow_badge_create(400, 100)); + meow_badge_set(bd, 3); + meow_badge_set(bd, 0); + printf("PASS divider/badge: create/set\n"); + + /* ---------- Checkbox / Radio ---------- */ + meow_widget *ck = W(meow_checkbox_create(300, 200)); + meow_widget *rd = W(meow_radio_create(300, 250)); + meow_widget_set_selected(ck, 1); + meow_widget_set_selected(rd, 1); + assert(meow_widget_selected(ck) == 1); + assert(meow_widget_hit(rd, 315, 265) == 1); + printf("PASS checkbox/radio: create/select/hit\n"); + + /* ---------- ProgressBar ---------- */ + meow_widget *pg = W(meow_progress_create(10, 520, 300, 6, 40)); + meow_progress_set(pg, 200); /* clamp 100(无 getter,仅不崩) */ + meow_widget *pgc = W(meow_progress_circular_create(420, 520, 20, 66)); + meow_progress_set(pgc, -1); /* 不定 */ + printf("PASS progress: create/set linear+circular\n"); + + /* ---------- FAB ---------- */ + meow_widget *fab = W(meow_fab_create(410, 620, 56, "+")); + assert(meow_widget_hit(fab, 430, 640) == 1); + printf("PASS fab: create/hit\n"); + + /* ---------- TopAppBar ---------- */ + meow_widget *tab_ = W(meow_topappbar_create(0, 0, 480, 56, "Title")); + meow_topappbar_set_back(tab_, 1); + int a0 = meow_topappbar_add_action(tab_, "Save"); + int a1 = meow_topappbar_add_action(tab_, "Edit"); + assert(a0 == 0 && a1 == 1); + assert(meow_topappbar_hit(tab_, 10, 28) == MEOW_TOPBAR_BACK); /* 返回区 */ + assert(meow_topappbar_hit(tab_, 440, 28) == 1); /* 右缘动作 "Edit"(最右) */ + printf("PASS topappbar: create/back/action/hit\n"); + + /* ---------- NavigationBar ---------- */ + meow_widget *nav = W(meow_navigationbar_create(0, 680, 480, 40)); + int n0 = meow_navigationbar_add_item(nav, "Home"); + int n1 = meow_navigationbar_add_item(nav, "Library"); + int n2 = meow_navigationbar_add_item(nav, "Settings"); + assert(n0 == 0 && n1 == 1 && n2 == 2); + meow_navigationbar_set_selected(nav, 2); + assert(meow_navigationbar_selected(nav) == 2); + assert(meow_navigationbar_hit(nav, 420, 700) == 2); /* 第 3 项 */ + assert(meow_navigationbar_hit(nav, 10, 700) == 0); + printf("PASS navigationbar: add/select/hit\n"); + + /* ---------- TabBar ---------- */ + meow_widget *tbb = W(meow_tabbar_create(0, 660, 480, 36)); + meow_tabbar_add_tab(tbb, "Playlist"); + meow_tabbar_add_tab(tbb, "Queue"); + meow_tabbar_set_selected(tbb, 1); + assert(meow_tabbar_hit(tbb, 300, 678) == 1); + printf("PASS tabbar: add/select/hit\n"); + + /* ---------- 列表容器(LazyColumn 虚拟化 + 滚动) ---------- */ + meow_widget *lc = W(meow_lazycolumn_create(20, 460, 260, 180, 40, 100, list_src, NULL)); + assert(meow_list_scroll(lc) == 0); + assert(meow_list_max_scroll(lc) == 100 * 40 - 180); /* 4000-180=3820 */ + meow_list_set_scroll(lc, 5000); + assert(meow_list_scroll(lc) == 3820); /* clamp 到 max */ + meow_list_scroll_by(lc, -320); + assert(meow_list_scroll(lc) == 3500); + assert(meow_list_hit_index(lc, 30, 480) == ((480 - 460 + 3500) / 40)); /* 可见项换算 */ + meow_list_set_item_h(lc, 50); + assert(meow_widget_hit(lc, 30, 470) == 1); + /* LazyRow 横向 */ + meow_widget *lr = W(meow_lazyrow_create(20, 640, 380, 40, 60, 100, list_src, NULL)); + meow_list_scroll_by(lr, 200); + assert(meow_list_hit_index(lr, 40, 660) == ((40 - 20 + 200) / 60)); + printf("PASS lazy list: scroll clamp/virtualize/hit_index (col+row)\n"); + + /* ---------- Dialog / BottomSheet 纯逻辑(create/set/add;show 阻塞故不调) ---------- */ + meow_dialog *dlg = meow_dialog_create(MEOW_DLG_SELECT, "Pick one"); + const char *items[] = { "Alpha", "Beta", "Gamma" }; + meow_dialog_set_items(dlg, items, 3, 1); + assert(meow_dialog_result(dlg) == 0); /* 未 show 默认 */ + meow_dialog_free(dlg); + meow_dialog *dc = meow_dialog_create(MEOW_DLG_CONFIRM, "Sure?"); + assert(meow_dialog_result(dc) == 0); + meow_dialog_free(dc); + meow_sheet *sh = meow_sheet_create("Options", 0); + int s0 = meow_sheet_add_item(sh, "Copy"); + int s1 = meow_sheet_add_item(sh, "Delete"); + assert(s0 == 0 && s1 == 1); + meow_sheet_free(sh); + printf("PASS dialog/sheet: create/set_items/add_item (blocking show skipped)\n"); + + /* ---------- 绘制所有控件到 back_buf(5x7 兜底),flush 出屏幕 ---------- */ + const meow_theme *th = meow_theme_get(); + meow_ui_clear(th->bg); + for (int i = 0; i < g_wn; i++) meow_widget_draw(g_w[i]); + meow_ui_flush(); + printf("PASS draw: all %d widgets rendered, screen dumps to /tmp/b2.ppm\n", g_wn); + + free_all(); + meow_ui_shutdown(); + printf("ALL PASS\n"); + return 0; +}