I'm writing a perl script using Tk and have had some success but I wish to have 
a very simple subroutine to ask the user a question and get a response 'ok' or 
'cancel'. 

My routine follows but it doesn't quite work as expected.
It's fine if I mouse click on 'ok' or simply press the return key - it 
correctly returns 'ok'.
If I clink 'cancel' it correctly returns 'cancel'.

Unfortunately, if I tab to 'cancel' then press return it returns 'ok' rather 
than the desired 'cancel'.

I'd appreciate any advice on fixing this.
regards
Phil


The code is:

#!/usr/bin/perl -w
use strict;
use Tk;
use Tk::Dialog;
use Tk::DialogBox;


my $main=MainWindow->new();
my $X=CheckOk('Some old question');
print "Response was $X\n";

exit 0;


sub CheckOk{
    (my $question)=@_;
    my $box=$main->DialogBox(
        -buttons => ['ok','cancel'],
        -default_button => "ok");
    $box-> add("Label",
                -text => "$question   ")->pack;
    $box -> Show();
}


                                          

Reply via email to