Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

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__


Comment on Re: Tab Order for Widgets in HList
Download Code
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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://932400]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (12)
As of 2015-07-01 16:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (9 votes), past polls