#!/usr/bin/wish
# the next line restarts using wish \
#
#exec wish "$0" "$@"    

set font -*-Helvetica-Medium-R-Normal--*-140-*-*-*-*-*-*
set R1 0
set G1 0
set B1 0
set R2 0
set G2 0
set B2 0
set param1 000000
set param2 000000
set bpp 24

tk_setPalette snow3

wm title . "Set Gradient 1.2 (c)1997 Raul Sobon"
wm iconname . "setgrad"

frame .buttons -borderwidth 5
pack .buttons -side bottom -fill x -pady 2m
button .buttons.set -text "Set Gradient" -command setGradColor
button .buttons.random -text "Set Random Gradient" -command setRandColor
button .buttons.cancel -text "Exit" -command "exit"
pack .buttons.set .buttons.random .buttons.cancel -side left -expand 1

frame .frame -borderwidth 4 -relief raised
frame .frame2 -borderwidth 4 -relief raised
frame .rad -borderwidth 4 -relief raised

label .rad.labelmain   -text "Color Mode"   
radiobutton .rad.op1 -text "15bit" -variable bpp -relief flat -value 15
radiobutton .rad.op2 -text "16bit" -variable bpp -relief flat -value 16
radiobutton .rad.op3 -text "24bit" -variable bpp -relief flat -value 24

label .frame.labelmain   -text "Top RGB Settings"   
scale .frame.scaleR1 -orient vertical -length 100 -from 255 -to 0 -command setStartRGB
scale .frame.scaleG1 -orient vertical -length 100 -from 255 -to 0 -command setStartRGB
scale .frame.scaleB1 -orient vertical -length 100 -from 255 -to 0 -command setStartRGB

label .frame2.labelmain2   -text "Bottom RGB Settings"   
scale .frame2.scaleR2 -orient vertical -length 100 -from 255 -to 0 -command "setEndRGB"
scale .frame2.scaleG2 -orient vertical -length 100 -from 255 -to 0 -command "setEndRGB"
scale .frame2.scaleB2 -orient vertical -length 100 -from 255 -to 0 -command "setEndRGB"


pack .rad.labelmain -side top
pack .rad.op1  -side top -pady 2 -anchor w
pack .rad.op2  -side top -pady 2 -anchor w
pack .rad.op3  -side top -pady 2 -anchor w

pack .rad -side left -expand yes  -pady .5c -padx .5c 

pack .frame -side left -expand yes  -pady .5c -padx .5c
pack .frame.labelmain -side top
pack .frame.scaleR1 .frame.scaleG1 .frame.scaleB1 -side left -anchor n

pack .frame2 -side left -expand yes -pady .5c -padx .5c
pack .frame2.labelmain2 -side top
pack .frame2.scaleR2 .frame2.scaleG2 .frame2.scaleB2 -side left -anchor n

#$w.frame.scaleR1 set 0



# ------------------------------------
proc setGradColor args {
	global param1 param2 bpp
	exec setgrad $param1 $param2 768 $bpp
}

proc setRandColor args {
	global param1 param2 bpp

	exec setgrad rand rand 768 $bpp
}

proc setStartRGB args {
	global R1 G1 B1 param1

    set R1 [format %.0f [expr [.frame.scaleR1 get]] ]
    set G1 [format %.0f [expr [.frame.scaleG1 get]] ]
    set B1 [format %.0f [expr [.frame.scaleB1 get]] ]

    set param1 [format "%02x%02x%02x" $R1 $G1 $B1]
 }

proc setEndRGB args {
	global R2 G2 B2 param2

    set R2 [format %.0f [expr [.frame2.scaleR2 get]] ]
    set G2 [format %.0f [expr [.frame2.scaleG2 get]] ]
    set B2 [format %.0f [expr [.frame2.scaleB2 get]] ]

    set param2 [format "%02x%02x%02x" $R2 $G2 $B2]
 }


