diff options
Diffstat (limited to 'perl-install/interactive.pm')
-rw-r--r-- | perl-install/interactive.pm | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm index dc846f42b..2f3fb4c15 100644 --- a/perl-install/interactive.pm +++ b/perl-install/interactive.pm @@ -1,10 +1,11 @@ - - package interactive; use diagnostics; use strict; +#-###################################################################################### +#- misc imports +#-###################################################################################### use common qw(:common :functional); # heritate from this class and you'll get all made interactivity for same steps. @@ -27,9 +28,10 @@ use common qw(:common :functional); # ask_from_listW should handle differently small lists and big ones. -1; - +#-###################################################################################### +#- OO Stuff +#-###################################################################################### sub new($) { my ($type) = @_; @@ -37,6 +39,9 @@ sub new($) { } +#-###################################################################################### +#- Interactive functions +#-###################################################################################### sub ask_warn($$$) { my ($o, $title, $message) = @_; ask_from_list($o, $title, $message, [ _("Ok") ]); @@ -100,7 +105,9 @@ sub ask_from_entries($$$$;$%) { [ map { $$_ } @$val ] : undef; } - +# can get a hash of callback: focus_out changed and complete +# moreove if you pass a hash with a field list -> combo +# if you pass a hash with a field hidden -> emulate stty -echo sub ask_from_entries_ref($$$$;$%) { my ($o, $title, $message, $l, $val, %callback) = @_; @@ -109,8 +116,8 @@ sub ask_from_entries_ref($$$$;$%) { { if ((ref $_) eq "SCALAR") { { val => $_ } } else { - @{$_->{list}} ? - { (%{$_}, type => "list")} : {(%{$_})} + ($_->{list} && @{$_->{list}}) ? + { %{$_}, type => "list"} : $_ } } @{$val} ]; @@ -138,3 +145,8 @@ sub kill { } $o->{before_killing} = @interactive::objects; } + +#-###################################################################################### +#- Wonderful perl :( +#-###################################################################################### +1; # |