Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Tab Order for Widgets in HList

by Anonymous Monk
on Oct 19, 2011 at 13:30 UTC ( #932400=note: print w/replies, xml ) Need Help??

in reply to Tab Order for Widgets in HList

Here is a stupid way to do it :)
#!/usr/bin/perl -- use strict; use warnings; use Tk; use Tk::HList; my $mw = MainWindow->new(); my $hlist = $mw->HList( -header => 0, -columns => 1 )->pack( qw/-expan +d 1 -fill both /); $hlist->add(0); $hlist->itemCreate(0, 0, -itemtype => 'window', -widget => $hlist->Ent +ry(-text => "Text0") ); $hlist->add(1); $hlist->itemCreate(1, 0, -itemtype => 'window', -widget => $hlist->Ent +ry(-text => "Text1") ); $hlist->add(2); $hlist->itemCreate(2, 0, -itemtype => 'window', -widget => $hlist->Ent +ry(-text => "Text2") ); $mw -> bind('all','<Tab>', sub { no warnings 'uninitialized'; $hlist->focus; my $origSel = $hlist->info('anchor'); $hlist->UpDown('next'); my $newSel = $hlist->info('anchor'); if( ( $origSel and $newSel ) and ( $origSel == $newSel ) ){ $hlist->selectionClear; $hlist->anchorClear; $hlist->UpDown('next'); # go back to zero } Tk::break(); }); MainLoop; __END__

Replies are listed 'Best First'.
Re^2: Tab Order for Widgets in HList
by Anonymous Monk on Oct 19, 2011 at 13:31 UTC
    And the smart way
    $mw -> bind('all','<Tab>', sub { $Tk::event->W ->focusPrev; Tk::break(); } ); $mw -> bind('all','<Shift-Tab>', sub { $Tk::event->W ->focusNext; Tk::break(); } );
      Very nice! But, for me, Shift-Tab does not work, I have to specify Shift-ISO_Left_Tab :-(
        Checking the source for Tk::MainWindow reveals that it uses the virtual <<LeftTab>>, so this should work for all, and its even simpler
        $mw->bind('all','<Tab>','focusPrev'); $mw->bind('all','<<LeftTab>>','focusNext');

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://932400]
and the sunlight beams...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2018-06-22 18:18 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.