📄 bind.test
字号:
setup event add <<xyz>> <Control-v> <Control-w> <Control-x> event delete <<xyz>> <Control-w> lsort [event info <<xyz>>]} {<Control-Key-v> <Control-Key-x>}test bind-19.11 {DeleteVirtualEvent procedure: owned by 1, only} { setup event add <<xyz>> <Button-2> bind .b.f <<xyz>> {lappend x %#} set x {} event gen .b.f <Button-2> -serial 101 event delete <<xyz>> event gen .b.f <Button-2> -serial 102 set x} {101}test bind-19.12 {DeleteVirtualEvent procedure: owned by 1, first in chain} { setup event add <<abc>> <Control-Button-2> event add <<xyz>> <Button-2> bind .b.f <<xyz>> {lappend x xyz} bind .b.f <<abc>> {lappend x abc} set x {} event gen .b.f <Button-2> event gen .b.f <Control-Button-2> event delete <<xyz>> event gen .b.f <Button-2> event gen .b.f <Control-Button-2> list $x [event info <<abc>>]} {{xyz abc abc} <Control-Button-2>}test bind-19.13 {DeleteVirtualEvent procedure: owned by 1, second in chain} { setup event add <<def>> <Shift-Button-2> event add <<xyz>> <Button-2> event add <<abc>> <Control-Button-2> bind .b.f <<xyz>> {lappend x xyz} bind .b.f <<abc>> {lappend x abc} bind .b.f <<def>> {lappend x def} set x {} event gen .b.f <Button-2> event gen .b.f <Control-Button-2> event gen .b.f <Shift-Button-2> event delete <<xyz>> event gen .b.f <Button-2> event gen .b.f <Control-Button-2> event gen .b.f <Shift-Button-2> list $x [event info <<def>>] [event info <<xyz>>] [event info <<abc>>]} {{xyz abc def abc def} <Shift-Button-2> {} <Control-Button-2>}test bind-19.14 {DeleteVirtualEvent procedure: owned by 1, last in chain} { setup event add <<xyz>> <Button-2> event add <<abc>> <Control-Button-2> event add <<def>> <Shift-Button-2> bind .b.f <<xyz>> {lappend x xyz} bind .b.f <<abc>> {lappend x abc} bind .b.f <<def>> {lappend x def} set x {} event gen .b.f <Button-2> event gen .b.f <Control-Button-2> event gen .b.f <Shift-Button-2> event delete <<xyz>> event gen .b.f <Button-2> event gen .b.f <Control-Button-2> event gen .b.f <Shift-Button-2> list $x [event info <<xyz>>] [event info <<abc>>] [event info <<def>>]} {{xyz abc def abc def} {} <Control-Button-2> <Shift-Button-2>}test bind-19.15 {DeleteVirtualEvent procedure: owned by many, first} { setup pack [frame .b.g -class Test -width 150 -height 100] pack [frame .b.h -class Test -width 150 -height 100] update event add <<xyz>> <Button-2> event add <<abc>> <Button-2> event add <<def>> <Button-2> bind .b.f <<xyz>> {lappend x xyz} bind .b.g <<abc>> {lappend x abc} bind .b.h <<def>> {lappend x def} set x {} event gen .b.f <Button-2> event gen .b.g <Button-2> event gen .b.h <Button-2> event delete <<xyz>> event gen .b.f <Button-2> event gen .b.g <Button-2> event gen .b.h <Button-2> destroy .b.g destroy .b.h list $x [event info <<xyz>>] [event info <<abc>>] [event info <<def>>]} {{xyz abc def abc def} {} <Button-2> <Button-2>}test bind-19.16 {DeleteVirtualEvent procedure: owned by many, middle} { setup pack [frame .b.g -class Test -width 150 -height 100] pack [frame .b.h -class Test -width 150 -height 100] update event add <<xyz>> <Button-2> event add <<abc>> <Button-2> event add <<def>> <Button-2> bind .b.f <<xyz>> {lappend x xyz} bind .b.g <<abc>> {lappend x abc} bind .b.h <<def>> {lappend x def} set x {} event gen .b.f <Button-2> event gen .b.g <Button-2> event gen .b.h <Button-2> event delete <<abc>> event gen .b.f <Button-2> event gen .b.g <Button-2> event gen .b.h <Button-2> destroy .b.g destroy .b.h list $x [event info <<xyz>>] [event info <<abc>>] [event info <<def>>]} {{xyz abc def xyz def} <Button-2> {} <Button-2>}test bind-19.17 {DeleteVirtualEvent procedure: owned by many, last} { setup pack [frame .b.g -class Test -width 150 -height 100] pack [frame .b.h -class Test -width 150 -height 100] update event add <<xyz>> <Button-2> event add <<abc>> <Button-2> event add <<def>> <Button-2> bind .b.f <<xyz>> {lappend x xyz} bind .b.g <<abc>> {lappend x abc} bind .b.h <<def>> {lappend x def} set x {} event gen .b.f <Button-2> event gen .b.g <Button-2> event gen .b.h <Button-2> event delete <<def>> event gen .b.f <Button-2> event gen .b.g <Button-2> event gen .b.h <Button-2> destroy .b.g destroy .b.h list $x [event info <<xyz>>] [event info <<abc>>] [event info <<def>>]} {{xyz abc def xyz abc} <Button-2> <Button-2> {}}test bind-20.1 {GetVirtualEvent procedure: GetVirtualEventUid} { list [catch {event info asd} msg] $msg} {1 {virtual event "asd" is badly formed}}test bind-20.2 {GetVirtualEvent procedure: non-existent event} { event info <<asd>>} {}test bind-20.3 {GetVirtualEvent procedure: owns 1} { setup event add <<xyz>> <Control-Key-v> event info <<xyz>>} {<Control-Key-v>}test bind-20.4 {GetVirtualEvent procedure: owns many} { setup event add <<xyz>> <Control-v> <Button-2> spack event info <<xyz>>} {<Control-Key-v> <Button-2> spack}test bind-21.1 {GetAllVirtualEvents procedure: no events} { setup event info} {}test bind-21.2 {GetAllVirtualEvents procedure: 1 event} { setup event add <<xyz>> <Control-v> event info} {<<xyz>>}test bind-21.3 {GetAllVirtualEvents procedure: many events} { setup event add <<xyz>> <Control-v> event add <<xyz>> <Button-2> event add <<abc>> <Control-v> event add <<def>> <Key-F6> lsort [event info]} {<<abc>> <<def>> <<xyz>>}test bind-22.1 {HandleEventGenerate} { list [catch {event gen .xyz <Control-v>} msg] $msg} {1 {bad window path name ".xyz"}}test bind-22.2 {HandleEventGenerate} { list [catch {event gen zzz <Control-v>} msg] $msg} {1 {bad window name/identifier "zzz"}}test bind-22.3 {HandleEventGenerate} { list [catch {event gen 47 <Control-v>} msg] $msg} {1 {window id "47" doesn't exist in this application}}test bind-22.4 {HandleEventGenerate} { setup bind .b.f <Button> {set x "%s %b"} set x {} event gen [winfo id .b.f] <Control-Button-1> set x} {4 1}test bind-22.5 {HandleEventGenerate} { list [catch {event gen . <xyz>} msg] $msg} {1 {bad event type or keysym "xyz"}}test bind-22.6 {HandleEventGenerate} { list [catch {event gen . <Double-Button-1>} msg] $msg} {1 {Double or Triple modifier not allowed}}test bind-22.7 {HandleEventGenerate} { list [catch {event gen . xyz} msg] $msg} {1 {only one event specification allowed}}test bind-22.8 {HandleEventGenerate} { list [catch {event gen . <Button> -button} msg] $msg} {1 {value for "-button" missing}}test bind-22.9 {HandleEventGenerate} { setup bind .b.f <Button> {set x "%s %b"} set x {} event gen .b.f <Control-Button-1> set x} {4 1}test bind-22.10 {HandleEventGenerate} { setup bind .b.f <Key> {set x "%s %K"} set x {} event gen .b.f <Control-Key-1> set x} {4 1}test bind-22.11 {HandleEventGenerate} { setup bind .b.f <<Paste>> {set x "%s"} set x {} event gen .b.f <<Paste>> -state 1 set x} {1}test bind-22.12 {HandleEventGenerate} { setup bind .b.f <Motion> {set x "%s"} set x {} event gen .b.f <Control-Motion> set x} {4}test bind-22.13 {HandleEventGenerate} { setup bind .b.f <Button> {lappend x %#} set x {} event gen .b.f <Button> -when now -serial 100 set x} {100}test bind-22.14 {HandleEventGenerate} { setup bind .b.f <Button> {lappend x %#} set x {} event gen .b.f <Button> -when head -serial 100 event gen .b.f <Button> -when head -serial 101 event gen .b.f <Button> -when head -serial 102 lappend x foo update set x} {foo 102 101 100}test bind-22.15 {HandleEventGenerate} { setup bind .b.f <Button> {lappend x %#} set x {} event gen .b.f <Button> -when head -serial 99 event gen .b.f <Button> -when mark -serial 100 event gen .b.f <Button> -when mark -serial 101 event gen .b.f <Button> -when mark -serial 102 lappend x foo update set x} {foo 100 101 102 99}test bind-22.16 {HandleEventGenerate} { setup bind .b.f <Button> {lappend x %#} set x {} event gen .b.f <Button> -when head -serial 99 event gen .b.f <Button> -when tail -serial 100 event gen .b.f <Button> -when tail -serial 101 event gen .b.f <Button> -when tail -serial 102 lappend x foo update set x} {foo 99 100 101 102}test bind-22.17 {HandleEventGenerate} { list [catch {event gen . <Button> -when xyz} msg] $msg} {1 {bad position "xyz": should be now, head, mark, tail}}set i 14foreach check { {<Configure> %a {-above .xyz} {{1 {bad window path name ".xyz"}}}} {<Configure> %a {-above .b} {[winfo id .b]}} {<Configure> %a {-above xyz} {{1 {expected integer but got "xyz"}}}} {<Configure> %a {-above [winfo id .b]} {[winfo id .b]}} {<Key> %b {-above .} {{1 {bad option to <Key> event: "-above"}}}} {<Configure> %B {-borderwidth xyz} {{1 {bad screen distance "xyz"}}}} {<Configure> %B {-borderwidth 2i} {[winfo pixels .b.f 2i]}} {<Key> %k {-borderwidth 2i} {{1 {bad option to <Key> event: "-borderwidth"}}}} {<Button> %b {-button xyz} {{1 {expected integer but got "xyz"}}}} {<Button> %b {-button 1} 1} {<Key> %k {-button 1} {{1 {bad option to <Key> event: "-button"}}}} {<Expose> %c {-count xyz} {{1 {expected integer but got "xyz"}}}} {<Expose> %c {-count 20} 20} {<Key> %b {-count 20} {{1 {bad option to <Key> event: "-count"}}}} {<Enter> %d {-detail xyz} {{1 {bad -detail value "xyz": must be NotifyAncestor, NotifyVirtual, NotifyInferior, NotifyNonlinear, NotifyNonlinearVirtual, NotifyPointer, NotifyPointerRoot, NotifyDetailNone}}}} {<FocusIn> %d {-detail NotifyVirtual} {{}}} {<Enter> %d {-detail NotifyVirtual} NotifyVirtual} {<Key> %k {-detail NotifyVirtual} {{1 {bad option to <Key> event: "-detail"}}}} {<Enter> %f {-focus xyz} {{1 {expected boolean value but got "xyz"}}}} {<Enter> %f {-focus 1} 1} {<Key> %k {-focus 1} {{1 {bad option to <Key> event: "-focus"}}}} {<Expose> %h {-height xyz} {{1 {bad screen distance "xyz"}}}} {<Expose> %h {-height 2i} {[winfo pixels .b.f 2i]}} {<Configure> %h {-height 2i} {[winfo pixels .b.f 2i]}} {<Key> %k {-height 2i} {{1 {bad option to <Key> event: "-height"}}}} {<Key> %k {-keycode xyz} {{1 {expected integer but got "xyz"}}}} {<Key> %k {-keycode 20} 20} {<Button> %b {-keycode 20} {{1 {bad option to <Button> event: "-keycode"}}}} {<Key> %K {-keysym xyz} {{1 {unknown keysym "xyz"}}}} {<Key> %K {-keysym a} a} {<Button> %b {-keysym a} {{1 {bad option to <Button> event: "-keysym"}}}} {<Enter> %m {-mode xyz} {{1 {bad -mode value "xyz": must be NotifyNormal, NotifyGrab, NotifyUngrab, NotifyWhileGrabbed}}}} {<Enter> %m {-mode NotifyNormal} NotifyNormal} {<FocusIn> %m {-mode NotifyNormal} {{}}} {<Key> %k {-mode NotifyNormal} {{1 {bad option to <Key> event: "-mode"}}}} {<Map> %o {-override xyz} {{1 {expected boolean value but got "xyz"}}}} {<Map> %o {-override 1} 1} {<Reparent> %o {-override 1} 1} {<Configure> %o {-override 1} 1} {<Key> %k {-override 1} {{1 {bad option to <Key> event: "-override"}}}} {<Circulate> %p {-place xyz} {{1 {bad -place value "xyz": must be PlaceOnTop, PlaceOnBottom}}}} {<Circulate> %p {-place PlaceOnTop} PlaceOnTop} {<Key> %k {-place PlaceOnTop} {{1 {bad option to <Key> event: "-place"}}}} {<Key> %R {-root .xyz} {{1 {bad window path name ".xyz"}}}} {<Key> %R {-root .b} {[winfo id .b]}} {<Key> %R {-root xyz} {{1 {expected integer but got "xyz"}}}} {<Key> %R {-root [winfo id .b]} {[winfo id .b]}} {<Button> %R {-root .b} {[winfo id .b]}} {<Motion> %R {-root .b} {[winfo id .b]}} {<<Paste>> %R {-root .b} {[winfo id .b]}} {<Enter> %R {-root .b} {[winfo id .b]}} {<Configure> %R {-root .b} {{1 {bad option to <Configure> event: "-root"}}}} {<Key> %X {-rootx xyz} {{1 {bad screen distance "xyz"}}}} {<Key> %X {-rootx 2i} {[winfo pixels .b.f 2i]}} {<Button> %X {-rootx 2i} {[winfo pixels .b.f 2i]}} {<Motion> %X {-rootx 2i} {[winfo pixels .b.f 2i]}} {<<Paste>> %X {-rootx 2i} {[winfo pixels .b.f 2i]}} {<Enter> %X {-rootx 2i} {[winfo pixels .b.f 2i]}} {<Configure> %X {-rootx 2i} {{1 {bad option to <Configure> event: "-rootx"}}}} {<Key> %Y {-rooty xyz} {{1 {bad screen distance "xyz"}}}} {<Key> %Y {-rooty 2i} {[winfo pixels .b.f 2i]}} {<Button> %Y {-rooty 2i} {[winfo pixels .b.f 2i]}} {<Motion> %Y {-rooty 2i} {[winfo pixels .b.f 2i]}} {<<Paste>> %Y {-rooty 2i} {[winfo pixels .b.f 2i]}} {<Enter> %Y {-rooty 2i} {[winfo pixels .b.f 2i]}} {<Configure> %Y {-rooty 2i} {{1 {bad option to <Configure> event: "-rooty"}}}} {<Key> %E {-sendevent xyz} {{1 {expected boolean value but got "xyz"}}}} {<Key> %E {-sendevent 1} 1} {<Key> %E {-sendevent yes} 1} {<Key> %E {-sendevent 43} 43} {<Key> %# {-serial xyz} {{1 {expected integer but got "xyz"}}}} {<Key> %# {-serial 100} 100} {<Key> %s {-state xyz} {{1 {expected integer but got "xyz"}}}} {<Key> %s {-state 1} 1} {<Button> %s {-state 1} 1} {<Motion> %s {-state 1} 1} {<<Paste>> %s {-state 1} 1} {<Enter> %s {-state 1} 1} {<Visibility> %s {-state xyz} {{1 {bad -state value "xyz": must be VisibilityUnobscured, VisibilityPartiallyObscured, VisibilityFullyObscured}}}} {<Visibility> %s {-state VisibilityUnobscured} VisibilityUnobscured} {<Configure> %s {-state xyz} {{1 {bad option to <Configure> event: "-state"}}}} {<Key> %S {-subwindow .xyz} {{1 {bad window path name ".xyz"}}}} {<Key> %S {-subwindow .b} {[winfo id .b]}} {<Key> %S {-subwindow xyz} {{1 {expected integer but got "xyz"}}}} {<Key> %S {-subwindow [winfo id .b]} {[winfo id .b]}} {<Button> %S {-subwindow .b} {[winfo id .b]}} {<Motion> %S {-subwindow .b} {[winfo id .b]}} {<<Paste>> %S {-subwindow .b} {[winfo id .b]}} {<Enter> %S {-subwindow .b} {[winfo id .b]}} {<Configure> %S {-subwindow .b} {{1 {bad option to <Configure> event: "-subwindow"}}}} {<Key> %t {-time xyz} {{1 {expected integer but got "xyz"}}}} {<Key> %t {-time 100} 100} {<Button> %t {-time 100} 100} {<Motion> %t {-time 100} 100} {<<Paste>> %t {-time 100} 100} {<Enter> %t {-time 100} 100} {<Property> %t {-time 100} 100} {<Configure> %t {-time 100} {{1 {bad option to <Configure> event: "-time"}}}} {<Expose> %w {-width xyz} {{1 {bad screen distance "xyz"}}}} {<Expose> %w {-width 2i} {[winfo pixels .b.f 2i]}} {<Configure> %w {-width 2i} {[winfo pixels .b.f 2i]}} {<Key> %k {-width 2i} {{1 {bad option to <Key> event: "-width"}}}} {<Unmap> %W {-window .xyz} {{1 {bad window path name ".xyz"}}}} {<Unmap> %W {-window .b.f} .b.f} {<Unmap> %W {-window xyz} {{1 {expected integer but got "xyz"}}}} {<Unmap> %W {-window [winfo id .b.f]} .b.f} {<Unmap> %W {-window .b.f} .b.f} {<Map> %W {-window .b.f} .b.f} {<Reparent> %W {-window .b.f} .b.f} {<Configure> %W {-window .b.f} .b.f} {<Gravity> %W {-window .b.f} .b.f} {<Circulate> %W {-window .b.f} .b.f} {<Key> %W {-window .b.f} {{1 {bad option to <Key> event: "-window"}}}} {<Key> %x {-x xyz} {{1 {bad screen distance "xyz"}}}} {<Key> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Button> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Motion> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<<Paste>> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Enter> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Expose> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Configure> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Gravity> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Reparent> %x {-x 2i} {[winfo pixels .b.f 2i]}} {<Map> %x {-x 2i} {{1 {bad option to <Map> event: "-x"}}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -