summaryrefslogtreecommitdiffstats
path: root/perl-install/interactive/stdio.pm
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2004-11-06 08:30:59 +0000
committerMystery Man <unknown@mandriva.org>2004-11-06 08:30:59 +0000
commit42e38e074bf1200783849ea85e205e6614f988d7 (patch)
tree3c218a7ef3c66c8064eb2f6fa84ef44cef7b55a6 /perl-install/interactive/stdio.pm
parenta4a67fd68bcffc42eb98871618c8f07b55157d5e (diff)
downloaddrakx-backup-do-not-use-42e38e074bf1200783849ea85e205e6614f988d7.tar
drakx-backup-do-not-use-42e38e074bf1200783849ea85e205e6614f988d7.tar.gz
drakx-backup-do-not-use-42e38e074bf1200783849ea85e205e6614f988d7.tar.bz2
drakx-backup-do-not-use-42e38e074bf1200783849ea85e205e6614f988d7.tar.xz
drakx-backup-do-not-use-42e38e074bf1200783849ea85e205e6614f988d7.zip
This commit was manufactured by cvs2svn to create branch 'a'.topic/a
Diffstat (limited to 'perl-install/interactive/stdio.pm')
-rw-r--r--perl-install/interactive/stdio.pm180
1 files changed, 0 insertions, 180 deletions
diff --git a/perl-install/interactive/stdio.pm b/perl-install/interactive/stdio.pm
deleted file mode 100644
index 8fd7a43ef..000000000
--- a/perl-install/interactive/stdio.pm
+++ /dev/null
@@ -1,180 +0,0 @@
-package interactive::stdio; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(interactive);
-
-use interactive;
-use common;
-
-$| = 1;
-
-sub readln() {
- my $l = <STDIN>;
- chomp $l;
- $l;
-}
-
-sub check_it {
- my ($i, $n) = @_;
- $i =~ /^\s*\d+\s*$/ && 1 <= $i && $i <= $n
-}
-
-sub good_choice {
- my ($def_s, $max) = @_;
- my $i;
- do {
- defined $i and print N("Bad choice, try again\n");
- print N("Your choice? (default %s) ", $def_s);
- $i = readln();
- } until !$i || check_it($i, $max);
- $i;
-}
-
-sub ask_fromW {
- my ($_o, $common, $l, $_l2) = @_;
-
- add2hash_($common, { ok => N("Ok"), cancel => N("Cancel") }) if !exists $common->{ok};
-
-ask_fromW_begin:
-
- my $already_entries = 0;
- my $predo_widget = sub {
- my ($e) = @_;
-
- $e->{type} = 'list' if $e->{type} =~ /(icon|tree)list/;
- #- combo doesn't exist, fallback to a sensible default
- $e->{type} = $e->{not_edit} ? 'list' : 'entry' if $e->{type} eq 'combo';
-
- if ($e->{type} eq 'entry') {
- my $t = "\t$e->{label} $e->{text}\n";
- if ($already_entries) {
- length($already_entries) > 1 and print N("Entries you'll have to fill:\n%s", $already_entries);
- $already_entries = 1;
- print $t;
- } else {
- $already_entries = $t;
- }
- }
- };
-
- my @labels;
- my $format_label = sub { my ($e) = @_; return sprintf("`%s' %s %s\n", ${$e->{val}}, $e->{label}, $e->{text}) };
- my $do_widget = sub {
- my ($e, $ind) = @_;
-
- if ($e->{type} eq 'bool') {
- print "$e->{text} $e->{label}\n";
- print N("Your choice? (0/1, default `%s') ", ${$e->{val}} || '0');
- my $i = readln();
- if ($i) {
- to_bool($i) != to_bool(${$e->{val}}) and $common->{callbacks}{changed}->($ind);
- ${$e->{val}} = $i;
- }
- } elsif ($e->{type} =~ /list/) {
- $e->{text} || $e->{label} and print "=> $e->{label} $e->{text}\n";
- my $n = 0; my $size = 0;
- foreach (@{$e->{list}}) {
- $n++;
- my $t = "$n: " . may_apply($e->{format}, $_) . "\t";
- if ($size + length($t) >= 80) {
- print "\n";
- $size = 0;
- }
- print $t;
- $size += length($t);
- }
- print "\n";
- my $i = good_choice(may_apply($e->{format}, ${$e->{val}}), $n);
- print "Setting to <", $i ? ${$e->{list}}[$i-1] : ${$e->{val}}, ">\n";
- $i and ${$e->{val}} = ${$e->{list}}[$i-1], $common->{callbacks}{changed}->($ind);
- } elsif ($e->{type} eq 'button') {
- print N("Button `%s': %s", $e->{label}, may_apply($e->{format}, ${$e->{val}})), " $e->{text}\n";
- print N("Do you want to click on this button?");
- my $i = readln();
- $i && $i !~ /^n/i and $e->{clicked_may_quit}(), $common->{callbacks}{changed}->($ind);
- } elsif ($e->{type} eq 'label') {
- my $t = $format_label->($e);
- push @labels, $t;
- print $t;
- } elsif ($e->{type} eq 'entry') {
- print "$e->{label} $e->{text}\n";
- print N("Your choice? (default `%s'%s) ", ${$e->{val}}, ${$e->{val}} ? N(" enter `void' for void entry") : '');
- my $i = readln();
- ${$e->{val}} = $i || ${$e->{val}};
- ${$e->{val}} = '' if ${$e->{val}} eq 'void';
- print "Setting to <", ${$e->{val}}, ">\n";
- $i and $common->{callbacks}{changed}->($ind);
- } else {
- printf "UNSUPPORTED WIDGET TYPE (type <%s> label <%s> text <%s> val <%s>\n", $e->{type}, $e->{label}, $e->{text}, ${$e->{val}};
- }
- };
-
- print "* ";
- $common->{title} and print "$common->{title}\n";
- print(map { "$_\n" } @{$common->{messages}});
-
- $predo_widget->($_) foreach @$l;
- if (listlength(@$l) > 30) {
- my $ll = listlength(@$l);
- print N("=> There are many things to choose from (%s).\n", $ll);
-ask_fromW_handle_verylonglist:
- print
-N("Please choose the first number of the 10-range you wish to edit,
-or just hit Enter to proceed.
-Your choice? ");
- my $i = readln();
- if (check_it($i, $ll)) {
- each_index { $do_widget->($_, $::i) } grep_index { $::i >= $i-1 && $::i < $i+9 } @$l;
- goto ask_fromW_handle_verylonglist;
- }
- } else {
- each_index { $do_widget->($_, $::i) } @$l;
- }
-
- my $lab;
- each_index { $labels[$::i] && (($lab = $format_label->($_)) ne $labels[$::i]) and print N("=> Notice, a label changed:\n%s", $lab) }
- grep { $_->{type} eq 'label' } @$l;
-
- my $i;
- if (listlength(@$l) != 1 || $common->{ok} ne N("Ok") || $common->{cancel} ne N("Cancel")) {
- print "[1] ", $common->{ok} || N("Ok");
- $common->{cancel} and print " [2] $common->{cancel}";
- @$l and print " [9] ", N("Re-submit");
- print "\n";
- do {
- defined $i and print N("Bad choice, try again\n");
- print N("Your choice? (default %s) ", $common->{focus_cancel} ? $common->{cancel} : $common->{ok});
- $i = readln() || ($common->{focus_cancel} ? "2" : "1");
- } until check_it($i, 9);
- $i == 9 and goto ask_fromW_begin;
- } else {
- $i = 1;
- }
- my ($callback_error) = $common->{callbacks}{$i == 2 ? 'canceled' : 'complete'}->();
- $callback_error and goto ask_fromW_begin;
- return $i != 2;
-}
-
-sub wait_messageW {
- my ($_o, $_title, $message) = @_;
- print join "\n", @$message;
-}
-sub wait_message_nextW {
- my $m = join "\n", @{$_[1]};
- print "\r$m", ' ' x (60 - length $m);
-}
-sub wait_message_endW { print "\nDone\n" }
-
-sub ok {
- N("Ok");
-}
-
-sub cancel {
- N("Cancel");
-}
-
-1;
-