summaryrefslogtreecommitdiffstats
path: root/library/ttk/menubutton.tcl
diff options
context:
space:
mode:
authorandreask <andreask>2013-01-22 19:30:43 (GMT)
committerandreask <andreask>2013-01-22 19:30:43 (GMT)
commit48c9fcb7281cc6aa076113db874c7ae0e105795d (patch)
tree7187940ff056462bfa41705a2ce04d0ed07d424e /library/ttk/menubutton.tcl
parent41f5d19540b0b3f053da352e1569c9a4ed019dd5 (diff)
downloadtk-contrib_patrick_fradin_code_cleanup.zip
tk-contrib_patrick_fradin_code_cleanup.tar.gz
tk-contrib_patrick_fradin_code_cleanup.tar.bz2
Contribution by Patrick Fradin <patrick.fradin@planar.com>contrib_patrick_fradin_code_cleanup
Quoting his mail: <pre> ========================================================== Hi Jeff, I spent some of my time to contribute to the TclTk community ! I'm in late for Christmas gift but like we said in French : "Mieux vaut tard que jamais". ;-) I've use TclDevKit 5.3.0 tclchecker to analyse TclTk code in Tcl and Tk library directories (library, tools and tests) to correct a lot of warnings and few errors. (encapsulate some expr, use 'chan xxx' instead of fconfigure, fileevent...) I've made some improvements too : Examples : - Use 'lassign' instead of many 'lindex' of 'foreach/break' loop. - Use 'in' or 'ni' operators instead of 'lsearch -exact' or to factorise some eq/ne && / || tests. - Use 'eq' or 'ne' to tests strings instead of '==' or '!='. - Use 'unset -nocomplain' to avoid 'catch {unset...}'. - Remove some useless catch around 'destroy' calls. - Use expand {*} instead of 'eval'. Don't touch a lot of code because I don't know all structs and lists. I think it could be a greater improvement to reduce 'eval' calls. Due to previous experience, I dot not change any indentation ! ;-) ========================================================== </pre>
Diffstat (limited to 'library/ttk/menubutton.tcl')
-rw-r--r--library/ttk/menubutton.tcl21
1 files changed, 11 insertions, 10 deletions
diff --git a/library/ttk/menubutton.tcl b/library/ttk/menubutton.tcl
index 093bb02..16af971 100644
--- a/library/ttk/menubutton.tcl
+++ b/library/ttk/menubutton.tcl
@@ -81,10 +81,10 @@ proc ttk::menubutton::PostPosition {mb menu} {
set sh [expr {[winfo screenheight $menu] - $bh - $mh}]
switch -- $dir {
- above { if {$y >= $mh} { incr y -$mh } { incr y $bh } }
- below { if {$y <= $sh} { incr y $bh } { incr y -$mh } }
- left { if {$x >= $mw} { incr x -$mw } { incr x $bw } }
- right { if {$x <= $sw} { incr x $bw } { incr x -$mw } }
+ above { if {$y >= $mh} { incr y -$mh } else { incr y $bh } }
+ below { if {$y <= $sh} { incr y $bh } else { incr y -$mh } }
+ left { if {$x >= $mw} { incr x -$mw } else { incr x $bw } }
+ right { if {$x <= $sw} { incr x $bw } else { incr x -$mw } }
flush {
# post menu atop menubutton.
# If there's a menu entry whose label matches the
@@ -95,6 +95,7 @@ proc ttk::menubutton::PostPosition {mb menu} {
incr y -[$menu yposition $index]
}
}
+ default {}
}
return [list $x $y]
@@ -104,10 +105,10 @@ proc ttk::menubutton::PostPosition {mb menu} {
# Post the menu and set a grab on the menu.
#
proc ttk::menubutton::Popdown {mb} {
- if {[$mb instate disabled] || [set menu [$mb cget -menu]] eq ""} {
+ if {[$mb instate disabled] || ([set menu [$mb cget -menu]] eq "")} {
return
}
- foreach {x y} [PostPosition $mb $menu] { break }
+ lassign [PostPosition $mb $menu] x y
tk_popup $menu $x $y
}
@@ -118,10 +119,10 @@ proc ttk::menubutton::Popdown {mb} {
#
proc ttk::menubutton::Pulldown {mb} {
variable State
- if {[$mb instate disabled] || [set menu [$mb cget -menu]] eq ""} {
+ if {[$mb instate disabled] || ([set menu [$mb cget -menu]] eq "")} {
return
}
- foreach {x y} [PostPosition $mb $menu] { break }
+ lassign [PostPosition $mb $menu] x y
set State(pulldown) 1
set State(oldcursor) [$mb cget -cursor]
@@ -158,8 +159,8 @@ proc ttk::menubutton::FindMenuEntry {menu s} {
return ""
}
for {set i 0} {$i <= $last} {incr i} {
- if {![catch {$menu entrycget $i -label} label]
- && ($label eq $s)} {
+ if {(![catch {$menu entrycget $i -label} label]) &&
+ ($label eq $s)} {
return $i
}
}