home *** CD-ROM | disk | FTP | other *** search
/ Dream 46 / Amiga_Dream_46.iso / Linux / Magazine / Tcltk / dnd.tcl < prev    next >
Text File  |  1997-11-13  |  1KB  |  68 lines

  1.  
  2. # widget source
  3.  
  4. message .source -width 40c -text "Je suis la source"
  5.  
  6. # widget destination et fenetre top niveau associΘe
  7.  
  8. toplevel .top2
  9. message .top2.dest -width 40c -text "Je suis la destination"
  10.  
  11. # on affiche le tout
  12.  
  13. pack .source
  14. pack .top2.dest
  15.  
  16. # variable globale : un drag est en cours ?
  17.  
  18. set DragEnCours false
  19.  
  20. # dΘmarrage d'un drag
  21.  
  22. bind .source <ButtonPress-1> {
  23.  
  24.   global DragEnCours
  25.  
  26.   .source configure -text "Je suis la source\net je suis victime d'un drag !\nAu secours !"
  27.  
  28.   .top2.dest configure -text "Je suis la destination\nVous me droppez quand vous voulez !"
  29.  
  30.   grab set -global .
  31.   . configure -cursor "hand1"
  32.  
  33.   set DragEnCours true
  34. }
  35.  
  36. # drag annulΘ (le grab est sur le . )
  37.  
  38. bind . <ButtonRelease-1> {
  39.  
  40.   global DragEnCours
  41.  
  42.   .source configure -text "Je suis la source\nDrag annulΘ"
  43.   
  44.   grab release .
  45.   . configure -cursor "arrow"
  46.   
  47.   set DragEnCours false
  48. }
  49.  
  50. # le drop 
  51.  
  52. bind .top2.dest <ButtonRelease-1> {
  53.  
  54.     global DragEnCours
  55.  
  56.     if { $DragEnCours } {
  57.     
  58.     .top2.dest configure -text "Je suis la destination\nVous venez de droper la source, merci !"
  59.  
  60.     .source configure -text "Je suis la source\nDrag terminΘ ... Ca fait mal !"
  61.  
  62.     grab release .
  63.   . configure -cursor "arrow"
  64.  
  65.     }
  66.  
  67.     set DragEnCours false
  68. }