'ProgramMode:GB1
' Color Coverter
' Version : 1.00
' 11 Feb 2020 (UTC)
'    (C) 2020 Colon

'#_Mat _1
'#CBINT
RefrshCtrl 2
RefrshTime 0
ClrText

0->N '0:RGB;1:HSV;2:HSL;3:HEX;4:DEC
{0,0,0}->List 1 'RGB
{0,0,0}->List 2 'HSV
{0,0,0}->List 3 'HSL
{0}->List 4 'Color Cord

Do
  
  Blue Locate 1,1,"Color Coverter"
  Locate 1,2,Sprintf(" RGB(%3d,%3d,%3d)",List 1[1],List 1[2],List 1[3])
  Locate 1,3,Sprintf(" HSV(%3d,%3d,%3d)",List 2[1],List 2[2],List 2[3])
  Locate 1,4,Sprintf(" HSL(%3d,%3d,%3d)",List 3[1],List 3[2],List 3[3])
  Sprintf("%04X",List 4[1])->Str 1
  Locate 1,5,Sprintf(" HEX #0x%4s",Str 1)
  Locate 1,6,Sprintf(" DEC #%Char-5u",List 4[1])
  
  Red Locate 1,2+N,"_#E69B_"
  
  Back-Color RGB(List 1)
  (299*List 1[1]+587*List 1[2]+114*List 1[3])/1000<128=>White 
  Locate 1,7,"_#E69A__#E6A6__#E6A6_looks like this_#E6A6__#E6A6__#E69B_"
  Back-Color White 
  
  Switch N
    Case 0
    FkeyMenu(1~2,"Red",R)
    FkeyMenu(3~4,"Green",R)
    FkeyMenu(5~6,"Blue",R)
    Break
    Case 1
    FkeyMenu(1~2,"Hue",R)
    FkeyMenu(3~4,"Saturation",R)
    FkeyMenu(5~6,"Value",R)
    Break
    Case 2
    FkeyMenu(1~2,"Hue",R)
    FkeyMenu(3~4,"Saturation",R)
    FkeyMenu(5~6,"Lightness",R)
    Break
    Case 3
    FkeyMenu(1~2,"HEX",R)
    FkeyMenu(3~6,"",C)
    Break
    Case 4
    FkeyMenu(1~2,"DEC",R)
    FkeyMenu(3~6,"",C)
    Break
  SwitchEnd
  
  Getkey1->K
  
  Switch K
    Case 79'FALLTHROUGH
    Case 69'FALLTHROUGH
    Case 59'FALLTHROUGH
    Case 49'FALLTHROUGH
    Case 39'FALLTHROUGH
    Case 29
    
    Back-Color Yellow 
    Switch N
      
      Case 0
      K=79 Or K=69=>?(6,2,3,"_",3)List 1[1]
      K=59 Or K=49=>?(10,2,3,"_",3)List 1[2]
      K=39 Or K=29=>?(14,2,3,"_",3)List 1[3]
      GetRGB(RGB(List 1))->List 1
      GetHSV(RGB(List 1))->List 2
      GetHSL(RGB(List 1))->List 3
      #RGB(List 1)->List 4[1]
      Break
      
      Case 1
      K=79 Or K=69=>?(6,3,3,"_",3)List 2[1]
      K=59 Or K=49=>?(10,3,3,"_",3)List 2[2]
      K=39 Or K=29=>?(14,3,3,"_",3)List 2[3]
      GetHSV(HSV(List 2))->List 2
      GetRGB(HSV(List 2))->List 1
      GetHSL(HSV(List 2))->List 3
      #HSV(List 2)->List 4[1]
      Break
      
      Case 2
      K=79 Or K=69=>?(6,4,3,"_",3)List 3[1]
      K=59 Or K=49=>?(10,4,3,"_",3)List 3[2]
      K=39 Or K=29=>?(14,4,3,"_",3)List 3[3]
      GetHSL(HSL(List 3))->List 3
      GetRGB(HSL(List 3))->List 1
      GetHSV(HSL(List 3))->List 2
      #HSL(List 3)->List 4[1]
      Break
      
      Case 3
      K=79 Or K=69=>?(9,5,4,"_",4)Str 1
      Exp("0x"+Str 1)->List 4[1]
      GetRGB(List 4[1])->List 1
      GetHSV(List 4[1])->List 2
      GetHSL(List 4[1])->List 3
      Break
      
      Case 4
      K=79 Or K=69=>?(7,6,5,"_",5)List 4[1]
      MOD(List 4[1],65536)->List 4[1]
      GetRGB(List 4[1])->List 1
      GetHSV(List 4[1])->List 2
      GetHSL(List 4[1])->List 3
      Break
      
    SwitchEnd
    Back-Color White 
    Break
    
    Case 28
    MOD(N-1,5)->N:Break
    Case 37
    MOD(N+1,5)->N:Break
  SwitchEnd
  
LpWhile K<>47

ClrText
ClrMat 
Locate 9,4,"Bye!"