{
   "description" : "A simple color picker. \r\nPosts picked color to the postwindow.\r\nBased on (non-functional) code found at http://swiki.hfbk-hamburg.de:8888/MusicTechnology/868\r\n(scsolar 2007)",
   "ancestor_list" : [],
   "author" : "LFSaw",
   "name" : "color picker",
   "is_private" : null,
   "id" : "1-4Ut",
   "code" : "(\r\nvar res = 20, scrsize = 200, val, set, win, scr, currentColor = Color.gray, setColor;\r\nwin = Window.new(\"color picker\",Rect(400, 400, 2*scrsize+20, scrsize),false).front;\r\n\r\n//win.view.background_(Color.white);\r\n\r\nscr = UserView.new(win,Rect(scrsize+20, 0, scrsize, scrsize));\r\nscr.background_(Color.white);\r\n\r\nsetColor = {|x, y, val, postVal=false|\r\n\t//x = x/scrsize;\r\n\t//y = y/scrsize;\r\n\r\n\tcurrentColor = Color.hsv(min(0.999, x), min(0.999, 1-y), val, 1);\r\n\tpostVal.if{\r\n//\t\t(\"Color.hsv(\"++(x)++\", \"++(1-y)++\", \"++val.value++\", 1)\").postln; \r\n\t\t\"Color.new255(%, %, %)\".format(*(currentColor.asArray*255)).postln; \r\n\t};\r\n\r\n\tscr.background_(\r\n\t\tColor.hsv(min(0.999, x), min(0.999, 1-y), val.value, 1)\r\n\t);\r\n};\r\n\r\n\r\n\r\n\r\nval = Slider(win, Rect(scrsize, 0, 20, scrsize)).value_(1).action_({|view|\r\n\tsetColor.(m.x.postln, m.y, view.value);\r\n\t\r\n\twin.refresh\r\n});\r\n\r\nm = Slider2D(win, Rect(0, 0, scrsize, scrsize))\r\n\t.mouseDownAction_({|view| \r\n\t\tsetColor.(view.x, view.y, val.value);\r\n\t\twin.refresh\r\n\t})\r\n\t.mouseMoveAction_({|view|\r\n\t\tsetColor.(view.x, view.y, val.value);\r\n\t\twin.refresh\r\n\t}).mouseUpAction_({|view| \r\n\t\tsetColor.(view.x, view.y, val.value, true);\r\n\t\twin.refresh\r\n\t});\r\n\r\nwin.front;\r\n)",
   "labels" : [
      "gui",
      "color",
      "tool",
      "picker",
      "colour",
      "graphics"
   ]
}
