uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit 77488b36cb08076d40e4844361aacefb61ed8b9d
parent 9d6c17df10bd0705e2a889a14dac4de5cce4180d
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date:   Wed, 15 Jan 2025 16:23:45 -0800

(button.tal) Making OOP

Diffstat:
Mprojects/examples/gui/button.tal | 45++++++++++++++++++++++++++++++++-------------
1 file changed, 32 insertions(+), 13 deletions(-)

diff --git a/projects/examples/gui/button.tal b/projects/examples/gui/button.tal @@ -17,7 +17,7 @@ #0058 DUP2 .Screen/width DEO2 .Screen/height DEO2 ;on-mouse .Mouse/vector DEO2 - ;button-chr <draw-button> + button/<redraw> BRK @meta $1 @@ -26,32 +26,43 @@ ( auth ) "By 20 "Devine 20 "Lu 20 "Linvega 0a ( date ) "15 20 "Jan 20 "2025 $2 +@on-mouse ( -> ) + update-focus BRK + @on-frame ( -> ) + BRK [ LIT2 18 &time $1 ] INCk ,&time STR EQU ?{ BRK } #0000 .Screen/vector DEO2 - ;button-chr/up <draw-button> + ;button-chr/up button/<draw> [ LIT2 "! 18 ] DEO BRK -@on-mouse ( -> ) +( +@|drawing ) + +@update-focus ( -- ) <draw-cursor-touch> - .Mouse/state DEI ?{ BRK } - .Mouse/x DEI2 .Mouse/y DEI2 within-button ?{ BRK } - ;button-chr/down <draw-button> - ;on-frame .Screen/vector DEO2 - #10 ;on-frame/time STA - BRK + .Mouse/x DEI2 .Mouse/y DEI2 button/is-within ?{ ;on-mouse !<set-focus> } + ;button/on-mouse !<set-focus> + +@<set-focus> ( vector* -- ) + DUP2 [ LIT2 &last $2 ] NEQ2 ?{ POP2 JMP2r } + DUP2 .Mouse/vector DEO2 + ,&last STR2 !button/<redraw> -@within-button ( x* y* -- f ) +@button/is-within ( x* y* -- f ) #0020 SUB2 #0018 LTH2 STH #0020 SUB2 #0018 LTH2 STHr AND JMP2r -( -@|drawing ) +@button/<redraw> ( -- ) + .Mouse/vector DEI2 ;button/on-mouse EQU2 ?{ ;button-chr/up !button/<draw> } + ;button-chr/hover !button/<draw> +@button/on-mouse ( -> ) + update-focus BRK -@<draw-button> ( addr* -- ) +@button/<draw> ( addr* -- ) [ LIT2 26 -Screen/auto ] DEO #0020 DUP2 .Screen/x DEO2 .Screen/y DEO2 @@ -75,6 +86,14 @@ .Screen/sprite DEOk DEO JMP2r +@<phex> ( short* -: ) + SWP /b + &b ( byte -: ) + DUP #04 SFT /c + &c ( byte -: ) + #0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO + JMP2r + ( @|assets )