diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 15:53:26 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 15:53:26 +0000 |
commit | 2acf4c9396e980e00adbdc02f5a70eefc7122b55 (patch) | |
tree | f0dd76ad4357b54e9b97cf618554cefadea99d48 /Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al | |
parent | 2de20e5e6fe9f53f36acef44253e9e0b19a4bdb8 (diff) |
New tlperl part VI
git-svn-id: svn://tug.org/texlive/trunk@21428 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al')
-rw-r--r-- | Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al b/Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al new file mode 100644 index 00000000000..456c393b3c2 --- /dev/null +++ b/Master/tlpkg/tlperl/lib/auto/Tk/getNextFocus.al @@ -0,0 +1,44 @@ +# NOTE: Derived from blib\lib\Tk.pm. +# Changes made here will be lost when autosplit is run again. +# See AutoSplit.pm. +package Tk; + +#line 562 "blib\lib\Tk.pm (autosplit into blib\lib\auto\Tk\getNextFocus.al)" +sub getNextFocus +{ + my $w = shift; + my $cur = $w; + while (1) + { + # Descend to just before the first child of the current widget. + my $parent = $cur; + my @children = $cur->FocusChildren(); + my $i = -1; + # Look for the next sibling that isn't a top-level. + while (1) + { + $i += 1; + if ($i < @children) + { + $cur = $children[$i]; + next if ($cur->toplevel == $cur); + last + } + # No more siblings, so go to the current widget's parent. + # If it's a top-level, break out of the loop, otherwise + # look for its next sibling. + $cur = $parent; + last if ($cur->toplevel() == $cur); + $parent = $parent->parent(); + @children = $parent->FocusChildren(); + $i = lsearch(\@children,$cur); + } + if ($cur == $w || $cur->FocusOK) + { + return $cur; + } + } +} + +# end of Tk::getNextFocus +1; |