Skip to content

Instantly share code, notes, and snippets.

@toomasv
Last active March 13, 2018 06:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save toomasv/d111c2e2b2d1682bd3a9615a5d66ac0c to your computer and use it in GitHub Desktop.
Save toomasv/d111c2e2b2d1682bd3a9615a5d66ac0c to your computer and use it in GitHub Desktop.
Another color-picker
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
@dockimbel
Copy link

to-tuple reduce [255 i - 1 * 4 0 0] => as-rgba 255 i - 1 * 4 0 0

;-)

@toomasv
Copy link
Author

toomasv commented Mar 12, 2018

Thanks! Corrected.

@toomasv
Copy link
Author

toomasv commented Mar 12, 2018

@dockimbel BTW Which is better: to use compose/deep to include drw (line 78), or to use append/only [...] drw?

@toomasv
Copy link
Author

toomasv commented Mar 12, 2018

Improved picking -- managed to provide actual alpha-info... And changed order of colors.

@greggirwin
Copy link

@toomasv, compose vs append depends on the overall layout and structure, and what's going in. i.e., either way is fine.

@toomasv
Copy link
Author

toomasv commented Mar 13, 2018

@greggirwin OK, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment