rendered paste bodyalias colors dialog -m colorgen colorgen
dialog colorgen {
title "Your personal color generator"
option dbu
size -1 -1 138 100
box "Red", 1, 1 1 135 25
edit "0", 2, 6 12 20 10, read
scroll "Red", 3, 30 1 100 20, horizontal, range 0 255
box "green", 4, 1 25 135 25
edit "0", 5, 6 36 20 10, read
scroll "green", 6, 30 25 100 20, horizontal, range 0 255
box "blue", 7, 1 49 135 25
edit "0", 8, 6 60 20 10, read
scroll "blue", 9, 30 49 100 20, horizontal, range 0 255
text "Hex:", 10, 15 75 20 8, left
edit "#000000", 11, 37 75 30 8
text "RGB:", 12, 70 75 20 8, left
edit "0", 13, 92 75 30 8
button "Grab Color From Image", 14, 1 87 136 10
}
menu @grab {
sclick: {
var %rgb = $getdot(@grab,$mouse.x,$mouse.y), %c = $rgb(%rgb), %b = $gettok(%c,3,44), %r = $gettok(%c,1,44), %g = $gettok(%c,2,44)
did -c colorgen 3 %r
did -ra colorgen 2 %r
did -c colorgen 6 %g
did -ra colorgen 5 %g
did -c colorgen 9 %b
did -ra colorgen 8 %b
drawreplace -r @preview $getdot(@preview,1,1) %rgb
did -ra colorgen 13 %rgb
did -ra colorgen 11 $+($chr(35),$iif($len($base(%r,10,16)) == 1,0 $+ $base(%r,10,16),$base(%r,10,16)),$iif($len($base(%g,10,16)) == 1,0 $+ $base(%g,10,16),$base(%g,10,16)),$iif($len($base(%b,10,16)) == 1,0 $+ $base(%b,10,16),$base(%b,10,16)))))
}
}
on *:DIALOG:*:*:*:{
if ($dname == colorgen) {
if ($devent == sclick) {
if ($did == 14) {
if (!$window(@grab)) window -p @grab 300 300 300 300
drawpic -s @grab 1 1 $window(@grab).dw $window(@grab).dh $shortfn($sfile(C:\))
}
}
if ($devent == init) { did -b $dname 2,5,8 | window -p +s @preview 100 100 100 100 | drawreplace -r @preview $getdot(@preview,1,1) 0 }
if ($devent == scroll) {
var %r = $did(3).sel, %g = $did(6).sel, %b = $did(9).sel, %d = $calc($did - 1), %rgb = $calc((%r * 1) + (%g * 256) + (%b * 65536))
did -ra $dname %d $did($did).sel
did -ra $dname 13 %rgb
drawreplace -r @preview $getdot(@preview,1,1) %rgb
did -ra $dname 11 $+($chr(35),$iif($len($base(%r,10,16)) == 1,0 $+ $base(%r,10,16),$base(%r,10,16)),$iif($len($base(%g,10,16)) == 1,0 $+ $base(%g,10,16),$base(%g,10,16)),$iif($len($base(%b,10,16)) == 1,0 $+ $base(%b,10,16),$base(%b,10,16)))))
}
if ($devent == close) { window -c @preview | window -c @grab }
}
}