Tk-TM
view release on metacpan or search on metacpan
lib/Tk/TM/Common.pm view on Meta::CPAN
$opt =$opt ||'';
$dbopt=$dbopt || {};
my $dbh;
eval('use DBI');
my $dlg =$scr ? (ref($scr) eq 'ARRAY' ? $scr->[0] : $scr)
: new Tk::MainWindow(-title=>Tk::TM::Lang::txtMsg('Login'));
my $rspfd;
my $dsnlb =$dlg->Label(-text=>Tk::TM::Lang::txtMsg('Database'))
->grid(-row=>0, -column=>0, -sticky=>'w');
my $dsnfd =$dlg->Entry(-textvariable=>\$dsn)
->grid(-row=>0, -column=>1, -columnspan=>2, -sticky=>'we');
$dsnfd->configure(-state=>'disabled', -bg=>$dlg->cget(-bg)) if $opt !~/dsn|edit/i;
my $usrlb =$dlg->Label(-text=>Tk::TM::Lang::txtMsg('User'))
->grid(-row=>1, -column=>0, -sticky=>'w');
my $usrfd =$dlg->Entry(-textvariable=>\$usr)
->grid(-row=>1, -column=>1, -columnspan=>2, -sticky=>'we');
my $pswlb =$dlg->Label(-text=>Tk::TM::Lang::txtMsg('Password'))
->grid(-row=>2, -column=>0, -sticky=>'w');
my $pswfd =$dlg->Entry(-textvariable=>\$psw,-show=>'*')
->grid(-row=>2, -column=>1, -columnspan=>2, -sticky=>'we');
my $btnok =$dlg->Button(-text=>Tk::TM::Lang::txtMsg($scr ? 'Login' : 'Ok')
,-command=>
sub{$rspfd->configure(-text=>'Connecting...');
my $curs =$dlg->cget(-cursor);
$dlg->configure(-cursor=>$CursorWait);
$dlg->update;
$dlg->configure(-cursor=>$curs);
if (eval {$dbh =DBI->connect($dsn,$usr,$psw,$dbopt)})
{$rspfd->configure(-text=>'Connected');
eval {$_[0] =$dsn};
lib/Tk/TM/Common.pm view on Meta::CPAN
$dlg->destroy if !$scr}
else {$rspfd->configure(-text=>$DBI::errstr)}
}
)
->grid(-row=>3, -column=>($scr ? 2 : 1), -sticky=>'we');
my $btncn =$dlg->Button(-text=>Tk::TM::Lang::txtMsg('Cancel')
,-command=>sub{if(!$scr && $opt =~/return/i) {$dlg->destroy} else {Tk::exit}})
->grid(-row=>3, -column=>2, -sticky=>'we') if !$scr;
$rspfd =ref($scr) eq 'ARRAY' ? $scr->[1]
:$dlg->Label(-anchor=>'w',-relief=>'sunken')
->grid(-row=>4, -column=>0, -columnspan=>3, -sticky=>'we');
$dsnfd->bind('<Key-Return>',sub{$btnok->invoke});
$usrfd->bind('<Key-Return>',sub{$btnok->invoke});
$pswfd->bind('<Key-Return>',sub{$btnok->invoke});
if (!$scr) {
# $dlg->bind('<Key-Return>',sub{$btnok->invoke});
$dlg->bind('<Key-Escape>',sub{$btncn->invoke});
if ($opt =~/center/i) {
$dlg->update;
$dlg->geometry('+'.int(($dlg->screenwidth() -$dlg->width())/2.2)
.'+'.int(($dlg->screenheight() -$dlg->height())/2.2));
lib/Tk/TM/wgBlank.pm view on Meta::CPAN
$wg =$self->Label(ref($wgs1) ? ('-text',@$wgs1) : ('-text',$wgs1));
$wg->grid(-column=>$col, -row=>$row, -sticky=>'w');
my ($colspan, $rowspan)=(1,1);
while (!defined($wgs1[0])) {shift(@wgs1)};
if ($wgs1[0] =~/^\d+$/) {$colspan =$wgs1[0]; shift(@wgs1)}
if ($wgs1[0] =~/^\d+$/) {$rowspan =$wgs1[0]; shift(@wgs1)}
$col++;
$wgs1 =shift(@wgs1);
$wg =$self->$wgs1(@wgs1);
$wg->grid(-column=>$col,-row=>$row,-sticky=>'w',-columnspan=>$colspan,-rowspan=>$rowspan);
push(@{$self->{-widgets}}, $wg);
}
$self->set(-widgets=>$self->{-widgets});
}
#######################
sub Adapt {
my $self =shift;
return($self) if !$self->{-do} || !$self->{-do}->{-dbfds};
( run in 0.325 second using v1.01-cache-2.11-cpan-a5abf4f5562 )