home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / mac / exsource.old / 28_15.tcl < prev    next >
Text File  |  2003-04-15  |  484b  |  23 lines

  1. #
  2. # Example 28-15
  3. # Keeping the accelerator display up to date.
  4. #
  5.  
  6. proc Menu_Bind { what sequence accText menuName label } {
  7.     variable menu
  8.     set m [MenuGet $menuName]
  9.     if {[catch {$m index $label} index]} {
  10.         error "$label not in menu $menuName" 
  11.     }
  12.     bind $what $sequence [list MenuInvoke $m $index]
  13.     $m entryconfigure $index         -accelerator $accText
  14. }
  15. proc MenuInvoke {m index} {
  16.     set state [$m entrycget $index -state]
  17.     if {[string equal $state normal]} {
  18.         $m invoke $index
  19.     } 
  20. }
  21.  
  22.  
  23.