## Tcl9.0.3/Tk9.0.3 Documentation > Tk Commands > bindtags

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

bindtags — 窓に適用する束縛と評価の順序を定める Determine which bindings apply to a window, and order of evaluation

### 構文 SYNOPSIS

bindtags window ?tagList?

### 説明 DESCRIPTION

bind 命令によって束縛が作成される時､それは､ .a.b.c の様な特定の窓と､ Button のような級の名前と､鍵語 all 又は何か他の文字列とのいずれにも関連している｡これらの全ての形式は束縛札と呼ばれる｡それぞれの窓は束縛札のリストを有し､それは如何に行事が窓のために､処理されるかを定める｡窓の中で行事が生じた時､窓の貼り札に順番に適用される: それぞれの貼り札について､与えられた貼り札と行事に最も明確に合致する束縛が実行される｡合致の処理についての更なる情報は bind 命令を参照されたい｡ When a binding is created with the bind command, it is associated either with a particular window such as .a.b.c, a class name such as Button, the keyword all, or any other string. All of these forms are called binding tags. Each window contains a list of binding tags that determine how events are processed for the window. When an event occurs in a window, it is applied to each of the window's tags in order: for each tag, the most specific binding that matches the given tag and event is executed. See the bind command for more information on the matching process.

省略時設定ではそれぞれの窓は４つの束縛札を有し､それは窓の名前､窓の級の名前､窓の最も近い頂上水準の先祖､ all がその順で含まれる｡頂上水準の窓は省略時設定ではたった三つの貼り札しか持っていない､理由は､頂上水準の名前は､その窓の名前と同じであるから｡bindtags 命令は､窓の束縛札を読み､修正することを許容する｡ By default, each window has four binding tags consisting of the name of the window, the window's class name, the name of the window's nearest toplevel ancestor, and all, in that order. Toplevel windows have only three tags by default, since the toplevel name is the same as that of the window. The bindtags command allows the binding tags for a window to be read and modified.

もし､bindtags がただ一つの引数のみで起動すると､ window についての現在の束縛貼り札の組がリストとして返って来る｡もし bindtags に対するtagList 引数が指定されるとそれは適正なリストであり; window の為の貼り札はリストの要素に変化する｡tagList の要素は任意の文字列であり; しかしながら､点で始まるどの貼り札も窓の名前として扱い; もし､その名前のどの窓も行事を処理してる時点で存在しないなら貼り札はその行事については無視される｡tagList 内の順番は､束縛した記述譜が行事に応じて実行される順番を定める｡譬えば､命令の If bindtags is invoked with only one argument, then the current set of binding tags for window is returned as a list. If the tagList argument is specified to bindtags, then it must be a proper list; the tags for window are changed to the elements of the list. The elements of tagList may be arbitrary strings; however, any tag starting with a dot is treated as the name of a window; if no window by that name exists at the time an event is processed, then the tag is ignored for that event. The order of the elements in tagList determines the order in which binding scripts are executed in response to events. For example, the command

    bindtags .b {all . Button .b}

は順番を引っくり返す､そこでは､束縛した記述譜は名前が .b の釦の為に評価されるので､all の束縛が最初に起動され､続いて .b の頂上水準 (“.”) が続き､級の束縛が続き､ .b の為の束縛が続く｡もし､tagList が空リストであると､window の為の束縛貼り札は上述の省略時設定に戻る｡ reverses the order in which binding scripts will be evaluated for a button named .b so that all bindings are invoked first, following by bindings for .b's toplevel (“.”), followed by class bindings, followed by bindings for .b. If tagList is an empty list then the binding tags for window are returned to the default state described above.

このbindtags 命令は窓の為の任意の追加的束縛貼り札を導入することに､あるいは､標準の貼り札を取外すために使用できる｡譬えば､次の命令は The bindtags command may be used to introduce arbitrary additional binding tags for a window, or to remove standard tags. For example, the command

    bindtags .b {.b TrickyButton . all}

.b に対する Button の貼り札を TrickyButton に置換える｡その意味は､省略時設定の部品の釦への束縛､それはButton 貼り札に結合している､を最早 .b に適用せず､なにか他のTrickyButton (多分何か新しい釦の振舞い)に結合しているものが適用される｡ replaces the Button tag for .b with TrickyButton. This means that the default widget bindings for buttons, which are associated with the Button tag, will no longer apply to .b, but any bindings associated with TrickyButton (perhaps some new button behavior) will apply.

### 用例 EXAMPLE

もし､入れ子になった frame 部品の組があり､ボタン部品buttonに行事を送り､現在の頂上水準toplevelまでの全ての部品に送られ( Tk の省略時設定の振舞いと逆で､そこでは行事は中間に位置する窓には送られない)､窓の部分のみに働く加速機能を容易に得るには､ことを設定する助けとなるこのような補助手続函数を使うことができる: If you have a set of nested frame widgets and you want events sent to a button widget to also be delivered to all the widgets up to the current toplevel (in contrast to Tk's default behavior, where events are not delivered to those intermediate windows) to make it easier to have accelerators that are only active for part of a window, you could use a helper procedure like this to help set things up:

    proc setupBindtagsForTreeDelivery {widget} {
        set tags [list $widget [winfo class $widget]]
        set w $widget
        set t [winfo toplevel $w]
        while {$w ne $t} {
            set w [winfo parent $w]
            lappend tags $w
        }
        lappend tags all
        bindtags $widget $tags
    }

### SEE ALSO

bind

### KEYWORDS

binding, event, tag
Copyright © 1990 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.