From ee45b2fa606425613f80590320f86a3acfadea50 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Mon, 27 Feb 2023 17:00:28 -0500 Subject: [PATCH] Theming tweaks and rendering fixes --- elements/basic/checkbox.go | 3 ++- elements/basic/listentry.go | 2 +- elements/testing/artist.go | 7 +++++++ theme/assets/wintergreen.png | Bin 2289 -> 2299 bytes theme/default.go | 13 +++++++++++-- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/elements/basic/checkbox.go b/elements/basic/checkbox.go index 14690bb..ab2217e 100644 --- a/elements/basic/checkbox.go +++ b/elements/basic/checkbox.go @@ -4,6 +4,7 @@ import "image" import "git.tebibyte.media/sashakoshka/tomo/input" import "git.tebibyte.media/sashakoshka/tomo/theme" import "git.tebibyte.media/sashakoshka/tomo/config" +import "git.tebibyte.media/sashakoshka/tomo/artist" import "git.tebibyte.media/sashakoshka/tomo/textdraw" import "git.tebibyte.media/sashakoshka/tomo/elements/core" @@ -175,7 +176,7 @@ func (element *Checkbox) draw () { backgroundPattern.Draw(element.core, bounds) pattern := element.theme.Pattern(theme.PatternButton, state) - pattern.Draw(element.core, boxBounds) + artist.DrawBounds(element.core, pattern, boxBounds) textBounds := element.drawer.LayoutBounds() margin := element.theme.Margin(theme.PatternBackground) diff --git a/elements/basic/listentry.go b/elements/basic/listentry.go index cad33df..d1020c2 100644 --- a/elements/basic/listentry.go +++ b/elements/basic/listentry.go @@ -67,7 +67,7 @@ func (entry *ListEntry) Draw ( On: on, } - pattern := entry.theme.Pattern (theme.PatternRaised, state) + pattern := entry.theme.Pattern(theme.PatternRaised, state) padding := entry.theme.Padding(theme.PatternRaised) bounds := entry.Bounds().Add(offset) artist.DrawBounds(destination, pattern, bounds) diff --git a/elements/testing/artist.go b/elements/testing/artist.go index 9277041..bb42bfa 100644 --- a/elements/testing/artist.go +++ b/elements/testing/artist.go @@ -118,6 +118,13 @@ func (element *Artist) draw () { Inset: artist.Inset { 8, 8, 8, 8 }, }.Draw(c03, c03.Bounds()) + // 1, 3 + c13 := element.cellAt(1, 3) + patterns.Border { + Canvas: element.thingy(c42), + Inset: artist.Inset { 8, 8, 8, 8 }, + }.Draw(c13, c13.Bounds().Inset(10)) + // how long did that take to render? drawTime := time.Since(drawStart) textDrawer := textdraw.Drawer { } diff --git a/theme/assets/wintergreen.png b/theme/assets/wintergreen.png index 2abe477b4319a2a1733bda505866a42d1e6e6c3a..ea9871c51ee1691f327607243be0a615584d9712 100644 GIT binary patch delta 2060 zcmaixc~p}58pnTt`Qj2Uj%#U%X+~2`ikVA*K;Twxl`~d)MJp{U$5JbCd0#ZM$x5bm z%1TUgv{G9%mkQ`+W@<=fsA+{cnW846xRN^FbI-Z|-si8+InVi?@AG`We;a9ygh!EB z9}a8l(f1#=!+E)6L(}~ArLveOD?iQUog`Ws>QEt^D~B z9%&H*CmfhF$~f3TZp?SI+17oRcQ@X|T^FCfLHC-o#c@8nua-}hw-NHW_|@#Vve?dY zJyv*zK)gsUvdIR8WB@SW;!@A@Z1@j<%J496CL;L$O=4|NVhB=pb;h_h{`PS zK;2sX6TM-lO}>k|EM4SjYC~0R^O;P}J>kZCLWA zaI0f4bcz-2>|WFrJ2gcPVl>=L5mK!G+RX4i4^tbUkoJnuy{y#5K}hNGh~n$~2&c&L z`+f%dznIbPq}wo^`|@z$*1rQiECKUp3}9^R#DYEu^m5MmO~AIdBP72{u%g*%M-sL{ zm4`{|Ftf0q-fL3tP0|RAE#Ee}qIuAI@SWC<0eOz#3iOTbnL@U`Oz8n)_%N7cGyvhl z1q?JzAIu=esKe?0=^*Fs6mlrCjfNx`8v{)Xn4XZHl+i+5ttsHu))nd;8x({hCemph z4)h6b+7|_!aOv_IMRV&DW^OG$!cdk;R*C(3{wqDwbW&j`SU)fI3oaS1T7<>M%>;pg zjDtMs#5fpKQw~$B!{RHDnz4?3c>amcXPk(_}MC;O$j-?DL(y8nS-> zNMF^CKYT;}2t7B8BO5Wi%wy*xG6tO;QM!TX*_Lx_bdDf1SGRPGwSd@1WW&)iVxV>P zP`ZQdHw9CM^PYR6c6dzgSZ)1DznPKw!#KS`PSa`gz*P@nT^M@|2uaF^23?Z?Q$1@6Ekh7Vc%|$Q6swK2}}2jadgU%eKG{@7(igK z_O2yRWKz&rl61t#*Js${67+jwesh?4$gVI-Jof@ukvTJ;I|TNVcHuaROlor22`k&z zvn>OdFmon+b^zP+4Src0h_F50)#YB_L_*z;=_xYbkRA>Kl;#R}qdXVz7t4g{0`sOQ zrG*oDO&Q*)fxQZ7)n@DSHQ6h(TOsZL-Z{|9cNfqU56*TOC>Kc`*8^a<@7i z`&dHkvaSdq%7F$`kbL_Y$tAj@Cpl7*Bh^>>=$yxq#=l%#iKlgG&*c2g#?RJD_h zD^iom=FEC*gXP+1W9V=}0zEKt?~qerHLJACOL`lUEoZ6(qk2NVGMzX%CN;HDs{~cX z)wLvbBCo3$w@8bPk&v)8LC`LDoz^s1P))eX=J`SXHg}6~Uyt#)kiR}F6#B?g9$F$A zs8nx1ns@(G8iU;2T{1;w6{mBMgm|DaDv`R2^zhnR5u?;hh4~y!kmiI4BO@hD9%^W@ zR3~bQgO2-&J(s+sRiFI9fOMJ8T|y{(9-{H0BE3y+1rO?v@f4U1z}ZhKz7-=`xy?@5 zIXB}jePZ_U&%vqzP*skownUe)rJZh&<~8NTyc;ih49wEMB2t%dJmy|FSaKu1LQ){k>@qho+>-Cl?rZZ~(Z!d%YBxnf5a zYO%-T1EczYj5T%q##$d#CGFQKCS3KO2d$pS-YEfnKNs#UeWS&?x4^>&?bm1y_tsF7 zBlGU){ko;6X&F^xi`=Emc^L36d_-ahnrUwuwN5(O~ZA}#{ozE&< zn|`o>@VF-hjmT*Hh$;p{92L delta 2050 zcmV+d2>ti_5%Cd_cznxh~L6rs0TJ*#!My#JdXf6)*`P+Pq__S>z} zbR3c}1h&OE7JgG5WAQA8qAyyPl7K3?8XL;27p3)kO)_-E$vUnJ$C`Uh)s~hEP zHNe;FW$t@3SkItZG+@*316|u+VlXZnL^(7jBr6;i40et}#{eO8$e^eobIoX#A;HB^NwP(-_{klQbRLcfzr2)b({pW$Mq2DtY zQwC9l96yZ64?T=RO^ebqaDIpzI6s62IUFS7Adx4fXW%%*4IGEiAjv_fcy-UGP#lC% z5&U_*ghmh$O)yX#A_l|Y5Go-{*+53_L85$+K|a93rsYZt z=+lU5HGd34WfnFgW-r^O_n|)uP!0O$0D!76)XxS0kX0~%*V48C0Qv!dIniX({lmy= z*zen~0H{wt#zO#E{WHKX+XBNxKaIi|$%8&{Vq;nv2k`S?2Y{akI{^HI>63ZjE@Z?9 zGLnfh4&eJ>2Y~N`3;=0c-~;HV0MI`H2-BFZAAeO7&IiKvm&Nl(H!%S~{|uo24y@?R z`@;D^0cfU5fqx7E1mOCk0M-W^06-5cH8H(Hyx~5Y2i!EK>sQsd^8t7LW$|qqp8%kL z2GD<7RJFu$n} zXn!&f=v;t2NX~_OYl@LzF7&PbJP%V@hw-)o0COQ9fXo4SZODB>4`f6SWUd~_h#tsX zJ&+MS$N+$NQyVt=C#oh)0(h(`)0S!%~2T@3uN59>|1n)zW2LvDyUPl*h3IP2R z0NdGS22g;K*ONE|cYi%IgZ>%7Z5Pa0-?J+O)CX?6Aj}AUW&qc}0^sU{-2hM@900KO zK{i0G#ylVZs1Itpfe8Rye^4LL?ZQa5&Y#l*2?eUDwZC*VZ}R~9ZLvKM!S&AoZo6R4 zI-hO9ArIVkfg2wn0N1|);PPNM0OY{|0GkKd0AF^aG66syKz~04aQ#6Z(CxxVjt@S# zF1URs)dP^Oq#iJ#=RzImK`9(yFcHX*OAhIr$x$6RptP5qXsIthqupa>O-~fQlgKU7vx=?1X3z1_a+W&bypz8wY zL2_MS+af;LzrM)DD7d(4gko50{}J;b^|~jL;-a30G5x^N_zjf zJc!f>Wo~`IBK1L;ySTDQeXt(@^56h~&4X-!NPSRd*9Vc~MA{$b!RY_M0i^3l2R!VTTdpARaNl=)j29BPHUyA? zp9#UqEq@du@_w=&p!bLC0pCaIdZ5J8+Gj{{gIc+dfL9NkPk__|=My0Hzy%@j>wzmm z;MD_fCvbH=;OoG+Q3o>i1=M~$1ahMe$aDy({T>2w9XN%+nhu;oU`+?k3BigEoD_n% z4!ncFa9*9G-ywNMWbKXU+n z#DWwP`vn36WWW$1FzbLJ&_P7IJOaM`b^=%jE+K$*;1U8@2R=gpHBDg38J#sI1hWnp z0;p*M_N%J)e&%G0M>y^2w)xf3<1j6aotu9#v zU}w0K0I3JgCqU|f^9hi8;1dK;Rhq5`6n}x*d;g!W2k800CLMUkzJTEf$P6985s+`# z7ciWIGD8P&4$3zarAY!*2TmtIb>MUYR0rNq05zGR1JwTi(gBv<7tncrcwfNo`gWKDRR8ed)ua8;V#7bpU#%FH4Fi_uO3WM6PT0kSVRp8(kxe1gE2w+~3{3sV#U z-~RvF7mOQq;2q}!40}{&=m51pdOpB#4$2H2z&R-2usKZ~2M|CkQ^0d||GIJhBAA^-pY07*qoM6N<$f?+|VrvLx| diff --git a/theme/default.go b/theme/default.go index 96a3d86..e953f7e 100644 --- a/theme/default.go +++ b/theme/default.go @@ -117,8 +117,17 @@ func (Default) Color (id Color, state State, c Case) color.RGBA { } // Padding returns the default padding value for the given pattern. -func (Default) Padding (pattern Pattern, c Case) artist.Inset { - return artist.Inset { 8, 8, 8, 8 } +func (Default) Padding (id Pattern, c Case) artist.Inset { + switch id { + case PatternSunken: + if c == C("basic", "list") { + return artist.Inset { 2, 2, 2, 2 } + } else { + return artist.Inset { 8, 8, 8, 8 } + } + case PatternGutter: return artist.Inset { } + default: return artist.Inset { 8, 8, 8, 8 } + } } // Margin returns the default margin value for the given pattern.