All pastes #492264 Raw Edit

Someone

public text v1 · immutable
·published 2007-05-17 02:49 UTC
rendered paste body
alias 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 }
  }
}