Last active
March 13, 2018 06:19
-
-
Save toomasv/d111c2e2b2d1682bd3a9615a5d66ac0c to your computer and use it in GitHub Desktop.
Another color-picker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
Author: "Toomas Vooglaid" | |
Date: 2018-03-12 | |
File: %color-picker.red | |
] | |
clear-reactions | |
make-color: func [i][ | |
sector: i - 1 / 64 + 1 | |
switch sector [ | |
1 [as-rgba 255 0 i - 1 * 4 0] | |
2 [as-rgba 255 - (i - 1 % 64 * 4) 0 255 0] | |
3 [as-rgba 0 i - 1 % 64 * 4 255 0] | |
4 [as-rgba 0 255 255 - (i - 1 % 64 * 4) 0] | |
5 [as-rgba i - 1 % 64 * 4 255 0 0] | |
6 [as-rgba 255 255 - (i - 1 % 64 * 4) 0 0] | |
] | |
] | |
drw: copy [rotate -30 150x150 pen off ] | |
collect/into [ | |
repeat i 6 * 64 [ | |
keep reduce [ | |
'rotate i - 1 * 0.9375 150x150 | |
compose [ | |
fill-pen (make-color i) | |
arc 150x150 128x128 0 1 closed | |
] | |
] | |
] | |
] drw | |
append drw [ | |
fill-pen radial 0.0.0.0 0.0.0.255 150x150 128 | |
circle 150x150 128 | |
] | |
sz: 300x300 | |
palette: make image! sz | |
draw palette drw | |
dn?: false | |
lay: layout compose/deep [ | |
value: text | |
text 30x24 "alpha:" | |
alpha: slider | |
react later [ | |
found: disc2/draw | |
while [found: find next found block!][ | |
found/1/2/4: to integer! alpha/data * 255 | |
] | |
] | |
return | |
grey: slider 24x300 | |
on-up [ | |
;palette: make image! sz | |
draw palette disc2/draw | |
disc/image: palette | |
] | |
react later [ | |
change/part at tail disc2/draw -7 reduce [ | |
as-rgba v: to integer! grey/data * 255 v v 0 | |
as-rgba v v v 255 | |
] 2 | |
] | |
disc: image palette | |
at 44x44 disc2: box white 300x300 all-over | |
on-over [ | |
clr: pick palette event/offset | |
attempt [clr/4: to integer! alpha/data * 255] | |
value/text: form clr | |
] | |
on-down [dn?: true] | |
on-up [ | |
if dn? [ | |
color: pick palette event/offset | |
color/4: to integer! alpha/data * 255 | |
probe color | |
] | |
] | |
draw [(drw)]; | |
] | |
view/no-wait lay |
Thanks! Corrected.
@dockimbel BTW Which is better: to use compose/deep
to include drw
(line 78), or to use append/only [...] drw
?
Improved picking -- managed to provide actual alpha-info... And changed order of colors.
@toomasv, compose
vs append
depends on the overall layout and structure, and what's going in. i.e., either way is fine.
@greggirwin OK, thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
;-)