summaryrefslogtreecommitdiffstats
path: root/perl-install/interactive.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/interactive.pm')
-rw-r--r--perl-install/interactive.pm53
1 files changed, 53 insertions, 0 deletions
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
new file mode 100644
index 000000000..977adea5a
--- /dev/null
+++ b/perl-install/interactive.pm
@@ -0,0 +1,53 @@
+package interactive;
+
+use diagnostics;
+use strict;
+
+use common qw(:common);
+
+1;
+
+sub new($$) {
+ my ($type) = @_;
+
+ bless {}, ref $type || $type;
+}
+
+
+sub ask_warn($$$) {
+ my ($o, $title, $message) = @_;
+ ask_from_list($o, $title, $message, [ _("Ok") ]);
+}
+sub ask_yesorno($$$) {
+ my ($o, $title, $message) = @_;
+ ask_from_list_($o, $title, $message, [ __("Yes"), __("No") ]) eq "Yes";
+}
+sub ask_okcancel($$$) {
+ my ($o, $title, $message) = @_;
+ ask_from_list_($o, $title, $message, [ __("Ok"), __("Cancel") ]) 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) = @_;
+
+ $message = ref $message ? $message : [ $message ];
+
+ @$l > 10 and $l = [ sort @$l ];
+
+ $o->ask_from_listW($title, $message, $l, $def || $l->[0]);
+}
+sub ask_many_from_list($$$$;$) {
+ my ($o, $title, $message, $l, $def) = @_;
+
+ $message = ref $message ? $message : [ $message ];
+
+ $o->ask_many_from_listW($title, $message, $l, $def);
+}
+
+
+