a normal rgb-color is a 3-dimensional value, so the first thing you need is the right part of your picker.
you need an option to select the first dimension of your "color picker space" (The option buttons at R,G,B)
if one of those buttons get clicked, create your left part, the "color picker space".
simple iterate with a loop through all pixels and fill them with the corresponding value, best you create this space 256x256 pixels large
example (no lite-c!):
Code:
for(x = 0; x < 256; x++) for(y = 0; y < 256; y++)
{
   Color col;
   switch(selectedFirstDimension)
      case R:
        col = color(rValue, x, y)
      case G:
        col = color(x, gValue, y)
      case B:
        col = color(x, y, bValue)
   write_pixel(x, y, col)
}



now you can use sivans method to get the clicked pixel color


Visit my site: www.masterq32.de