UQI34GQFLN3YSDDBVNABM7VX5UKGIDBKD2AWGGEVR4QAMHMPKJ3AC
MXXCTVXWP3IBMXYKMORE4TTD2V4Q5WY2QYKUU7TIOU2GWGXDQY3AC
EDWRWZRVHYHK4PLKOX3HWR64SS3WTTJHMJ23ZFVTXN6PRCRPX3IQC
GZ5WULJVEZJJQPQPSQZE7CEPIYPJ2BJDYUJBMZRA5HLOO7TE3DOQC
54HEXCWVCJ62P2BMXGTKBAR4GKOWJQ6MJUQ2PO5CLHDUOFAKCKEQC
KKMFQDR43ZWVCDRHQLWWX3FCWCFA3ZSXYOBRJNPHUQZR2XPKWULAC
N2NUGNN4E37TNLC6JZE4H4HKJZPNVBV4VYTLXW57AP5BOU4ZK7LQC
H5UZI3YNAPSZIQHLCAU67OKHY2XQJC6MR5AKJNYDKK7L6IZ2IINAC
PP2IIHL6EK4HBFFSYAQNV35BKIK6D4EL2JQOY7NZVJX2DXCLSMGAC
XX7G2FFJ4QCGQGD4REAW5QFHVYAKCFUPGZCK7L6DFGS5ISVBYBQQC
Call this either directly or indirectly from `App.draw`. It will paint a
rectangle to the screen with top-left at (x,y), dimensions w×h pixels in the
specified `color`. It will then overlay any drawing instructions within
`icon` atop it. The `icon` callback will receive a table containing the same
x/y/w/h.
Call this either directly or indirectly from `App.draw`. It will assign a
rectangle with the given dimensions and trigger the provided (zero-arg)
`onpress1` callback when the primary mouse button is clicked within.
It will also optionally paint the rectangle with the specified background
color `bg` and a foreground described by the `icon` callback (which will
receive the same dimensions).
The rectangle also registers within `state` the `onpress1` callback (without
any arguments) when mouse button 1 is clicked on it. This way you can see
everything about a button in one place. Create as many buttons as you like
within a single shared `state`.
This way you can see everything about a button in one place. Create as many
buttons as you like within a single shared `state`.