The Editing Interface

   

Practical Programming in Tcl & Tk, Third Edition
By Brent B. Welch

Table of Contents
Chapter 43.  A User Interface to Bindings


Editing and defining a new binding are done in a pair of entry widgets. These widgets are created and packed into the display dynamically when the user presses the New or Edit button:

Example 43-6 An interface to define bindings.

graphics/43fig02.gif

 proc Bind_New { frame } {    if [catch {frame $frame.edit}f] {       # Frame already created       set f $frame.edit    } else {       foreach x {key cmd} {          set f2 [frame $f.$x]          pack $f2 -fill x -padx 2          label $f2.l -width 11 -anchor e          pack $f2.l -side left          entry $f2.e          pack $f2.e -side left -fill x -expand true          bind $f2.e <Return> [list BindDefine $f]       }       $f.key.l config -text Event:       $f.cmd.l config -text Command:    }    pack $frame.edit -after $frame.top -fill x } proc Bind_Edit { frame } {    Bind_New $frame    set line [$frame.key curselection]    if {$line == {}} {       return    }    $frame.edit.key.e delete 0 end    $frame.edit.key.e insert 0 [$frame.key get $line]    $frame.edit.cmd.e delete 0 end    $frame.edit.cmd.e insert 0 [$frame.cmd get $line] } 

The -width 11 and -anchor e attributes for the label widgets are specified so that the Event: and Command: labels will line up with the Bindings for label at the top.


       
    Top
     



    Practical Programming in Tcl and Tk
    Practical Programming in Tcl and Tk (4th Edition)
    ISBN: 0130385603
    EAN: 2147483647
    Year: 1999
    Pages: 478

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net