Ask
view release on metacpan or search on metacpan
lib/Ask/Tk.pm view on Meta::CPAN
use 5.008008;
use strict;
use warnings;
package Ask::Tk;
our $AUTHORITY = 'cpan:TOBYINK';
our $VERSION = '0.015';
use Moo;
use Path::Tiny 'path';
use Tk;
use namespace::autoclean;
with 'Ask::API';
sub is_usable {
my ( $self ) = @_;
return !!$ENV{'DISPLAY'};
}
sub quality {
return 30;
}
sub info {
my ( $self, %o ) = @_;
my $mw = "MainWindow"->new;
$mw->withdraw;
$o{messagebox_type} ||= 'ok';
$o{messagebox_icon} ||= 'info';
my $r = $mw->messageBox(
-title => $o{title} || '',
-message => $o{text} || '',
-type => $o{messagebox_type},
-icon => $o{messagebox_icon},
);
$mw->destroy;
return $r;
} #/ sub info
sub warning {
my ( $self, %o ) = @_;
$self->info( messagebox_icon => 'warning', %o );
}
sub error {
my ( $self, %o ) = @_;
$self->info( messagebox_icon => 'error', %o );
}
sub question {
my ( $self, %o ) = @_;
'Ok' eq $self->info(
messagebox_icon => 'question',
messagebox_type => 'OkCancel',
%o,
);
}
sub entry {
my ( $self, %o ) = @_;
my $mw = "MainWindow"->new;
$mw->Label( -text => $o{text} )->pack
if exists $o{text};
my $return = $o{entry_text};
my $entry = $mw->Entry(
( -show => '*' )x!!( $o{hide_text} ),
( run in 0.802 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )