home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl -w
- # This file was preprocessed, do not edit!
-
-
- package Debconf::FrontEnd;
- use strict;
- use Debconf::Gettext;
- use Debconf::Priority;
- use Debconf::Log ':all';
- use base qw(Debconf::Base);
-
-
- sub init {
- my $this=shift;
-
- $this->elements([]);
- $this->interactive('');
- $this->capb('');
- $this->title('');
- $this->requested_title('');
- $this->info(undef);
- $this->need_tty(1);
- }
-
-
- sub elementtype {
- my $this=shift;
-
- my $ret;
- if (ref $this) {
- ($ret) = ref($this) =~ m/Debconf::FrontEnd::(.*)/;
- }
- else {
- ($ret) = $this =~ m/Debconf::FrontEnd::(.*)/;
- }
- return $ret;
- }
-
- my %nouse;
-
- sub _loadelementclass {
- my $this=shift;
- my $type=shift;
- my $nodebug=shift;
-
- if (! UNIVERSAL::can("Debconf::Element::$type", 'new')) {
- return if $nouse{$type};
- eval qq{use Debconf::Element::$type};
- if ($@ || ! UNIVERSAL::can("Debconf::Element::$type", 'new')) {
- warn sprintf(gettext("Unable to load Debconf::Element::%s. Failed because: %s"), $type, $@) if ! $nodebug;
- $nouse{$type}=1;
- return;
- }
- }
- }
-
-
- sub makeelement {
- my $this=shift;
- my $question=shift;
- my $nodebug=shift;
-
- my $type=$this->elementtype.'::'.ucfirst($question->type);
- $type=~s/::$//; # in case the question has no type..
-
- $this->_loadelementclass($type, $nodebug);
-
- my $element="Debconf::Element::$type"->new(question => $question);
- return if ! ref $element;
- return $element;
- }
-
-
- sub add {
- my $this=shift;
- my $element=shift;
-
- foreach (@{$this->elements}) {
- return if $element->question == $_->question;
- }
-
- $element->frontend($this);
- push @{$this->elements}, $element;
- }
-
-
- sub go {
- my $this=shift;
- $this->backup('');
- foreach my $element (@{$this->elements}) {
- $element->show;
- return if $this->backup && $this->capb_backup;
- }
- return 1;
- }
-
-
- sub progress_start {
- my $this=shift;
- my $min=shift;
- my $max=shift;
- my $question=shift;
-
- my $type = $this->elementtype.'::Progress';
- $this->_loadelementclass($type);
-
- my $element="Debconf::Element::$type"->new(question => $question);
- unless (ref $element) {
- return;
- }
- $element->frontend($this);
- $element->progress_min($min);
- $element->progress_max($max);
- $element->progress_cur($min);
-
- $element->start;
-
- $this->progress_bar($element);
- }
-
-
- sub progress_set {
- my $this=shift;
- my $value=shift;
-
- return $this->progress_bar->set($value);
- }
-
-
- sub progress_step {
- my $this=shift;
- my $inc=shift;
-
- return $this->progress_set($this->progress_bar->progress_cur + $inc);
- }
-
-
- sub progress_info {
- my $this=shift;
- my $question=shift;
-
- return $this->progress_bar->info($question);
- }
-
-
- sub progress_stop {
- my $this=shift;
-
- $this->progress_bar->stop;
- $this->progress_bar(undef);
- }
-
-
- sub clear {
- my $this=shift;
-
- $this->elements([]);
- }
-
-
- sub default_title {
- my $this=shift;
-
- $this->title(sprintf(gettext("Configuring %s"), shift));
- $this->requested_title($this->title);
- }
-
-
- sub shutdown {}
-
-
- 1
-