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

  1. #
  2. # Example 43-5
  3. # A user interface to the preference items.
  4. #
  5.  
  6. proc Pref_Dialog {} {
  7.     global pref
  8.     if [catch {toplevel .pref}] {
  9.         raise .pref
  10.     } else {
  11.         wm title .pref "Preferences"
  12.         set buttons [frame .pref.but -bd 5]
  13.         pack .pref.but -side top -fill x
  14.         button $buttons.quit -text Dismiss \
  15.             -command {PrefDismiss}
  16.         button $buttons.save -text Save \
  17.             -command {PrefSave}
  18.         button $buttons.reset -text Reset \
  19.             -command {PrefReset ; PrefDismiss}
  20.         label $buttons.label \
  21.              -text "Click labels for info on each item"
  22.         pack $buttons.label -side left -fill x
  23.         pack $buttons.quit $buttons.save $buttons.reset \
  24.             -side right -padx 4
  25.  
  26.         frame .pref.b -borderwidth 2 -relief raised
  27.         pack .pref.b -fill both
  28.         set body [frame .pref.b.b -bd 10]
  29.         pack .pref.b.b -fill both
  30.  
  31.         set maxWidth 0
  32.         foreach item $pref(items) {
  33.             set len [string length [PrefComment $item]]
  34.             if {$len > $maxWidth} {
  35.                 set maxWidth $len
  36.             }
  37.         }
  38.         set pref(uid) 0
  39.         foreach item $pref(items) {
  40.             PrefDialogItem $body $item $maxWidth
  41.         }
  42.     }
  43. }
  44.  
  45.  
  46.