📄 bind.test
字号:
frame .b.f pack .b.f update testcbind .b.f <1> {lappend x before; event gen .b.f <2>; lappend x after} {lappend x bye.f1} testcbind .b.f <2> {destroy .b.f} {lappend x bye.f2} bind .b.f <Destroy> {lappend x fDestroy} testcbind .b.f <3> {foo} {lappend x bye.f3} set x {} event gen .b.f <1> set x} {before fDestroy bye.f3 bye.f2 after bye.f1}bind Test <KeyPress> {lappend x "%W %K Test press any"}bind all <KeyPress> {lappend x "%W %K all press any"}bind Test a {lappend x "%W %K Test press a"}bind all x {lappend x "%W %K all press x"}test bind-13.1 {Tk_BindEvent procedure} { setup bind .b.f a {lappend x "%W %K .b.f press a"} set x {} event gen .b.f <Key-a> event gen .b.f <Key-b> event gen .b.f <Key-x> set x} {{.b.f a .b.f press a} {.b.f a Test press a} {.b.f a all press any} {.b.f b Test press any} {.b.f b all press any} {.b.f x Test press any} {.b.f x all press x}}bind Test <KeyPress> {lappend x "%W %K Test press any"; break}bind all <KeyPress> {continue; lappend x "%W %K all press any"}test bind-13.2 {Tk_BindEvent procedure} { setup bind .b.f b {lappend x "%W %K .b.f press a"} set x {} event gen .b.f <Key-b> set x} {{.b.f b .b.f press a} {.b.f b Test press any}}if {[info procs bgerror] == "bgerror"} { rename bgerror {}}proc bgerror args {}bind Test <KeyPress> {lappend x "%W %K Test press any"; error Test}test bind-13.3 {Tk_BindEvent procedure} { setup bind .b.f b {lappend x "%W %K .b.f press a"} set x {} event gen .b.f <Key-b> update list $x $errorInfo} {{{.b.f b .b.f press a} {.b.f b Test press any}} {Test while executing"error Test" (command bound to event)}}rename bgerror {}test bind-13.4 {Tk_BindEvent procedure} { proc foo {} { set x 44 event gen .b.f <Key-a> } setup bind .b.f a {lappend x "%W %K .b.f press a"} set x {} foo set x} {{.b.f a .b.f press a} {.b.f a Test press a}}test bind-13.5 {Tk_BindEvent procedure} { bind all <Destroy> {lappend x "%W destroyed"} set x {} list [catch {frame .b.g -gorp foo} msg] $msg $x} {1 {unknown option "-gorp"} {{.b.g destroyed}}}foreach i [bind all] { bind all $i {}}foreach i [bind Test] { bind Test $i {}}test bind-13.6 {Tk_BindEvent procedure} { setup bind .b.f z {lappend x "%W z (.b.f binding)"} bind Test z {lappend x "%W z (.b.f binding)"} bind all z {bind .b.f z {}; lappend x "%W z (.b.f binding)"} set x {} event gen .b.f <Key-z> bind Test z {} bind all z {} set x} {{.b.f z (.b.f binding)} {.b.f z (.b.f binding)} {.b.f z (.b.f binding)}}test bind-13.7 {Tk_BindEvent procedure} { setup bind .b.f z {lappend x "%W z (.b.f binding)"} bind Test z {lappend x "%W z (.b.f binding)"} bind all z {destroy .b.f; lappend x "%W z (.b.f binding)"} set x {} event gen .b.f <Key-z> bind Test z {} bind all z {} set x} {{.b.f z (.b.f binding)} {.b.f z (.b.f binding)} {.b.f z (.b.f binding)}}test bind-13.8 {Tk_BindEvent procedure} { setup bind .b.f <1> {lappend x "%W z (.b.f <1> binding)"} bind .b.f <ButtonPress> {lappend x "%W z (.b.f <ButtonPress> binding)"} set x {} event gen .b.f <Button-1> event gen .b.f <Button-2> set x} {{.b.f z (.b.f <1> binding)} {.b.f z (.b.f <ButtonPress> binding)}}test bind-13.9 {Tk_BindEvent procedure: ignore NotifyInferior} { setup bind .b.f <Enter> "lappend x Enter%#" bind .b.f <Leave> "lappend x Leave%#" set x {} event gen .b.f <Enter> -serial 100 -detail NotifyAncestor event gen .b.f <Enter> -serial 101 -detail NotifyInferior event gen .b.f <Leave> -serial 102 -detail NotifyAncestor event gen .b.f <Leave> -serial 103 -detail NotifyInferior set x} {Enter100 Leave102}test bind-13.10 {Tk_BindEvent procedure: collapse Motions} { setup bind .b.f <Motion> "lappend x Motion%#(%x,%y)" set x {} event gen .b.f <Motion> -serial 100 -x 100 -y 200 -when tail update event gen .b.f <Motion> -serial 101 -x 200 -y 300 -when tail event gen .b.f <Motion> -serial 102 -x 300 -y 400 -when tail update set x} {Motion100(100,200) Motion102(300,400)}test bind-13.11 {Tk_BindEvent procedure: collapse repeating modifiers} { setup bind .b.f <Key> "lappend x %K%#" bind .b.f <KeyRelease> "lappend x %K%#" event gen .b.f <Key-Shift_L> -serial 100 -when tail event gen .b.f <KeyRelease-Shift_L> -serial 101 -when tail event gen .b.f <Key-Shift_L> -serial 102 -when tail event gen .b.f <KeyRelease-Shift_L> -serial 103 -when tail update} {}test bind-13.12 {Tk_BindEvent procedure: valid key detail} { setup bind .b.f <Key> "lappend x Key%K" bind .b.f <KeyRelease> "lappend x Release%K" set x {} event gen .b.f <Key> -keysym a event gen .b.f <KeyRelease> -keysym a set x} {Keya Releasea}test bind-13.13 {Tk_BindEvent procedure: invalid key detail} { setup bind .b.f <Key> "lappend x Key%K" bind .b.f <KeyRelease> "lappend x Release%K" set x {} event gen .b.f <Key> -keycode 0 event gen .b.f <KeyRelease> -keycode 0 set x} {Key?? Release??}test bind-13.14 {Tk_BindEvent procedure: button detail} { setup bind .b.f <Button> "lappend x Button%b" bind .b.f <ButtonRelease> "lappend x Release%b" set x {} event gen .b.f <Button> -button 1 event gen .b.f <ButtonRelease> -button 3 set x} {Button1 Release3}test bind-13.15 {Tk_BindEvent procedure: virtual detail} { setup bind .b.f <<Paste>> "lappend x Paste" set x {} event gen .b.f <<Paste>> set x} {Paste}test bind-13.16 {Tk_BindEvent procedure: virtual event in event stream} { setup bind .b.f <<Paste>> "lappend x Paste" set x {} event gen .b.f <<Paste>> set x} {Paste}test bind-13.17 {Tk_BindEvent procedure: match detail physical} { setup bind .b.f <Button-2> {set x Button-2} event add <<Paste>> <Button-2> bind .b.f <<Paste>> {set x Paste} set x {} event gen .b.f <Button-2> set x} {Button-2}test bind-13.18 {Tk_BindEvent procedure: no match detail physical} { setup event add <<Paste>> <Button-2> bind .b.f <<Paste>> {set x Paste} set x {} event gen .b.f <Button-2> set x} {Paste}test bind-13.19 {Tk_BindEvent procedure: match detail virtual} { setup event add <<Paste>> <Button-2> bind .b.f <<Paste>> "lappend x Paste" set x {} event gen .b.f <Button-2> set x} {Paste}test bind-13.20 {Tk_BindEvent procedure: no match detail virtual} { setup event add <<Paste>> <Button-2> bind .b.f <<Paste>> "lappend x Paste" set x {} event gen .b.f <Button> set x} {}test bind-13.21 {Tk_BindEvent procedure: match no-detail physical} { setup bind .b.f <Button> {set x Button} event add <<Paste>> <Button> bind .b.f <<Paste>> {set x Paste} set x {} event gen .b.f <Button-2> set x} {Button}test bind-13.22 {Tk_BindEvent procedure: no match no-detail physical} { setup event add <<Paste>> <Button> bind .b.f <<Paste>> {set x Paste} set x {} event gen .b.f <Button-2> set x} {Paste}test bind-13.23 {Tk_BindEvent procedure: match no-detail virtual} { setup event add <<Paste>> <Button> bind .b.f <<Paste>> "lappend x Paste" set x {} event gen .b.f <Button-2> set x} {Paste}test bind-13.24 {Tk_BindEvent procedure: no match no-detail virtual} { setup event add <<Paste>> <Key> bind .b.f <<Paste>> "lappend x Paste" set x {} event gen .b.f <Button> set x} {}test bind-13.25 {Tk_BindEvent procedure: precedence} { setup event add <<Paste>> <Button-2> event add <<Copy>> <Button> bind .b.f <Button-2> "lappend x Button-2" bind .b.f <<Paste>> "lappend x Paste" bind .b.f <Button> "lappend x Button" bind .b.f <<Copy>> "lappend x Copy" set x {} event gen .b.f <Button-2> bind .b.f <Button-2> {} event gen .b.f <Button-2> bind .b.f <<Paste>> {} event gen .b.f <Button-2> bind .b.f <Button> {} event gen .b.f <Button-2> bind .b.f <<Copy>> {} event gen .b.f <Button-2> set x} {Button-2 Paste Button Copy}test bind-13.26 {Tk_BindEvent procedure: no detail virtual pattern list} { setup bind .b.f <Button-2> {set x Button-2} set x {} event gen .b.f <Button-2> set x} {Button-2}test bind-13.27 {Tk_BindEvent procedure: detail virtual pattern list} { setup event add <<Paste>> <Button-2> bind .b.f <<Paste>> {set x Paste} set x {} event gen .b.f <Button-2> set x} {Paste}test bind-13.28 {Tk_BindEvent procedure: no no-detail virtual pattern list} { setup bind .b.f <Button> {set x Button} set x {} event gen .b.f <Button-2> set x} {Button}test bind-13.29 {Tk_BindEvent procedure: no-detail virtual pattern list} { setup event add <<Paste>> <Button> bind .b.f <<Paste>> {set x Paste} set x {} event gen .b.f <Button-2> set x} {Paste}test bind-13.30 {Tk_BindEvent procedure: no match} { setup event gen .b.f <Button-2>} {}test bind-13.31 {Tk_BindEvent procedure: match} { setup bind .b.f <Button-2> {set x Button-2} set x {} event gen .b.f <Button-2> set x} {Button-2}test bind-13.32 {Tk_BindEvent procedure: many C bindings cause realloc} { setup bindtags .b.f {a b c d e f g h i j k l m n o p} foreach p [bindtags .b.f] { testcbind $p <1> "lappend x $p" } set x {} event gen .b.f <1> foreach p [bindtags .b.f] { bind $p <1> {} } set x} {a b c d e f g h i j k l m n o p}test bind-13.33 {Tk_BindEvent procedure: multiple tags} { setup bind .b.f <Button-2> {lappend x .b.f} bind Test <Button-2> {lappend x Button} set x {} event gen .b.f <Button-2> bind Test <Button-2> {} set x} {.b.f Button}test bind-13.34 {Tk_BindEvent procedure: execute C binding} { setup testcbind .b.f <1> {lappend x 1} set x {} event gen .b.f <1> set x} {1}test bind-13.35 {Tk_BindEvent procedure: pending list marked deleted} { setup testcbind Test <1> {lappend x Test} {lappend x Deleted} bind .b.f <1> {lappend x .b.f; destroy .b.f} set x {} event gen .b.f <1> set y [list $x [bind Test]] bind Test <1> {} set y} {.b.f <Button-1>}test bind-13.36 {Tk_BindEvent procedure: C binding marked deleted} { setup testcbind Test <1> {lappend x Test} {lappend x Deleted} bind .b.f <1> {lappend x .b.f; bind Test <1> {}; lappend x after} set x {} event gen .b.f <1> set x} {.b.f after Deleted}test bind-13.37 {Tk_BindEvent procedure: C binding gets to run} { setup testcbind Test <1> {lappend x Test} bind .b.f <1> {lappend x .b.f} set x {} event gen .b.f <1> bind Test <1> {} set x} {.b.f Test}test bind-13.38 {Tk_BindEvent procedure: C binding deleted, refcount == 0} { setup testcbind .b.f <1> {lappend x hi; bind .b.f <1> {}} {lappend x bye} set x {} event gen .b.f <1> set x} {hi bye}test bind-13.39 {Tk_BindEvent procedure: C binding deleted, refcount != 0} { setup testcbind .b.f <1> { lappend x before$n if {$n==0} { bind .b.f <1> {} } else { set n [expr $n-1] event gen .b.f <1> } lappend x after$n } {lappend x Deleted} set n 3 set x {} event gen .b.f <1> set x} {before3 before2 before1 before0 after0 after0 after0 after0 Deleted}test bind-13.40 {Tk_BindEvent procedure: continue in script} { setup bind .b.f <Button-2> {lappend x b1; continue; lappend x b2} bind Test <Button-2> {lappend x B1; continue; lappend x B2} set x {} event gen .b.f <Button-2> bind Test <Button-2> {} set x} {b1 B1}test bind-13.41 {Tk_BindEvent procedure: continue in script} { setup testcbind .b.f <Button-2> {lappend x b1; continue; lappend x b2} testcbind Test <Button-2> {lappend x B1; continue; lappend x B2} set x {} event gen .b.f <Button-2> bind Test <Button-2> {} set x} {b1 B1}test bind-13.42 {Tk_BindEvent procedure: break in script} { setup bind .b.f <Button-2> {lappend x b1; break; lappend x b2} bind Test <Button-2> {lappend x B1; break; lappend x B2} set x {} event gen .b.f <Button-2> bind Test <Button-2> {} set x} {b1}test bind-13.43 {Tk_BindEvent procedure: break in script} { setup testcbind .b.f <Button-2> {lappend x b1; break; lappend x b2} testcbind Test <Button-2> {lappend x B1; break; lappend x B2} set x {} event gen .b.f <Button-2> bind Test <Button-2> {} set x} {b1}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -