diff options
Diffstat (limited to 'perl-install/interactive.pm')
-rw-r--r-- | perl-install/interactive.pm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm index 8c4bf24db..7151f7a34 100644 --- a/perl-install/interactive.pm +++ b/perl-install/interactive.pm @@ -8,7 +8,7 @@ use common qw(:common :functional); # heritate from this class and you'll get all made interactivity for same steps. # for this you need to provide # - ask_from_listW(o, title, messages, arrayref, default) returns one string of arrayref -# - ask_many_from_listW(o, title, messages, arrayref, arrayref2) returns one string of arrayref +# - ask_many_from_listW(o, title, messages, arrayref, arrayref2) returns many strings of arrayref # # where # - o is the object @@ -39,20 +39,24 @@ sub ask_warn($$$) { my ($o, $title, $message) = @_; ask_from_list($o, $title, $message, [ _("Ok") ]); } + sub ask_yesorno($$$;$) { my ($o, $title, $message, $def) = @_; ask_from_list_($o, $title, $message, [ __("Yes"), __("No") ], $def ? "No" : "Yes") eq "Yes"; } + sub ask_okcancel($$$;$) { my ($o, $title, $message, $def) = @_; ask_from_list_($o, $title, $message, [ __("Ok"), __("Cancel") ], $def ? "Cancel" : "Ok") eq "Ok"; } + sub ask_from_list_($$$$;$) { my ($o, $title, $message, $l, $def) = @_; untranslate( ask_from_list($o, $title, $message, [ map { translate($_) } @$l ], translate($def)), @$l); } + sub ask_from_list($$$$;$) { my ($o, $title, $message, $l, $def) = @_; @@ -86,6 +90,23 @@ sub ask_from_entry($$$;$) { $o->ask_from_entryW($title, $message, $def); } +sub ask_from_entries($$$$;$) { + my ($o, $title, $message, $l, $def) = @_; + + my $val = [ map { my $i = $_; \$i } @$def ]; + $o->ask_from_entries_ref($title, $message, $l, $val) ? + [ map { $$_ } @$val ] : undef; + +} + +sub ask_from_entries_ref($$$$;$) { + my ($o, $title, $message, $l, $val) = @_; + + $message = ref $message ? $message : [ $message ]; + + $o->ask_from_entries_refW($title, $message, $l, $val) + +} sub wait_message($$$) { my ($o, $title, $message) = @_; |