home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource.old / 43_10.tcl < prev    next >
Text File  |  2003-04-15  |  780b  |  29 lines

  1. #
  2. # Example 43-10
  3. # Tracing a Tcl variable in a preference item.
  4. #
  5.  
  6. Pref_Add {
  7.     {win(scrollside) scrollbarSide {CHOICE left right} 
  8.         "Scrollbar placement"
  9. "Scrollbars can be positioned on either the left or
  10. right side of the text and canvas widgets."}
  11. }
  12. global win
  13. set win(lastscrollside) $win(scrollside)
  14. trace variable win(scrollside) w ScrollFixup
  15. # Assume win(scrollbar) identifies the scrollbar widget
  16. proc ScrollFixup { name1 name2 op } {
  17.     global win
  18.     if {$win(scrollside) != $win(lastscrollside)} {
  19.         set parent [lindex [pack info $win(scrollbar)] 1]
  20.         pack forget $win(scrollbar)
  21.         set firstchild [lindex [pack slaves $parent] 0]
  22.         pack $win(scrollbar) -in $parent -before $firstchild \
  23.             -side $win(scrollside) -fill y
  24.         set win(lastscrollside) $win(scrollside)
  25.     }
  26. }
  27.  
  28.  
  29.