diff options
Diffstat (limited to 'tk8.6/library/ttk/button.tcl')
-rw-r--r-- | tk8.6/library/ttk/button.tcl | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/tk8.6/library/ttk/button.tcl b/tk8.6/library/ttk/button.tcl deleted file mode 100644 index 9f2cec7..0000000 --- a/tk8.6/library/ttk/button.tcl +++ /dev/null @@ -1,83 +0,0 @@ -# -# Bindings for Buttons, Checkbuttons, and Radiobuttons. -# -# Notes: <Button1-Leave>, <Button1-Enter> only control the "pressed" -# state; widgets remain "active" if the pointer is dragged out. -# This doesn't seem to be conventional, but it's a nice way -# to provide extra feedback while the grab is active. -# (If the button is released off the widget, the grab deactivates and -# we get a <Leave> event then, which turns off the "active" state) -# -# Normally, <ButtonRelease> and <ButtonN-Enter/Leave> events are -# delivered to the widget which received the initial <ButtonPress> -# event. However, Tk [grab]s (#1223103) and menu interactions -# (#1222605) can interfere with this. To guard against spurious -# <Button1-Enter> events, the <Button1-Enter> binding only sets -# the pressed state if the button is currently active. -# - -namespace eval ttk::button {} - -bind TButton <Enter> { %W instate !disabled {%W state active} } -bind TButton <Leave> { %W state !active } -bind TButton <Key-space> { ttk::button::activate %W } -bind TButton <<Invoke>> { ttk::button::activate %W } - -bind TButton <ButtonPress-1> \ - { %W instate !disabled { ttk::clickToFocus %W; %W state pressed } } -bind TButton <ButtonRelease-1> \ - { %W instate pressed { %W state !pressed; %W instate !disabled { %W invoke } } } -bind TButton <Button1-Leave> \ - { %W state !pressed } -bind TButton <Button1-Enter> \ - { %W instate {active !disabled} { %W state pressed } } - -# Checkbuttons and Radiobuttons have the same bindings as Buttons: -# -ttk::copyBindings TButton TCheckbutton -ttk::copyBindings TButton TRadiobutton - -# ...plus a few more: - -bind TRadiobutton <KeyPress-Up> { ttk::button::RadioTraverse %W -1 } -bind TRadiobutton <KeyPress-Down> { ttk::button::RadioTraverse %W +1 } - -# bind TCheckbutton <KeyPress-plus> { %W select } -# bind TCheckbutton <KeyPress-minus> { %W deselect } - -# activate -- -# Simulate a button press: temporarily set the state to 'pressed', -# then invoke the button. -# -proc ttk::button::activate {w} { - $w instate disabled { return } - set oldState [$w state pressed] - update idletasks; after 100 ;# block event loop to avoid reentrancy - $w state $oldState - $w invoke -} - -# RadioTraverse -- up/down keyboard traversal for radiobutton groups. -# Set focus to previous/next radiobutton in a group. -# A radiobutton group consists of all the radiobuttons with -# the same parent and -variable; this is a pretty good heuristic -# that works most of the time. -# -proc ttk::button::RadioTraverse {w dir} { - set group [list] - foreach sibling [winfo children [winfo parent $w]] { - if { [winfo class $sibling] eq "TRadiobutton" - && [$sibling cget -variable] eq [$w cget -variable] - && ![$sibling instate disabled] - } { - lappend group $sibling - } - } - - if {![llength $group]} { # Shouldn't happen, but can. - return - } - - set pos [expr {([lsearch -exact $group $w] + $dir) % [llength $group]}] - tk::TabToWindow [lindex $group $pos] -} |