# trying the slider example of D&D, from the drag create side
xtAppInitialize -class Program

xmRowColumn .b managed
# .b addAction exec

xmScrollBar .b.sb managed \
  -orientation horizontal \
  -width 150 \
  -translations "#override <Btn2Down>: exec(startDrag %w)"

proc startDrag {w} {
  $w dragStart \
    -exportTargets COMPOUND_TEXT \
    -numExportTargets 1 \
    -convertProc {dragConvertProc %w %type %value}
}

proc dragConvertProc {w type value} {
  upvar 1 $type t
  upvar 1 $value v

  $w getValues -value v
  set t COMPOUND_TEXT
}

# 
#  drop side of this, as taken from prog32
# 

xmPushButton .b.l2 managed -labelString "drag slider to me"

.b.l2 dropSiteRegister \
	-dropProc {startDrop %dragContext} \
	-numImportTargets 1 \
	-importTargets COMPOUND_TEXT

proc startDrop {dragContext} {
  $dragContext dropTransferStart \
	-dropTransfers {{COMPOUND_TEXT .b.l2}} \
	-numDropTransfers 1 \
	-transferProc {doTransfer %closure {%value}}	
}

proc doTransfer {destination value} {

  $destination setValues -labelString $value
}

. realizeWidget

. mainLoop
