diff options
author | andreask <andreask> | 2013-01-22 19:30:43 (GMT) |
---|---|---|
committer | andreask <andreask> | 2013-01-22 19:30:43 (GMT) |
commit | 48c9fcb7281cc6aa076113db874c7ae0e105795d (patch) | |
tree | 7187940ff056462bfa41705a2ce04d0ed07d424e /library/ttk/menubutton.tcl | |
parent | 41f5d19540b0b3f053da352e1569c9a4ed019dd5 (diff) | |
download | tk-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.tcl | 21 |
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 } } |