Version 0 of Useful Bind Procedures

Updated 2002-02-10 05:12:41

GPS - Sat Feb 9 2002 - Below are some useful procedures for use with Tk input bindings. Please feel free to add your own. See also bind


  proc bind:children {win key command} {

        bind $win $key $command

        set children [winfo children $win]

        if {$children == ""} {
                return
        }

        foreach subWin $children {
                if {[string equal $subWin $win]} {
                        continue
                }
                bind $win $key $command
                bind:children $subWin $key $command
        }
  }

  proc bind:copyClass {class newClass} {
        set bindingList [bind $class]
        #puts $bindingList

        foreach binding $bindingList {
                bind $newClass $binding [bind $class $binding]
        }
  }

  proc bind:removeFromClass {class removeList} {
        foreach item $removeList {
                bind $class <$item> {}
        }
  }

  proc bind:removeAllBut {class bindList} {
        foreach binding $bindList {
                array set tmprab "<${binding}> 0"
        }

        foreach binding [bind $class] {
                if {[info exists tmprab($binding)]} {
                        continue
                }
                bind $class $binding {}
        }
  }