1 |
diff -Nur -x '*.orig' -x '*.rej' e-smith-lib-1.18.0/root/usr/lib/perl5/site_perl/esmith/console.pm mezzanine_patched_e-smith-lib-1.18.0/root/usr/lib/perl5/site_perl/esmith/console.pm |
2 |
--- e-smith-lib-1.18.0/root/usr/lib/perl5/site_perl/esmith/console.pm 2007-02-28 15:49:38.000000000 -0500 |
3 |
+++ mezzanine_patched_e-smith-lib-1.18.0/root/usr/lib/perl5/site_perl/esmith/console.pm 2007-02-28 15:16:31.000000000 -0500 |
4 |
@@ -224,7 +224,6 @@ |
5 |
my %params = @_; |
6 |
|
7 |
my $title = $params{title}; |
8 |
- my $choice = $params{choice}; |
9 |
my $message_box = $params{text}; |
10 |
|
11 |
my $left = defined $params{left} ? $params{left} : gettext("Back"); |
12 |
@@ -298,7 +297,7 @@ |
13 |
|
14 |
=head2 yesno_page |
15 |
|
16 |
-This methods displays a simple yes/no screen, so the user can make a |
17 |
+This method displays a simple yes/no screen, so the user can make a |
18 |
simple binary selection. |
19 |
|
20 |
=cut |
21 |
@@ -434,6 +433,50 @@ |
22 |
return ( gettext("keep"), "${keep_phrase}: $value" ); |
23 |
} |
24 |
|
25 |
+=head2 gauge |
26 |
+ |
27 |
+This method displays a progress bar. It takes a coderef as parameter, and uses |
28 |
+the coderef to drive the --gauge widget of the dialog program, as well as to |
29 |
+perform whatever actions are being reported by the progress bar. The coderef |
30 |
+should take one parameter, which is the file handle to write the controlling |
31 |
+text to. The coderef should return a string, which is displayed by a |
32 |
+message_page after the progress bar terminates. |
33 |
+ |
34 |
+All text used to update the progress bar should either be numbers between 0 |
35 |
+and 100, or arbitrary text sandwiched between leading and training lines |
36 |
+of 'XXX' followed by newline. The numbers will update the percentage complete |
37 |
+of the display, and the text will update the displayed text. |
38 |
+ |
39 |
+=cut |
40 |
+ |
41 |
+sub gauge |
42 |
+{ |
43 |
+ my $self = shift; |
44 |
+ my $sub = shift; |
45 |
+ my %params = @_; |
46 |
+ my $title = $params{title} || 'Progress'; |
47 |
+ my $feedback_title = $params{feedback_title} || 'Status'; |
48 |
+ my $init_text = $params{text} || 'Progress'; |
49 |
+ |
50 |
+ use FileHandle; |
51 |
+ |
52 |
+ unless (open(WR, '|-')) |
53 |
+ { |
54 |
+ exec('/usr/bin/dialog', |
55 |
+ '--backtitle', $self->backtitle, |
56 |
+ '--title', gettext($title), |
57 |
+ '--gauge', |
58 |
+ gettext($init_text), |
59 |
+ SCREEN_ROWS, |
60 |
+ SCREEN_COLUMNS, |
61 |
+ ); |
62 |
+ } |
63 |
+ WR->autoflush(1); |
64 |
+ my $text = &$sub(*WR); |
65 |
+ close(WR); |
66 |
+ $self->message_page('title' => $feedback_title, 'text' => $text); |
67 |
+} |
68 |
+ |
69 |
=head2 run_screens |
70 |
|
71 |
This method takes a directory of screens to run, and runs them in order. |