Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

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]
[Corion]: Hi choroba, Discipulus!
[Corion]: Yesterday I've been mulling over how to best generate HTTP requests from permutations of values but I haven't found a nice API for passing in the "template" of the HTTP request yet. I guess I'll have to do a SoPW for that
[Corion]: The API itself will basically be my $iter = generate_http_requ ests(method => 'GET', url => '/settings/:name', headers => ???, get_params => ['foo','bar']), but I'm not sure how to parametrize values in the headers and how to specify lists of ...
[choroba]: On the other hand, lots of options to receive the requests :-)
[Corion]: ... values to be used. For example, I think for headers, one would want to have various kinds of Content-Encoding headers, but for the get_parameters one would have various kinds of Bobby Tables
[choroba]: What about [metadoc:// Algorithm::Loops]?
[Corion]: choroba: Yeah, but handing off the request to Dancer,Plack, Mojolicious,LWP is easy once I have the data filled into some structure ;))
[choroba]: Algorithm::Loops
[Corion]: choroba: I'm using that to generate the permutations, but I don't know how the user can pass the intended values to my function in a sane way
[Corion]: I have a prototype that permutes the get_parameters, but the values used for the get parameters should be different from the values used for the headers and potentially for parts of the URL

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (9)
As of 2017-01-17 08:16 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (152 votes). Check out past polls.